の呟きは 30
SAの遷移確率はメトロポリスヘイスティングスアルゴリズムとやらがうんたらとある・・・?
謎
https://en.wikipedia.org/wiki/Simulated_annealing#Acceptance_probabilities
https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%88%E3%83%AD%E3%83%9D%E3%83%AA%E3%82%B9%E3%83%BB%E3%83%98%E3%82%A4%E3%82%B9%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B9%E6%B3%95- (UPD ) #
T=1のときにexp(-(e'-e)/T)はMHアルゴリズムぽいことになるのか?
ホンマか?
MHアルゴリズム
採択率を調整する必要があるらしい・・・?まるでわからん
SAの記事、違う言語にすると、何か微妙に違うこと書いてあるような雰囲気するけど・・・?
P=exp(-(e'-e)/T)
(e'-e)の値がC(>0)である場合
P[C]=exp(-C/T)
Tによって遷移確率Pが変化するわけだが
最初のほうが遷移しやすく、最後のほうが遷移しにくく、という方向せいでTの変化を考える必要がある・・・?C/Tはどんな範囲の値であるべきなんだ・・・?
exp(1)はネイピア数?つまり、exp(1)>1 だよな?
exp(-1)は逆数だから、exp(-1)<1だよな?- (UPD ) #
問題はC/Tだ
C/T>1とするとexp(-C/T)<1はexp(-1)より小さい値となる・・・?
C/T<1とするとexp(-C/T)<1はexp(-1)より大きな1未満の値となる・・・?
たとえばC/T=1/2とすると、単純な平方根を意味して、1未満の大きさの正数は二乗するとさらに小さい値になって、つまり逆の平方根は1未満の大きな値になる・・・?C/Tの変化について考えてないな
C/T>1のとき
C/Tが増えると、exp(-C/T)<1はより小さくなる
C/Tが>1のまま減ると、exp(-C/T)<1はより大きくなる?
C/T<1のとき
C/Tが<1のまま増えると、exp(-C/T)<1はより小さくなる?
C/Tが減ると、exp(-C/T)<1は1未満のより大きな値となる?つまり、
C>1のときと、0<C<1のときと、で、Tの値の範囲も変わる・・・?C/T>1はC>Tが保証されないとダメ、と
C>1のときは0<T<1であればよい、と
0<C<1のときは・・・無理
C/T<1はC<Tが保証されないとダメ、と
C>1のときは・・・無理
0<C<1のときは・・・T>1であればよい、とつまり
C>1のときは
0<T<1でTを制御し
C/T>1となるので
exp(-C/T)が小さくなるのは、C/Tが増えるときで、それはTが減るとき
exp(-C/T)が大きくなるのは、C/Tが減るときで、それはTが増えるとき
exp(-C/T)は時間経過とともにだんだん下がって欲しいので、時間経過でTが減っていくように設計?
0<C<1のときは
T>1でTを制御し
C/T<1となるので
exp(-C/T)が小さくなるのは、C/Tが増えるときで、それはTが減るとき
exp(-C/T)が大きくなるのは、C/Tが減るときで、それはTが増えるとき
exp(-C/T)は時間経過とともにだんだん下がって欲しいので、時間経過でTが減っていくように設計?
ん?どっちもTの変化に求めるものは同じ・・・か?
Tの範囲のみに気をつけろということか
- (UPD ) #
うーん、、、
比較的高温で
diff=1で31%
diff=2で8%
diff=7で0.01%
SAの遷移確率ってこんなもんなの・・・?これだとただのHCと変わりないのでは・・・
これ、どうしたらいいなの・・・?
ひとまず、diffを10で割ったものを使ってみる・・・とか?
- (UPD ) #
よくない
雰囲気的に”近傍”が悪いぽいので、収束がクソ遅いために、10で割って増えた高温時のたまのランダム遷移が収束をより遅くしているように見える
10で割るだけだと中温時にさほどランダム遷移は増えない
50で割ってもみたが、高温時がかなり酷い状態になり、低温時の収束にも悪影響
あと、10や50は今回設定したペナやナスのサイズに依存しすぎているため、埋め込みで使うべきじゃない根本原因は
近傍が近傍をしてないことであって
これがよくない(omitted)
やべ
セラフィ意識しすぎて
てぃんこがガッチガチなんだけど寒い