2017-02-08 16 views
0

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

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

Что касается gams, я вижу, что пакет является бесплатным только для ограниченного использования ряда переменных. Поэтому я рассматривал AMPL, но, возможно, для более мелких проблем ГАМС может быть решение, если я не могу понять, Ampl обозначения для матричных векторных умножений

ответ

0

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

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

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