2014-08-23 3 views
1

Я пытаюсь использовать файл LP с этим синтаксисом:LP формат файла, как умножить на переменные

http://www.rpi.edu/dept/math/math-programming/cplex66/sun4x_58/doc/refman/html/appendixE13.html

хотя он говорит, что умножение выглядит так:

a * b 

в * дает синтаксическую ошибку. Есть идеи?
Я использую стандартный пакет Линукс lp_solve

+0

Глядя на ваше сообщение, я не вижу текст, который вы указали для ссылки. – Hoh

+0

Извините, я просто положил его. Спасибо за ваши изменения! – Kyriakos

+0

Можете ли вы опубликовать часть своих ограничений? Используете ли вы формат CPLEX? Согласно странице, которую вы указали, звездочка должна быть внутри квадратных скобок, и она использовалась для недиагональных членов квадратичной формы 'xQx'. – Ioannis

ответ

0

Я использую LP файлы с Gurobi и CoinOR (CBC), а также формат для умножений НЕ используйте * знак. Таким образом, если у вас есть ограничение a * b, просто написать:

a b 

Не забудьте пространство, в противном случае оно будет рассматриваться в качестве новых переменных аб (даже если один из ваших терминов чисто числовое значение).

+0

Это похоже на 'a + b'. –

0

Вы не можете умножить две переменные в линейной программе. Вот почему это называется линейной программой . Линейное уравнение или неравенство всегда является полиномом первой степени, следовательно, она имеет вид:

c1*x1 + ... + cn*xn = b 

Где {c1,..,cn} и b константы и переменные {x1,..,xn} являются.

Прочитайте определение для получения дополнительной информации:

https://en.wikipedia.org/wiki/Linearity

Если вы ищете для оптимизации подхода для полиномов более высокой степени, поиск нелинейной оптимизации, такие как:

https://en.wikipedia.org/wiki/Nonlinear_programming

 Смежные вопросы

  • Нет связанных вопросов^_^