Originally posted by: SystemAdmin
Hi !
"
//Paramètres
{string} supplier=...;
{string} scenario=...;
{string} location=...;
{string} component=...;
float necessarycomponents
component=...;
float fixedcost
location=...;
float manufactcost
location=...;
float co2supplier
component,scenario,supplier,location=...;
float co2customer
scenario,location=...;
float purchasecost
component,scenario,supplier,location=...;
float distributioncost
location,scenario=...;
float unitprice=...;
int basedemand=...;
float alpha=...;
float psy=...;
float omegamax=...;
//
//Variables de décision
dvar int open
location in 0..1; //yj
dvar int appro
component,scenario,supplier,location in 0..1; //ypmsj
dvar int distribution
scenario,location in 0..1; //ymj
dvar float+ componentquantity
component,scenario,supplier,location; //vpmsj
dvar int+ productquantity
location; //xj
dvar int+ distributedquantity
scenario,location; //wmj
dvar float beta;
dvar float d;
//
//Fonction objectif
maximize
sum(j in location) productquantity[j]*unitprice
- sum(s in supplier) sum(j in location) sum (p in component) sum(m in scenario) purchasecost
p,m,s,j*componentquantity
p,m,s,j - sum(j in location) fixedcost[j]*open[j]
- sum(j in location) manufactcost[j]*productquantity[j]
- sum(j in location) sum(m in scenario) distributioncost
j,m ;
//Contraintes
subject to {
beta==(omegamax-sum(m in scenario)sum(p in component) sum(s in supplier) sum(j in location) necessarycomponents[p]*co2supplier
p,m,s,j*appro
p,m,s,j-sum(j in location)sum(m in scenario)co2customer
m,j*distribution
m,j)/omegamax;
d == basedemand+alpha*beta;
sum(j in location) sum(m in scenario) distributedquantity
j,m<=d;//3
forall(j in location)
sum(m in scenario) distributedquantity
m,j==productquantity[j];//4
forall(p in component,j in location)
sum(m in scenario) (sum(s in supplier) componentquantity
p,m,s,j)==productquantity[j]*necessarycomponents[p];//5
forall (p in component,s in supplier,j in location)
sum(m in scenario) appro
p,m,s,j<=1;//6
forall(j in location)
sum(m in scenario) distribution
m,j<=1;//7
sum(j in location) open[j]<=1;//8
forall(p in component,j in location)
sum(s in supplier)sum(m in scenario) appro
p,m,s,j<=1;//9
forall(j in location)
{
(1/psy)*open[j]<=productquantity[j];
productquantity[j]<=psy*open[j];
}//10
forall(m in scenario,j in location)
{
(1/psy)*distribution
m,j<=distributedquantity
m,j;
distributedquantity
m,j<=psy*distribution
m,j;
}//11
forall(p in component,m in scenario,s in supplier, j in location)
{
(1/psy)*appro
p,m,s,j<=componentquantity
p,m,s,j;
componentquantity
p,m,s,j<=psy*appro
p,m,s,j;
} //12
d>=0;
beta>=0;//13-14
}
"
When I try to execute this code I have a series of errors starting with
CPLEX(default) cannot extract expression: sum(m in scenario) distributedquantity[j][m].
Can you help me with this?
I found similar posts about this problem and couldn't apply a working solution!
Thank you for your help.
#CPLEXOptimizers#DecisionOptimization