Once the data has been read, the IloCplex
modeler/optimizer is created.
IloCplex cplex = new IloCplex(); IloNumVar[] Buy = new IloNumVar[nFoods]; if ( byColumn ) buildModelByColumn(cplex, data, Buy, varType); else buildModelByRow (cplex, data, Buy, varType); |
IloObjective cost = model.addMinimize(); IloRange[] constraint = new IloRange[nNutrs]; for (int i = 0; i < nNutrs; i++) { constraint[i] = model.addRange(data.nutrMin[i], data.nutrMax[i]); } |
IloColumn col = model.column(cost, data.foodCost[j]); |
for (int i = 0; i < nNutrs; i++) { col = col.and(model.column(constraint[i], data.nutrPerFood[i][j])); } |
Buy[j] = model.numVar(col, data.foodMin[j], data.foodMax[j], type); |