2011-03-26 4 views
1

J'ai essayé de comprendre le grimpeur stochastique pendant un certain temps, mais je n'ai pas eu de chance avec cela. J'ai regardé un livre sur l'heuristique et j'ai obtenu un pseudo code. Je ne comprends pas à quoi devrait ressembler la fonction de probabilité. Je comprends que la nouvelle solution est piquée au hasard et acceptée en fonction d'une certaine probabilité, ce que je ne comprends pas, c'est comment programmer cette probabilité. MerciComprendre l'alpiniste stochastique

-CODE Psuedo - de comment le résoudre: moderne heuristiques - 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 
+1

Pouvez-vous ajouter le pseudo-code à votre question? –

+0

Salut, j'ai édité ma question pour inclure le code de psuedo, Merci – smMavrik

Répondre

1

C'est une forme d'algorithme génétique qui a une fonction de remise en forme appelée évaluation. Il choisit un voisin avec une grande différence positive entre le courant et le voisin. Il a une fonction d'activation sigmoïde 1/(1 + e^(quelque chose)) ce qui signifie qu'il va correspondre à l'intervalle (0,1). Je crois que le T est de réduire la taille des différences au fil du temps pour permettre à la réponse de finalement converger vers une limite. t est juste un compteur qui représente une génération dans l'algorithme. L'algorithme se termine dès que t atteint la génération maximale. J'espère que cela t'aides.

+0

Merci, bien que je ne comprends pas comment je choisirais un voisin spécifique. Devrais-je vérifier la probabilité de tous les voisins et accepter la plus forte probabilité? – smMavrik

+0

Vous avez juste besoin de vérifier la probabilité de "un" voisin pas tous. Vous aurez besoin de générer un nombre aléatoire entre 0.0 et 1.00 et la transition si elle est inférieure à la probabilité de la différence des évaluations de vc et vn. La pièce manquante était le nombre aléatoire qu'ils supposaient que vous générez pour déterminer si vous deviez effectuer une transition. Si votre nombre aléatoire est supérieur à la probabilité calculée, passez au prochain voisin. –