Sat, 11 Feb 2006
ライフゲーム(Java Web Start)
ライフゲームとは?
コンウェイ氏が考案した2次元セルオートマトンの一種である。
ゲームという名が付いているが、コンピュータと対戦するような
ゲームではない。
ライフゲームのルール
- 平面を正方形のセルで分割する。
- それぞれのセルは生(白い色で表現)と死(黒い色で表現)の2種類の状態を持つ。
- 次世代においてそのセルの生死は次のルールで決まる。
- 現在が生の状態のとき、周りの8個のセルのうち2個もしくは3個のセルが生
の場合、次世代もそのセルは生、他の場合は死。
- 現在が死の状態のとき、周りの8個のセルのうち、3個のセルが生の場合、
次の世代のセルは生、その他の場合は死。
これによれば現在生の場合でも、周りに4個以上生のセルがあれば、
そのセルは死んでしまう。つまり、生のセルが多すぎたら生き残れ
ないということである。逆に少なすぎてもだめなことがこの条件を
見ればわかるであろう。
プログラムの説明
このプログラムでは RANDOM ボタンを押すと
初期状態を乱数により 1/2 の確率でそれぞれのセルに
生と死を割り当てている。セルの大きさは縦横5ピクセルの正方形にしている。
上下の辺と、左右の辺はそれぞれつながっていると考えている。
幾何学的にはこれは2次元のトーラス上のライフゲームと考えてよい。
シミュレーション停止時にはマウスの左クリックと右クリックでマウスカーソ
ルのある位置のセルの生死の状態を変えることができる。
posted at 02:08 |
category: /Program |
固定リンク(ライフゲーム
)
Ising 模型シミュレーション(Java Web Start)
履歴
- 2003/10/12
- インターフェイス改良。画像復元シミュレーションが可能に。
- 2003/10/05
- 久しぶりにソースの見直し。パフォーマンスとデータ構造のチェック。
シミュレーション結果
100x100サイズの格子について、温度(エネルギー)を変化させながら、
100x100x1000回メトロポリス法に従いランダムに格子の状態を変化させた結果の
Hamiltonianを計算する。そのシミュレーションをそれぞれの温度のときに
100回繰り返したときの平均をグラフにすると下のようになる。
これによると、温度が2.5ぐらいの時に相転移が起こっていることが観察できる。
posted at 01:45 |
category: /Program/Physics |
固定リンク(イジング模型
)
Spin Glass シミュレーション(Java Web Start)
Ising 模型における相互作用を表すパラメータは定数(強磁性モデル)だったが、
相互作用パラメータにヘップ則によるパターンを与えることで、
連想記憶をさせることができる。ここでは◯と×をシミュレーションすることにする。
履歴
- 2003/11/16
- Ising 模型のシミュレーションを改良して作成。
スピングラスとは
岩波講座物理の世界
「スピングラスと連想記憶」[1]
にコンパクトにまとまっている。+1 と -1 の二つの状態(スピンと言う)をとるセルと、
セルの間の相互作用を表すパラメータで系の状態を記述する。
強磁性体の場合は、相互作用を表すパラメータは空間的に一定で
その場合セルのスピンはそろう方が系は安定する。
一方スピングラスの場合は相互作用を表すパラメータは空間に対して一定でなく
その結果安定な状態が複数現れる。
ここでは◯と×のパターンを記憶するような相互作用を表すパラメータを
ヘップ則([1]33ページ)にしたがって与え、
ホップフィールド模型をシミュレーションしている。
「温度」によって系のゆらぎをメトロポリス法で与え、ハミルトニアンの値が
小さくなるように系の状態が変化していく。
ランダムに見えるパターンが〇か×のどちらかに収束していく。
どちらになるかは初期状態がどちらに近いかでほぼ決まる。
今後の予定
〇と×のパターンでハミルトニアンが極小値をとると考えられるが、
〇から×へパターンが変化する、すなわち峠を越えるにはどれくらいの温度が必要か、
また〇と×のそれぞれのパターンに収束する確率を計算する。
(確率を計算する方法はあるのだろうか?)
もちろん三次元のパターン記憶のシミュレーションも。
(ホップフィールド模型は相互作用を全てのセルに対して行うので次元に依らずにできるはず。)
posted at 01:32 |
category: /Program/Physics |
固定リンク(スピングラス
)