如何确定cplex opl中数组的最大值?

问题描述 投票:0回答:1

我想找到 cplex opl 中数组的最大值。 例如:

 forall(i in hour){
  S_total[i]==sqrt((P_tload[i]+P_EV[i])^2+Q_tload[i]^2);   
 }

在上面的例子中,我想找到Smax,它等于数组S_total的最大值。这里,P_EV[i] 是一个变量。

max cplex
1个回答
0
投票

您可以使用“max”,如示例中所示https://github.com/AlexFleischerParis/zooopl/blob/master/zoomax.mod

maxNbOfBusesGivenSize==max(i in buses) nbBus[i];

int nbKids=300;

{int} buses={30,40,50};


dvar int+ nbBus[buses];
dvar int maxNbOfBusesGivenSize;

    
minimize maxNbOfBusesGivenSize;
     
subject to
{
 // logical constraint
 // maxNbOfBusesGivenSize is the max of all nbBus
 maxNbOfBusesGivenSize==max(i in buses) nbBus[i];
 sum(i in buses) i*nbBus[i]>=nbKids;
}

execute DISPLAY_After_SOLVE
{
  writeln("The max number of buses is ",maxNbOfBusesGivenSize);
  writeln("nbBus = ",nbBus);
}
© www.soinside.com 2019 - 2024. All rights reserved.