我一直试图了解随机登山者一段时间,但没有任何运气。我翻阅了一本关于启发式的书,得到了一个伪代码。我不明白概率函数应该是什么样子。我知道新的解决方案是随机进行的,并且基于一些概率被接受,我没有得到的是如何编程这个概率。 感谢
PSUEDO-CODE - 来自如何解决它:现代启发式 - Zbugniew Michalewicz,David Fogel
procedure stochastic hill-climber
begin
t <- 0
select a current string vc at random
evaluate vc
repeat
select the string vn from the neighbourhood of vc
select vn with probability 1/(1+(e^(evaluation(vc) - evaluation(vn))/T))
t <- t + 1
until t=MAX
end
答案 0 :(得分:1)
这是遗传算法的一种形式,它具有称为评估的适应度函数。它选择当前和邻居之间具有较大正差异的邻居。它有一个sigmoid激活函数1 /(1 + e ^(某事物)),这意味着它将映射到间隔(0,1)。我认为T是随着时间的推移减小差异的大小,以使答案最终收敛到极限。 t只是一个代表算法生成的计数器。一旦达到最大代,算法将结束。希望这会有所帮助。