test/mip_test.cc
changeset 2144 cd8897f67c26
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/test/mip_test.cc	Mon Jul 17 09:00:21 2006 +0000
     1.3 @@ -0,0 +1,50 @@
     1.4 +#include <lemon/lp.h>
     1.5 +//#include <lemon/ilp_glpk.h>
     1.6 +
     1.7 +using namespace lemon;
     1.8 +
     1.9 +int main(){
    1.10 +
    1.11 +  //MipGlpk ilp;
    1.12 +
    1.13 +   Mip ilp;
    1.14 +
    1.15 +    
    1.16 +  typedef Mip::Row Row;
    1.17 +  typedef Mip::Col Col;
    1.18 +  
    1.19 +  ilp.max();
    1.20 +  
    1.21 +  Col x1 = ilp.addCol();
    1.22 +  Col x2 = ilp.addCol();
    1.23 +  Col x3 = ilp.addCol();
    1.24 +  
    1.25 +  ilp.integer(x1,true);
    1.26 +  ilp.integer(x2,true);
    1.27 +  ilp.integer(x3,true);
    1.28 +  
    1.29 +  ilp.addRow(x1+x2+x3 <=100);  
    1.30 +  ilp.addRow(10*x1+4*x2+5*x3<=600);  
    1.31 +  ilp.addRow(2*x1+2*x2+6*x3<=300); 
    1.32 +  
    1.33 +  ilp.colLowerBound(x1, 0);
    1.34 +  ilp.colLowerBound(x2, 0);
    1.35 +  ilp.colLowerBound(x3, 0);
    1.36 +  //Objective function
    1.37 +  ilp.setObj(10*x1+6*x2+4*x3);
    1.38 +  
    1.39 +  //Call the routine of the underlying LP solver
    1.40 +  ilp.solve();
    1.41 +  
    1.42 +  //Print results
    1.43 +  if (ilp.primalStatus()==LpSolverBase::OPTIMAL){
    1.44 +    std::cout<<"Optimal solution found!"<<std::endl;
    1.45 +    printf("optimum value = %g; x1 = %g; x2 = %g; x3 = %g\n", 
    1.46 +           ilp.primalValue(), 
    1.47 +           ilp.primal(x1), ilp.primal(x2), ilp.primal(x3));
    1.48 +  }
    1.49 +  else{
    1.50 +    std::cout<<"Optimal solution not found!"<<std::endl;
    1.51 +  }
    1.52 +
    1.53 +}