CellularAutomaton
CellularAutomaton[rule,init,t]
セルオートマトンを指定した条件で初期条件 init から t ステップ実行した進化を表すリストを生成する.
CellularAutomaton[rule,init]
1ステップ分の init の進化の結果を返す.
CellularAutomaton[rule,init,{tspec,xspec,…}]
tspec,xspec 等で指定された進化の部分だけを返す.
CellularAutomaton[rule,init,{t,All,…}]
t ステップの間に影響を受けるであろうすべてのセルを各ステップに含む.
CellularAutomaton[rule]
進化の1ステップを表す,CellularAutomatonの演算子形である.
詳細
- rule の可能な形
-
n ,,ルール番号 n の初期ルール {n,k} k 色の一般的な最近傍ルール {n,k,r} k 色で範囲 r の一般ルール {n,k,{r1,r2,…,rd}} d 次元の近傍ルール {n,k,{{off1},{off2},…,{offs}}} 指定のオフセットの近傍ルール {n,k,rspec,s} s 次ルール {n,{k,1}} k 色の最近傍の総和型ルール {n,{k,1},r} k 色で範囲 r の総和型ルール {n,{k,{wt1,wt2,…}},rspec} 近傍 i に重み wtiが割り当てられているルール {lhs1->rhs1,lhs2->rhs2,…} 近傍のリストの明示的置換え {fun,{},rspec} 各近傍のリストに適用する一般関数 f bfun 近傍集合に適用するブール関数 CellularAutomaton[rule] 規則の演算子形 <"key1"val1,"key2"val2,… > 連想によるルール指定 "name" 名前付きルール - CellularAutomaton[{n,k},…]はCellularAutomaton[{n,{k,{k^2,k,1}}},…]に等しい.
- 次のキーを使って連想として与えられるルールを指定することができる.
-
"RuleNumber" n ルール番号 "TotalisticCode" n 総和型コード "OuterTotalisticCode" n 外部総和型コード "GrowthCases" {g1,g2,…} 近傍の giが1の時,セル1を作る "GrowthSurvivalCases" {{g1,…},{s1,…}} giの近傍は1で siについては変更しない "GrowthDecayCases" {{g1,…},{d1,…}} giの近傍は1で diについては0 "Dimension" d 全体的な次元 "Colors" k 色の数 "Range" r ルールの範囲 "Neighborhood" type 近傍タイプ - "GrowthCases"->{g1,g2,…}のとき,セルに1である gi近傍がある場合は,そのセルは値0から値1に変化する.それ以外の場合は,そのセルは前と同じままである.
- "GrowthSurvivalCases"->{{g1,…},{s1,…}}のとき,セルに1である gi近傍がある場合は,そのセルは値0から値1に変化し,1である si近傍がある場合は値1を保持する.それ以外の場合は値が0になる.
- "GrowthDeathCases"->{{g1,…},{d1,…}}のとき,セルに1である gi近傍がある場合は,値0から値1に変化する.1である di近傍がある場合は値0を得る.それ以外の場合は同じ状態に止まる.
- 次は,2Dにおける"Neighborhood"の可能な設定である.
-
5 または "VonNeumann" CrossMatrix[1] 9 または "Moore" BoxMatrix[1] - 次元 d のとき,"Neighborhood"は整数およびと同様に"VonNeumann"および"Moore"をサポートする.
- 次は,CellularAutomaton["name",…]として与えることのできる名前付きセルオートマトンルールである.
-
"Rule30" 30 "Rule90" 90 "Rule110" 110 "Code1599" {1599,{3,1}} "GameOfLife" {224,{2,{{2,2,2},{2,1,2},{2,2,2}}},{1,1}} - 二次元のセルオートマトンルールのよくある明示的一般形
-
{n,{k,1},{1,1}} 9近傍の総和型ルール {n,{k,{{0,1,0},{1,1,1},{0,1,0}}},{1,1}}5近傍の総和型ルール {n,{k,{{0,k,0},{k,1,k},{0,k,0}}},{1,1}}5近傍の外部総和型ルール - セルオートマトンの可能な規則の数は次の通りである.
-
初期ルール 256 一次元一般ルール 一次元総和型ルール 二次元一般ルール 二次元9近傍総和型ルール 二次元5近傍総和型ルール 二次元5近傍外部総和型ルール - 一般に,initと進化のリストの全要素はゼロからまでの整数である.
- 一般関数または置換えリストが用いられる場合は,init と進化のリストの要素は任意の式でよい. »
- 明示的な置換規則の lhsi->rhsiにはパターンが含まれている.
- 一次元セルオートマトンの場合,置換規則や明示的な関数 fun は常に近傍の一次元リストに適用されると解釈される.近傍が明示的なオフセットで指定されている場合,その近傍はオフセットの順に与えられる.
- 多次元セルオートマトンにおける近隣が{r1,r2,…}のような範囲指定で定義されている場合,近傍のリストは次元が2{r1,r2,…}+1の完全配列であると解釈される.
- 多次元セルオートマトンの近傍がオフセットの明示的なリストで指定されている場合,その近傍は一次元のリストにオフセットの順序で与えられる.
- 明示的な関数 fun が与えられた場合,この関数の第1引数は近傍のリストである.第2引数は0から始まるステップ数である.
- 完全なルール指定は,BooleanVariables[bfun]が整数 v を返す場合は,純ブール関数 bfun であるとみなされる.この場合,bfun は各ステップの v 個のセルの近傍に適用される.近傍は左側のCeiling[v/2]個のセルまで拡張される.
- {rule,kspec,rspec,s}で指定される s 次のセルオートマトンでは,各ステップが s 個前のステップに依存する.
- 初期条件は以下のように init によって設定される.
-
{a1,a2,…} 周期的であると考えられる,値 ai の明示的なリスト {{a1,a2,…},b} 背景 b に重ねられた値 ai {{a1,a2,…},{b1,b2,…}} b1, b2, …の反復である背景に重ねられた値 ai {{{{a11,a12,…},off1}, {{a21,…},off2},…},bspec} 背景上のオフセット offi の値 aij {{a11,a12,…},{a21,…},…} 二次元の値の明示的リスト {aspec,bspec} d 次元で d 次元のパディングを伴う値 - aspec の第1要素は,各座標で原点に対して正の方向に最初の位置で背景に重ねられる.つまり,bspec[[1,1,…]]はaspec[[1,1,…]]と並ぶことになる.
- CellularAutomaton[rule,init,t]は,長さの進化リストを生成する.
- s 次のセルオートマトンについては,init がシステムの進化における最初の s ステップを与えるリストである.
- {tspec,xspec,…}における時間指定 tspec は次のようにできる.
-
t 0から t までの全ステップ {t} t ステップしか含まないリスト {{t}} ステップ t のみ {t1,t2} t1 から t2 までのステップ {t1,t2,dt} ステップ t1, t1+dt, … - 初期条件はステップ0であると考えられる.
- CellularAutomaton[rule,init,{tspec}]は,xspec にデフォルトのAutomaticを使う.
- 空間指定 xspec は次のようにできる.
-
All 指定された初期条件に影響されるすべてのセル Automatic 領域内の背景と異なるすべてのセル 0 aspec の始めと並んでいるセル x 右側に最大 x のオフセットを持つセル -x 左側に最大 x のオフセットを持つセル {x} 右側に x のオフセットを持つセル {-x} 左側に最大 x のオフセットを持つセル {x1,x2} x1 から x2 までのオフセットを持つセル {x1,x2,dx} x1, x1+dx, …のセル - 一次元では aspec の最初の要素はデフォルトで空間オフセット0を持つとされる.
- 何次元であっても,aspec[[1,1,1,…]]はデフォルトで空間オフセット{0,0,0,…}を持つとされる.
- CellularAutomatonで作成される進化リストの各要素は常に同じサイズである.
- 幅 の aspec によって指定される初期条件により,領域 の規則を持つセルオートマトンの ステップ後に影響を受ける領域は幅 になる.
- 背景 bspec が指定されていなければ,AllとAutomatic空間オフセットは aspec にあるすべてのセルを含む.
- Allの空間オフセットは初期条件の影響を受けるすべてのセルを含む.
- Automaticの空間オフセットはセルオートマトンのパターンの側面から背景をカットするために使うことができる.
- どれくらいの領域を保持すればよいかを決める際,Automaticは offt で指定したステップの結果のみを使う.
- CellularAutomaton[rule][init]は,CellularAutomaton[rule,init]と等価である.
例題
すべて開くすべて閉じるスコープ (91)
一次元ルール (26)
連想で指定されたルール (5)
初期条件 (8)
最も左側のセルの左近傍は最も右側のセルであり,逆もまた真である:
SparseArrayを使って完全に循環的な初期条件を与える:
タイムステップ (6)
範囲指定 (11)
デフォルトで,CellularAutomatonはパターンでカバーされない範囲を自動的に削除する:
多次元ルール (13)
連想による多次元ルール指定 (8)
高階ルール (6)
関数バージョン (6)
アプリケーション (23)
2色で範囲が2の総和型コード20のセルオートマトンを一連の初期条件から示す:
異なる初期条件での3色で範囲が3の総和型コード1599の結果を示す:
ルール30の中央列のセルの値から「ランダム」ウォークを作成する:
連続する幅の循環的領域におけるルール90の繰返し周期を求める:
初期条件が1ビット異なる2つのセルオートマトンについて異なるパターンを生成する:
外部総和型2Dセルオートマトンを使って迷路のような模様を生成する:
5近傍外部総和型2Dセルオートマトンの進化のステップを示す:
ランダムな初期条件からの「ライフゲーム」,平均100ステップ:
特性と関係 (9)
考えられる問題 (7)
デフォルトでは,各進化のリストは必要な長さにしか作成されない:
{t,All}を使って,特定の型のすべての規則について同じ長さのリストを得る:
背景と異なるセルがない場合は,自動的に選ばれた範囲は常に空白となる:
代替となる背景を持つ規則は,0だけを含むリストを与えることができる:
進化が2ステップ続けられた場合は,1ステップの結果に明示的な1が含まれる:
{t,All}を使って一定の幅にする:
ArrayPlotで可視化すると,値1は黒く表示される:
RulePlotを使ってもとになっているルールに従って正しい色で表示する:
明示的なColorRulesを使ってもArrayPlotのデフォルトの問題を避けることができる:
RulePlotを使ってもとになっているルールを示す:
CellularAutomatonのセルとステップは,その部分番号によって番号を付けられる訳ではない:
テキスト
Wolfram Research (2002), CellularAutomaton, Wolfram言語関数, https://reference.wolfram.com/language/ref/CellularAutomaton.html (2017年に更新).
CMS
Wolfram Language. 2002. "CellularAutomaton." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/CellularAutomaton.html.
APA
Wolfram Language. (2002). CellularAutomaton. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CellularAutomaton.html