src/work/athos/lp/lp_test.cc
author alpar
Fri, 25 Mar 2005 16:19:03 +0000
changeset 1263 a490938ad0aa
parent 1259 11a09f1319b3
child 1264 92ba3e62825d
permissions -rw-r--r--
- LpGlpk added to the makefile
- missing const_cast<>() added
- prop for two new functions (solve() and solution())
     1 #include"lp_solver_skeleton.h"
     2 #include"lp_glpk.h"
     3 
     4 using namespace lemon;
     5 
     6 void lpTest(LpSolverBase & lp)
     7 {
     8   typedef LpSolverBase LP;
     9 
    10   std::vector<LP::Col> x;
    11   for(int i=0;i<10;i++) x.push_back(lp.addCol());
    12 
    13   std::vector<LP::Col> y(10);
    14   lp.addColSet(y);
    15 
    16   std::map<int,LP::Col> z;
    17   
    18   z.insert(std::make_pair(12,INVALID));
    19   z.insert(std::make_pair(2,INVALID));
    20   z.insert(std::make_pair(7,INVALID));
    21   z.insert(std::make_pair(5,INVALID));
    22   
    23   lp.addColSet(z);
    24 
    25 
    26   LP::Expr e;
    27   e[x[3]]=2;
    28   e[x[3]]=4;
    29   e[x[3]]=1;
    30   e.constComp()=12;
    31 
    32   LP::Col p1,p2,p3,p4,p5;
    33   
    34   lp.addRow(LP::INF,e,23);
    35   lp.addRow(LP::INF,3.0*(p1+p2)-p3,23);
    36   lp.addRow(LP::INF,3.0*(x[1]+x[2]/2)-x[3],23);
    37   lp.addRow(LP::INF,3.0*(p1+p2*2-5*p3+12-p4/3)+2*p4-4,23);
    38   lp.addRow(LP::INF,3.0*(x[1]+x[2]*2-5*x[3]+12-x[4]/3)+2*x[4]-4,23);
    39 }
    40 
    41 
    42 int main() 
    43 {
    44   LpSolverSkeleton lp_skel;
    45   LpGlpk lp_glpk;
    46 
    47   lpTest(lp_skel);
    48   lpTest(lp_glpk);
    49 }