我开发了一个excel宏,它在供应商站点运行求解器,在客户端运行另一个求解器。约束条件基于用户输入即时创建。 然而,对于不止一种解决方案,我得到了不同的答案。
我能得到的是求解器约束方程根据单元名称排序,两个表格不同?如果我可以停止约束的排序,这可能会得到解决。怎么做?
修改
我有相同顺序的约束,虽然这是解决问题的一种愚蠢的方式,但即使在那之后,解决方案在不同的excel工作簿中也会有所不同。
答案 0 :(得分:0)
如果您通过Formulas > Define Name
为每个约束单元格命名,则可以通过在“添加约束”对话框的“单元格引用”字段中键入该名称来使用该名称:
然后,在Solver窗口中,将按名称而不是地址显示和排序约束:
如果你从VBA代码配置Solver,你可以做同样的事情,例如:
SolverAdd CellRef:="cell1", Relation:=1, FormulaText:="60"
我不确定这是否是解决问题的好方法。如果您尝试求解的方程组有多种不同的解,那么运行求解器的结果可能不仅取决于约束设置和起始值,还取决于求解器首选项,Excel和求解器的版本,以及很可能其他您无法控制的两个系统的属性。您可以尝试的一些事项包括: