1

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

4

2 回答 2

4

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

尝试将您的突变率提高到极端,将算法运行更多代,而不是查看最终种群(因为它的构成会因高突变率而变化无常),而是通过领先来查看“活”的总生命周期候选人。

但是,您的问题一开始就有点令人费解。你问,“哪一个是最好的答案?” 好吧,你一定已经为一代又一代地“杀死”最不适合的候选人定义了一个适合度标准,不是吗?只需计算每个答案的适合度,看看哪个被认为更“适合”。如果两个(或所有)答案都同样合适,那么您的问题可能没有单一的解决方案!

于 2012-12-27T20:33:48.153 回答
0

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

于 2013-01-22T16:50:05.640 回答