Синтаксис оптимизации портфолио amp vs gams MINLP

Я ищу оптимизатор MINLP для решения проблемы оптимизации портфеля, который минимизирует x'.S.x, где x - вектор, S - заданная матрица. Существуют целочисленные ограничения, элементы x которых зависят от ex; x [i] = g [i] .K [i], где g [i] - целое число, а K [i] - заданный вектор, поэтому нам нужно найти g [i] s, минимизируя цель.

Я собираюсь использовать AMPL или игры. Основная программа написана на питоне. Я не уверен, что это лучшие MINLP, но в любом случае, похоже, на обоих сайтах есть несколько примеров. Что касается умножения матриц для цели минимизации, мне не ясно, есть ли простой способ записать это в AMPL, нужно ли мне записывать его как алгебраическое расширение? Вы можете привести пример работы x'.S.x на языке AMPL?

Что касается игр, я вижу, что пакет бесплатен только для ограниченного использования ряда переменных. Поэтому я рассматривал AMPL, но, возможно, для небольших проблем решением может быть гамма, если я не могу понять нотацию AMPL для умножения матрицы на вектор.


person adam    schedule 08.02.2017    source источник


Ответы (1)


Синтаксис AMPL очень прост:

sum{i in I, j in I} x[i]*S[i,j]*x[j]

Обратите внимание, что многие модели портфелей не нуждаются в полномасштабном решателе MINLP, но могут быть решены с помощью квадратичных (и SOCP) возможностей, имеющихся в таких системах, как Cplex и Gurobi. Ваш вопрос несколько сложно разобрать (по крайней мере, для меня), но я считаю, что ваша модель попадает в эту категорию.

person Erwin Kalvelagen    schedule 09.02.2017