Hi guys, I`m trying to learn how to use glpk api.
I`m sitting couple hours on it and can not figure our where is a problem.
I attached 2 files. One is .lp file and second sample.c
Both are trying to solve same problem. With glpsol i have no problem to
solve it, but when I try to modify sample.c so it solve the same problem it
just write back:
GLPK Simplex Optimizer, v4.55
26 rows, 9 columns, 90 non-zeros
0: obj = 0.000000000e+00 infeas = 7.963e+02 (0)
LP HAS NO PRIMAL FEASIBLE SOLUTION
z = 0; x1 = 0; x2 = 0; x3 = 0; x4 = 0
Any ideas?
Thanks
--
S pozdravom Dušan Plavák
plan.lp
Description: Binary data
/* sample.c */
#include <stdio.h>
#include <stdlib.h>
#include <glpk.h>
int main(void)
{ glp_prob *lp;
int ia[1+1000], ja[1+1000];
double ar[1+1000], z, x1, x2, x3, x4;
lp = glp_create_prob();
glp_set_prob_name(lp, "sample");
glp_set_obj_dir(lp, GLP_MIN);
glp_add_rows(lp, 26);
glp_set_row_name(lp, 1, "p1");
glp_set_row_bnds(lp, 1, GLP_LO, 88.266386628161, 0);
glp_set_row_name(lp, 2, "p2");
glp_set_row_bnds(lp, 2, GLP_UP, 0, 176.53277325632);
glp_set_row_name(lp, 3, "p3");
glp_set_row_bnds(lp, 3, GLP_LO, 90, 0);
glp_set_row_name(lp, 4, "p4");
glp_set_row_bnds(lp, 4, GLP_UP, 0, 270);
glp_set_row_name(lp, 5, "p5");
glp_set_row_bnds(lp, 5, GLP_LO, 24.000010077242, 0);
glp_set_row_name(lp, 6, "p6");
glp_set_row_bnds(lp, 6, GLP_UP, 0, 64.000010077242);
glp_set_row_name(lp, 7, "p7");
glp_set_row_bnds(lp, 7, GLP_LO, 85.00017143249, 0);
glp_set_row_name(lp, 8, "p8");
glp_set_row_bnds(lp, 8, GLP_UP, 0, 170.00017143249);
glp_set_row_name(lp, 9, "p9");
glp_set_row_bnds(lp, 9, GLP_LO, 9, 0);
glp_set_row_name(lp, 10, "p10");
glp_set_row_bnds(lp, 10, GLP_UP, 0, 9);
glp_set_row_name(lp, 11, "p11");
glp_set_row_bnds(lp, 11, GLP_LO, -24750, 0);
glp_set_row_name(lp, 12, "p12");
glp_set_row_bnds(lp, 12, GLP_UP, 0, 25250.0);
glp_set_row_name(lp, 13, "p13");
glp_set_row_bnds(lp, 13, GLP_LO, -2475, 0);
glp_set_row_name(lp, 14, "p14");
glp_set_row_bnds(lp, 14, GLP_UP, 0, 2525);
glp_set_row_name(lp, 15, "p15");
glp_set_row_bnds(lp, 15, GLP_LO, -12375, 0);
glp_set_row_name(lp, 16, "p16");
glp_set_row_bnds(lp, 16, GLP_UP, 0, 12625);
glp_set_row_name(lp, 17, "p17");
glp_set_row_bnds(lp, 17, GLP_LO, -9900, 0);
glp_set_row_name(lp, 18, "p18");
glp_set_row_bnds(lp, 18, GLP_UP, 0, 10100);
glp_set_row_name(lp, 19, "p19");
glp_set_row_bnds(lp, 19, GLP_LO, 250, 0);
glp_set_row_name(lp, 20, "p20");
glp_set_row_bnds(lp, 20, GLP_UP, 0, 250);
glp_set_row_name(lp, 21, "p21");
glp_set_row_bnds(lp, 21, GLP_LO, 25, 0);
glp_set_row_name(lp, 22, "p22");
glp_set_row_bnds(lp, 22, GLP_UP, 0, 25);
glp_set_row_name(lp, 23, "p23");
glp_set_row_bnds(lp, 23, GLP_LO, 125, 0);
glp_set_row_name(lp, 24, "p24");
glp_set_row_bnds(lp, 24, GLP_UP, 0, 125);
glp_set_row_name(lp, 25, "p25");
glp_set_row_bnds(lp, 25, GLP_LO, 100, 0);
glp_set_row_name(lp, 26, "p26");
glp_set_row_bnds(lp, 26, GLP_UP, 0, 100.0);
glp_add_cols(lp, 9);
glp_set_col_name(lp, 1, "x1");
glp_set_obj_coef(lp, 1, 0.0);
glp_set_col_name(lp, 2, "x2");
glp_set_obj_coef(lp, 2, 0.0);
glp_set_col_name(lp, 3, "x3");
glp_set_obj_coef(lp, 3, 0.0);
glp_set_col_name(lp, 4, "x4");
glp_set_obj_coef(lp, 4, 0.0);
glp_set_col_name(lp, 5, "x5");
glp_set_obj_coef(lp, 5, 0.0);
glp_set_col_name(lp, 6, "x6");
glp_set_obj_coef(lp, 6, 1.0);
glp_set_col_name(lp, 7, "x7");
glp_set_obj_coef(lp, 7, 1.0);
glp_set_col_name(lp, 8, "x8");
glp_set_obj_coef(lp, 8, 1.0);
glp_set_col_name(lp, 9, "x9");
glp_set_obj_coef(lp, 9, 1.0);
ia[1]=1.0, ja[1]=1.0, ar[1]=1;
ia[2]=1.0, ja[2]=2.0, ar[2]=0;
ia[3]=1.0, ja[3]=3.0, ar[3]=0;
ia[4]=1.0, ja[4]=4.0, ar[4]=0;
ia[5]=1.0, ja[5]=5.0, ar[5]=0;
ia[6]=1.0, ja[6]=6.0, ar[6]=0;
ia[7]=1.0, ja[7]=7.0, ar[7]=0;
ia[8]=1.0, ja[8]=8.0, ar[8]=0;
ia[9]=1.0, ja[9]=9.0, ar[9]=0;
ia[10]=2.0, ja[10]=1.0, ar[10]=1;
ia[11]=2.0, ja[11]=2.0, ar[11]=0;
ia[12]=2.0, ja[12]=3.0, ar[12]=0;
ia[13]=2.0, ja[13]=4.0, ar[13]=0;
ia[14]=2.0, ja[14]=5.0, ar[14]=0;
ia[15]=2.0, ja[15]=6.0, ar[15]=0;
ia[16]=2.0, ja[16]=7.0, ar[16]=0;
ia[17]=2.0, ja[17]=8.0, ar[17]=0;
ia[18]=2.0, ja[18]=9.0, ar[18]=0;
ia[19]=3.0, ja[19]=1.0, ar[19]=0;
ia[20]=3.0, ja[20]=2.0, ar[20]=1;
ia[21]=3.0, ja[21]=3.0, ar[21]=0;
ia[22]=3.0, ja[22]=4.0, ar[22]=0;
ia[23]=3.0, ja[23]=5.0, ar[23]=0;
ia[24]=3.0, ja[24]=6.0, ar[24]=0;
ia[25]=3.0, ja[25]=7.0, ar[25]=0;
ia[26]=3.0, ja[26]=8.0, ar[26]=0;
ia[27]=3.0, ja[27]=9.0, ar[27]=0;
ia[28]=4.0, ja[28]=1.0, ar[28]=0;
ia[29]=4.0, ja[29]=2.0, ar[29]=1;
ia[30]=4.0, ja[30]=3.0, ar[30]=0;
ia[31]=4.0, ja[31]=4.0, ar[31]=0;
ia[32]=4.0, ja[32]=5.0, ar[32]=0;
ia[33]=4.0, ja[33]=6.0, ar[33]=0;
ia[34]=4.0, ja[34]=7.0, ar[34]=0;
ia[35]=4.0, ja[35]=8.0, ar[35]=0;
ia[36]=4.0, ja[36]=9.0, ar[36]=0;
ia[37]=5.0, ja[37]=1.0, ar[37]=0;
ia[38]=5.0, ja[38]=2.0, ar[38]=0;
ia[39]=5.0, ja[39]=3.0, ar[39]=1;
ia[40]=5.0, ja[40]=4.0, ar[40]=0;
ia[41]=5.0, ja[41]=5.0, ar[41]=0;
ia[42]=5.0, ja[42]=6.0, ar[42]=0;
ia[43]=5.0, ja[43]=7.0, ar[43]=0;
ia[44]=5.0, ja[44]=8.0, ar[44]=0;
ia[45]=5.0, ja[45]=9.0, ar[45]=0;
ia[46]=6.0, ja[46]=1.0, ar[46]=0;
ia[47]=6.0, ja[47]=2.0, ar[47]=0;
ia[48]=6.0, ja[48]=3.0, ar[48]=1;
ia[49]=6.0, ja[49]=4.0, ar[49]=0;
ia[50]=6.0, ja[50]=5.0, ar[50]=0;
ia[51]=6.0, ja[51]=6.0, ar[51]=0;
ia[52]=6.0, ja[52]=7.0, ar[52]=0;
ia[53]=6.0, ja[53]=8.0, ar[53]=0;
ia[54]=6.0, ja[54]=9.0, ar[54]=0;
ia[55]=7.0, ja[55]=1.0, ar[55]=0;
ia[56]=7.0, ja[56]=2.0, ar[56]=0;
ia[57]=7.0, ja[57]=3.0, ar[57]=0;
ia[58]=7.0, ja[58]=4.0, ar[58]=1;
ia[59]=7.0, ja[59]=5.0, ar[59]=0;
ia[60]=7.0, ja[60]=6.0, ar[60]=0;
ia[61]=7.0, ja[61]=7.0, ar[61]=0;
ia[62]=7.0, ja[62]=8.0, ar[62]=0;
ia[63]=7.0, ja[63]=9.0, ar[63]=0;
ia[64]=8.0, ja[64]=1.0, ar[64]=0;
ia[65]=8.0, ja[65]=2.0, ar[65]=0;
ia[66]=8.0, ja[66]=3.0, ar[66]=0;
ia[67]=8.0, ja[67]=4.0, ar[67]=1;
ia[68]=8.0, ja[68]=5.0, ar[68]=0;
ia[69]=8.0, ja[69]=6.0, ar[69]=0;
ia[70]=8.0, ja[70]=7.0, ar[70]=0;
ia[71]=8.0, ja[71]=8.0, ar[71]=0;
ia[72]=8.0, ja[72]=9.0, ar[72]=0;
ia[73]=9.0, ja[73]=1.0, ar[73]=0;
ia[74]=9.0, ja[74]=2.0, ar[74]=0;
ia[75]=9.0, ja[75]=3.0, ar[75]=0;
ia[76]=9.0, ja[76]=4.0, ar[76]=0;
ia[77]=9.0, ja[77]=5.0, ar[77]=1;
ia[78]=9.0, ja[78]=6.0, ar[78]=0;
ia[79]=9.0, ja[79]=7.0, ar[79]=0;
ia[80]=9.0, ja[80]=8.0, ar[80]=0;
ia[81]=9.0, ja[81]=9.0, ar[81]=0;
ia[82]=10.0, ja[82]=1.0, ar[82]=0;
ia[83]=10.0, ja[83]=2.0, ar[83]=0;
ia[84]=10.0, ja[84]=3.0, ar[84]=0;
ia[85]=10.0, ja[85]=4.0, ar[85]=0;
ia[86]=10.0, ja[86]=5.0, ar[86]=1;
ia[87]=10.0, ja[87]=6.0, ar[87]=0;
ia[88]=10.0, ja[88]=7.0, ar[88]=0;
ia[89]=10.0, ja[89]=8.0, ar[89]=0;
ia[90]=10.0, ja[90]=9.0, ar[90]=0;
ia[91]=11.0, ja[91]=1.0, ar[91]=1.1427;
ia[92]=11.0, ja[92]=2.0, ar[92]=1.0501;
ia[93]=11.0, ja[93]=3.0, ar[93]=3.96934;
ia[94]=11.0, ja[94]=4.0, ar[94]=0.58332;
ia[95]=11.0, ja[95]=5.0, ar[95]=3.321;
ia[96]=11.0, ja[96]=6.0, ar[96]=0;
ia[97]=11.0, ja[97]=7.0, ar[97]=0;
ia[98]=11.0, ja[98]=8.0, ar[98]=0;
ia[99]=11.0, ja[99]=9.0, ar[99]=0;
ia[100]=12.0, ja[100]=1.0, ar[100]=1.1427;
ia[101]=12.0, ja[101]=2.0, ar[101]=1.0501;
ia[102]=12.0, ja[102]=3.0, ar[102]=3.96934;
ia[103]=12.0, ja[103]=4.0, ar[103]=0.58332;
ia[104]=12.0, ja[104]=5.0, ar[104]=3.321;
ia[105]=12.0, ja[105]=6.0, ar[105]=0;
ia[106]=12.0, ja[106]=7.0, ar[106]=0;
ia[107]=12.0, ja[107]=8.0, ar[107]=0;
ia[108]=12.0, ja[108]=9.0, ar[108]=0;
ia[109]=13.0, ja[109]=1.0, ar[109]=0.2325;
ia[110]=13.0, ja[110]=2.0, ar[110]=0.6975;
ia[111]=13.0, ja[111]=3.0, ar[111]=0.63891;
ia[112]=13.0, ja[112]=4.0, ar[112]=0.0372;
ia[113]=13.0, ja[113]=5.0, ar[113]=0;
ia[114]=13.0, ja[114]=6.0, ar[114]=0;
ia[115]=13.0, ja[115]=7.0, ar[115]=0;
ia[116]=13.0, ja[116]=8.0, ar[116]=0;
ia[117]=13.0, ja[117]=9.0, ar[117]=0;
ia[118]=14.0, ja[118]=1.0, ar[118]=0.2325;
ia[119]=14.0, ja[119]=2.0, ar[119]=0.6975;
ia[120]=14.0, ja[120]=3.0, ar[120]=0.63891;
ia[121]=14.0, ja[121]=4.0, ar[121]=0.0372;
ia[122]=14.0, ja[122]=5.0, ar[122]=0;
ia[123]=14.0, ja[123]=6.0, ar[123]=0;
ia[124]=14.0, ja[124]=7.0, ar[124]=0;
ia[125]=14.0, ja[125]=8.0, ar[125]=0;
ia[126]=14.0, ja[126]=9.0, ar[126]=0;
ia[127]=15.0, ja[127]=1.0, ar[127]=0.1722;
ia[128]=15.0, ja[128]=2.0, ar[128]=0.2009;
ia[129]=15.0, ja[129]=3.0, ar[129]=2.79169;
ia[130]=15.0, ja[130]=4.0, ar[130]=0.53095;
ia[131]=15.0, ja[131]=5.0, ar[131]=3.321;
ia[132]=15.0, ja[132]=6.0, ar[132]=0;
ia[133]=15.0, ja[133]=7.0, ar[133]=0;
ia[134]=15.0, ja[134]=8.0, ar[134]=0;
ia[135]=15.0, ja[135]=9.0, ar[135]=0;
ia[136]=16.0, ja[136]=1.0, ar[136]=0.1722;
ia[137]=16.0, ja[137]=2.0, ar[137]=0.2009;
ia[138]=16.0, ja[138]=3.0, ar[138]=2.79169;
ia[139]=16.0, ja[139]=4.0, ar[139]=0.53095;
ia[140]=16.0, ja[140]=5.0, ar[140]=3.321;
ia[141]=16.0, ja[141]=6.0, ar[141]=0;
ia[142]=16.0, ja[142]=7.0, ar[142]=0;
ia[143]=16.0, ja[143]=8.0, ar[143]=0;
ia[144]=16.0, ja[144]=9.0, ar[144]=0;
ia[145]=17.0, ja[145]=1.0, ar[145]=0.738;
ia[146]=17.0, ja[146]=2.0, ar[146]=0.1517;
ia[147]=17.0, ja[147]=3.0, ar[147]=0.53874;
ia[148]=17.0, ja[148]=4.0, ar[148]=0.01517;
ia[149]=17.0, ja[149]=5.0, ar[149]=0;
ia[150]=17.0, ja[150]=6.0, ar[150]=0;
ia[151]=17.0, ja[151]=7.0, ar[151]=0;
ia[152]=17.0, ja[152]=8.0, ar[152]=0;
ia[153]=17.0, ja[153]=9.0, ar[153]=0;
ia[154]=18.0, ja[154]=1.0, ar[154]=0.738;
ia[155]=18.0, ja[155]=2.0, ar[155]=0.1517;
ia[156]=18.0, ja[156]=3.0, ar[156]=0.53874;
ia[157]=18.0, ja[157]=4.0, ar[157]=0.01517;
ia[158]=18.0, ja[158]=5.0, ar[158]=0;
ia[159]=18.0, ja[159]=6.0, ar[159]=0;
ia[160]=18.0, ja[160]=7.0, ar[160]=0;
ia[161]=18.0, ja[161]=8.0, ar[161]=0;
ia[162]=18.0, ja[162]=9.0, ar[162]=0;
ia[163]=19.0, ja[163]=1.0, ar[163]=1.1427;
ia[164]=19.0, ja[164]=2.0, ar[164]=1.0501;
ia[165]=19.0, ja[165]=3.0, ar[165]=3.96934;
ia[166]=19.0, ja[166]=4.0, ar[166]=0.58332;
ia[167]=19.0, ja[167]=5.0, ar[167]=3.321;
ia[168]=19.0, ja[168]=6.0, ar[168]=1;
ia[169]=19.0, ja[169]=7.0, ar[169]=0;
ia[170]=19.0, ja[170]=8.0, ar[170]=0;
ia[171]=19.0, ja[171]=9.0, ar[171]=0;
ia[172]=20.0, ja[172]=1.0, ar[172]=1.1427;
ia[173]=20.0, ja[173]=2.0, ar[173]=1.0501;
ia[174]=20.0, ja[174]=3.0, ar[174]=3.96934;
ia[175]=20.0, ja[175]=4.0, ar[175]=0.58332;
ia[176]=20.0, ja[176]=5.0, ar[176]=3.321;
ia[177]=20.0, ja[177]=6.0, ar[177]=-1;
ia[178]=20.0, ja[178]=7.0, ar[178]=0;
ia[179]=20.0, ja[179]=8.0, ar[179]=0;
ia[180]=20.0, ja[180]=9.0, ar[180]=0;
ia[181]=21.0, ja[181]=1.0, ar[181]=0.2325;
ia[182]=21.0, ja[182]=2.0, ar[182]=0.6975;
ia[183]=21.0, ja[183]=3.0, ar[183]=0.63891;
ia[184]=21.0, ja[184]=4.0, ar[184]=0.0372;
ia[185]=21.0, ja[185]=5.0, ar[185]=0;
ia[186]=21.0, ja[186]=6.0, ar[186]=0;
ia[187]=21.0, ja[187]=7.0, ar[187]=1;
ia[188]=21.0, ja[188]=8.0, ar[188]=0;
ia[189]=21.0, ja[189]=9.0, ar[189]=0;
ia[190]=22.0, ja[190]=1.0, ar[190]=0.2325;
ia[191]=22.0, ja[191]=2.0, ar[191]=0.6975;
ia[192]=22.0, ja[192]=3.0, ar[192]=0.63891;
ia[193]=22.0, ja[193]=4.0, ar[193]=0.0372;
ia[194]=22.0, ja[194]=5.0, ar[194]=0;
ia[195]=22.0, ja[195]=6.0, ar[195]=0;
ia[196]=22.0, ja[196]=7.0, ar[196]=-1;
ia[197]=22.0, ja[197]=8.0, ar[197]=0;
ia[198]=22.0, ja[198]=9.0, ar[198]=0;
ia[199]=23.0, ja[199]=1.0, ar[199]=0.1722;
ia[200]=23.0, ja[200]=2.0, ar[200]=0.2009;
ia[201]=23.0, ja[201]=3.0, ar[201]=2.79169;
ia[202]=23.0, ja[202]=4.0, ar[202]=0.53095;
ia[203]=23.0, ja[203]=5.0, ar[203]=3.321;
ia[204]=23.0, ja[204]=6.0, ar[204]=0;
ia[205]=23.0, ja[205]=7.0, ar[205]=0;
ia[206]=23.0, ja[206]=8.0, ar[206]=1;
ia[207]=23.0, ja[207]=9.0, ar[207]=0;
ia[208]=24.0, ja[208]=1.0, ar[208]=0.1722;
ia[209]=24.0, ja[209]=2.0, ar[209]=0.2009;
ia[210]=24.0, ja[210]=3.0, ar[210]=2.79169;
ia[211]=24.0, ja[211]=4.0, ar[211]=0.53095;
ia[212]=24.0, ja[212]=5.0, ar[212]=3.321;
ia[213]=24.0, ja[213]=6.0, ar[213]=0;
ia[214]=24.0, ja[214]=7.0, ar[214]=0;
ia[215]=24.0, ja[215]=8.0, ar[215]=-1;
ia[216]=24.0, ja[216]=9.0, ar[216]=0;
ia[217]=25.0, ja[217]=1.0, ar[217]=0.738;
ia[218]=25.0, ja[218]=2.0, ar[218]=0.1517;
ia[219]=25.0, ja[219]=3.0, ar[219]=0.53874;
ia[220]=25.0, ja[220]=4.0, ar[220]=0.01517;
ia[221]=25.0, ja[221]=5.0, ar[221]=0;
ia[222]=25.0, ja[222]=6.0, ar[222]=0;
ia[223]=25.0, ja[223]=7.0, ar[223]=0;
ia[224]=25.0, ja[224]=8.0, ar[224]=0;
ia[225]=25.0, ja[225]=9.0, ar[225]=1;
ia[226]=26.0, ja[226]=1.0, ar[226]=0.738;
ia[227]=26.0, ja[227]=2.0, ar[227]=0.1517;
ia[228]=26.0, ja[228]=3.0, ar[228]=0.53874;
ia[229]=26.0, ja[229]=4.0, ar[229]=0.01517;
ia[230]=26.0, ja[230]=5.0, ar[230]=0;
ia[231]=26.0, ja[231]=6.0, ar[231]=0;
ia[232]=26.0, ja[232]=7.0, ar[232]=0;
ia[233]=26.0, ja[233]=8.0, ar[233]=0;
ia[234]=26.0, ja[234]=9.0, ar[234]=-1;
glp_load_matrix(lp, 234, ia, ja, ar);
glp_simplex(lp, NULL);
z = glp_get_obj_val(lp);
x1 = glp_get_col_prim(lp, 1);
x2 = glp_get_col_prim(lp, 2);
x3 = glp_get_col_prim(lp, 3);
x4 = glp_get_col_prim(lp, 4);
printf("\nz = %g; x1 = %g; x2 = %g; x3 = %g; x4 = %g\n",
z, x1, x2, x3, x4);
glp_delete_prob(lp);
return 0;
}
/* eof */
_______________________________________________ Help-glpk mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-glpk
