Originally posted by: flgkd
Hi, first thank you for your attention.
The .mod file is:
int n=...;
float D[1..n][1..n]=...;
int H[1..n][1..n]=...;
float Delay_trans=...;
float Bandwidth_trans=...;
{string} SFC1={"Ingress","Firewall","PGW","Proxy","Egress"};
float SFC1_DR=...;
int m=card(SFC1);
dvar boolean sfc1[1..m][1..n];
minimize
sum(i in 1..m-1,j in 1..n,k in 1..n)sfc1[i][j]*sfc1[i+1][k]*D[j][k]*SFC1_DR*Delay_trans
+sum(i in 1..m-1,j in 1..n,k in 1..n)sfc1[i][j]*sfc1[i+1][k]*H[j][k]*SFC1_DR*Bandwidth_trans;
subject to{
sfc1[1][1]==1;
sfc1[m][n]==1;
forall(i in 2..n)
sfc1[1][i]==0;
forall(i in 1..n-1)
sfc1[m][i]==0;
forall(i in 2..m-1)
sfc1[i][1]==0;
forall(i in 2..m-1)
sfc1[i][n]==0;
forall(i in 2..m-1)
sum(j in 2..n)sfc1[i][j]==1;
forall(i in 2..n-1)
sum(j in 2..m-1 )sfc1[j][i]<=1;
}
The .dat file is:
n=6;
D=[
[0 20 15 50 45 55],
[20 0 10 30 25 35],
[15 10 0 40 30 40],
[50 30 40 0 20 15],
[45 25 30 20 0 10],
[55 35 40 15 10 0],
];
H=[
[0 1 1 2 2 3],
[1 0 1 1 1 2],
[1 1 0 2 1 2],
[2 1 2 0 1 1],
[2 1 1 1 0 1],
[3 2 2 1 1 0],
];
Delay_trans=1.0;
Bandwidth_trans=1.0;
SFC1_DR=1.0;
My CPLEX is the trial version of IBM ILOG CPLEX Optimization Studio V12.6.3 .
#DecisionOptimization#OPLusingCPLEXOptimizer