是否可以在线性目标函数中同时使用变量的绝对值和实际值?

计算科学 优化 线性规划
2021-12-21 18:29:51

我有一个优化问题,我试图将其转换为线性程序。但是,我有一个形式的目标函数

maximizea1x1a2|x1|subject to(constraints)

我尝试使用替换变量进行经典的线性重构并添加约束:x1

x1x10

x1x10

我遇到的问题是解决方案似乎将限制为正值,即使它们显然应该是负值。查看我对此的文档,这似乎是因为假设它的所有值都将在同一方向上最大化或最小化,如果你打破这个假设,那么你将被迫使用 M/ILP 方法用二进制确定器来解决这个问题。x1

我没有找到任何关于在目标函数是否可以在不诉诸 ILP 的情况下做我想做的事?x1x1

3个回答

maximizea1xa2|x|subject to(linear constraints)

其中给出。写作作为一个最小化问题,a1,a2R

minimizea2|x|a1xsubject to(linear constraints)

要最小化的目标函数是

f(x):=a2|x|a1x={(a1+a2)xif x0(a2a1)xif x0

如果,则的。在这种情况下,的铭文也是凸的,可以通过半空间的交集来定义,如下所示a1,a20ff

{(x,y)R2y(a2a1)xy(a1+a2)x}

中有以下线性规划x,yR

minimizeysubject to(a2a1)xy0(a1+a2)xy0(linear constraints on x)

您可以将原始问题分成两个线性规划问题,第一个具有目标 和(附加)约束,第二个具有目标和(附加)约束然后,您将选择两个解决方案中最好的一个作为原始问题的解决方案。f(x1)=a1x1a2x1x10f(x1)=a1x1+a2x1x1<0

将变量分成正负分量似乎对我们有用。我将包括我的解决方案,尽管解决方案的范围可能存在限制。

基本上,对于每个变量x1,我们将变量一分为二:x1+x1. 然后我们添加了约束:

x1+0

x10

然后,我们能够将系数的价值函数分别应用于每个部分。例如,

f(x1+,x1)=a1x1+a1x1

随着变量的最终解决方案x1存在:

x1=x1++x1

在我们尝试并证明了这一点之后,我们在这里找到了关于该方法的讨论