1

受理確率 Pa で状態 S' に変更する必要がある状態 S があります。受理確率を計算すると、2 つの状態 (それぞれ 3 つの数値の列ベクトル) があります。S から S' への変更を確率 Pa で受け入れるように matlab に指示したいと思います。

注: これはループ内にあり、反復ごとに Pa が計算され、S は確率 Pa で S' に変化します。

助けていただければ幸いです

編集:これが私がこれまでに持っているものです。35 の可能なすべての状態 (プール) のマトリックスがあります。S' はここでは Sn です。

S = [5;5;5];
indexn = randi(35);
Sn = Pool(:,indexn);

費用はこちらで計算

PA = exp(-deltacost/k*T);

次のステップは、確率 PA で S を Sn に変更することです。私はこれを考えすぎているかもしれませんが、それを変更する方法がわかりません。

4

2 に答える 2

0

特定の確率で特定のアクションを実行する一般的な方法は次のとおりです。

  1. アクションが実行される確率を計算PAします(あなたの場合)。
  2. 一様確率分布から値を引き出し、それを と呼びましょうR
  3. Rより小さいかどうかを確認しPAます。これは に正確に等しい確率で真になりますPA。この場合、アクションを実行します。

最後のヒント: 一様分布から標本を抽出する Matlab 関数はrandです。

于 2012-11-02T19:10:45.383 に答える
0

これでうまくいくはずです

if Pa<rand()
    do the change
end
于 2012-11-02T16:50:11.000 に答える