Math 二次约束下线性目标的最大化

Math 二次约束下线性目标的最大化,math,mathematical-optimization,cplex,nonlinear-optimization,convex,Math,Mathematical Optimization,Cplex,Nonlinear Optimization,Convex,我有一篇论文中的编程公式,想给它一个解决特定问题的工具。作者将其描述为线性规划(LP)实例,但我不确定。 公式如下: max x1+x2+x3... s.t. x1.x3+x4.x5 <= 10 x2.x5+x3.x7+x1.x9 <=10 ... 最大x1+x2+x3。。。 s、 t。 x1.x3+x4.x5您发布的问题需要一些关于变量x1、x2和x3域的信息 如果它们是连续的,就无法将问题表示为线性规划(LP),因为x1*x2的曲面是非线性的 如果至少有一个产品变量是二

我有一篇论文中的编程公式,想给它一个解决特定问题的工具。作者将其描述为线性规划(LP)实例,但我不确定。 公式如下:

max x1+x2+x3...

s.t.

x1.x3+x4.x5 <= 10

x2.x5+x3.x7+x1.x9 <=10

...
最大x1+x2+x3。。。
s、 t。

x1.x3+x4.x5您发布的问题需要一些关于变量x1、x2和x3域的信息

如果它们是连续的,就无法将问题表示为线性规划(LP),因为x1*x2的曲面是非线性的

如果至少有一个产品变量是二进制(整数),则产品可以线性化(因此,如果您有一个混合整数程序),如中所述-因为上述产品的“边界”是线性的

Cplex基本上可以解决某些类的二次问题。从您的错误消息判断,您的问题不属于这里。因此,为了解决这个问题,您可能需要使用通用NLP解算器。可以找到解算器的示例列表,所有解算器都可以由软件AMPL触发,也可以单独使用。我不是这里的专家,所以我不能给出建议哪一个解算器应该是你的问题的首选

问候,,
Martin

你可能会更走运,这个问题似乎离题了,因为它是关于数学规划的。我在关键词中添加了数学优化。Martin,非常感谢你的回答。这是非常有用的。变量不是连续的,而是整数。那么在这种情况下,我可以使用[link]()链接使它们线性化吗?然而,据我所知,如果我以前收到错误,我仍然需要NLP解算器?因此,尝试将公式线性化的步骤,如果我仍然得到误差,而不是NLP解算器,对吗?当变量是整数时,问题可以表示为混合整数线性问题,即所有约束都是线性的-通过完整性条件“绕过”二次表达式。因此,它可以通过标准cplex(您不需要二次解算器)通过单纯形和分支定界进行求解。当所有产品线性化时,您不应收到错误消息,但可能是解决方案速度不令人满意,这取决于您的问题大小。Martin,product link的线性化提供了有关二进制变量的提示,但我的模型中的变量是一般整数(可以是3、4等)。有没有一种方法可以将这些条件线性化?重要的是,你的每个整数变量都有一个数字n的边界(我认为否则它就不起作用了)。然后,您可以通过一系列二进制变量x_I,即I=1x_1+2x_2+3x_3…+nx\n。每个整数的乘积就是二进制的乘积。它们可以线性化相应二进制变量的每个乘积。“爆炸”使它对更大的问题无效/有效。。。