1

我正在尝试使用具有以下语法的 lp 文件:

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

虽然它说乘法是这样的:

a * b

*给了我一个语法错误。有任何想法吗?
我正在使用标准的 linux 包lp_solve

4

2 回答 2

1

您不能在线性程序中将两个变量相乘。这就是为什么它被称为线性程序。线性方程或不等式总是一阶多项式,因此它具有以下形式:

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

其中{c1,..,cn}b是常数,{x1,..,xn}是变量。

阅读定义以获取更多信息:

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

如果您正在寻找更高次多项式的优化方法,请搜索非线性优化,例如:

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

于 2016-10-13T18:33:08.713 回答
0

我将 LP 文件与 Gurobi 和 CoinOR (CBC) 一起使用,并且乘法的格式不使用 * 符号。所以,如果你有一个约束a * b,只需写:

a b

不要忘记空格,否则它将被视为新变量 ab (即使您的术语之一是纯数值)。

于 2016-05-11T06:25:23.800 回答