Как представить эффективность MiniZin c в исследовании - PullRequest
1 голос
/ 28 апреля 2020

Некоторое время go Я пишу связанную с ИЛИ статью для публикации. В статье показана модель MILP для определенной задачи оптимизации с использованием MiniZin c. Я разрешаю 10 экземпляров оптимально из 10 экземпляров.

Консультант просматривает его и упоминает следующие 2 комментария:

  1. Как вы сравниваете MiniZin c с другими последними Решатели MILP поколения, такие как CPLEX или Gurobi, с точки зрения производительности?

Я всегда использовал MiniZin c, и он работал эффективно для меня. Как я могу продемонстрировать универсальность, которую может иметь MiniZin c? Есть ли библиографическая ссылка или способ ее обоснования?

Поскольку MiniZin c не является одним из самых известных решателей MILP, вам следует избегать упоминания его имени в сводке.

По какой причине вы бы не рекомендовали упомянуть об этом в аннотации?

Что может быть эффективным оправданием использования MiniZin c?

С уважением.

1 Ответ

4 голосов
/ 29 апреля 2020

Чтобы оправдать использование MiniZin c, наиболее важно уточнить функциональность MiniZin c. Сообщество Оперативных Исследований иногда очень настроено и обычно рассматривает две вещи:

  1. Какой набор линейных уравнений, который кодирует вашу проблему?
  2. Какой процесс решения используется, чтобы прийти однако решение?

MiniZin c, однако, следует рассматривать как более ранний шаг в этом процессе. Это позволяет пользователю написать высокоуровневую модель задачи, которая скомпилирована в спецификацию, которую может понять решатель (которая в случае решателя MILP будет представлять собой набор линейных уравнений). Таким образом, в мире OR это лучше по сравнению с библиотеками, такими как JuMP и PyOpt , чем с решателями, такими как Gurobi или CPlex. Однако, в отличие от этих библиотек, язык MiniZin c написан на более высоком уровне и предназначен для решения технологических проблем c, что означает, что помимо решателей MILP вы также можете попробовать решатели CP, LCG, SMT и SAT .

Хороший аргумент в пользу того, почему MiniZin c используется вместо JuMP или PyOpt, заключается в том, что MiniZin c часто может применять оптимизации в кодировании на основе структуры модели высокого уровня. Было опубликовано множество статей по задачам, которые были автоматически линеаризованы, что обеспечивает отличную / новую производительность для решателей. В статье «Улучшенная линеаризация моделей программирования с ограничениями» даже показано, что MiniZin c иногда может создавать более эффективные линейные модели, чем специалисты в этой области.

Наконец, следует отметить, что MiniZin c фактически использует решатели, на которые ссылался ваш советник. Gurobi и CPlex являются (вероятно) лучшими решателями MiniZin c для задач, которые хорошо линеаризуются. При этом, если вы используете некоторые из других решателей MiniZin c, то вы все еще можете использовать современный решатель: Gecode - один из самых быстрых решателей программирования ограничений; Chuffed неоднократно побеждает всех своих конкурентов в конкурсе MiniZin c и является новым разработчиком ленивых предложений; и есть еще много решателей с различными технологиями решателей, которые могут использоваться с MiniZin c, которые находятся на вершине линии.

Итак, чтобы ответить прямо на вопросы:

Как Вы сравниваете MiniZin c с другими решателями MILP последнего поколения, такими как CPLEX или Gurobi, с точки зрения производительности?

Мы не сравниваем MiniZin c с Gurobi или CPlex, поскольку MiniZin c не является не решатель. MiniZin c, однако, создаст модели для новых решателей, таких как Gurobi и CPlex.

Поскольку MiniZin c не является одним из самых известных решателей MILP, вам следует избегать упоминания его имени в резюме. (По какой причине вы бы не рекомендовали упоминать об этом в аннотации?)

Если MiniZin c внес существенный вклад в ваше приложение, то я думаю, что упомянуть это справедливо; однако, вероятно, лучше упомянуть это в сочетании с используемым решателем. Это может помочь, если в вашей газете вы описываете процесс MiniZin c или работу, которую он делает для вас.

Что может быть эффективным оправданием использования MiniZin c ?

MiniZin c - отличный инструмент для создания удобочитаемой модели проблемы, которая преобразуется в эффективную спецификацию для решателя вершины линии.

...