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.