达到最大数量的求解变量?

时间:2017-09-21 11:02:17

标签: excel vba excel-vba solver

我使用excel求解器来解决优化问题(使用进化/遗传算法最大化)。然而,在为3-4个输入变量和大约1,000个样本设置底部和顶部边界后,我没有遇到任何问题。适应度函数非常简单,只需调用所有输出的总和。我以前是否有(1000 x 4)输入矩阵和相应的(1000 x 1)输出列向量。

现在,我有42个输入变量(which is less than the maximum size of variables solver should handle)。不幸的是,GA没有找到最佳解决方案(它过滤掉所有输出;所以我只从我的列向量中调用#NA)。我知道从'尝试''只改变一个变量可以改善模型的适应性。所以Solver / GA似乎在跑山攀登时遇到了问题。

根据经验,我发现14个变量设置为底部阈值)或5 + 5个变量设置为底部+顶部阈值是Solver可以处理的最大值。 设置非常标准,我检查了不同的修改。

约束精度:0.001 - 0.000001 缩放:开/关

收敛(GA):0.001 - 0.000001 人口规模:0,100,200 突变率:0.01,0.075,0.2,0.5,0.9

经过~40次迭代后,它停止并且没有调出任何输出(100%滤除)。

是否有其他人遇到此问题?我是否达到了Excel解算器或GA的限制?如果是的话,是否有解决我在Excel中的问题的解决方案或者我是否需要Matlab / Python库,它可以处理这么多变量?

1 个答案:

答案 0 :(得分:1)

Excel求解器最多只能有200个可变单元格。如果您击中了200个以上的可调单元,您将看到此消息。

您有2个选择:

  • 通过处理问题来减少可调整单元的数量。
  • 尝试使用除excel以外的其他求解器,它们对可调整单元格的限制更高。