Как я могу преобразовать файл AMP в cplex?

Я написал модель в Ampl и хотел решить ее с помощью glpk. Но я заметил, что мне нужна некоторая операция cplex, такая как ==>, а у glpk ее нет. Мне интересно, есть ли простой способ преобразовать файл Ampl в cplex? или это сложный процесс, и мне нужно все переписать в формате Cplex!
(Я не покупал усилитель, поэтому не могу использовать cplex в усилителе)


person Nagh    schedule 08.05.2019    source источник
comment
Что именно вы имеете в виду под форматом CPLEX? CPLEX поддерживает ряд различных форматов файлов. Насколько мне известно, вы можете экспортировать файлы LP или SAV из AMPL. Вопрос в том, сможет ли тогда glpk читать эти файлы. Может быть, вам нужен формат, совместимый с glpk, а не формат, совместимый с CPLEX?   -  person Daniel Junglas    schedule 08.05.2019
comment
Значит, я могу запустить файл amp с помощью cplex?   -  person Nagh    schedule 08.05.2019
comment
Нет. Но из AMPL вы можете экспортировать файл, который может прочитать CPLEX. Просто введите в Google AMPL и LP или AMPL и MPS, и вы найдете множество обсуждений, объясняющих, как сгенерировать файл LP или MPS из AMPL. CPLEX может читать LP и MPS. Может быть, даже есть способ экспортировать файл SAV. Это было бы лучше всего. Но опять же, если вы хотите решить с помощью CPLEX, вы можете вызвать это напрямую из AMPL или нет? Создание файла CPLEX не означает, что у вас есть файл, который может читать glpk. Вам нужно будет попробовать, понимает ли glpk. См. Также groups.google.com/forum/#!topic/ampl/ kjBCs-4dXbY   -  person Daniel Junglas    schedule 08.05.2019
comment
@DanielJunglas У меня есть решатель cplex, я запущу его с помощью cplex, если смогу преобразовать файл .mod в lp   -  person Nagh    schedule 08.05.2019
comment
Если у вас есть решатель CPLEX, вы можете использовать его непосредственно из AMPL. В обсуждении Google, которое я привел выше, есть некоторые инструкции по этому поводу. Фактически, в нем рассказывается, как вы можете экспортировать файл MPS (который затем может быть прочитан CPLEX) и как вы можете использовать CPLEX напрямую из AMPL (с помощью cplexampl).   -  person Daniel Junglas    schedule 09.05.2019
comment
@Daniel Junglas, write( "xx.lp" ) из этой группы. Ссылка Google не работает в AMPL с ограничениями для учащихся: # Unknown option outopt truss.lp (-otruss.lp)   -  person denis    schedule 13.07.2019
comment
Что, если вместо этого вы попытаетесь вывести в truss.mps?   -  person Daniel Junglas    schedule 15.07.2019


Ответы (1)


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

В пакете GLPK есть собственный язык моделирования GNU Mathprog, который реализует линейное подмножество AMPL. Таким образом, иногда не так сложно перевести модель AMPL в модель GNU Mathprog. Затем GLPK может обработать модель GNU Mathprog и создать файл MPS или LP, который может быть прочитан решателем.

Однако GNU Mathprog не имеет оператора ==> ("подразумевает"), который можно найти в AMPL, поэтому любые ограничения AMPL, использующие этот оператор, должны быть преобразованы в линейные ограничения. Есть известные способы сделать такой перевод. Если вам нужна помощь в этом, то ее следует опубликовать как отдельный вопрос. (У вас будет больше шансов получить ответ, если вы покажете полное ограничение AMPL, которое вы пытаетесь перевести.)

person 4er    schedule 10.05.2019