在使用求解器EXCEL时保存目标函数值

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

谢谢。

这是可能的,但是手工繁琐。 在Excel / Solver中时,在Solver Parameters对话框中selectOptions (Excel中的数据 – >求解器 – >选项 )选中Show Iterations Resultscheckbox。 当您这样做时,Excel的求解器将在每次迭代后暂停,并使用当前variables值更新单元格。

现在,当您通过单击“ 求解 ”运行模型时,Excel将在每次中间迭代时暂停。 求解器认为每个中间步骤都是一个“ 场景” 。 您可以通过在每个迭代之后popup的“ scheme”对话框中input名称来保存每一个。 (在文本框中,input合乎逻辑的内容,如i1,i2,i3 …)

Solver完成后,您可以访问“Scenario Manager”的“ Excel-> Options-> Scenarios” ,您将看到您保存的所有场景列表,为了将它们全部放到您想要的命名范围内,请按“ “button,然后在对话框中select” 场景数据透视表报告“ 。这将在一个漂亮的数据透视表中显示所有的中间目标函数值供您分析。

记住一些限制:1.启用“ 显示迭代结果 ”选项将严重降低解决scheme的速度。2.如果您的LP甚至是中等规模,您将会有大量的迭代。 手动logging场景将不现实可行。 但是,您可以通过按下ESCbutton,存储scheme并继续,“取样”几个迭代。