You are on page 1of 22

i 2

f 5
k 25
d 5
m 10
c 2
r 2
rPET 1
j 2
s 3

f1 f2 f3 f4 f5
k1 1 0 0 0 0
k2 1 0 0 0 0
k3 1 0 0 0 0
k4 1 0 0 0 0
k5 1 0 0 0 0
k6 0 1 0 0 0
k7 0 1 0 0 0
k8 0 1 0 0 0
k9 0 1 0 0 0
k10 0 1 0 0 0
k11 0 0 1 0 0
k12 0 0 1 0 0
k13 0 0 1 0 0
k14 0 0 1 0 0
k15 0 0 1 0 0
k16 0 0 0 1 0
k17 0 0 0 1 0
k18 0 0 0 1 0
k19 0 0 0 1 0
k20 0 0 0 1 0
k21 0 0 0 0 1
k22 0 0 0 0 1
k23 0 0 0 0 1
k24 0 0 0 0 1
k25 0 0 0 0 1

c1 c2 m c
m1 1 0 1 1
m2 1 0 2 1
m3 1 0 3 1
m4 1 0 4 1
m5 1 0 5 1
m6 0 1 6 2
m7 0 1 7 2
m8 0 1 8 2
m9 0 1 9 2
m10 0 1 10 2

P
i1 9,000
i2 10,000

COC COD
k1 250,000 250 m1 2,250,000
k2 450,000 450 m2 2,250,000
k3 500,000 500 m3 2,100,000
k4 200,000 200 m4 2,550,000
k5 250,000 250 m5 1,950,000
k6 600,000 600 m6 2,100,000
k7 600,000 600 m7 2,100,000
k8 500,000 500 m8 2,250,000
k9 700,000 700 m9 2,250,000
k10 600,000 600 m10 2,100,000
k11 350,000 350
k12 400,000 400
k13 400,000 400
k14 550,000 550
k15 700,000 700
k16 300,000 300
k17 550,000 550
k18 300,000 300
k19 600,000 600
k20 650,000 650
k21 500,000 500
k22 300,000 300
k23 250,000 250
k24 450,000 450
k25 750,000 750

CR k1 k2 k3 k4 k5 k6
i1 900 900 900 900 900 900
i2 1200 1200 1200 1200 1200 1200
CMB j1 j2 CMR r1
i1 1350 1350 i1 850
i2 1800 1800 i2 1160

CS j1 j2
i1 750 750
i2 900 900

CT
i1 120
i2 140

Lkm m1 m2 m3 m4 m5 m6
k1 1 1 1 1 1 0
k2 1 1 1 1 1 0
k3 1 1 1 1 1 0
k4 1 1 1 1 1 0
k5 1 1 1 1 1 0
k6 1 1 1 1 1 0
k7 1 1 1 1 1 0
k8 1 1 1 1 1 0
k9 1 1 1 1 1 0
k10 1 1 1 1 1 0
k11 1 1 1 1 1 0
k12 1 1 1 1 1 0
k13 1 1 1 1 1 0
k14 1 1 1 1 1 0
k15 1 1 1 1 1 0
k16 0 0 0 0 0 1
k17 0 0 0 0 0 1
k18 0 0 0 0 0 1
k19 0 0 0 0 0 1
k20 0 0 0 0 0 1
k21 0 0 0 0 0 1
k22 0 0 0 0 0 1
k23 0 0 0 0 0 1
k24 0 0 0 0 0 1
k25 0 0 0 0 0 1
Lmr r1 r2
m1 1 1
m2 1 1
m3 1 1
m4 1 1
m5 1 1
m6 1 1
m7 1 1
m8 1 1
m9 1 1
m10 1 1

Lrj r1 r2
j1 1 1
j2 1 1

Ljm m1 m2 m3 m4 m5 m6
j1 1 1 1 1 1 0
j2 0 0 0 0 0 1

Xfc c1 c2 Xrj j1
f1 1 0 r1 1
f2 1 0 r2 1
f3 1 0
f4 0 1
f5 0 1

EOC (kg CO2) EOD (kg CO2)


k1 152,400 m1 1,714,500
k2 304,800 m2 1,714,500
k3 342,900 m3 1,600,200
k4 114,300 m4 1,943,100
k5 152,400 m5 1,485,900
k6 419,100 m6 1,600,200
k7 419,100 m7 1,600,200
k8 342,900 m8 1,714,500
k9 495,300 m9 1,714,500
k10 419,100 m10 1,600,200
k11 228,600
k12 266,700
k13 266,700
k14 381,000
k15 495,300
k16 190,500
k17 381,000
k18 190,500
k19 419,100
k20 457,200
k21 342,900
k22 190,500
k23 152,400
k24 304,800
k25 533,400

EMB j1 j2 EMR r1
i1 0.33 0.33 i1 0.33
i2 1.3 1.3 i2 1.3

Demand i1 i2 DemandMC
c1 700000 300000 m1
c2 600000 500000 m2
m3
m4
m5
i1
m6
m7
m8
m9
m10
m1
m2
m3
m4
m5
i2
m6
m7
m8
m9
m10

U(s) 0.3 0.5 0.2


phi 1.2 1 0.8
alpha 0.9 0.85 0.75
omega 1.1 1 0.95
beta 0.6
gamma 0.85
delta 0.7
epsilon 0.9
lamda 0.7

RV i1 i2 15166.6667 8470.58824
f1 3033.4 1694.2 9100 7200
f2 3033.4 1694.2 13000 8000
f3 3033.4 1694.2 15167 8471
f4 3033.4 1694.2
f5 3033.4 1694.2

k1 k2 k3 k4 k5 k6
Amax 5000 5000 5000 5000 5000 5000
Amin 200 200 200 200 200 200

m1 m2 m3 m4 m5 m6
Gmax 15000 15000 15000 15000 15000 15000
Gmin 500 500 500 500 500 500

r1 r2
Rmax 15000 15000
Rmin 5000 5000

j1 j2
Jmax 20000 20000
Jmin 5000 5000
k f
1 1
2 1
3 1
4 1
5 1
6 2
7 2
8 2
9 2
10 2
11 3
12 3
13 3
14 3
15 3
16 4
17 4
18 4
19 4
20 4
21 5
22 5
23 5
24 5
25 5

f c
1 1
2 1
3 1
4 2
5 2
2250
2250
2100
2550
1950
2100
2100
2250
2250
2100

k7 k8 k9 k10 k11 k12 k13


900 900 900 900 900 900 900
1200 1200 1200 1200 1200 1200 1200
r2
850
1160

m7 m8 m9 m10
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
m7 m8 m9 m10
0 0 0 0
1 1 1 1

j2
1
1

D (kg CO2)
r2 ET
0.33 1.15 kg CO2/km
1.3

c1 c2
7000 6000
7000 6000
7000 6000
7000 6000
7000 6000
7000 6000
7000 6000
7000 6000
7000 6000
7000 6000
3000 5000
3000 5000
3000 5000
3000 5000
3000 5000
3000 5000
3000 5000
3000 5000
3000 5000
3000 5000
k7 k8 k9 k10 k11 k12 k13
5000 5000 5000 5000 5000 5000 5000
200 200 200 200 200 200 200

m7 m8 m9 m10
15000 15000 15000 15000
500 500 500 500
k14 k15 k16 k17 k18 k19 k20
900 900 900 900 900 900 900
1200 1200 1200 1200 1200 1200 1200
k14 k15 k16 k17 k18 k19 k20
5000 5000 5000 5000 5000 5000 5000
200 200 200 200 200 200 200
k21 k22 k23 k24 k25
900 900 900 900 900
1200 1200 1200 1200 1200
k21 k22 k23 k24 k25
5000 5000 5000 5000 5000
200 200 200 200 200
********************************************* /*****************************
* OPL 20.1.0.0 Model * OPL 20.1.0.0 Model
* Author: Tran Phan Nhat Khue * Author: Tran Phan Nhat Khue
* Creation Date: Mar 18, 2023 at 11:21:45 PM * Creation Date: Mar 18, 2023 at 11:
*********************************************/ *****************************
SheetConnection sheet("Thesis Data.
//Indices
i from SheetRead(sheet,"i");
int i =...; i d from SheetRead(sheet,"d");
int f =...; f f from SheetRead(sheet,"f");
int k =...; k k from SheetRead(sheet,"k");
int d =...; d c from SheetRead(sheet,"cz");
int m =...; m m from SheetRead(sheet,"m");
int c =...; c r from SheetRead(sheet,"rp");
int r =...; r rPET from SheetRead(sheet,"rPET");
int rPET = ...; r j from SheetRead(sheet,"j");
int j =...; j s from SheetRead(sheet,"s");
int s =...; s
CanLoCSC from SheetRead(sheet,"C
CanLoDGC from SheetRead(sheet,"C
range product = 1..i; CustZone from SheetRead(sheet,"Cu
range province = 1..f;
range CSC = 1..k; P from SheetRead(sheet,"Pi");
range disland = 1..d; COC from SheetRead(sheet,"COC");
range DGC = 1..m; COD from SheetRead(sheet,"COD");
range CZ = 1..c; CR from SheetRead(sheet,"CR");
range rplant = 1..r; CMB from SheetRead(sheet,"CMB")
range rPETplant = 1..rPET; CMR from SheetRead(sheet,"CMR")
range rAlplant = (rPET+1)..r; CS from SheetRead(sheet,"CS");
range bplant = 1..j; CT from SheetRead(sheet,"CT");
range scenario = 1..s;
Lkm from SheetRead(sheet,"Lkm");
tuple CanLoCSCs { Lmr from SheetRead(sheet,"Lmr");
int province; Lrj from SheetRead(sheet,"Lrj");
int CSC; Ljm from SheetRead(sheet,"Ljm");
}
{CanLoCSCs} CanLoCSC =...; Xfc from SheetRead(sheet,"Xfc");
//Xmr from SheetRead(sheet,"Xmr");
tuple CanLoDGCs { Xrj from SheetRead(sheet,"Xrj");
int DGC; //Xjm from SheetRead(sheet,"Xjm");
int CZ;
} EOC from SheetRead(sheet,"EOC");
{CanLoDGCs} CanLoDGC =...; EOD from SheetRead(sheet,"EOD");
EMB from SheetRead(sheet,"EMB")
tuple CustZones { EMR from SheetRead(sheet,"EMR")
int province; ET from SheetRead(sheet,"ET");
int CZ;
} FD from SheetRead(sheet,"Demand"
{CustZones} CustZone =...; //Dmc from SheetRead(sheet,"Deman

int BigM=10000000000; phi from SheetRead(sheet,"phi");


alpha from SheetRead(sheet,"alpha")
int i1=1; omega from SheetRead(sheet,"omega
int i2=2; beta from SheetRead(sheet,"beta");
gamma from SheetRead(sheet,"gamm
//Parameters delta from SheetRead(sheet,"delta");
epsilon from SheetRead(sheet,"epsilo
float P[product] = ...; lamda from SheetRead(sheet,"lamda"

int Zkf[CSC][province] = ...; RV from SheetRead(sheet,"RV");


int Zmc[DGC][CZ] = ...;
Zkf from SheetRead(sheet,"Zkf");
int Xfc[province][CZ] = ...; Zmc from SheetRead(sheet,"Zmc");
int Xrj[rplant][bplant] = ...;
Amax from SheetRead(sheet,"Amax"
float Amax[CSC] = ...; Amin from SheetRead(sheet,"Amin")
float Amin[CSC] = ...;
Gmax from SheetRead(sheet,"Gmax"
float Gmax[DGC] = ...; Gmin from SheetRead(sheet,"Gmin")
float Gmin[DGC] = ...;
Rmax from SheetRead(sheet,"Rmax"
float COC[CSC] = ...; Rmin from SheetRead(sheet,"Rmin")
float COD[DGC] = ...;
float CR[product][CSC] = ...; Jmax from SheetRead(sheet,"Jmax");
float CMR[product][rplant] = ...; Jmin from SheetRead(sheet,"Jmin");
float CMB[product][bplant] = ...;
float CS[product][bplant] = ...; U from SheetRead(sheet,"Us");
float CT[product] = ...;

float Rmax[rplant] = ...;


float Rmin[rplant] = ...;

float Jmax[bplant] = ...;


float Jmin[bplant] = ...;

float Lkm[CSC][DGC] = ...;


float Lmr[DGC][rplant] = ...;
float Lrj[rplant][bplant] = ...;
float Ljm [bplant][DGC] = ...;

/*int Xkd[CSC][disland] = ...;


int Xfc[province][CZ] = ...;
int Xmr[DGC][rplant] = ...;
int Xrj[rplant][bplant] = ...;
int Xjm [bplant][DGC] = ...;*/

float EOC[CSC] = ...;


float EOD[DGC] = ...;
float EMB[product][bplant] = ...;
float EMR[product][rplant] = ...;
float ET = ...;

float FD[product][CZ] = ...;


float RV[product][province] = ...;

/*range PP=1..i*j;
//float CTjm[PP][DGC]=...;
//float CTjm1[i in 1..i, j in 1..j, m in 1..m]=CTjm[(i-1)*j+j][m];

range PD=1..i*m;
//float CTmc[PD][CZ]=...;
//float CTmc1[i in 1..i, m in 1..m, c in 1..CZ]=CTmc[(i-1)*m+m][c];

float D[product][CZ] = ...;


float Dmc[PD][CZ]=...;
//float Dmc1[i in 1..i, m in 1..m,c in 1..c]=Dmc[(i-1)*m+m][c];*/

float phi[scenario] = ...;


float alpha[scenario] = ...;
float omega[scenario] = ...;
float U[scenario] = ...;

float beta = ...;


float gamma = ...;
float delta = ...;
float epsilon = ...;
float lamda = ...;

//Decision Variables

dvar boolean Ykf[CSC][province];


dvar boolean Ymc[CZ][DGC];
dvar boolean N[CSC];
dvar boolean H[DGC];

dvar boolean Xfk[province][CSC];


dvar boolean Xkd[CSC][disland];
dvar boolean Xkm[CSC][DGC];
dvar boolean Xmr[DGC][rplant];
//dvar boolean Xrj[rplant][bplant];
dvar boolean Xjm[bplant][DGC];
dvar boolean Xmc[DGC][CZ];

dvar int+ A[CSC];


dvar int+ G[DGC];

dvar int+ Qf[product][province];


dvar int+ Qfk[product][province][CSC];
dvar int+ Qkd[product][CSC][disland];
dvar int+ Qkm[product][CSC][DGC];
dvar int+ Qmr[product][DGC][rplant];
dvar int+ Qrj[product][rplant][bplant];
dvar int+ Qjm[product][bplant][DGC];
dvar int+ Qmc[product][DGC][CZ];

dvar int+ QMB[product][bplant];


dvar int+ QMR[product][rplant];

dvar int+ RQ[product][bplant];


dvar int+ VQ[product][bplant];
********************************************
OPL 20.1.0.0 Model
Author: Tran Phan Nhat Khue
Creation Date: Mar 18, 2023 at 11:21:45 PM
********************************************/
heetConnection sheet("Thesis Data.xlsx");

rom SheetRead(sheet,"i");
from SheetRead(sheet,"d");
rom SheetRead(sheet,"f");
from SheetRead(sheet,"k");
rom SheetRead(sheet,"cz");
from SheetRead(sheet,"m");
rom SheetRead(sheet,"rp");
ET from SheetRead(sheet,"rPET");
rom SheetRead(sheet,"j");
rom SheetRead(sheet,"s");

anLoCSC from SheetRead(sheet,"CanLoCSC");


anLoDGC from SheetRead(sheet,"CanLoDGC");
ustZone from SheetRead(sheet,"CustZone");

from SheetRead(sheet,"Pi");
OC from SheetRead(sheet,"COC");
OD from SheetRead(sheet,"COD");
R from SheetRead(sheet,"CR");
MB from SheetRead(sheet,"CMB");
MR from SheetRead(sheet,"CMR");
S from SheetRead(sheet,"CS");
T from SheetRead(sheet,"CT");

km from SheetRead(sheet,"Lkm");
mr from SheetRead(sheet,"Lmr");
j from SheetRead(sheet,"Lrj");
m from SheetRead(sheet,"Ljm");

fc from SheetRead(sheet,"Xfc");
Xmr from SheetRead(sheet,"Xmr");
rj from SheetRead(sheet,"Xrj");
Xjm from SheetRead(sheet,"Xjm");

OC from SheetRead(sheet,"EOC");
OD from SheetRead(sheet,"EOD");
MB from SheetRead(sheet,"EMB");
MR from SheetRead(sheet,"EMR");
T from SheetRead(sheet,"ET");

D from SheetRead(sheet,"Demand");
Dmc from SheetRead(sheet,"DemandMC");

i from SheetRead(sheet,"phi");
pha from SheetRead(sheet,"alpha");
mega from SheetRead(sheet,"omega");
ta from SheetRead(sheet,"beta");
mma from SheetRead(sheet,"gamma");
lta from SheetRead(sheet,"delta");
silon from SheetRead(sheet,"epsilon");
mda from SheetRead(sheet,"lamda");

V from SheetRead(sheet,"RV");

kf from SheetRead(sheet,"Zkf");
mc from SheetRead(sheet,"Zmc");

max from SheetRead(sheet,"Amax");


min from SheetRead(sheet,"Amin");

max from SheetRead(sheet,"Gmax");


min from SheetRead(sheet,"Gmin");

max from SheetRead(sheet,"Rmax");


min from SheetRead(sheet,"Rmin");

max from SheetRead(sheet,"Jmax");


min from SheetRead(sheet,"Jmin");

from SheetRead(sheet,"Us");

You might also like