Excel VBA中的“线性编程约束”types

我打算使用Excel VBA进行线性程序。 我在VBA中做这些types的问题是一个新手,因此我已经通过一个例子来了解这个问题:

Dim c As Vector = Vector.Create(-1.0, -3.0, 0.0, 0.0, 0.0, 0.0) Dim A As Matrix = Matrix.Create(4, 6, New Double() _ { _ 1, 1, 1, 0, 0, 0, _ 1, 1, 0, -1, 0, 0, _ 1, 0, 0, 0, 1, 0, _ 0, 1, 0, 0, 0, 1 _ }, MatrixElementOrder.RowMajor) Dim b As Vector = Vector.Create(1.5, 0.5, 1.0, 1.0) Dim lp1 As LinearProgram = New LinearProgram(c, A, b, 4) 

我偶然发现的问题是:

有没有一种方法来构造types的约束: sum{i in I} x[i,j], for all j in J

还有其他的方式来构造约束,而不是“手动”创build约束matrix,A(在这个例子中)的types,当有大量的约束和/或variables?

作为回答发表,因为它太长,不适合作为评论。

如果你的意图是使用VBA创build一个完整的线性规划algorithm,那么opensolver的源代码可能是一个很好的开始。 开放求解器从电子表格中解决问题,并将其发送给LP求解器,并使用中间VBA数据结构(如您尝试创build的数据结构)。 因此,他们的代码可以给你一些关于如何创build有用的数据结构的想法。

如果你的目的是在电子表格环境中解决线性程序,而不是从头开发一个LP解算器,那么(i)excel的常规求解器,(ii)开放求解器,甚至(iii) solverstudio都是好工具。 至于你的问题,没有什么魔法可做。循环是相当不可避免的,但不一定太慢 。

    Interesting Posts