単純なプログラム
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/10/01 15:22 UTC 版)
「新しい種類の科学」の記事における「単純なプログラム」の解説
ウルフラムの「new kind of science(新しい種類の科学)」は基本的には、単純で抽象的な規則、主に初等コンピュータプログラムの研究である。ほとんどどのような計算システムにおいても、最も単純なものの中に大変複雑なものを見付けることができる。これはシステムのコンポーネントとその設定の詳細にかかわらず、真であるようだ。本書で探究されるシステムには、1次元、2次元、3次元のセルラーオートマトン、 移動オートマトン、1次元と2次元の チューリングマシン、さまざまな種類の置換とネットワークシステム、原始帰納的関数、ネストした帰納的関数、 コンビネータ、タグシステム、レジスタマシン、回文数等がある。単純なシステムとは以下の条件を満たすものである。 その操作を単純なグラフィックスによる例示で完全に説明できる。 自然言語であれば数文で完全に説明可能である。 プログラミング言語であれば数行のコードでコンピュータに実装できる。 可能な種類の数が少なく、すべて計算することができる。 単純なプログラムは、非常に単純で抽象的なフレームワークを持っていることが一般的である。単純なセルラー・オートマトン、チューリングマシン、コンビネータはそのようなフレームワークの例であるが、より複雑なセルラー・オートマトンは必ずしも単純なプログラムではあるとは限らない。新しいフレームワークを、特に自然のシステムの操作を捉えるために、発明することも可能である。単純なプログラムが素晴らしいのは、その大きな部分において、非常に複雑なものを作成することができる点である。プログラムのほとんどどのようなクラスでも可能な種類のものを列挙するだけで、予期しないようなおもしろいことを行う例をすぐに得ることができる。このことから、「プログラムがそのように単純なのであれば、複雑なものは一体どこから来たのだろう?」という疑問が出てくる。ある意味で、プログラムの定義には、プログラムで可能なことすべてを直接コード化するだけの十分なスペースはない。このため、単純なプログラムは、創発の最小の例と見なすことができる。この現象を論理的に考えると、プログラムのルールの詳細がその動作とほとんど直接関係しないのであれば、単純なプログラムを特定の動作を行うように直接仕向けることは非常に難しいと言える。もう1つの方法としては、単純で全体的な計算フレームワークを設計してから、力まかせ探索を可能なコンポーネントすべてに対して行い、最良のマッチを見付ける方法がある。 単純なプログラムで驚くべき範囲の動作が可能である。そのうちのいくつかは、汎用コンピュータであることが分かっている。熱力学の動作、 連続体力学の動作、保存量、パーコレーション、バタフライ効果等伝統的な科学で慣れ親しんだ特性を示すものもある.それらは、交通量、物質破壊、結晶成長, 生体成長、および社会学, 地質学、生態学の様々な現象をモデル化するのに使われている。単純なプログラムのもう1つの特徴は、本書によると、これらのプログラムをより複雑なものにしても、その全体的な複雑性にはほとんど影響しないということである。「NKS」は、このことが単純なプログラムでも殆どどのような複雑系の本質を捉えるのに十分である証拠だと主張している。
※この「単純なプログラム」の解説は、「新しい種類の科学」の解説の一部です。
「単純なプログラム」を含む「新しい種類の科学」の記事については、「新しい種類の科学」の概要を参照ください。
- 単純なプログラムのページへのリンク