Как использовать сложные переменные в задаче Гуроби - PullRequest
1 голос
/ 14 января 2020

В настоящее время я решаю проблемы оптимизации со сложными переменными, используя CVX + Mosek, на MATLAB. Сейчас я рассматриваю возможность перехода на Gurobi + Python для некоторых приложений.

  1. Есть ли способ объявить комплексные значения (как внутри ограничений, так и в качестве переменных оптимизации) непосредственно в интерфейсе Gurobi Python?

  2. Если нет, то какие хорошие языки моделирования с интерфейсом Python автоматизируют приведение задачи к реальным переменным перед вызовом решателя?

Я знаю, например, что YALMIP делает это сокращение (хотя нет Python интерфейса), и более новые версии CVXPY также (но я не использовал его широко, и не знаю, имеет ли он уже хорошую производительность, стабилен ли он и достаточно ли завершен). Любые мысли по этим вопросам и рекомендации других интерфейсов приветствуются.

1 Ответ

0 голосов
/ 20 января 2020

Единственные возможные переменные в Gurobi:

  • Целое число;
  • Двоичные;
  • Непрерывные;
  • Полунепрерывный и;
  • Полуцелый.

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

Комплексная плоскость не является упорядоченным полем , поэтому невозможно сказать, что данное комплексное число z1> z2

Возможно, вам придется смоделировать Ваша проблема такова, что вы можете разложить ограничения на реальные и мнимые части, чтобы вы могли работать только с действительными числами.

...