Originally posted by: Rym
Hi
My model sometimes makes a beug i.e, it can't solve the model.
dvar boolean lumda[V][P];
dvar boolean phy[P];
dvar float R[P][D] in 0..1;
dvar float ro[P] in 0..1;
dexpr int OP = sum( j in P) phy[j];
minimize OP;
//constraints
subject to{
forall(j in P)
{cv:
R[j][1]==(cpuj[j]-(sum(i in V) lumda[i][j]*cpui[i]))/cpuj[j];
R[j][2]==(ramj[j]-(sum(i in V) lumda[i][j]*rami[i]))/ramj[j];
R[j][3]==(diskj[j]-(sum(i in V) lumda[i][j]*diski[i]))/diskj[j];
}
//une machine virtuelle est hébergée par au plus une seule pm
limit:
forall( i in V)
sum( j in P ) lumda[i][j] <= 1;
//la quantité de cpu consommée par les vms ne depasse la la quantité de cpu de la pm j
cpur:
forall( j in P)
sum( i in V) cpui[i]*lumda[i][j] <= cpuj[j];
//la quantité de ram consommée par les vms ne depasse la la quantité de ram de la pm j
ramr:
forall( j in P)
sum( i in V) rami[i]*lumda[i][j] <= ramj[j];
//la quantité de disk consommée par les vms ne depasse la la quantité de disk de la pm
diskr:
forall( j in P)
sum( i in V) diski[i]*lumda[i][j] <= diskj[j];
//quand est ce que pm prends un
phyone:
forall ( i in V, j in P)
lumda[i][j]<= phy[j] ;
//quand est ce que pm prends zero
phynull:
forall (j in P)
phy[j]<= sum (i in V) lumda[i][j];
forall(j in P)
forall(j in P,k in D)
{ cps: ro[j]<=R[j][k];
}
glob:
fo <= sum (i in V, j in P) lumda[i][j];
rwco:
sum(j in P,k in D)(R[j][k]-ro[j])<=Rwa;
}
#DecisionOptimization#MathematicalProgramming-General