You are on page 1of 2

Modèle OPL

/*********************************************
* OPL 22.1.1.0 Model
* Author: SAIF
* Creation Date: 10 jan. 2024 at 14:31:31
*********************************************/

// Indices
tuple Pair{
int i;
int j;
}

int supp_inst=...; range SI=1..supp_inst;


int dem_inst=...; range DI=1..dem_inst;
int L=...; range N=1..L;
int C=...; range K=1..C;
float B=...;
{Pair} A[l in N]=...;
{int} Aplus[l in N]=...;
{int} Amoins[l in N]=...;
// Parameters
int fixcost[N][SI]=...;
int capacity[N][K][SI]=...;
int demand[DI]=...;
int CAf[N][SI][DI]=...;

// Decision Variables
dvar float+ x[N][SI][DI];
dvar boolean y[N][K][SI];

dexpr float Totalcost=sum(l in N)(sum(<i,j> in A[l])x[l][i][j]*CAf[l][i][j]);


minimize Totalcost;
subject to{
forall(i in Amoins[1])
sum(j in DI)x[1][i][j]==demand[i];

forall(l in N )
forall(i in Amoins[l])
sum(<i,j> in A[l])x[l][i][j]<=sum(k in K)capacity[l][k][i]*y[l][k][i];

forall(l in N)
forall(j in Aplus[l+1])

1
sum(<i,j> in A[l+1])x[l+1][i][j]>=sum(m in Aplus[l])x[l][m][j];

forall(l in N)
forall(j in SI)
sum(k in K)y[l][k][j]<=1;

forall(l in N)
sum(j in SI)(sum(k in K)fixcost[l][j]*y[l][k][j])<=B ;
}

You might also like