On Thu, 2020-08-27 at 11:01 +0200, Domingo Alvarez Duarte wrote:
Hello !
I just finished adding the parsing code to parse this dummy model:
https://github.com/mingodad/GLPK/blob/local-set-param/examples/cut2.mo
d
On that branch I've added let/repeat/problem and relaxed the only one
solve requirement, only the parsing is done (although corner cases
can
be missing).
Any comment/suggestion/help is welcome !
=====
./glpsol --genonly -m cut2.mod
>./glpsol --genonly -m cut2.mod
GLPSOL: GLPK LP/MIP Solver, v4.65
Parameter(s) specified in the command line:
--genonly -m cut2.mod
Reading model section from cut2.mod...
Reading data section from cut2.mod...
135 lines were read
Checking (line 14)...
Generating Number...
Generating Fill...
Generating Reduced_Cost...
Generating Width_Limit...
Display statement at line 46
problem Cutting_Opt: Cut, Number, Fill;
problem Pattern_Gen: Use, Reduced_Cost, Width_Limit;
problem Mix: Cut, Reduced_Cost;
Display statement at line 58
price[20] = 0.166667
price[45] = 0.416667
price[50] = 0.5
price[55] = 0.5
price[75] = 0.833333
Model has been successfully generated
>Exit code: 0
=====
Cheer !
repeat {
solve Cutting_Opt;
let {i in WIDTHS} price[i] := Fill[i].dual;
display price;
solve Pattern_Gen;
if Reduced_Cost < -0.00001 then {
let nPAT := nPAT + 1;
let {i in WIDTHS} nbr[i,nPAT] := Use[i];
display Use;
}
else break;
}
I don't think that the solve statement is executed more than once.
Internally the solve statement is not a real statement (like display),
i.e. it doesn't "call" a solver; it is just a marker that separates the
main part and the post-solving part of the model.