2013-03-16 40 views
6

我遇到了AMPL問題。我正在使用32位版本的Linux操作系統。 我想解決一個簡單的線性programmin問題,但我不明白什麼是錯......這裏是模型,數據文件和會話腳本以及。 命令「解決」的答案是:找不到「minos」。但求解器目前在我的文件夾中!改變求解器並沒有幫助。 有什麼建議嗎?問題的AMPL找不到「minos」

型號:

param n; 
param t; 
param p{i in 1..n}; 
param r{i in 1..n}; 
param m{i in 1..n}; 
#Declaration of variables 
var x {i in 1..n} >=0; 
#Objective Function 
maximize revenues: sum {i in 1..n} p[i]*x[i] ; 
#Constraints 
subject to Aval_Time: sum{i in 1..n} x[i]/r[i]<=t; 
subject to Max_Flavor {i in 1..n}: x[i]<=m[i]; 

問題的數據:

param n := 4;# No of Flavors 
param t := 40; # Total labor hour in a week 
param p := 1 1 2 1.5 3 1 4 1.5; # Revenue per package flavor i 
param r := 1 40 2 30 3 50 4 20; # Production rate of package flavor i 
param m := 1 1000 2 900 3 500 4 800; # Maximum demand package flavor i 

AMPL會議:

reset; 
model example2.mod; 
data example2.dat; 
solve; 
display x; 

系統的答案:

找不到「 minos「

回答

5

錯誤消息試圖告訴您解算器缺失。 AMPL不能解決您的問題,它只是將您的模型轉換爲適合求解器的形式,將其傳遞給解算器,實際解決方案由解算器完成。這是關於錯誤消息。

您需要求解器來解決此問題。 Download並提取minos解算器。讓它exectuable:在Bash shell中( AMPL的外殼)發出以下命令:

chmod +x minos 

您還告訴AMPL其中求解器是您發出solve;命令。該解決命令之前,這個問題無論是在AMPL殼或模型文件:

option solver "/path/to/minos"; 

,你改變/path/to/minos根據您的安裝。

就是這樣。

+0

嗯......實際上我知道AMPL並沒有直接解決問題。minos解算器已經被下載並提取。可執行標誌(chmod + x)爲true。而且這個二進制文件與我的AMPL所處的位置相同。但它仍然無法正常工作,並且AMPL向我顯示錯誤信息(無法找到「minos」)... – 2013-03-16 21:16:09

+0

@RomanDryndik您嘗試過「選項解析器」/ path/to/minos「;'我在回答中建議? – Ali 2013-03-16 23:17:26

+0

是的,我試過了,但沒有幫助。 – 2013-04-14 12:17:49

4

在Unix和類Unix操作系統(如Linux)上,當前目錄通常不在search path上。您有以下選擇:

  • 使用option solver './minos';之前的solve命令。
  • 與上面類似,但使用Ali建議的minos絕對路徑。
  • 將AMPL目錄的路徑添加到PATH環境變量。
  • 複製(或創建符號鏈接)minos到搜索路徑上的一些目錄,如/usr/local/bin
1

對不起,我的響應延遲。通過執行以下命令可以解決問題

option solver "./minos"; 

與AMPL的文件夾中。謝謝。