Excel VBA:求解器似乎不使用datevariables“随着时间的推移”优化?

我有一个优化问题,我试图解决与解决。 其中,一个决策variables是一个包含date的单元格。 基于时间序列,求解器应该select最佳时间点。 但是,虽然它改变了其他的决策单元,但决不会改变这个决定! 我甚至试图放弃其他决定variables(保持不变) – 仍然没有改变。

为了帮助您locking我的问题,我创build并附加了一个简化问题的Excel工作表(这里是: 下载链接 ),从时间序列的股票价格求解器应该select价格最高的date。 (我知道这个特殊的问题很容易用MAX公式解决,但是我真正的优化问题要复杂得多,而且不能解决这个问题。)

求解器在初始date值时仍然不会改变任何东西 – 即使在这个非常简化的设置中!

从math的angular度来看,目前的问题可以表征为(非线性)阶梯函数,其中特定的时间点(在x轴上)对应于不同的价格(在y轴上的阶梯)。

是否有任何技巧来解决时间(date)值? 如果你有幸find正确的解决scheme设置,使其得到正确的解决scheme(这将是2009年1月10日),我会非常乐意听到他们。

编辑:我发现非光滑不连续函数(像这个问题,这基本上是一个阶梯函数)的非线性问题通常很难解决任何(非)线性优化。 能否有人在这件事上有所悟,帮助我以一种可以解决的方式重新解决问题。 我发现堆栈溢出的一个类似的话题与build议的解决scheme(请参阅第一个答案),但不知道如何将其应用于我的问题。

谢谢,史蒂夫

我在Excel 2010中添加了约束$ C $ 7> = $ C $ 13,并使用Evolutionary Method来解决您的电子表格问题。 您大概可以找出您提到的math方法,但是您可能需要在VBA而不是“求解器”对话框中进行。