我正在尝试使用具有以下语法的lp文件:
http://www.rpi.edu/dept/math/math-programming/cplex66/sun4x_58/doc/refman/html/appendixE13.html
虽然它说乘法是这样的:
a * b
*
给我一个语法错误。任何想法?
我使用的是标准的linux软件包lp_solve
答案 0 :(得分:1)
我正在使用Gurobi和CoinOR(CBC)的LP文件,并且乘法的格式是不使用*符号。因此,如果您有约束a * b
,只需写:
a b
不要忘记空格,否则它将被视为新变量ab(即使您的一个术语是纯数值)。
答案 1 :(得分:1)
您不能在线性程序中将两个变量相乘。这就是为什么它被称为线性程序的原因。 线性方程或不等式总是一次多项式,因此它具有以下形式:
c1*x1 + ... + cn*xn = b
其中{c1,..,cn}
和b
是常量,{x1,..,xn}
是变量。
阅读定义以获取更多信息:
https://en.wikipedia.org/wiki/Linearity
如果您正在寻找更高程度多项式的优化方法,请搜索非线性优化,例如: