我已经创建了一个爬山算法,它会随机生成一个解,然后复制该解并进行少量变异,看看是否能得到更好的解。如果确实如此,它会保留新解并丢弃旧解。
如果我想在这个算法中加入模拟退火,我可以从一个较高的变异率开始,每次生成新解时稍微降低变异率吗?
我假设变异率将作为模拟退火算法的温度,这是正确的吗?
回答:
变异率确实可以作为退火的温度,但如果每次都选择更好的解,并不能实现完美的模拟退火。
你需要根据解的改进程度和变异率(即deltaE和温度)来选择更好的解,这样才能让模拟退火跳出局部最优。如果你总是选择最佳解,你可能会陷入局部最优。