1

私はしばらく確率的ヒルクライマーを理解しようとしてきましたが、うまくいきませんでした。ヒューリスティックに関する本を調べて、疑似コードを入手しました。確率関数がどのように見えるべきかわかりません。新しいソリューションがランダムに抽出され、ある確率に基づいて受け入れられることを理解しています。得られないのは、この確率をプログラムする方法です。ありがとう

PSUEDO-CODE - How to Solve it: Modern Heuristics - 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
4

1 に答える 1

1

これは、評価と呼ばれる適合度関数を持つ遺伝的アルゴリズムの一種です。それは、現在と隣人との間の正の差が大きい隣人を選択します。シグモイド活性化関数 1/(1 + e^(something)) があり、これは間隔 (0,1) にマップされることを意味します。T は、時間の経過とともに差のサイズを縮小して、最終的に答えが限界に収束できるようにすることであると私は信じています。t は、アルゴリズムの世代を表す単なるカウンターです。アルゴリズムは、t が最大世代に達するとすぐに終了します。お役に立てれば。

于 2011-03-26T13:33:59.643 に答える