2013-03-16 2 views
6

У меня возникла проблема с AMPL. Я использую 32-разрядную версию ОС Linux. Я пытаюсь решить простую задачу линейного программирования, но я не могу понять, что не так ... Вот модель, файлы данных и сценарий сеанса. Ответ на команду «решить»: Не удается найти «минос». Но решатель сейчас в моей папке! Изменение решателей не помогает. Любые предложения?AMPL не найден «минос»

Модель задачи:

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; 

Ответ системы:

Не удается найти " минос "

ответ

5

Сообщение об ошибке пытается сообщить вам, что не найден решатель. AMPL не решает вашу проблему, она просто превращает вашу модель в форму, подходящую для решателя, передает ее решателю, и фактическое решение выполняется решателем. Это сообщение об ошибке.

Для решения этой проблемы вам необходим решатель. Download и извлечение минос-решателя. Сделать это exectuable: В Bash оболочки (не AMPL оболочки) выполнить следующее:

chmod +x minos 

Вы также сказать AMPL где решатель, прежде чем выдать команду solve;. Перед командой решения, проблема это или в оболочке AMPL или в файле модели:

option solver "/path/to/minos"; 

где вы меняете /path/to/minos в соответствии с вашей установкой.

Это все.

+0

Хмм ... Actualy Я знаю, что AMPL не решает проблему напрямую.Минос-решатель уже загружен и извлечен. Исполняемый флаг (chmod + x) является истинным. Более того, этот двоичный файл находится в том же месте, где находится мой AMPL. Но это все еще не работает, и AMPL показывает мне, что сообщение об ошибке (не может найти «минос») ... –

+0

@RomanDryndik Вы попробовали «решатель параметров»/path/to/minos »;' я предложил в своем ответе ? – Ali

+0

Да, я пробовал, но это не помогло. –

4

В Unix и Unix-подобных операционных системах, таких как Linux, текущий каталог обычно не находится на search path. У вас есть следующие варианты:

  • Используйте option solver './minos'; перед командой solve.
  • Как и выше, но используйте абсолютный путь к минозам, как это было предложено Али.
  • Добавьте путь к каталогу AMPL в переменную среды PATH.
  • Copy (или создать символическую ссылку) minos в какой-нибудь каталог на пути поиска, такие как /usr/local/bin
1

Извините за задержку моего ответа. Проблема была решена путем выполнения следующей команды:

option solver "./minos"; 

в папке с AMPL. Благодарю.

Смежные вопросы