C# 向量和最大化

C# 向量和最大化,c#,linear-programming,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 0找到了解决方案: 在数学交流中,我问如何将

给定多个向量和每个向量的未知变量,例如:

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
0找到了解决方案:

在数学交流中,我问如何将问题格式化为线性规划:

对于线性规划格式的问题,只需查找lp解算器库,以下是我计划使用的库:


是C++语言,它可以使用包装器,使其函数可以在C语言中调用。遗传算法还是禁忌搜索?这感觉非常类似于

k-means
。但最终并不是最优的(遗传算法也是如此)。我想出了一些办法,但我不确定我是否正确理解输入。这要么不起作用,因为
p
不是一个向量,要么所有向量之间都必须有依赖关系,因此可以完全删除,对吗?因为
v1*x1+v2*x2=vt*p
永远不会对例如
v1
={0,0},
v2
={0,1},
vt
={1,1}起作用。我也认为答案应该很简单(ish):只要找到一个解决方案(p=1)(例如使用)然后,这是一个标量因子的问题,使x进入范围并使其最大化。我不确定启发式是否可行,因为没有最大或非最大的步长值(如果我错了,请纠正我)。编辑了主要帖子,以包含针对我的案例的更多信息。