Changeset 1318:88edb143a87a in lemon-0.x for src/work
- Timestamp:
- 04/07/05 14:54:35 (20 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1757
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/work/athos/lp/lp_sample.cc
r1315 r1318 1 //#include <stdio.h>2 //#include <stdlib.h>3 1 #include <iostream> 4 2 #include <lemon/lp_glpk.h> … … 7 5 int main() 8 6 { 7 //The following example is taken from the documentation of the GLPK library. 8 //See it in the GLPK reference manual and among the GLPK sample files (sample.c) 9 9 LpGlpk lp; 10 10 typedef LpGlpk::Row Row; 11 11 typedef LpGlpk::Col Col; 12 //std::cout << "Hello" << std::endl; 12 13 lp.max(); 14 15 Col x1 = lp.addCol(); 16 Col x2 = lp.addCol(); 17 Col x3 = lp.addCol(); 18 19 //One solution 20 // Row p = lp.addRow(); 21 // Row q = lp.addRow(); 22 // Row r = lp.addRow(); 23 // lp.setRow(p,x1+x2+x3 <=100); 24 // lp.setRow(q,10*x1+4*x2+5*x3<=600); 25 // lp.setRow(r,2*x1+2*x2+6*x3<=300); 26 27 //A more elegant one 28 //Constraints 29 lp.addRow(x1+x2+x3 <=100); 30 lp.addRow(10*x1+4*x2+5*x3<=600); 31 lp.addRow(2*x1+2*x2+6*x3<=300); 32 //Nonnegativity of the variables 33 lp.colLowerBound(x1, 0); 34 lp.colLowerBound(x2, 0); 35 lp.colLowerBound(x3, 0); 36 //Objective function 37 lp.setObj(10*x1+6*x2+4*x3); 38 39 lp.solve(); 40 41 printf("\nZ = %g; x1 = %g; x2 = %g; x3 = %g\n", 42 lp.primalValue(), 43 lp.primal(x1), lp.primal(x2), lp.primal(x3)); 44 45 //Here comes the same problem written in C using GLPK API routines 13 46 14 47 // LPX *lp; … … 18 51 // s2: lpx_set_prob_name(lp, "sample"); 19 52 // s3: lpx_set_obj_dir(lp, LPX_MAX); 20 lp.max();21 53 // s4: lpx_add_rows(lp, 3); 22 54 // s5: lpx_set_row_name(lp, 1, "p"); 23 55 // s6: lpx_set_row_bnds(lp, 1, LPX_UP, 0.0, 100.0); 24 25 // Row p = lp.addRow();26 27 56 // s7: lpx_set_row_name(lp, 2, "q"); 28 57 // s8: lpx_set_row_bnds(lp, 2, LPX_UP, 0.0, 600.0); 29 30 // Row q = lp.addRow();31 32 58 // s9: lpx_set_row_name(lp, 3, "r"); 33 59 // s10: lpx_set_row_bnds(lp, 3, LPX_UP, 0.0, 300.0); 34 35 // Row r = lp.addRow();36 37 60 // s11: lpx_add_cols(lp, 3); 38 61 // s12: lpx_set_col_name(lp, 1, "x1"); 39 62 // s13: lpx_set_col_bnds(lp, 1, LPX_LO, 0.0, 0.0); 40 41 // Col x1 = lp.addCol();42 43 63 // s14: lpx_set_obj_coef(lp, 1, 10.0); 44 64 // s15: lpx_set_col_name(lp, 2, "x2"); … … 66 86 // s37: lpx_delete_prob(lp); 67 87 // return 0; 88 68 89 return 0; 69 90 }
Note: See TracChangeset
for help on using the changeset viewer.