私は林業で最適化を行っており、一連の企業 C が収穫エリア セット I からいくつかの品揃えセット A からいくつかの材木を差し引く可能性があります。パラメーター x[I,J,V,T,C,A ] 変数は、時間 T に車両 V を使用して、品揃え A の会社 C を使用して、収穫エリア I から製材所 J までの流れを表します。
私が抱えている問題は、各製材所が最小要件 d_minus に準拠しなければならないことです。これは次の場所で行われます。
# The total flow into a node at time period t must exceed the minimum demand.
subject to Constraint2 {j in J, t in T, p in T, c in C, a in A: p <> t}:
sum{v in V, i in I} x[i,j,v,p,c,a] >= d_minus[j,t,c,a];
問題は、車両 V が次のようにモデル化された特定の容量を持っていることです。
# The flow must not exceed the total capacity for each vehicle and time period
subject to Constraint6 {v in V, t in T}:
sum{i in I, j in J, c in C, a in A} x[i,j,v,t,c,a] <= capacity[v];
ただし、これによりコンパイラは、constraint2 での不可能な境界について不平を言います。例えば
presolve: constraint Constraint2[1,1,6,1,3] cannot hold:
body >= 1000 cannot be <= 273; difference = 727
4台の車両を使用し、各車両の容量は40です(400と1000も使用してみましたが、エラーが残りました)。d_minus パラメータは 500 から 1000 の間です。
パラメータが狭すぎてはいけないと私は考えています。1000 の容量を使用すると、3 台の車両フリートのニーズを満たす必要があります。「すべての」制約がソリューションを制限し、エラーを引き起こしていると思います。Constraint2 に「for all t in T, j in J」を使用してみましたが、d_minus の添え字が見つかりません。誰にも手がかりはありますか?
よろしく