Originally posted by: Rym
Hi
In model,
the objective function need a lot of computation and I can't find a way to include that in my model
dvar boolean lumda[V][P];
dexpr int tabvmperpm[l in indexes]=sum( i in V:vms[i]==l.nvm) lumda[i][l.npm];
dexpr int CPUR[j in P]= ((tabvmperpm[VS[j]]*3)+(tabvmperpm[VM[j]]*4)+(tabvmperpm[VL[j]]*5)+(tabvmperpm[VXL[j]]*6));
dexpr float CPURS[j in P]=CPUR[j]/cput[j];
dexpr float powercpu[j in P];
dexpr float OP = sum( j in P) powercpu[j];
minimize OP;
To compute the powercpu[j], we should comoute the following code which i can't include it in the model
for (i=1;i<=p;i++)
{
if( CPUR[i]==0)
{
powercpu[i]=0;
}
//writeln("cpui=",cput[i]);
else
{ CPUR[i]=CPUR[i]/cput[i];
//writeln("execute=",CPUR[i]);
if(cput[i]==32)
{
if(0<CPUR[i]<=0.1)
{
OUTC=715.2;
writeln("OUTC=",OUTC);
}
else if(0.1<CPUR[i]<=0.2)
{
OUTC=740.8;
writeln("OUTC=",OUTC);
}
else
if(0.2<CPUR[i]<=0.3)
{
OUTC=768;
writeln("OUTC=",OUTC);
}
else
if(0.3<CPUR[i]<=0.4)
{
OUTC=796;
writeln("OUTC=",OUTC);
}
else
if(0.4<CPUR[i]<=0.5)
{
OUTC=816;
writeln("OUTC=",OUTC);
}
else
if(0.5<CPUR[i]<=0.6)
{
OUTC=848;
writeln("OUTC=",OUTC);
}
else
if(0.6<CPUR[i]<=0.7)
{
OUTC=864;
writeln("OUTC=",OUTC);
}
else
if(0.7<CPUR[i]<=0.8)
{
OUTC=896;
writeln("OUTC=",OUTC);
}
else
if(0.8<CPUR[i]<=0.9)
{
OUTC=912;
writeln("OUTC=",OUTC);
}
else
if(0.9<CPUR[i]<=1)
{
OUTC=936;
writeln("OUTC=",OUTC);
}
}
else
if(cput[i]==64)
{
if(0<CPUR[i]<=0.1)
{
OUTC=1430.4;
writeln("OUTC=",OUTC);
}
else if(0.1<CPUR[i]<=0.2)
{
OUTC=1481.6;
writeln("OUTC=",OUTC);
}
else
if(0.2<CPUR[i]<=0.3)
{
OUTC=1536;
writeln("OUTC=",OUTC);
}
else
if(0.3<CPUR[i]<=0.4)
{
OUTC=1592;
writeln("OUTC=",OUTC);
}
else
if(0.4<CPUR[i]<=0.5)
{
OUTC=1632;
writeln("OUTC=",OUTC);
}
else
if(0.5<CPUR[i]<=0.6)
{
OUTC=1696;
writeln("OUTC=",OUTC);
}
else
if(0.6<CPUR[i]<=0.7)
{
OUTC=1728;
writeln("OUTC=",OUTC);
}
else
if(0.7<CPUR[i]<=0.8)
{
OUTC=1792;
writeln("OUTC=",OUTC);
}
else
if(0.8<CPUR[i]<=0.9)
{
OUTC=1824;
writeln("OUTC=",OUTC);
}
else
if(0.9<CPUR[i]<=1)
{
OUTC=1872;
writeln("OUTC=",OUTC);
}
}
else if(cput[i]==96)
{
if(0<CPUR[i]<=0.1)
{
OUTC=2145.6;
writeln("OUTC=",OUTC);
}
else if(0.1<CPUR[i]<=0.2)
{
OUTC=2222.4;
writeln("OUTC=",OUTC);
}
else
if(0.2<CPUR[i]<=0.3)
{
OUTC=2304;
writeln("OUTC=",OUTC);
}
else
if(0.3<CPUR[i]<=0.4)
{
OUTC=2388;
writeln("OUTC=",OUTC);
}
else
if(0.4<CPUR[i]<=0.5)
{
OUTC=2448;
writeln("OUTC=",OUTC);
}
else
if(0.5<CPUR[i]<=0.6)
{
OUTC=2544;
writeln("OUTC=",OUTC);
}
else
if(0.6<CPUR[i]<=0.7)
{
OUTC=2592;
writeln("OUTC=",OUTC);
}
else
if(0.7<CPUR[i]<=0.8)
{
OUTC=2688;
writeln("OUTC=",OUTC);
}
else
if(0.8<CPUR[i]<=0.9)
{
OUTC=2736;
writeln("OUTC=",OUTC);
}
else
if(0.9<CPUR[i]<=1)
{
OUTC=2808;
writeln("OUTC=",OUTC);
}
}
powercpu[i] = (IDLEPC[i] + (OUTC *CPUR[i])); }
}
#DecisionOptimization#OPLusingCPLEXOptimizer