环境
Virtual Studio 2017 + cplex 12.8.0.0
解决问题
初次体验,解决一下最简单的MIP问题
这个数量级用dp也是很快的,哈哈 用着玩玩
#include <ilcplex/ilocplex.h>
ILOSTLBEGIN
int main(int argc, char** argv)
{
int val[1001], vol[1001],N,V;
cin >> N >> V;
for (int i = 0; i < N; i++)
cin >> vol[i] >> val[i];
IloEnv env;
try {
IloModel model(env);
IloNumVarArray x(env,N,0,1,ILOINT);
IloExpr obj(env);
for (int i = 0; i < N; i++) obj += x[i] * val[i];
model.add(IloMaximize(env,obj));
IloExpr lim(env);
for (int i = 0; i < N; i++) lim += x[i] * vol[i];
model.add(lim<=V);
IloCplex cplex(model);
if (!cplex.solve()) {
env.error() << "Failed to optimize MIP." << endl;
throw(-1);
}
IloNumArray vals(env);
env.out() << "Solution status = " << cplex.getStatus() << endl;
env.out() << "Solution value = " << cplex.getObjValue() << endl;
cplex.getValues(vals, x);
env.out() << "x = " << vals << endl;
}
catch (IloException& e) {
cerr << "Concert exception caught: " << e << endl;
}
catch (...) {
cerr << "Unknown exception caught" << endl;
}
env.end();
return 0;
}