2

我有一个优化问题,我尝试用求解器解决。其中,一个决策变量是包含日期的单元格。Solver 应根据时间序列选择最佳时间点。然而,虽然它改变了其他决策单元,但它永远不会改变这个!我什至尝试删除其他决策变量(保持它们不变) - 仍然没有变化。

为了帮助您锁定我的问题,我创建并附加了一个 Excel 表(此处:下载链接),其中包含一个简化的问题,Solver 应该从股票价格的时间序列中选择价格最高的日期。(我知道这个特殊问题可以很容易地用 MAX 公式解决,但我真正的优化问题要复杂得多,并且不允许这种解决方案。)

Solver 在初始日期值处仍然没有改变任何东西——即使在这个非常简化的设置中!

从数学的角度来看,目前的问题可以被描述为一个(非线性)阶跃函数,其中特定的时间点(在 x 轴上)对应于不同的价格(在 y 轴上的阶跃)。

是否有任何技巧可以让求解器处理时间(日期)值?如果您有幸找到一组正确的 Solver 设置以使其获得正确的解决方案(即 2009 年 1 月 10 日),我将非常高兴听到他们的消息。

编辑:我发现具有非平滑不连续函数的非线性问题(比如这个问题,基本上是一个楼梯函数)通常很难被任何(非线性)线性优化器解决。精通此事的人可以帮助我以可解决的方式重新提出问题。我发现了一个类似的关于堆栈溢出的主题,并提供了一个建议的解决方案(见第一个答案),但不知道如何将它应用于我的问题。

谢谢,史蒂夫

4

1 回答 1

1

我让你的电子表格在 Excel 2010 中解决,方法是添加约束 $C$7 >= $C$13,并使用进化方法。您可能可以找出您提到的数学方法,但您可能需要在 VBA 而不是求解器对话框中进行。

于 2011-04-07T21:57:21.893 回答