[英]Cplex arrays in constrains
我使用下面的代碼生成 [1 3 3 3 2 2 5 5 5 5 5] 我有一個決策變量數組 c[n] 其中 n 等於 s{} 的相同范圍/大小,我想要其中的每個值決策變量小於 s{} 中的這些值 我寫了下面的代碼並且沒有錯誤,但是 c[n] 的值不會被強制小於 s{} 的值 c[1] 不是 < = 1 並且 c[2] 不是 <=3
int n=4;
range r=1..n;
int m=11;
range w=1..m;
int a[r]=[1,3,2,5];
tuple t
{
key int rank;
int value;
}
{t} s={};
dvar c[w];
subject to
{
forall( k in w, i in 1.. card(s) )
c [k] <= item(s,<i>).value ;
}
execute
{
var rank=0;
for(var i in r)
{
for(var j=1;j<=a[i];j++)
{
rank++;
s.add(rank,a[i])
}
}
}
您應該在要阻止的主題之前進行預處理。
嘗試
int n=4;
range r=1..n;
int m=11;
range w=1..m;
int a[r]=[1,3,2,5];
tuple t
{
key int rank;
int value;
}
{t} s={};
execute
{
var rank=0;
for(var i in r)
{
for(var j=1;j<=a[i];j++)
{
rank++;
s.add(rank,a[i])
}
}
}
dvar int c[w];
subject to
{
forall( k in w, i in 1.. card(s) )
c [k] <= item(s,<i>).value ;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.