#include #include "flopc.hpp" #include #include #include using namespace std; using namespace flopc; #include /*#define cbc //#define glpk #ifdef cbc #include #define OsiXSolverInterface OsiCbcSolverInterface #endif #ifdef glpk #include #define OsiXSolverInterface OsiGlpkSolverInterface #endif /*#ifdef sym #include #endif #ifdef cpx #include #endif */ int main() { MP_model &modello = MP_model::getDefaultModel(); OsiCbcSolverInterface* pSolver; pSolver==new OsiCbcSolverInterface; modello.Solver=pSolver; //modello.Solver=new OsiCbcSolverInterface; pSolver->getModelPtr()->setLogLevel(0); modello.silent(); //Short //modello.verbose(); //Extended int nbin = 200;//num var bin int nreal = 50;//num var reali int nsetcov = 175;//jnum vincoli di setcovering int nvarinsetcov = 5;//num var nei vincoli di set covering int nlin = 30;//num vincoli lineari int M = 1000;//coefficiente di x per rendere banalmente soddisfatti i vincoli lineari MP_set NBIN(nbin); MP_set NRE(nreal); MP_variable x(NBIN);//dichiaro variabili intere x.integer(); MP_variable z(NRE);//dichiaro variabili reali vector ArrayBound; int j; for(j=0; j= 0 senza necessità di aggiungere il bound, vale anche per le var reali) { ArrayBound.push_back(new MP_constraint); *ArrayBound[j+nbin]= x(j) >=-1; }*/ int rdx; vector ArrayConstraint; MP_expression lista; int i; for(j=0; j=1; cout< ArrayConstraintLin; MP_expression listalin; int rdz1,rdz2,rdzn; for(j=0; j="<= rdzn; modello.add(*ArrayConstraintLin[j]); } MP_expression Fob; Fob = x(0); for(j=1; jwriteMps("test");//scrive il modello sul file mps cout<<"Optimal solution per x:"<