English
ダーク

ラングトンのアリ

ラングトンのアリをブラウザで遊べるサイトです。様々な拡張版で遊べます。
こういったサイトを作るのは初めてなので不便に感じるところがあるかもしれません。些細なことでもページ下のコメントで教えていただけると助かります。

ラングトンのアリとは?

ラングトンのアリは、セルオートマトンの一種で、単純なルールに基づいて仮想的な「アリ」が動くシミュレーションです。
簡単に言えば、アリが白黒のマスをルール通りに動いてマスを反転させていく遊びです。ここでは、赤い三角をアリとしています。
クリストファー・ラングトン※1によって考案され、どんどんマスを反転していく様がアリが動いているように見えるのでこんな名前になったそうです。

  1. アリがいるマスが黒なら左、白なら右を向く
  2. マスを白黒反転させる
  3. 1マス前進する

アリはこの3つのルールを順番に繰り返して動きます。初期配置として※2全てのマスを白の状態として動かすと、最初は混沌と動いているように見えますが、約1万歩後に「道」を作り始めます。どんな初期配置からでも道を作ることが実験的にわかっています。

ルール説明


※1 クリストファー・ラングトン(1949-?) アメリカの計算機科学者、人工生命研究の先駆者。
※2 初期配置はマスの状態(白黒)のこと。ただし白マスまたは黒マスのいずれかは有限個とする。

モード選択

以下のボタンから、ラングトンのアリで遊べます。スマホやタブレットの方は「モバイル版」ボタンを押してからモードを選択してください。
操作方法・説明は下にあります。ルールがわからなくても、とりあえず通常モードから動かしてみると良いと思います。
軌跡図鑑は、いろいろなパターンのアリの軌跡を記録した場所です。面白い軌跡がたくさんあるので是非。

操作方法

各モードのボタンを押すと、操作方法が表示されます。
右のチュートリアルボタンを押すとチュートリアルに飛びます。サイトの使い方やラングトンのアリの説明が見れます。

通常モード

通常のラングトンのアリが動いているところを見ることができます。初期配置を変えたり、アリを増やしたりして遊べます。
赤い三角がアリです。操作方法ボタンで、以下の操作方法とほぼ同じものが見れます。

絵を描いて、アリを動かしてみてください。どんな絵を描いても道を作るはずです。

条件付きモード

基本的な操作は通常モードと同じです。「n回に1回、方向を変えずk歩直進する」という条件を追加して遊べます。
さらに、左右に曲がるときに進む歩数を変えることができます。

色々な組み合わせで試してみてください。最初から道を作るものなど、面白いものがたくさんあります。n=0 で通常の動きになります。

四方向モード

このモードでは、「1歩前にいたマス」と「今いるマス」の色の組み合わせによって進む方向が決まります。
黒と白の4通りの組み合わせと、それぞれ方向が上下左右の4通りで、全部で256通りの組み合わせがあります。最初の1歩目で、白,白として動きます。

グルグル回りながら拡大するなど、割と整然とした形になるものが多いです。左右左右で通常モードの動きになります。

多色モード

使う色を増やし、アリがいるマスのルールに従って左右どちらかを向く→マスの色を次の色に変える→直進という感じで動きます。
色は、白→黒→赤→青→緑→黄→紫→橙→水→桃→茶→灰 の順番で変わります。最大12色です。
例えば、3色で左右左で、アリのいるマスが赤なら、左を向いて色を白に変えて直進します。

色数が偶数で、左右交互にすると通常の動きをします。

状態モード

アリ自身が複数の状態を持っていて、状態に応じて動きが変わります。
例えば最初設定されているルールでは状態が2つ(0と1)で、
状態0の時、マスが白ならマスを反転せず向きを変えず1マス進み、状態1にする。
      マスが黒ならマスを反転して右を向き1マス進み、状態1にする。
状態1の時、マスが白ならマスを反転して左を向き1マス進み、状態0にする。
      マスが黒ならマスを反転して向きを変えず1マス進み、状態1にする。となっています。

どの状態の時にも反転有り、白の時右、黒の時左にすると通常の動きをします。

六角モード

マスが六角形のモードです。通常は、アリがいるマスが黒だったら左に60°向いて1マス直進、白だったら右にに60°向いて1マス直進します。操作方法は通常モードと同じです。
多色では、多色モードと同じルールで、アリがその色のマスにいるときに向かう方向が、右上、右下、下、左下、左上、上の6種類あります。
条件では、条件付きモードと同じルールで、n回に1回方向を変えずk歩直進します。

コラッツモード

コラッツ予想を元にアリが動いていくモードです。コラッツ予想とは、

  1. 好きな自然数を1つ決める
  2. その数が偶数なら2で割る、奇数なら3倍して1を足す

この2.を繰り返すとどんな自然数でもいつか必ず1になるという予想で、数学的に証明されていない未解決問題です。1になった後にも操作を続けると、1→4→2→1→4→2という風に周期に入ります。

どんな初期配置(初期値)からでも収束し周期を作ることや、それらが実験的には必ずなると思うけれど数学的な証明が難しいというところがラングトンのアリと似ています。

このモードでは、初期値をコラッツ予想のルールで操作しながらその操作に合わせてアリが動きます。コラッツ予想の元のルールではなく、例えば偶数なら4で割るなどもできます。

最初に設定されているものは、nが偶数ならnを2で割ってアリがいるマスの色を反転させて右に進む、奇数ならnを3倍して1を足して反転して左に進むという感じになっています。

nが1になったら自動で止まるようになっていますが、止まった後にもう一度スタートボタンを押すと続きから動き始めます。nが割り切れないときは小数点以下切り捨てになってしまうので気を付けてください。

今はマスの色を参照していないので、マスの白黒によっても何か分岐するようなものも作ってみたいです。

よくある質問

ラングトンのアリについて

Q. 約1万歩で道を作るって具体的には何歩?
初期配置が全て白の場合、9978歩目から道を作り始めます。
Q. 道は同じ動きを繰り返して伸びていくと思うんだけど、道の周期とかはある?
道の周期は104です。つまり104歩の動きを繰り返して道を作っています。
Q. どんな初期配置でも道を作るのは実験的にしかわかっていないの?
はい。必ず道を作るかは数学的にはわかっていない(未証明)です。
Q. アリが1歩目から道を作り始める初期配置はある?
あります。下の配置で、最初から道を作り始めます。これは9977歩目の盤面の道を作るための最小のマスです。
9977歩目の再現
Q. 道は無限に伸びていく?
はい。もしアリが道を作るのであれば、その道は無限に伸びていくことが証明されています。ただし、どんな初期配置からでもありが道を作るかどうかは証明されてません。
Q. ラングトンのアリを研究すると何がわかるの?
単純なルールで動いているのに、最初は混沌とした動きを見せ、やがて秩序が生まれるというところから自然界のパターン形成と同じ仕組みを学べたり、複雑な模様になるので芸術的にも応用されたりします。

このサイトについて

Q. 各モードは何を使ってプログラミングした?
すべてJavaScriptを使用しました。
Q. 通常モードで複数のアリが同じマスに重なった場合の挙動はどうなってる?
アリ1(赤)→アリ2(青)→アリ3(緑)の順で動きます。例えばアリ1と2が上向きで同じ白いマスにいるとき、1が黒くして右に、2がそれを白くして左にいくので結果的に色は変わりません。
Q. 複数のアリを違う方向に向けるにはどうすればいい?
アリ2,3は追加したときに必ず上向きになるので、アリ1の方向を先に変更してから他のアリを追加すると違う方向になります。
Q. 条件付きや多色や状態を組み合わせられるモードはできない?
色々噛み合わないところがあって難しいですね。いつか追加するかもしれません。
Q. 周期や道を作るまでの歩数ってどうやって調べたの?
アリの方向(上右下左)をそれぞれ0,1,2,3としてアリが動くたびに数値を記録し、104歩のずつ同じ数列が繰り返されているの(周期)を見つけ、そこから数列の周期が途切れるところ(道の直前)を見つけました。
Q. 送信されたコメントはどう扱われるの?
コメント履歴として下部に表示されます。非公開で送信にチェックをして送信すると、製作者のみが閲覧できるようになります。

参考文献

mini-ant

コメント

感想や質問、気づいたことがあれば気軽に書き込んでください。改善案や説明の足りないところがあれば、適宜修正していきます。
非公開で送信にチェックをして送信すると、下の履歴に表示されずに製作者のみに送信されるようになります。

Thank you!

履歴

読み込み中...

製作者情報

更新履歴

もっと見る




mini-ant