为什么遗传算法在MATLAB优化工具箱中为具有相同参数的一个目标函数的优化提供了不同的结果?

时间:2012-12-27 20:10:38

标签: optimization genetic-algorithm genetic-programming

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

2 个答案:

答案 0 :(得分:4)

遗传算法使用随机抽样方法来创建随机候选解决方案。对于许多类型的问题,遗传算法可以“卡在”局部最优,如果其他局部最优(或全局最优)太“远”,交叉和变异等操作可能无法提供足够的变化来获得“卡住”。如果您使用相同的参数持续获得不同的解决方案,那么您会看到一条有价值的信息:(a)您的参数使您的人口过于同质(缺乏变异),阻止他们离开当地最佳,或( b)您的问题不适合遗传算法。

尝试将你的突变率提高到极限,运行算法多代,而不是查看最终的群体(因为它的化妆将变化,变异率很高),看一下“生命的总寿命” “由领先的候选人。

然而,你的问题一开始有点令人费解。你问,“哪一个是最好的答案?”那么,你必须定义一个健康标准来“杀死”世代相传的最不合适的候选人,不是吗?只需计算每个答案的适合度,看看哪个被认为更“合适”。如果两个(或所有)答案同样适合,那么可能没有一个解决方案可以解决您的问题!

答案 1 :(得分:0)

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