您好我在matlab中使用优化工具箱来解决我的最小化问题。当我运行求解器时,它会针对具有相同参数的一个问题给出不同的结果。那么如何得出结论哪一个是最好的答案呢?我需要做什么,以便求解器为每个具有相同参数的运行提供一个结果。非常感谢你
答案 0 :(得分:4)
遗传算法使用随机抽样方法来创建随机候选解决方案。对于许多类型的问题,遗传算法可以“卡在”局部最优,如果其他局部最优(或全局最优)太“远”,交叉和变异等操作可能无法提供足够的变化来获得“未卡住”。如果您使用相同的参数持续获得不同的解决方案,那么您会看到一条有价值的信息:(a)您的参数使您的人口过于同质(缺乏变异),阻止他们离开当地最佳,或( b)您的问题不适合遗传算法。
尝试将你的突变率提高到极限,运行算法多代,而不是查看最终的群体(因为它的化妆将变化,变异率很高),看一下“生命的总寿命” “由领先的候选人。
然而,你的问题一开始有点令人费解。你问,“哪一个是最好的答案?”那么,你必须定义一个健康标准来“杀死”世代相传的最不合适的候选人,不是吗?只需计算每个答案的适合度,看看哪个被认为更“合适”。如果两个(或所有)答案同样适合,那么可能没有一个解决方案可以解决您的问题!
答案 1 :(得分:0)
我想我得到了一些问题的解决方案......每次运行中答案的差异都是因为随机数生成器..我们可以通过控制这个随机数生成器来获得相同的结果