|
Á¦ ¸ñ |
¼Ò½º ½ÇÇà ¿¹ |
|
ÀÛ¼ºÀÚ |
À̺¸Çå |
ÀÛ¼ºÀÏ |
2012-05-22 |
Á¶È¸¼ö |
1353 ȸ |
|
÷ºÎÆÄÀÏ |
÷ºÎµÈ ÆÄÀϾøÀ½.
|
|
#define TN 3 ///# of vehicle types... #define iteration4 100 #include
ILOSTLBEGIN //typedef IloArray IloNumVarArray2;
int main ()//ext_knapsack( double a[], double cc[], int s[], int xx[], int n, double capa) { IloEnv env;
IloNumArray a(env, 3, 0.0, 1.0, 2.0);
IloNumArray cc(env, 3, 0.0, 1.0, 2.0); IloIntArray s(env, 3, 0, 1, 2); IloIntArray xx(env, 3, 0, 1, 2); IloInt n = 3; double capa = 10;
int i; double minval = 0.0; try { IloNumVarArray x(env, n, 0, 1, ILOINT);
IloModel model(env); IloExpr v(env); for(i = 0 ; i < n ; i++) { model.add(x[i] >= 0); }
for(i = 0 ; i < n ; i++) { v+= a[s[i]] * x[i]; } model.add(v <= capa); ////////1st constraint add //v.end(); IloExpr obj(env); for(i = 0 ; i < n ; i++) obj += cc[s[i]] * x[i]; model.add(IloMinimize(env, obj)); //obj.end(); IloCplex cplex(model);
cplex.exportModel("steel.lp"); // IloCplex cplex(env); // cplex.extract(model); cplex.solve();
//IloNum tolerance = cplex.getParam(IloCplex::EpInt); for(i = 0 ; i < n ; i++) { if( cplex.getValue(x[i]) >= 0.9) { minval = minval + cc[s[i]]; xx[s[i]] = 1; } else xx[s[i]] = 0; cout << xx << endl; } cout << "xx °á°ú :" ; for(i = 0 ; i < n ; i++) { cout << xx[i] << ", " ; } cout << endl;
}///end try catch(IloException& e) { cout << e << endl;} env.end(); return 0 ;//((int)minval); } |
|
|
|