Originally posted by: skyskyhuanghuang
Hi,everyone:
I encountered a problem
using CP;
int M=...;
float H[1..M][1..M]=...;
float B0=...;
float n0=...;
dvar int Yji[1..M][1..M] in 0..1 ;
int Scale=100;
dvar int ScaleP[1..M] in 1..Scale;
dexpr float PVariety[i in 1..M]=ScaleP[i]/Scale;
execute
{
var p=cp.param;
p.LogPeriod=80000;
p.TimeLimit=36;
p.Workers=40;
p.searchType="Restart";
p.OptimalityTolerance=1;
}
maximize
B0*sum(i in 1..M)(
log(1+sum(j in 1..M:j!=i)(
PVariety[j]*H[j][i]*Yji[j][i]/ //fenzi
(n0+sum(n in 1..M:n!=j)(
PVariety[n]*sum(q in 1..M)H[n][i]*Yji[n][q]
)
)
)
)/log(2)
);
minimize
sum(m in 1..M)PVariety[m];
subject to
{
forall(i in 1..M)
{
Hangyueshu:
sum(j in 1..M)
Yji[i][j]<=1;
}
forall(i in 1..M)
{
Lieyueshu:
sum(j in 1..M)
Yji[j][i]<=1;
}
forall(i in 1..M)
forall(j in 1..M)
Duichenyueshu:
Yji[i][j]==Yji[j][i];
forall(i in 1..M)
Zishenyueshu:
Yji[i][i]==0;
}
execute
{
writeln("Yji=",Yji);
writeln("Objective= ",cp.getObjValue());
writeln("PVariety=",PVariety);
writeln("Spectral efficiency b/s/hz=",cp.getObjValue()/B0);
}
main
{
var nbsol=0;
thisOplModel.generate();
cp.startNewSearch();
while(cp.next())
{
nbsol++;
writeln("solution ",nbsol);
thisOplModel.postProcess();
}
}
There are two objective functions in my model. When solving, cplex reports an error. How do I solve the problem of multi-objective function?
#DecisionOptimization#OPLusingCPLEXOptimizer