Upgrade to Pro — share decks privately, control downloads, hide ads and more …

セルオートマトンとは!?Cellular Automaton !?

kenyu
June 04, 2019

セルオートマトンとは!?Cellular Automaton !?

セルオートマトンを組んでシェルピンスキーのギャスケットを作る
https://kenyu-life.com/2018/11/20/cellularautomaton/

Twitter → https://twitter.com/kenyu0501_?lang=ja

kenyu

June 04, 2019
Tweet

More Decks by kenyu

Other Decks in Education

Transcript

  1. セルオートマトン(Cellular Automaton)とは!?
    ある内部状態をもったセルが,周囲の内部状態をもったセルと
    相互作用(情報交換)して時間的に変化していくモデル
    ai,j ai+1,j
    ai,j-1
    ai-1,j
    ai,j+1
    2次元の場合
    t = tk
    次の時刻 tk+1
    の状態は,
    ai,j
    と,周囲の4つの状態
    (ai-1,j
    ,ai,j+1
    ,ai+1,j
    ,ai,j-1
    )
    によって決まる
    <定義>
    ・各セルは独立した内部状態を保持する
     (状態は各自決めるパラメータ)
    ・情報交換は,上下左右だけではなく,
     斜めも可能であるが,そこは使う人が
     モデルの指針を決めてください
    作成者 Kenyu Uehara (@kenyu0501_)

    View Slide

  2. 2次元の場合
    セルオートマトン(Cellular automaton)とは!?
    モデルの指針を決めて,状態を記述する関数functionを定義する
    ai,j |k+1 = f ( ai,j
    ɼ ai-1,j
    ɼ ai,j+1
    ɼ ai+1,j
    ɼ ai,j-1 ) |k
    k+1番目のai,j
    k 番目のai,j
    k 番目の周囲セルの4つの状態
    1次元の場合
    ai |k+1 = f ( ai-1
    ɼ ai
    ɼ ai+1 ) |k
    1次元の場合だとここまで簡略化できるよ!!
    この時は,隣接する2つのセルと自身のセルの3つの状態が未来を書くので

    View Slide

  3. 1次元の場合
    ai |k+1 = f ( ai-1
    ɼ ai
    ɼ ai+1 ) |k
    未来の状態(k+1)番目を記述する際には,
    k番目がどのような状態であるのかを把握することが必要
    各セルは,0か1の2つの状態をとるとする
    この時,3セル全てが0 〜 3セル全てが1の8通りある 
    この8通りに対して,K+1番目の ai
    を決めるためのルールを作る!!!
    状態を推移させる方法を1次元を例に説明する
    ちなみに,この8通りに対して,
    K+1番目の ai
    は0か1の2通りの選択ができるので,
    ルールの総数としては全256通り(28)になります!!

    View Slide

  4. ルールの総数としては全256通り(28)になりますが,
    んっっ!??
    となっている人も少なくないと思いますので,ちょっと細かく計算します
    具体的な数字を使ってルールを理解する!!
    例>ルール18の場合!
    ai |k+1 = f ( ai-1
    ɼ ai
    ɼ ai+1 ) |k
    ai-1, ai , ai+1 111 110 101 100 011 010 001 000
    ai 0 0 0 1 0 0 1 0
    K+1番目
    K番目
    具体的には,このようになります
    ルール18では,K+1番目のaiに関して,二進数で表記した18は,
    18 = 00010010
    このようになるので,それをk番目の状態とリンクさせます!
    ※ルールは256通りありますが,今回は18だけ!

    View Slide

  5. 具体的な数字を使ってルールを理解する!!
    例>ルール18の場合!
    ai-1, ai , ai+1
    111 110 101 100 011 010 001 000
    ai 0 0 0 1 0 0 1 0
    ルールの適応
    k番目の状態が,(000)なk+1番目の ai
    は0
    k番目の状態が,(001)なk+1番目の ai
    は1
    というように次の状態が決定される!
    これがルールだああああ!!!!
    ai-1, ai , ai+1 の状態

    View Slide

  6. 理解できましたか!?では,実際に計算に行きたいところだが,,,,
    セルオートマトンの計算に必要なこと
    ・モデルの決定(次元や,変数の決定)
    ・初期値の決定(最初のセルの状態, 0か1か)
    ・ルールの決定(変数に応じて限界がある)
    セルの状態が複雑に変化しますが,
    決してランダム的な要素はありません!!!
    これは全て決定論的に記述されるので,
    すごく面白いのです!

    しかし,その挙動は予測が非常に困難!

    View Slide

  7. ルール18で1次元オートマトン回しました!!
    k
    a
    初期状態 a0 ~ a256
    は任意で適当に回しました
    状態0 = 紫
    状態1 = 黄
    おしゃれな模様ですね

    View Slide

  8. ルール161で回すとシェルピンスキーのギャスケット!!!???
    k
    a
    初期状態 a0 ~ a256
    は任意で適当に回しました
    状態0 = 紫
    状態1 = 黄
    ルール161で回すと,
    シェルピンスキーのギャスケットが出るようです
    https://ja.wikipedia.org/wiki/シェルピンスキーのギャスケット
    wikiより
    フラクタル図形の1種であり、自己相似的な無数の三角形からなる図形
    この辺,
    わかりやすいかなあああ

    View Slide