On Tue, 2021-01-26 at 13:33 +0100, Domingo Alvarez Duarte wrote: > It seems to be a cplex OPL format. > After manually convert it to GMPL (see bellow) I'm getting a segfault
This bug has been fixed in glpk 6.0. FYI: https://lists.gnu.org/archive/html/bug-glpk/2020-07/msg00009.html > with ubuntu 18.04 glpk distribution: > ==== > glpsol -m cplex2mpl.mod > GLPSOL: GLPK LP/MIP Solver, v4.65 > Parameter(s) specified in the command line: > -m cplex2mpl.mod > Reading model section from cplex2mpl.mod... > Reading data section from cplex2mpl.mod... > 73 lines were read > Generating result... > Generating cstTemps... > Generating cstPlanches... > Model has been successfully generated > GLPK Integer Optimizer, v4.65 > 3 rows, 5 columns, 15 non-zeros > 5 integer variables, none of which are binary > Preprocessing... > 1 row, 0 columns, 0 non-zeros > 0 integer variables, none of which are binary > Scaling... > A: min|aij| = 1.000e+00 max|aij| = 1.000e+00 ratio = 1.000e+00 > Problem data seem to be well scaled > Solving LP relaxation... > GLPK Simplex Optimizer, v4.65 > 1 row, 0 columns, 0 non-zeros > ~ 0: obj = 1.491000000e+02 infeas = 0.000e+00 > OPTIMAL SOLUTION FOUND > Integer optimization begins... > glp_add_cols: ncs = 0; invalid number of columns > Error detected in file api/prob1.c at line 362 > Aborted (core dumped) > ==== > But with my fork at https://github.com/mingodad/GLPK it seems to work: > ==== > glpsol5 -m cplex2mpl.mod > GLPSOL: GLPK LP/MIP Solver, v4.65, glp_double size 8 > Parameter(s) specified in the command line: > -m cplex2mpl.mod > Reading model section from cplex2mpl.mod... > 73 lines were read > 73 lines were read > Generating result... > Generating cstTemps... > Generating cstPlanches... > Model has been successfully generated > GLPK Integer Optimizer, v4.65 > 3 rows, 5 columns, 15 non-zeros > 5 integer variables, none of which are binary > Preprocessing... > 1 row, 0 columns, 0 non-zeros > 0 integer variables, none of which are binary > Scaling... > A: min|aij| = 1.000e+00 max|aij| = 1.000e+00 ratio = 1.000e+00 > Problem data seem to be well scaled > Solving LP relaxation... > GLPK Simplex Optimizer, v4.65 > 1 row, 0 columns, 0 non-zeros > ~ 0: obj = 1.491000000e+02 infeas = 0.000e+00 > OPTIMAL SOLUTION FOUND > Integer optimization begins... > Long-step dual simplex will be used > + 0: mip = not found yet <= +inf (1; 0) > + 0: >>>>> 1.491000000e+02 <= 1.491000000e+02 0.0% (1; 0) > + 0: mip = 1.491000000e+02 <= tree is empty 0.0% (0; 1) > INTEGER OPTIMAL SOLUTION FOUND > Time used: 0.0 secs > Memory used: 0.1 Mb (118279 bytes) > Il faut fabriquer : > 1.000000 objet(s) 1 > 1.000000 objet(s) 2 > 1.000000 objet(s) 3 > 1.000000 objet(s) 4 > 1.000000 objet(s) 5 > Il faut fabriquer :149.100000 > Model has been successfully processed > ==== > Manually converting to GMPL could be something like this: > ==== > param N integer; > param D; > param dureeJournee integer; > param planchesJournee integer; > set objets := {1..N}; > param planches{objets} integer; > param duree{i in objets} := planches[i] / D; > param profit{objets}; > > var aFabriquer{objets} , >= 1, integer; > > maximize result: sum{o in objets} profit[o]*aFabriquer[o]; > > s.t. cstTemps: sum{o in objets} duree[o]*aFabriquer[o] <= > dureeJournee; > cstPlanches: sum{o in objets} planches[o]*aFabriquer[o] <= > planchesJournee; > # une contrainte en plus: chaque objet est au moins fabriqu´e en 1 > exemplaire > #auMoins1: forall(o in objets) aFabriquer[o] >= 1; > > solve; > > #display duree, planches, profit; > printf "Il faut fabriquer :\n"; > printf{i in objets} "%f objet(s) %d\n", aFabriquer[i], i; > printf "Il faut fabriquer :%f\n", result; > > data; > > param N := 5; > param D := 3.4; > param dureeJournee := 8; > param planchesJournee := 40; > param planches := 1 4, 2 5, 3 8, 4 3, 5 7; > param profit := 1 12.6, 2 45.0, 3 8.0, 4 76.0, 5 7.5; > > end; > ==== > On 26/1/21 12:00, Andrew Makhorin wrote: > > -------- Forwarded Message -------- > > From: Alexandre Garreau <[email protected]> > > To: [email protected] > > Subject: What is this format? > > Date: Tue, 26 Jan 2021 11:46:03 +0100 > > > > Hello, > > > > In my university, they use cplex for teaching linear programming, > > and > > I’d > > like not to install anything proprietary on my computer, but I have > > to > > figure out how to deal with the files given while only doc for > > cplex, > > which > > I don’t have and never used… Do you know what format this is? it > > uses > > “.mod” as an extension, apparently that’s what glpk uses for its > > own > > format… but in this case, it’s not isn’t it? I thought maybe free > > mps, > > but > > reading it with --freemps doesn’t work either. Here I attach a > > sample > > file, with the various errors I get: > > > > $ glpsol --freemps charpentier1.mod > > GLPSOL: GLPK LP/MIP Solver, v4.65 > > Parameter(s) specified in the command line: > > --freemps charpentier1.mod > > Reading problem data from 'charpentier1.mod'... > > charpentier1.mod:1: invalid indicator record > > MPS file processing error > > $ glpsol --glp charpentier1.mod > > GLPSOL: GLPK LP/MIP Solver, v4.65 > > Parameter(s) specified in the command line: > > --glp charpentier1.mod > > Reading problem data from 'charpentier1.mod'... > > charpentier1.mod:1: error: line designator missing or invalid > > GLPK LP/MIP file processing error > > $ glpsol --math charpentier1.mod > > GLPSOL: GLPK LP/MIP Solver, v4.65 > > Parameter(s) specified in the command line: > > --math charpentier1.mod > > Reading model section from charpentier1.mod... > > charpentier1.mod:1: syntax error in model section > > Context: > > / > > MathProg model processing error > > $ glpsol --lp charpentier1.mod > > GLPSOL: GLPK LP/MIP Solver, v4.65 > > Parameter(s) specified in the command line: > > --lp charpentier1.mod > > Reading problem data from 'charpentier1.mod'... > > charpentier1.mod:1: 'minimize' or 'maximize' keyword missing > > CPLEX LP file processing error > > $ glpsol --freemps -m charpentier1.mod > > GLPSOL: GLPK LP/MIP Solver, v4.65 > > Parameter(s) specified in the command line: > > --freemps -m charpentier1.mod > > Reading model section from charpentier1.mod... > > charpentier1.mod:1: syntax error in model section > > Context: > > / > > MathProg model processing error > > $ glpsol --glp -m charpentier1.mod > > GLPSOL: GLPK LP/MIP Solver, v4.65 > > Parameter(s) specified in the command line: > > --glp -m charpentier1.mod > > Reading model section from charpentier1.mod... > > charpentier1.mod:1: syntax error in model section > > Context: > > / > > MathProg model processing error > > $ glpsol --math -m charpentier1.mod > > GLPSOL: GLPK LP/MIP Solver, v4.65 > > Parameter(s) specified in the command line: > > --math -m charpentier1.mod > > Reading model section from charpentier1.mod... > > charpentier1.mod:1: syntax error in model section > > Context: > > / > > MathProg model processing error > > $ glpsol --lp -m charpentier1.mod > > GLPSOL: GLPK LP/MIP Solver, v4.65 > > Parameter(s) specified in the command line: > > --lp -m charpentier1.mod > > Reading model section from charpentier1.mod... > > charpentier1.mod:1: syntax error in model section > > Context: > > / > > MathProg model processing error
