この項目「ウルフラム・コード」は翻訳されたばかりのものです。不自然あるいは曖昧な表現などが含まれる可能性があり、このままでは読みづらいかもしれません。(原文:10:39, 9 February 2023
)ウルフラム・コード (英: Wolfram code) は、広く使用されている[1] 1次元のセル・オートマトン 規則の番号付けルールである。 この番号付けは、1983年の スティーブン・ウルフラム の論 [2] で導入され、彼の著書 A New Kind of Science.[3]で一般化された。 このコードは、オートマトンの各セルの新しい状態をその近傍の状態の関数として指定するテーブルが、@media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}S-進数[訳語疑問点] の k-桁の数字として解釈できるという観察に基づいている。ここで、 とする。従って、特定のルールのウルフラム・コードは、0 から SS2n + 1 − 1, の範囲 [注釈 2] であり、S-ary から10進数 表記に変換される。その計算は以下の通り: ウルフラム・コードは、近傍のサイズ・形状も、状態の数も指定していない。これらは、文脈から既知であると仮定されている。そのような文脈なしに使われて場合は、コードは基本的なセル・オートマトン
定義
S はオートマトンの各セルが持つことのできる状態の数、
k = S2n + 1 は近傍の状態の総数 [注釈 1]、
nは近傍の半径
セルの近傍 2n + 1 セル分の状態は、全部で S2n + 1 通りある。これをすべてリストする。
各状態 S 進数との数値として解釈し、数値の降順に並べ替える。
各状態について、繊維ルールに基づいて、次のイテレーションにおけるセルの状態を計算し、リストする。
得られた状態のリストを再び S 進数の数値として解釈し、この数を 10進数に変換する。この結果の10進数がウルフラム・コードである。
厳密には、有効範囲内のすべてのウルフラム・コードは異なる規則を定義しているが、これらの規則のいくつかは同型であり、通常は同値なものと見做される。たとえば、上記のルール 110 は、124、137、193 と同型であり、これらは元のルールから、左右反転と、状態の再番号付けによって取得できる。慣例では、そのような各同型クラスは、コード番号が最も小さいルールによって表される。ウルフラム表記、特に10進表記の欠点は、同型が他の表記法に比べて分かりにくくなることである。それにもかかわらず、ウルフラム・コードは、1次元セル・オートマトンを参照するデファクトスタンダードになっている。 ここでは 1 次元 2 状態 3 近傍 セルオートマトンの例を示す。 計算手順のステップ 1現在の状態111110101100011010001000 この表を二段目の「二進数として解釈 (ソート順)」に記載の数字が降順になるように各列を並び替える(この表ではすでに降順に並んでいるので、そのままでよい)。並び替えた後の表で、三段目の「中央のセルの次の状態」のデータを並べた 0,0,0,1,1,1,1,0 を 2進数 と解釈し、10進数に変換すると、30 である。従って、この規則はルール30と呼ばれる。 一般化して、D-次元空間で、近傍サイズが nであり、各セルの状態数が S でるようなセルオートマトンを考える。この時、可能なルールの総数は、R=SS(2n+1)D で与えられる。 もっとも一般的な例では S = 2, n = 1, D = 1 の場合で、ルールの総数は R = 256 となる。可能なルールの総数は、系の次元に大きく依存する。例えば、空間の次元 (D) を 1 から2 に増加させると、ルールの総数は、256 から 2512 に増加する (これはおよそ ~1.341×10154 である) 。
例
ステップ 2二進数として解釈 (ソート順)76543210
ステップ 3中央のセルの次の状態00011110
一般化セル・オートマトン
脚注[脚注の使い方]
注釈^ 近傍は自身を含めて 2n + 1 セル分。各セルは S 通りの状態があるので、近傍の状態の総数は S 種類の中から2n + 1 個選ぶ重複順列の総数になる
^ セル・オートマトンの遷移規則は、 2n + 1 セル分の状態を入力とし、1セル分の状態を返す関数である。この関数は、k 通りの入力に対して、S 個の状態のいずれかを対応させるものである。このような関数は、S 種類の中から(重複を許して) k 回選ぶ重複順列と対応しているので、Sk 通りのパターンがあり得る
参考文献^ Ceccherini-Silberstein, Tullio; Coornaert, Michel (2010). Cellular Automata and Groups