我在林業行業進行了優化,其中一組公司C可以從收穫區域集合I的一些分類集合A中扣除某些木材。參數x [I, J,V,T,C,A]變量代表從收穫區域I到鋸木廠J在時間T使用車輛V的流量,用於公司C與分類A.需要改造以避免不可行性
我遇到的麻煩是每個鋸木廠必須遵守最小需求,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個車隊來滿足需求。我傾向於「限制所有」約束是限制解決方案,導致錯誤。我嘗試過使用「T中的所有t,j中的J」作爲Constraint2,但後來找不到d_minus的下標。任何人有任何線索?
問候
感謝您的回覆!我正在使用NEOS服務器,並且在.run文件中添加該命令不會打印任何內容。一直試圖谷歌如何與NEOS使用solexpand,但我還沒有找到任何東西。你知道任何使用NEOS跟蹤錯誤的方法嗎? – Cenderze 2014-11-03 18:55:20
它現在使用solexpand!感謝你,不知道這一點。 感謝您的回覆!我試過使用solexpand,它給了我在原始文章中編輯過的輸出。我已將d_minus約束脩改爲所有組合的1。它給了我所有x變量都應該爲0的解決方案。你知道這可能是什麼嗎? – Cenderze 2014-11-03 19:04:52
由於您的輸入,我現在已經解決了這個問題。當然接受並提高你的答案。再次感謝! – Cenderze 2014-11-03 21:14:03