最大化向量和

Maximize sum of vectors

给定多个向量,每个向量都有一个未知变量,例如:

v1、v2、v3...vn 和 x1、x2、x3...xn

和一个目标向量vt

我正在尝试创建一个算法,通过设置 x1、x2、x3、xn 来最大化 p 这样:

v1*x1 + v2*x2 + v3*x3 + vn*xn = vt*p

系数 x1、x2、x3 和 xn 的约束如下:

0 <= x1 <= c1
0 <= x2 <= c2
0 <= x3 <= c3
0 <= xn <= cn

其中,c1、c2、c3 和 cn 是给定常数。

我将如何编写算法来找到使 p 最大化的变量?

编辑:此示例中的向量长度为​​ 6,并且可以有多达 n 个向量。因此,据我所知,当 n 大于 6 时,高斯消去法将不起作用。

Edit2:我发现了一种看待问题的方法,但仍然坚持使用哪种算法来解决它。这是一张矢量图,我用不同的方式解释了我想做的事情:

这个描绘是二维的,我想形状在更高的维度和更多的向量中会变得更复杂。

找到解决方案:

在数学交流中,我询问了如何将问题格式化为线性程序: https://math.stackexchange.com/questions/1200260/how-to-maximize-the-sum-of-vectors-in-target-direction

关于线性程序格式的问题,只需找到一个 lp 求解器库,这是我计划使用的库: http://www.coin-or.org/projects/

它在 c++ 中,并且可以使用包装器以便可以在 c# 中调用它的函数。