3

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

谢谢。

4

1 回答 1

1

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

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

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

需要牢记几个限制: 1. 启用“显示迭代结果”选项会严重减慢解决方案 2. 如果您的 LP 甚至是中等规模,您将有大量迭代。手动记录场景实际上是不可行的。但是,您可以通过按ESC按钮“采样”几次迭代,存储场景并继续。

于 2012-01-14T08:50:47.267 回答