我有一个包含 5 列的电子表格,A、B、C、D 和 E,长度都相同,都包含数字数据。
A、B、C 列的值都在 -10 到 +10 之间,D 列是结果。在 E 列中,我有一个 If AND 公式,仅当 A、B 或 C 落在某个范围内时才显示 D 的适当结果。该范围由 IF AND 公式引用的单独单元格设置。
我希望求解器找到 A、B 和 C 的最佳范围,通过更改 A、B、C 的范围来最大化 E 中的结果。
例如求解器可能会返回;
A 必须介于 0 和 5 之间,B 可以介于 -10 和 +10 之间,C 为 -2 到 0。此标准使相邻单元格 E 中的总数最大化。
电子表格中的所有内容都按其应有的方式工作,但是每次我运行求解器时,都会弹出不同的解决方案,而无需我更改任何数据或做任何不同的事情。 我是否遗漏了求解器工作原理的一些逻辑?我相信它应该总是找到最佳解决方案,如果没有其他变化,该解决方案应该始终相同
进化算法通过模拟生物进化找到启发式解决方案。它们的工作原理是创建随机生成的候选解决方案群体,并使用您尝试优化的目标函数来判断候选解决方案的适合度(目标函数的更好值对应于更适合的解决方案)。允许更适合的解决方案彼此交配(以加入相当数量的随机性的方式),交配解决方案生成通过随机交叉和突变的组合构建的子代。即使是进化算法的简单运行也将涉及对随机数生成器的数十万甚至数百万次调用,因此没有两次运行是相同的。如果一切顺利,所有运行都应该给出值“大约”相同的解决方案——尽管具有大量局部最优的问题有时会带来一个没有简单解决方案的问题。