Hi;
let us go on with https://www.ibm.com/developerworks/community/forums/html/topic?id=9379c9ae-e185-40b4-b31b-c5090d64bf6f&ps=25
and let us try to be even more generic.
The challenge is again to model https://www.linkedin.com/pulse/what-optimization-how-can-help-you-do-more-less-zoo-buses-fleischer/
Let us replace arrays by tuple sets so on top of cost we could add other properties easily.
.mod
int nbKids=...;
// a tuple is like a struct in C, a class in C++ or a record in Pascal
tuple bus
{
key int nbSeats;
float cost;
}
// This is a tuple set
{bus} buses=...;
// asserts help make sure data is fine
assert forall(b in buses) b.nbSeats>0;
assert forall(b in buses) b.cost>0;
// decision variable array
dvar int+ nbBus[buses];
// objective
minimize
sum(b in buses) b.cost*nbBus[b];
// constraints
subject to
{
sum(b in buses) b.nbSeats*nbBus[b]>=nbKids;
}
.dat
nbKids=300;
buses={<40,500>,<30,400>};
which gives
nbBus = [6
2];
regards
PS: Many other very simple examples at https://www.linkedin.com/pulse/making-decision-optimization-simple-alex-fleischer/
#DecisionOptimization#OPLusingCPLEXOptimizer