最小化加权数和的绝对值

时间:2012-04-17 22:34:41

标签: algorithm linear-programming operations-research

我的部分问题是最小化某些数字的加权和的绝对值。我必须找到重量。

假设我有一组数字A,a1,a2,a3和a4,这样(a1,a2> 0),(a3,a4< 0)

最小重量为0.1(10%),最大重量为0.4(40%)。我正在寻找权重 w ,加权和为零;如果零不可能,则最接近零。可以使用简单的线性模型来实现这一目标:

Minimise E

E >= SUM w * a
E >= -(SUM w * a)
SUM w = 1
w >= 0.1 for all w
w <= 0.4 for all w

一个简单的线性程序足以快速找到解决方案。但是,我非常希望找到这个问题的多项式算法或公式。有任何想法吗?这个问题众所周知吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

最小化(相应最大化)SUM w * a很容易;将所有权重设置为最小值,然后从最小值到最大值(从最大值到最小值)将权重增加到局部最大值,直到达到全局最大值。

如果[min,max]间隔包含0,则可以将最优解作为这两个解的凸组合来实现。否则,将解决方案接近0。

答案 1 :(得分:1)

ellipsoid algorithm是第一个用于线性规划的最坏情形多项式时间算法。

但是,我怀疑你想快速解决问题,这就是你对多项式时间算法感兴趣的原因。

在这种情况下,使用单纯形法会更好。尽管单形在最坏的情况下是指数级的,但它似乎是大多数实际应用的最佳选择。毫不奇怪,它是在我所知道的所有优质解算器中实现的。