AMPL не может найти minos

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

Модель проблемы:

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;

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

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


person Roman Dryndik    schedule 16.03.2013    source источник


Ответы (3)


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

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

chmod +x minos

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

option solver "/path/to/minos";

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

Это все.

person Ali    schedule 16.03.2013
comment
Хм ... На самом деле я знаю, что AMPL не решает проблему напрямую. Решатель minos уже загружен и извлечен. Флаг исполняемого файла (chmod + x) истинен. Более того, этот двоичный файл находится в том же районе, где находится мой AMPL. Но он по-прежнему не работает, и AMPL показывает мне это сообщение об ошибке (не удается найти минусы) ... - person Roman Dryndik; 17.03.2013
comment
@RomanDryndik Вы пробовали option solver "/path/to/minos";, который я предложил в своем ответе? - person Ali; 17.03.2013
comment
@RomanDryndik Да, это один из способов сделать это, предполагающий, что решатель minos находится в той же папке, что и исполняемый файл amp. Пожалуйста, подумайте о том, чтобы принять ответ. - person Ali; 14.04.2013

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

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

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

option solver "./minos";

в папке с AMPL. Спасибо.

person Roman Dryndik    schedule 14.04.2013