1

次の最小化問題を考えてみましょう。

declarations
A,B,C: range
Objective:linctr 
ct1: array(a,b,c) of  linctr
ct2: linctr
z: array (a,b,c) of real
x: array (a,b,c) of mpvar
end-declarations

initializations
    ...
end-initializations

forall(a in A, b in B, c in C) create(x(a,b,c))

Objective := sum(a in A, b in B, c in C) z(a,b,c) * x(a,b,c)

forall(a in A, b in B, c in C) ct1(a,b,c):= (a,b,c) is_binary
forall(a in A) ct2:= sum(b in B, c in C) x(a,b,c) = 1

minimize(Objective)

決定変数の 3 次元配列は、最初の次元 A の各インデックスについて、制約が only one 、 only oneなどが等しいct2ことをアサートするように制約されることになっています。x(1,b,c)x(2,b,c)1

ただし、Xpress は、およびct2のように が違反している最適解を返します。x(1,2,3) = 1x(1,4,6) = 1

誰かがその制約に違反している理由を理解していますか?

4

1 に答える 1