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