Lingo編程語法
Model: 表示開始輸入模型
“MAX=“或者”MIN=“語句爲目標函數,其他的語句都是約束條件(標題title和註釋語句除外)
每一個語句都由;結尾
!可以作爲註釋語句
LIngo中解優化模型時假定所有變量非負(除另行說明)
END結束模型
Lingo代碼舉例
model:
title CSDN;
[minf]min=2*x1+3*x2;
[a]x1+x2>=350;
[b]x1>=100;
[c]2*x1+x2<=600;
END
代碼運行結果
代碼窗口結果解讀
Global optimal solution found.
表示全局最優解找到
Objective value:
表示最優目標值
Total solver iterations:
表示用單純行法進行了兩次迭代
Variable
表示變量,運行結果中有兩個變量爲x1,x2
Value
給出最優解中個變量的值
Reduced Cost
與最優單純形表中的檢驗數相差一個符號的數。
爲了使某個變量在解中的數值增加一個單位,目標函數必須付出的代價(增加或減少Reduced Cost的值)
Slack or Surplus
表示接近等於的程度
在約束條件中是<=,叫做鬆弛變量
在約束條件中是>=,叫做過剩變量
在約束條件中是=,值爲0,該約束爲一個緊約束(或有效約束)
如果一個約束條件錯誤,作爲一個不可行約束,Slack or Surplus爲負數
Slack or Surplus表示的是:約束離相等還差多少
Dual Price
給出對偶價格的值
表示每增一個單位(約束右邊的常數),目標值改變的數量(在最大化問題中目標函數是增加的,反之是減小的)
例如在本例中,c約束條件的Dual Price爲1,表示2x1+x2<=600增加一個單位到2 x1+x2<=601使目標值增加到-1(目標函數的Dual Price爲-1),則Objective value就變爲799
對偶價格也叫影子價格,這是由於他們表示可以用多大的價格去購買單位資源