使用Solver,EXCEL保存目标函数值

时间:2011-11-28 12:42:08

标签: excel optimization vba excel-vba solver

我在Excel中设置了优化问题。当我优化(使用gui)时,我得到目标函数的最终(最佳)值。我可以看到excel计算了许多点的目标函数值,并确定了最佳点。有没有办法将所有目标函数值保存到excel表中的某个范围。如果我能使用求解器GUI完成它会很棒。如果没有,基于VBA的解决方案也会这样做。

感谢。

1 个答案:

答案 0 :(得分:1)

这是可行的,但手动繁琐。在Excel / Solver中,在解算器参数对话框中选择选项(Excel中的数据 - >解算器 - >选项)选择显示迭代结果复选框。执行此操作时,Excel的求解器将在每次迭代后暂停,并使用当前变量值更新单元格。

现在,当您通过单击“解决”运行模型时,Excel将在每次中间迭代时暂停。 Solver认为每个中间步骤都是“场景”。您可以通过在每次迭代后弹出的 Scenario对话框中为其命名来保存每个。 (在文本框中输入符合逻辑的内容,如i1,i2,i3 ......)

解算器完成后,您可以访问“场景管理器” Excel->选项 - >场景。 您将看到列出的所有方案。要将它们全部放入您想要的命名范围,请按“摘要”按钮,然后在对话框中选择“方案数据透视表报告”。这将在一个漂亮的数据透视表中显示所有中间目标函数值,供您分析。

要记住以下几个限制: 1.启用“显示迭代结果”选项会严重降低解决方案的速度 2.如果您的LP甚至是中等大小,那么您将进行大量的迭代。手动记录场景将不切实际可行。但是,您可以通过按 ESC 按钮“存档”场景并继续“示例”几次迭代。