[Osi] Problem using FlopC++ with GLPK

Renato Bruni bruni at diei.unipg.it
Sat Sep 19 12:03:54 EDT 2009


Yes, I tried cbc and it works good.
Does anybody know if there are incompatibilities between the versions
of  FlopC++ 1.0.6 and GLPK 4.38? In this case, which version of
GLPK should be used?

Thanks,
Renato

----- Original Message ----- 
From: "Ted Ralphs" <ted at lehigh.edu>
To: "Renato Bruni" <renato.bruni at diei.unipg.it>
Cc: <osi at list.coin-or.org>
Sent: Saturday, September 19, 2009 4:06 PM
Subject: Re: [Osi] Problem using FlopC++ with GLPK


Did you try it with another solver to see if the result is the same?
This would tell you whether the problems is with FlopC++ or
Glpk/OsiGlpk.

Cheers,

Ted

On Thu, Sep 17, 2009 at 12:33 PM, Renato Bruni
<renato.bruni at diei.unipg.it> wrote:
> Hello everybody,
>
> we have some strange behaviour using FlopC++ 1.0.6 (having inside Osi
> 0.100.0) and GLPK 4.38.
>
> If we run the following example, with 5 variables and 2 constraints, we
> obtain solution x=(0, 2, 0, 0, 0) and objective= 2
> but the solution should be x=(4, 0, 0, 0, 0) and objective= 4
>
> #include "flopc.hpp"
> using namespace flopc;
> #include <OsiGlpkSolverInterface.hpp>
>
> int main() {
> MP_model modello(new OsiGlpkSolverInterface);
> MP_set N(5);
> MP_variable x(N);
> x.integer();
>
> MP_constraint vinc1;
> MP_constraint vinc2;
> vinc1 = 2*x(0) + 4*x(1) + 6*x(4) == 8;
> vinc2 = x(0) + x(4) <= 100;
> modello.add(vinc1);
> modello.add(vinc2);
>
> modello.maximize( x(0) + x(1) + x(4) );
> x.display("Optimal solution per x:");
> }
>
> If we run this other example, that is the same model with 5 variables and
> 2 constraints, we obtain solution x=(4, 0, 0, 0, 96) and objective= 4
> but the solution should be, like before, x=(4, 0, 0, 0, 0) and objective=
> 4
>
> #include "flopc.hpp"
> using namespace flopc;
> #include <OsiGlpkSolverInterface.hpp>
>
> int main() {
> MP_model modello(new OsiGlpkSolverInterface);
> MP_set N(5);
> MP_set S(5);
> MP_subset<1> Sub(S);
> Sub.insert(0);
> Sub.insert(1);
> Sub.insert(4);
>
> MP_variable x(N);
> x.integer();
>
> MP_data COEFF(Sub);
> int i;
> for(i=0; i<Sub.size();i++)
> COEFF(i)= 2*(i+1);//vector COEFF={2,4,6}
> COEFF.display("COEFF ");
>
> MP_constraint vinc1;
> MP_constraint vinc2;
> vinc1 = sum(Sub, COEFF(Sub)*x(Sub))==8;//2x0+4x1+6x4==8
> vinc2 = x(0) + x(4) <= 100;
> modello.add(vinc1);
> modello.add(vinc2);
>
> modello.maximize( sum(Sub, x(Sub)) );//max(x(0)+x(1)+x(4))
> x.display("Optimal solution per x:");
> }
>
> Which can be the reason(s) of this incorrect behaviour?
> Are there incompatibilities between the versions of FlopC++ 1.0.6 and GLPK
> 4.38? In this case, which version of GLPK should be used?
>
> Thanks for your help.
> Best regards,
> Renato Bruni
>
>
> _______________________________________________
> Osi mailing list
> Osi at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/osi
>



-- 
Dr. Ted Ralphs
Associate Professor, Lehigh University
(610) 628-1280
ted 'at' lehigh 'dot' edu
coral.ie.lehigh.edu/~ted


_______________________________________________
Osi mailing list
Osi at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/osi




More information about the Osi mailing list