为什么遗传算法在MATLAB优化工具箱中对相同参数的一个目标函数的优化给出不同的结果



嗨,我在matlab中使用优化工具箱来解决最小化问题。当我运行求解器时,对于具有相同参数的同一个问题,它给出了不同的结果。那么如何得出哪一个是最好的答案呢?我需要做的是,求解器每次使用相同的参数运行都会给出一个结果。非常感谢

遗传算法使用随机抽样方法来生成几代随机候选解。对于许多类型的问题,遗传算法可能会在局部最优点上"卡住",如果其他局部最优点(或全局最优点)离得太"远",像交叉和突变这样的操作可能不会提供足够的变异来"un卡住"。如果你一直使用相同的参数得到不同的解决方案,那么你就遇到了一条有价值的信息:要么(a)你的参数使你的种群过于同质(缺乏变化),阻止它们离开局部最优,要么(b)你的问题不适合遗传算法。

尝试将突变率提高到极端,将算法运行更多代,而不是查看最终种群(因为其构成将随着高突变率而变化无常),而是查看主要候选者的总寿命。

然而,你的问题一开始就有点令人费解。你在问,"哪个是最好的答案?"那么,您一定已经定义了适应度标准,以便一代一代地"杀死"最不适合的候选者,不是吗?简单地计算每个答案的适合度,看看哪个更适合。如果两个(或全部)答案都同样合适,那么也许你的问题没有单一的解决方案!

我想我得到了我的问题的一些解决方案,每次运行的答案不同是因为随机数生成器,我们可以通过控制这个随机数生成器获得相同的结果

最新更新