2015-12-06 41 views
0

有3個模型使用適當的輸出迭代運行。但是,有一次,我得到了「混淆錯誤環境」的錯誤。代碼基本如下:Ilog Opl腳本混合不匹配環境錯誤

//model1 
.. 
main{ 
    generate & solve model1 
    call model2 
    model1.output_x=model2.input_x 
    generate & solve model2 
    call model3 
    model2.output_y=model3.input_y 
    generate & solve model3 
} 

在生成模型3時,發生不匹配環境錯誤。但是,模型2和模型3是相似的。

在模型3,下面是我認爲導致此問題的限制:

totalcost (dvar of model 3)-epsilon(variable of model 3)<=n1_cost (output of model2); 

回答

0

非常小心。陳述

model1.output_x=model2.input_x 
model2.output_y=model3.input_y 

似乎倒退了。難道你的意思是:

model2.input_x = model1.output_x 
model3.input_y = model2.output_y 

說了這麼多,正確的設計模式是一個模型的輸出複製到數據的後續機型輸入。如果你確定你有好的模型/數據分離,那麼問題應該消失。