// Function to read the problem from a file
void readProblem(IloEnv env,
istream &is,
IloInt &nbClients,
IloInt &nbWhouses,
IloIntArray &capacities,
IloIntArray &demands,
IloIntArray &buildCosts,
IloArray<IloIntArray> &serveCosts) {
is >> nbWhouses >> nbClients;
capacities = IloIntArray(env, nbWhouses);
demands = IloIntArray(env, nbClients);
buildCosts = IloIntArray(env, nbWhouses);
serveCosts = IloArray<IloIntArray>(env, nbClients);
env.out() << nbClients << " clients, " << nbWhouses << " warehouses" << endl;
IloInt i;
for (i = 0; i < nbWhouses; i++) {
is >> capacities[i];
is >> buildCosts[i];
}
env.out() << "Capacities: " << capacities << endl;
env.out() << "Build costs: " << buildCosts << endl;
for (i = 0; i < nbClients; i++) {
serveCosts[i] = IloIntArray(env, nbWhouses);
is >> demands[i];
for (IloInt j = 0; j < nbWhouses; j++) is >> serveCosts[i][j];
}
env.out() << "Demands: " << demands << endl;
}
|