我有一个问题,一个二维数组的每一行和每一列的总和是给定的,我们必须在数组的每个单元格中分配数量。 有些单元格将被锁定,您无法使用它们进行分发。另外,行/列的总量可以是十进制值。你知道吗
比如说, 我们有一个4*3的二维阵列
A B C
D E F
G H I
J K L
其中每行之和为10,20,30,35,每列之和为35,30,30。你知道吗
E,I和K被锁定,所以方程
E = I = K = 0
A + B + C = 10
D + F = 20
G + H = 30
J + L = 35
A + D + G + H = 30
B + H = 30 and
C + F + L = 30
我使用pythonscipy和ibmcplex(C#)尝试了线性f(x)=Min(x)和二次解算器f(x)=Min(x^2)。你知道吗
线性解算器不会优化分布。你知道吗
二次解算器有助于这种方法,但它不适用于数组的大小大于10*10。解算器失败,状态不可行。你知道吗
如果总数可以有十进制值,矩阵的大小可以达到100*10000,我应该使用什么方法/库来解决这个问题?你知道吗
如果你把方程组织成
你可以看到这是一个system of linear equationsAx=b
解决此类系统的方法已在前面的堆栈溢出中讨论过:
相关问题 更多 >
编程相关推荐