最大化向量之和

时间:2015-03-20 08:32:19

标签: c# linear-programming

给出了一些向量,以及每个向量的未知变量,比如说:

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:我发现了一种查看问题的方法,但仍然坚持使用什么样的算法来解决它。这是一个矢量绘图,我用不同的方式解释我要做的事情: enter image description here

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

1 个答案:

答案 0 :(得分:0)

找到解决方案:

在数学交换中,我问过如何将问题格式化为线性程序: 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#中调用它的函数。