(57)【要約】【課題】ネットワークは入力・出力機能を実行する。ネットワークは１組のセルを備える。【解決手段】当該セルはそれぞれ全く同じ構造を有し、隣接するセルが互いに接続されてネットワークを形成する。各セルは、入力・出力機能を実行するように構成される１組の論理ユニットをさらに備え、当該論理ユニットはファクタ信号、セル間信号及び発生出力信号を出力し、ファクタ信号は同じセル内の１組の論理ユニットのための入力信号であり、セル間信号は、隣接するセル内の１組の論理ユニットのための入力信号であり、発生出力信号は発生事象を開始し、同じセル内の１組の論理ユニットのための発生事象後に、論理ユニットへの発生入力信号が設定され、各セル内の１組の論理ユニットの構造は全く同じである。【選択図】図１Ａ
2008269594.tif 000002
【特許請求の範囲】
【請求項１】
入力・出力機能を実行するためのネットワークであって、
１組のセルであって、前記セルはそれぞれ全く同じ構造を有し、隣接するセルが互いに接続されてネットワークを形成する１組のセルを備え、
前記セルはそれぞれ、前記入力・出力機能を実行するように構成される１組の論理ユニットをさらに備え、
前記論理ユニットはファクタ信号、セル間信号及び発生出力信号を出力し、前記ファクタ信号は同じセル内の前記１組の論理ユニットのための入力信号であり、前記セル間信号は前記隣接するセル内の前記１組の論理ユニットのための入力信号であり、前記発生出力信号は発生事象を開始し、同じセル内の前記１組の論理ユニットのための前記発生事象後に、前記論理ユニットへの発生入力信号が設定され、前記セルのそれぞれの中の前記１組の論理ユニットの構造は全く同じであることを特徴とする入力・出力機能を実行するためのネットワーク。
【請求項２】
発生段階中の前記ネットワークは最初に１つの初期セルを有し、前記発生事象は前記初期セルを複製することを特徴とする請求項１に記載の入力・出力機能を実行するためのネットワーク。
【請求項３】
前記ネットワークの前記セルは、前記発生段階中に、タイミング信号によって測定されるような所定の時間にわたって複製されることを特徴とする請求項２に記載の入力・出力機能を実行するためのネットワーク。
【請求項４】
前記ネットワークは、前記発生段階の終了時に静的にされることを特徴とする請求項３に記載の入力・出力機能を実行するためのネットワーク。
【請求項５】
前記静的ネットワークは、ハードウエアにおいて実行されることを特徴とする請求項４に記載の入力・出力機能を実行するためのネットワーク。
【請求項６】
前記静的ネットワークは、ソフトウエアにおいて実行されることを特徴とする請求項４に記載の入力・出力機能を実行するためのネットワーク。
【請求項７】
前記発生段階中に、前記ネットワークの前記セルは、複数のセルから成る別のネットワークに接続されることを特徴とする請求項４に記載の入力・出力機能を実行するためのネットワーク。
【請求項８】
前記入力・出力機能を実行するための適応度を試験するための手段をさらに備えることを特徴とする請求項４に記載の入力・出力機能を実行するためのネットワーク。
【請求項９】
前記ネットワークはメモリの形をとり、前記入力・出力機能は前記メモリにランダムにアクセスすることを特徴とする請求項１に記載の入力・出力機能を実行するためのネットワーク。
【請求項１０】
前記初期セルの構造、前記１組のセルのための全ての入力信号、及び前記初期セルを複製して前記静的ネットワークを形成するための規則を完全に指定するように構成されるプログラムをさらに備えることを特徴とする請求項４に記載の入力・出力機能を実行するためのネットワーク。
【請求項１１】
前記発生段階をシミュレートするための手段をさらに備えることを特徴とする請求項２に記載の入力・出力機能を実行するためのネットワーク。
【請求項１２】
前記論理ユニットはそれぞれ既知の遅延を有することを特徴とする請求項１に記載の入力・出力機能を実行するためのネットワーク。
【請求項１３】
前記発生事象は、セル複製、セル再編成及びセル除去を含むことを特徴とする請求項１に記載の入力・出力機能を実行するためのネットワーク。
【請求項１４】
前記複製は、全く同じ親セルと、前記親セルに接続される全く同じ子セルとを生成することを特徴とする請求項２に記載の入力・出力機能を実行するためのネットワーク。
【請求項１５】
前記複製によって１組のネットワークが生成され、前記ネットワークは、
前記ネットワークのそれぞれの前記適応度を測定すると共に、適応度が高い特定のネットワークを前記静的ネットワークとして選択するための手段をさらに備えることを特徴とする請求項８に記載の入力・出力機能を実行するためのネットワーク。
【請求項１６】
前記ネットワークの動作を同期させるように構成されるクロックをさらに備えることを特徴とする請求項１に記載の入力・出力機能を実行するためのネットワーク。
【請求項１７】
前記ネットワークの動作は非同期であることを特徴とする請求項１に記載の入力・出力機能を実行するためのネットワーク。
【請求項１８】
前記プログラムは、前記ネットワークをシミュレートするために必要とされる全ての情報を含むことを特徴とする請求項１０に記載の入力・出力機能を実行するためのネットワーク。
【請求項１９】
前記プログラムは、複数の論理ユニットが全く同じ出力信号を生成するときに用いられる調停関数を指定することを特徴とする請求項１０に記載の入力・出力機能を実行するためのネットワーク。
【請求項２０】
前記プログラムは、複数の隣接するセルが全く同じセル間信号を別のセルに送信するときに用いられる調停関数を指定することを特徴とする請求項１０に記載の入力・出力機能を実行するためのネットワーク。
【請求項２１】
入力・出力機能を実行するためのネットワークを生成するためのコンピュータによって実行される方法であって、
１組のセルを生成するステップであって、前記セルはそれぞれ全く同じ構造を有し、隣接するセルが互いに接続されてネットワークを形成する１組のセルを生成するステップを含み、
前記１組のセルを生成するステップは、
前記入力・出力機能を実行するように構成される１組の論理ユニットを生成するステップをさらに含み、
前記論理ユニットはファクタ信号、セル間信号及び発生出力信号を出力し、前記ファクタ信号は同じセル内の前記１組の論理ユニットのための入力信号であり、前記セル間信号は前記隣接するセル内の前記１組の論理ユニットのための入力信号であり、前記発生出力信号は発生事象を開始し、同じセル内の前記１組の論理ユニットのための前記発生事象後に、前記論理ユニットへの発生入力信号が設定され、前記セルのそれぞれの中の前記１組の論理ユニットの構造は全く同じであることを特徴とするネットワークを生成するためのコンピュータによって実行される方法。
【請求項２２】
発生段階中の前記ネットワークは最初に１つの初期セルを有し、前記発生事象は前記初期セルを複製することを特徴とする請求項２１に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項２３】
前記ネットワークの前記セルは、前記発生段階中に、タイミング信号によって測定されるような所定の時間にわたって複製されることを特徴とする請求項２２に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項２４】
前記ネットワークは、前記発生段階の終了時に静的にされることを特徴とする請求項２３に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項２５】
前記静的ネットワークは、ハードウエアにおいて実行されることを特徴とする請求項２４に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項２６】
前記静的ネットワークは、ソフトウエアにおいて実行されることを特徴とする請求項２４に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項２７】
前記発生段階中に、前記ネットワークは、複数のセルから成る別のネットワークに接続されることを特徴とする請求項２４に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項２８】
前記入力・出力機能を実行するための適応度を試験するステップをさらに含むことを特徴とする請求項２４に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項２９】
前記ネットワークはメモリの形をとり、前記入力・出力機能は前記メモリにランダムにアクセスすることを特徴とする請求項２１に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項３０】
前記初期セルの構造、前記１組のセルのための全ての入力信号、及び前記初期セルを複製して前記静的ネットワークを形成するための規則を完全に指定するプログラムを構成するステップをさらに含むことを特徴とする請求項２４に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項３１】
前記発生段階をソフトウエアによってシミュレートするステップをさらに含むことを特徴とする請求項２２に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項３２】
前記論理ユニットはそれぞれ既知の遅延を有することを特徴とする請求項２１に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項３３】
前記発生事象は、セル複製、セル再編成及びセル除去を含むことを特徴とする請求項２１に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項３４】
前記複製は、全く同じ親セルと、前記親セルに接続される全く同じ子セルとを生成することを特徴とする請求項２２に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項３５】
前記複製によって１組のネットワークが生成され、前記方法は、
前記ネットワークのそれぞれの前記適応度を測定すると共に、適応度が高い特定のネットワークを前記静的ネットワークとして選択するステップをさらに含むことを特徴とする請求項２８に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項３６】
前記ネットワークの動作を同期させるステップをさらに含むことを特徴とする請求項２１に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項３７】
前記ネットワークの動作は非同期であることを特徴とする請求項２１に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項３８】
前記プログラムは、前記ネットワークをシミュレートするために必要とされる全ての情報を含むことを特徴とする請求項３０に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項３９】
前記プログラムは、複数の論理ユニットが全く同じ出力信号を生成するときに用いられる調停関数を指定することを特徴とする請求項３０に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項４０】
前記論理ユニットへの入力信号及び前記論理ユニットからの出力信号は、デジタル信号であることを特徴とする請求項２１に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項４１】
前記論理ユニットへの入力信号及び前記論理ユニットからの出力信号は、アナログ信号であることを特徴とする請求項２１に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項４２】
前記論理ユニットへの入力信号及び前記論理ユニットからの出力信号は、デジタル信号及びアナログ信号を含むことを特徴とする請求項２１に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項４３】
前記論理ユニットへの入力信号及び前記論理ユニットからの出力信号はデジタル信号であり、前記デジタル信号のための前記調停関数はＯＲ関数であることを特徴とする請求項３９に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項４４】
前記論理ユニットへの入力信号及び前記論理ユニットからの出力信号は、デジタル信号及びアナログ信号を含み、前記デジタル信号のための前記調停関数はＯＲ関数であり、前記アナログ信号のための前記調停関数は加法関数であることを特徴とする請求項３９に記載のネットワークを生成するためのコンピュータによって実行される方法。
【請求項４５】
前記論理ユニットへの入力信号及び前記論理ユニットからの出力信号は、デジタル信号及びアナログ信号を含み、前記デジタル信号のための前記調停関数はＯＲ関数であり、前記アナログ信号のための前記調停関数はソフトＯＲ関数であることを特徴とする請求項３９に記載のネットワークを生成するためのコンピュータによって実行される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的には論理回路に関し、より具体的には、マルチセル型ネットワークとして編成される論理回路に関する。
【背景技術】
【０００２】
自然進化及び人工進化
大規模なアナログ論理回路又はデジタル論理回路の設計は、非常に複雑な作業であることがある。さらに複雑な人工機械を設計しようするとき、植物及び動物のような複雑な自然の「機械」が作り出される原理を理解することは、時間を費やすだけの価値がある。
【０００３】
自然の生物は、無計画で成り行き任せの進化の過程によって「設計」されていると一般には理解されている。進化に関する従来の説明では、生物の集団が、淘汰を通じて、その環境への適応性を次第に高めていき、その集団の中の最も適合する生物が、他の生物よりも迅速に繁殖するようになる。人間は、何世紀にもわたって、家畜の繁殖、及び有用な植物の栽培等の、自然生物の人工的な淘汰を利用している。
【０００４】
最近になって、Ｊｏｈｎ  Ｈｏｌｌａｎｄの仕事を始めとして、「遺伝的アルゴリズム」として知られている人工的な進化の形を用いて機械又はコンピュータプログラムを設計することに大きな関心が寄せられている。遺伝的アルゴリズムは、人工的な進化の過程の詳細に応じて、及び進化させられるシステムの構造にも応じて、多数の異なる形態をとる。Ｊｏｈｎ  Ｈｅｎｒｙ  Ｈｏｌｌａｎｄ著「Ａ  ｕｎｉｖｅｒｓａｌ  ｃｏｍｐｕｔｅｒ  ｃａｐａｂｌｅ  ｏｆ  ｅｘｅｃｕｔｉｎｇ  ａｎ  ａｒｂｉｔｒａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｓｕｂｐｒｏｇｒａｍｓ  ｓｉｍｕｌｔａｎｅｏｕｓｌｙ」（Ｐｒｏｃ．Ｅａｓｔｅｒｎ  Ｊｏｉｎｔ  Ｃｏｍｐ．Ｃｏｎｆ．ｐｐ．１０８−１１２，１９５９）、Ｊｏｈｎ  Ｈｅｎｒｙ  Ｈｏｌｌａｎｄ著「Ｉｔｅｒａｔｉｖｅ  ｃｉｒｃｕｉｔ  ｃｏｍｐｕｔｅｒｓ」（Ｐｒｏｃ．Ｗｅｓｔｅｒｎ  Ｊｏｉｎｔ  Ｃｏｍｐ．Ｃｏｎｆ．ｐｐ．２５９−２６５，１９６０）、及び１９８７年９月２９日にＨｏｌｌａｎｄ他に対して発行された「Ａｄａｐｔｉｖｅ  ｃｏｍｐｕｔｉｎｇ  ｓｙｓｔｅｍ  ｃａｐａｂｌｅ  ｏｆ  ｌｅａｒｎｉｎｇ  ａｎｄ  ｄｉｓｃｏｖｅｒｙ」と題する米国特許第４，６９７，２４２号を参照されたい。
【０００５】
Ｊｏｈｎ  Ｋｏｚａは、長年にわたって、遺伝的アルゴリズムの最も重要な変形形態のうちの１つを提唱しており、それを「遺伝的プログラミング」と呼んでいる。遺伝的プログラミングでは、典型的にはＬｉｓｐで書かれるコンピュータプログラムが、人工的な進化の過程を通じて進化し、その過程は、そのプログラムを表現する計算木の小枝を変更することによって、プログラムを「突然変異」させることを伴う。１９９０年６月１９日にＫｏｚａに対して発行された「Ｎｏｎ−ｌｉｎｅａｒ  ｇｅｎｅｔｉｃ  ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  ｓｏｌｖｉｎｇ  ｐｒｏｂｌｅｍｓ」と題する米国特許第４，９３５，８７７号、及び２００２年３月１９日にＫｏｚａ他に対して発行された「Ｍｅｔｈｏｄ  ａｎｄ  ａｐｐａｒａｔｕｓ  ｆｏｒ  ａｕｔｏｍａｔｅｄ  ｄｅｓｉｇｎ  ｏｆ  ｃｏｍｐｌｅｘ  ｓｔｒｕｃｔｕｒｅｓ  ｕｓｉｎｇ  ｇｅｎｅｔｉｃ  ｐｒｏｇｒａｍｍｉｎｇ」と題する米国特許第６，３６０，１９１号を参照されたい。
【０００６】
遺伝的プログラミング及び遺伝的アルゴリズムはより一般的には、興味深く、有用なシステム及びプログラムを作り出すのに或る程度成功を収めてきた。しかしながら、最新の遺伝的アルゴリズムを用いても、どの問題を解くことができ、どの問題を解くことができないかを精確に特定するのは難しいため、現在の形式の遺伝的アルゴリズムは、これまでのソフトウエア及びハードウエア設計方法に取って代わるものとして広く普及してはいない。
【０００７】
多細胞生物
多細胞生物は進化の過程を用いて設計されるという事実に加えて、複雑な植物及び動物には、それらの動植物の全ての生命が単細胞から始まり、細胞分裂を通じて複雑な発生過程を経て成長し、成体になるという別の共通の特徴がある。
【０００８】
典型的には、成熟した多細胞生物には多数の異なる細胞タイプがあるが、精細胞及び卵細胞を除いて、生物の異なる細胞は全て、そのＤＮＡでは全く同じ遺伝的仕様を共有する。全く同じ遺伝的仕様でも細胞の挙動が異なるのは、細胞が異なる歴史を有し、異なる環境に晒された結果である。
【０００９】
より具体的には、生体細胞の挙動は複雑な遺伝的調節機構によって制御され、その調節機構が、どの遺伝子がメッセンジャーＲＮＡに転写され、その後、タンパク質にされるかを決定する。１つの極めて重要な調節機構は、遺伝子のタンパク質コード領域の上流にあるＤＮＡ調節領域に結合し、ＤＮＡからＲＮＡへの転写の促進及び抑制に関与する「転写因子」と呼ばれるタンパク質である。２つの細胞の歴史が異なる結果として、一方が高い濃度の特定の転写因子を有し、他方が低い濃度を有することがあり、それにより、２つの細胞は、全く同じＤＮＡを有する場合であっても、異なる遺伝子を発現することになるであろう。
【００１０】
多細胞生物内の異なるタイプの細胞の差別的な発生を制御する別の重要な機構は、細胞間で行われる生物学的なシグナル伝達である。ホルモンのようなシグナルは、或る細胞を特定の発生経路に誘導するという効果がある。
【００１１】
一般的に、転写因子、ホルモン及び生体細胞内で用いられる多数の他の制御機構はネットワークとして組織化され、そのネットワークは「回路」として表すことができ、その場合に、そのシステムの状態は、異なる生化学的成分の濃度によって特徴付けられる。実際には、生物学者は、生物学的な回路を要約するのを助けるために、配線図を作成し始めている。たとえば、Ｌｏｎｇａｂａｕｇｈ，Ｗ．Ｊ．Ｒ．、Ｄａｖｉｄｓｏｎ，Ｅ．Ｈ．及びＢｏｌｏｕｒｉ，Ｈ．著「Ｃｏｍｐｕｔａｔｉｏｎａｌ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｏｆ  ｄｅｖｅｌｏｐｍｅｎｔａｌ  ｇｅｎｅｔｉｃ  ｒｅｇｕｌａｔｏｒｙ  ｎｅｔｗｏｒｋｓ」（Ｄｅｖ．Ｂｉｏｌ．２８３，１−１６，２００５）を参照されたい。
【００１２】
多細胞生物の設計における理論的な見通し
進化を用いて生物を設計するという観点から、多細胞生物内の全ての細胞のために全く同じ遺伝的仕様を用いることに、何か理論的な利点があるかという疑問が自然に浮かぶ。
【００１３】
１つの考えられる利点は、生物の遺伝的仕様に比較的小さな変化があると、生物の発生中の多数の異なる時点において、多数の異なる種類の細胞の挙動が同時に変化することができることである。それゆえ、細胞を制御する回路に対して有利な変化を引き起こす可能性がある場合には、その変化に一度だけ気が付けば、多数の時点でその変化を利用することができ、生物内の細胞毎に同じ有利な突然変異を繰返し見つける必要はない。
【００１４】
考えられる別の関連する利点は、非常に複雑な生物の仕様を比較的コンパクトに定めることができることである。ヒトのような複雑な生物内にある何兆もの細胞の仕様を別個に定めなければならないとすると、ヒトゲノムを記述するために必要とされる全情報量は、何兆倍にも増えるであろう。多数の異なるタイプの細胞において全く同じ回路を再利用することが、はるかに効率的であるのは明らかである。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
他方、生物内の各細胞が全く同じ遺伝的仕様を共有しなければならないという制約によって、設計の観点から、厄介な問題が生じるのも明らかである。たとえば、発生の或る時点で１つのタイプの細胞において機能するように設計される遺伝子が、発生の異なる時点で異なるタイプの細胞において問題を引き起こさないことが重要である。多細胞生物が適切に機能するには、遺伝子をオン及びオフする制御論理を良好に設計することが不可欠であるのは明らかである。
【課題を解決するための手段】
【００１６】
ネットワークは入力・出力機能を実行する。ネットワークは１組のセルを備える。当該セルはそれぞれ全く同じ構造を有し、隣接するセルが互いに接続されてネットワークを形成する。
【００１７】
各セルは、入力・出力機能を実行するように構成される１組の論理ユニットをさらに備え、当該論理ユニットはファクタ信号、セル間信号及び発生出力信号を出力し、ファクタ信号は同じセル内の１組の論理ユニットのための入力信号であり、セル間信号は隣接するセル内の１組の論理ユニットのための入力信号であり、発生出力信号は発生事象を開始し、同じセル内の１組の論理ユニットのための発生事象後に、論理ユニットへの発生入力信号が設定され、各セル内の１組の論理ユニットの構造は全く同じである。
【発明の効果】
【００１８】
情報処理デバイスの論理は、その実施態様の詳細から切り離すことができることは既知である。たとえば、コンピュータは、回転する歯車、メカニカルリレー、真空管、トランジスタ又は集積回路を用いて実装することができる。重要なことは、その根底にある論理の規則であり、すなわち、その論理を表現するためにどの特定の技術が用いられるかではなく、そのシステムの論理状態がいかに更新及び格納されるかということである。
【００１９】
それゆえ、生化学を用いて「実装される」ことが明らかである生物有機体の多細胞設計の利点は、従来のハードウエア又はソフトウエアを用いて実装されるシステムのための論理回路設計に移し変えることができることも理に適っているように思われる。
【００２０】
詳細には、各セル（ｃｅｌｌ細胞）が全く同じ仕様を共有する多数の処理セルを用いる論理回路を設計することによって、大きな利点が得られるものと予測される。第一に、莫大な数のセルを含む非常に複雑な回路の仕様をコンパクトに定めることができる。第二に、システム内の異なるセル毎に有利な突然変異を繰返し「発見し直す」ことなく、遺伝的アルゴリズムを利用することができる。
【発明を実施するための最良の形態】
【００２１】
図１Ａは、本発明の一実施形態による入力・出力機能を実行するためのマルチセル（ｍｕｌｔｉ−ｃｅｌｌｕｌａｒ：多細胞）型回路を示す。その回路は１組の全く同じセル１１０を備え、隣接するセルが互いに接続されて、ネットワーク１００が形成される。その組は、１つ又は複数のセルを含むことができる。各セルは、入力・出力機能を実行するネットワークのための処理ノードである。
【００２２】
図１Ｂは、複数のセルから成るネットワークを生成するための方法１５０を示す。その方法は、動的段階又は発生段階１５１と、試験段階１５２と、静的段階１５３とを含む。発生段階中に、或る発生方法を用いて、ネットワークを生成する。その発生方法は、そのネットワークが「静的に」なるまで、ネットワークの発生をシミュレートするソフトウエアプログラムの形をとることができる。
【００２３】
試験段階は、ネットワークが入力・出力機能を実行するための「適応度」を測定する。静的ネットワークは、ハードウエア若しくはソフトウエア、又はそれらの組み合わせの形をとることができる。そのような複数のセルから成る静的ネットワークは、ランダムアクセスメモリ（ＲＡＭ）又は演算論理装置（ＡＬＵ）のような十分に確立されている論理回路を実現することができる。また、複数のセルから成る静的ネットワークは、音声処理又は画像処理において用いられるような、さらに複雑な、又は曖昧な機能を実現することもできる。
【００２４】
そのネットワークには「プログラム」１４０が関連付けられる。そのプログラムは、初期セルの構造と、初期の単一セルから、全く同じセルから成る静的ネットワークを発生させるための全ての規則とを完全に指定することができる。そのプログラムは実効的には、生物内のＤＮＡと論理的に等価である。そのプログラムによって、単一の初期セルが自らを複製する。
【００２５】
単一セルから静的ネットワークを生成する方法は、そのネットワークの「発生方法」である。その方法は、複数のセルから成る動的な、成長するネットワークを伴うため、その発生方法は通常、ソフトウエアによって実行される。しかしながら、複数のセルから成る最終的な静的ネットワークは、ソフトウエア又はハードウエアのいずれかにおいて実現することができる。
【００２６】
図２に示されるように、初期化されたネットワーク内の各セルは１組の「論理ユニット」１２０を含み、その論理ユニットはプログラム１４０によって完全に指定される。１組には、１つ又は複数の論理ユニットが含まれることがある。各論理ユニットは、一定の入力・出力機能を実施し、それにより、それぞれが既知の遅延を伴って、１組の入力信号から１組の出力信号が求められる。１組の論理ユニットの構造はセル毎に全く同じである。
【００２７】
図２に示されるように、セル内の１組の論理ユニット１２０によって求められる１組の出力信号は一般的には、３つのクラスに分割される。第１のクラスの出力信号は、「ファクタ信号」１０１と呼ばれる。ファクタ信号は、同じセル内の論理ユニット１２０のための入力信号として用いられる。第２のクラスの出力信号は、「セル間信号」１０２と呼ばれる。セル間信号は、隣接するセル内の論理ユニットのための入力信号として用いられる。第３のクラスの出力信号は、「発生出力信号」１０３と呼ばれ、セル複製事象、セル再編成事象又はセル除去事象のような「発生事象」を開始するために用いられる。他の発生事象も起こり得る。一般的に、発生事象は、ネットワーク１００を再構築することを含む。
【００２８】
「発生入力信号」１０４というクラスも存在し、それは、発生事象後に設定される信号である。発生入力信号１０４は、同じセル内の論理ユニットのための入力信号として用いられる。
【００２９】
図３に示されるように、初期ネットワークは単一の初期セル１１０である。そのネットワークは、入力信号の全ての値をプログラム１４０によって指定された値に設定することによって初期化される。その初期ネットワークはおそらく、その初期セルにセル間信号１０２を送信する複数の他の処理ノードから成る「環境」内に配置することができるか、又はその初期セルは外部信号から切り離される。その後、単一セル内の論理ユニットは、プログラム１４０の規則に従って更新を開始する。
【００３０】
セル複製事象がトリガされると、２つのセル３０１が生成され、既存の単一セルに取って代わる。新たなセルのうちの一方は、「親」セル３１１と呼ばれ、他方は、「子」セル３１２と呼ばれる。親セル及び子セルは隣接しており、互いに接続される。また、それらのセルは、元の複製されるセルから生成される隣接セルのいくつかのサブセットの中の１組の隣接セルである。
【００３１】
親セル及び子セルはそれぞれ、複製前の元のセルと厳密に同じ論理ユニットを含む。出力信号値及び入力信号値の大部分も、元のセル内のそれらの値と全く同じ値に設定されるが、１組の発生入力信号１０４を、親セル及び子セルの中で異なる値に設定して、複製事象が生じたという事実を指示することができるか、又は親セルと子セルとを区別することができるか、又はそれ以外の方法でセル複製事象についての情報を記録することができる。セル複製事象が終了した後に、複数のセルから成るネットワークが発生し続け（３０２〜３０４）、その場合も、各セルは、その論理ユニットの自らの複製の規則に従う。
【００３２】
セル除去事象及びセル再編成事象も同じように機能するが、セル複製とは異なり、トリガされると、セルを異なる隣接セルに接続することによって、そのセルがネットワーク内で除去されるか、又は再編成され、その隣接セルが異なる構造を採用するように再編成されることがある。
【００３３】
プログラムによって指定され、「発生の終了点」１５５と呼ばれる或る時点において、複数のセルから成るネットワークが静的になる（３０５）。セル複製、セル除去、又はセル再編成のような、それ以降の全ての発生事象は禁止される。その時点で、複数のセルから成る静的ネットワークが試験される（１５２）。そのネットワークを試験するために、プログラムによって指定されるように、１組の「入力ノード」４０１及び１組の「出力ノード」４０２が、図４に示されるように予め指定された位置においてネットワークに取り付けられる。ノードの各組は、１つ又は複数のノードを含むことができる。入力ノードは、セル間信号をネットワークの中に送信するために用いられ、一方、出力ノードは、ネットワークからセル間信号を収集するために用いられる。
【００３４】
静的ネットワークは、試験中にネットワークが入力・出力機能をいかに良好に実行するかによって、また、おそらくはネットワークがどのくらいの量の計算資源を使用するか、たとえばどのくらいの量の論理ユニット及び信号を使用するかによって、「適応度」値を割り当てられる。適応度に応じて、ネットワークを、最終的なネットワークとして受け入れることができるか、又はネットワークを再び発生させることができる。熟練したプログラマであれば、ネットワークを手作業でプログラムし直すことができる。別法では、再プログラミングは、ランダム化された最適化過程を用いることができ、その過程は、既存のネットワークのためのプログラムを変更し、変更されたネットワークのための発生段階をシミュレートすることによって１組のネットワークを生成し、その後、適応度が高い特定のネットワークを求めて１組のネットワークを探索する。別の代替形態として、ネットワークの集団において、遺伝的アルゴリズムを用いて、適応度が高いネットワークを探索することができる。
【００３５】
その方法によって生成されるネットワーク
その方法の目標は、所望の入力・出力機能を実現する複数のセルから成る静的ネットワークを生成することである。入力及び出力は、デジタル信号若しくはアナログ信号、又はそれらの或る組み合わせを含むことができる。ネットワークの出力とその入力との関係は、ネットワークの状態に依存することがあり、その状態は複数の入力のこれまでの履歴によって影響を及ぼされる。
【００３６】
図１は、複数のセルから成る静的ネットワークの全体的な構造を示す。そのネットワークは、信号を送信及び受信することによって隣接セルと通信する複数のセルを含む。いくつかのセルは、ネットワークの外部からの信号も受信し、一方、それらのセルの別の部分は、そのネットワークから外部に信号を送信する。上述のように、目標は、ネットワークからの出力信号がネットワークへの入力信号と何らかの対応関係を有し、各セルが全く同じ論理回路を含む、ネットワークを構築することである。
【００３７】
従来の最新のデジタル回路において一般的に行われるように、そのネットワークの動作をタイミング信号１３０によって同期させて、入力信号及び出力信号が不連続な単位時間においてのみサンプリングされるようにすることができる。そのようなネットワーク内のセルを同期したままにするために、通常、それらのセルをグローバルクロック１３５に接続することができる。別法では、そのネットワークは、任意の遅延で機能しているセル内の論理ユニットによって非同期とすることができる。非同期のネットワークでは、グローバル同期を全く用いることなく、それらのセルが分散形式で機能することができる。
【００３８】
ＲＡＭネットワーク
図５は、ネットワーク５００がランダムアクセスメモリ（ＲＡＭ）として機能する一例の応用形態を示す。この例では、全ての入力及び出力が２値であり、その時間は、クロック１３５によって測定されるような、不連続なクロックサイクル単位で測定される。ネットワーク５００のセル内の論理ユニットの具体的な詳細は、後に詳細に説明する。
【００３９】
ＲＡＭネットワークは３つの入力信号、すなわち入力データ５０１、アドレス５０２、制御５０３と、１つの出力信号と、出力データ５０４とを有する。一般的に、データ及びアドレスは或るビット数を有する。たとえば、それぞれが１６ビットを有する場合には、ＲＡＭは、２１６＝６５５３６の異なる１６ビットデータワードを格納することができる。この説明を簡単にしておくために、ＲＡＭ５００は、データ及びアドレスのいずれの場合にも１ビット「ワード」を使用することにし、それは、ＲＡＭが２つの１ビットワードを格納することを意味する。制御５０３は、「読出し」動作又は「書込み」動作を指示する。
【００４０】
したがって、その一例のＲＡＭネットワークは、３つの入力ビットと、１つの出力ビットとを有する。本明細書では、入力ビット５０１はラベルＩｎを付され、アドレスビット５０２はラベルＡｄｄｒｅｓｓを付され、制御ビット５０３はラベルＣｏｎｔｒｏｌを付され、出力ビット５０４はラベルＯｕｔを付される。また本明細書では、変数Ｒｅｇ０５１０及びＲｅｇ１５１１が使用され、それは、０に初期化される１ビットレジスタ変数としての役割を果たす。レジスタ変数を用いて、ＲＡＭネットワーク５００の入力・出力機能が記述される。
【００４１】
アドレスビットに対応するレジスタは、制御ビットが１である場合に限って書き込まれる。たとえば、Ｃｏｎｔｒｏｌ（ｔ）＝１であり、Ａｄｄｒｅｓｓ（ｔ）＝０である場合には、Ｒｅｇ０（ｔ）＝Ｉｎ（ｔ）である。制御ビットが０である場合には、それらのレジスタは単に、その以前の状態を維持する。その際、時刻ｔ＋１における出力Ｏｕｔ（ｔ＋１）は、時刻ｔにおけるアドレスＡｄｄｒｅｓｓ（ｔ）に対応するレジスタの値によって与えられる。たとえば、Ａｄｄｒｅｓｓ（ｔ）＝１である場合には、Ｏｕｔ（ｔ＋１）＝Ｒｅｇ１（ｔ）である。
【００４２】
その一例のＲＡＭネットワークの入力・出力機能は完全に従来どおりであることは理解されたい。本発明の新規性は、ネットワークの任意の特定の所望の入力・出力機能においては明らかではなく、ネットワークが構築される方法において、及び入力・出力機能を満たし、複数の論理ユニットから成る相互接続される全く同じセルだけを含む、ネットワークの最終的な形において明らかになる。
【００４３】
所望の入力・出力機能は、或る形のメモリに記録されるようなネットワークの内部状態によって決定することができることに注目されたい。本発明の例では、その内部状態はレジスタ変数に記録され、出力は、内部状態及び入力ビットによって決定される。
【００４４】
単一セルの仕様
そのネットワークは最初に、単一のセルと、ネットワークをシミュレートするのに不可欠な任意の他の情報と共に、そのセル内の全ての論理ユニット１１０の仕様を定めるプログラム１４０とを有する。
【００４５】
図２は単一のセルを示しており、そのセルは１組の論理ユニットを含む。論理ユニットは、おそらく０入力信号を含む、或る一定の整数の入力信号を受信し、それらの入力信号から出力信号を求める。一例として、或る論理ユニットが２つの入力信号Ｓ１及びＳ２をとり、出力信号Ｓ３を求めるものと仮定する。その出力信号は、所与の遅延後の入力信号の或る関数である：Ｓ３（ｔ＋Δ）＝ｆ（Ｓ１（ｔ），Ｓ２（ｔ））。この形の関数を用いて、複数の入力信号から全ての出力信号が求められる。
【００４６】
ネットワークの動作がクロックによって同期する場合には、遅延は通常、１単位時間又は０単位時間のいずれかである。論理ユニットのうちのいくつかが０単位時間である遅延を有する場合には、プログラム１４０は、０遅延論理ユニットだけを含むあらゆるフィードバックループを避けるように設計される。
【００４７】
２値信号だけが用いられる場合には、全ての信号値が論理０又は論理１であり、それらの関数は、ＡＮＤ関数、ＯＲ関数、排他的論理和ＸＯＲ関数、又は真理値表を用いて指定することができる他の論理関数のような従来の論理関数に対応する。
【００４８】
取り得る値の連続した範囲を有するアナログ信号を用いることができ、さらには、限られた１組の取り得る値を有する量子化された信号を用いることもできる。論理ユニットの入力信号及び出力信号は、２値信号、量子化された信号及びアナログ信号が任意に混合したものとすることができる。
【００４９】
異なるタイプの信号
３つの異なるタイプの信号が用いられる。第１のタイプは、「ファクタ信号」１０１と呼ばれ、セル内の出力信号として求められ、その後、同じセル内の論理ユニットのための入力信号として用いられる。第２のタイプは、「セル間信号」１０２と呼ばれ、セル内の出力信号として求められ、異なるセル内の論理ユニットのための入力信号として用いられる。第３のタイプの信号は、「発生信号」１０３である。出力発生信号は、他の論理ユニットのための入力としての役割を直接果たすのではなく、代わりに、セル複製、セル除去又はセル再編成のような発生事象をトリガするために用いられる。入力発生信号１０４は、セル発生事象が発生した後に設定され、同じセル内の論理ユニットのための入力信号として用いられる。
【００５０】
２つ以上の論理ユニットが同じ出力信号を求めることが起こり得る。これが起こる場合には、その出力信号のための値は、異なる論理ユニットによって求められる異なる可能性がある値間で調停されなければならない。その調停は、各論理ユニットにおいて求められる値の所定の関数を用いて果たされる。
【００５１】
信号が全て２値である場合には、所定の調停関数は、論理ＯＲ関数とすることができ、結果として、論理ユニットのうちのいずれか１つがその出力信号のために１の値を出力する場合には、その出力信号は１になる。それらの信号が連続した値を有する場合には、使用される調停関数は、同じラベルを共有する出力信号の値の単なる加法とすることができるか、又はＯＲ関数を連続した値に拡張するソフトＯＲ関数のような、さらに複雑な或る関数を用いることができる。ソフトＯＲ関数の一例として、２つの信号ｘ１及びｘ２が連続であり、範囲［０．０，１．０］に限定される場合には、ソフトＯＲ関数ｆｓｏｆｔ−ＯＲは、ｆｓｏｆｔ−ＯＲ（ｘ１，ｘ２）＝ｘ１＋ｘ２−ｘ１ｘ２とすることができる。
【００５２】
セル間信号は通常、ネットワーク内の隣接する各セルに送信される。しかしながら、そのプログラムが、セル間信号の方向性について、いくつかの規則を指定することもあり得る。たとえば、そのプログラムは、特定のセル間信号が、送信するセルの「右側」に位置するセルにだけ送信されるものと指定することができる。
【００５３】
多数のセルが、全く同じラベルを有する信号を、同じ宛先セルに送信する場合には、その信号の値も調停される必要がある。その調停は、同じ信号を出力する複数の論理ユニットの場合の調停と同じようにして機能する。したがって、それらの信号が２値である場合には、通常は論理ＯＲ関数が用いられる。それゆえ、或るセルが、その隣接するセルのいずれか１つから、値１を有するセル間信号を受信する場合には、その信号の値は１である。それらの信号が連続した値を有する場合には、加法関数又はソフトＯＲ関数を用いることができる。
【００５４】
調停関数は、そのネットワークのためのプログラム１４０において予め指定されている。任意の信号のための正しい値については、曖昧さは一切ない。
【００５５】
発生信号
ファクタ信号及びセル間信号とは異なり、出力発生信号１０３は、論理ユニットのための入力としての役割は、直接は果たさない。代わりに、出力発生信号の値は、セル複製、セル再編成又はセル除去のような「発生事象」を開始するためのトリガである。たとえば、特定の発生信号が１つの２値を有することがある。ただし、値１は、特定のタイプのセル複製が生じるべきであることを指示する。
【００５６】
セル複製が生じるとき、２つのセルが生成される。ただし、それ以前には単一のセルしか存在していなかった。それらのセルのうちの一方は「親」セルであり、他方は「子」セルである。図３を参照されたい。親セル及び子セルはいずれも、元のセル内の全ての論理ユニットの精確な複製を受け取る。全ての出力信号の値も、親セル及び子セルの両方において複製される。
【００５７】
親セルと子セルとの間の相違は、「発生入力信号」１０４と呼ばれる入力信号のクラスにおいてのみ反映される。発生入力信号は、他の何らかの論理ユニットの出力信号によって与えられないという点で、他の入力信号とは異なる。代わりに、発生入力信号は、セル発生事象中に生成される。たとえば、セル複製事象が生じると、通常、セル複製が生じたことを指示するために、或る発生入力信号が用いられ、新たに生成されたセルが親セルであるか又は子セルであるかを指示するために、別の発生入力信号が用いられる。この後者の発生入力信号によって、そのセルが子セルであるか又は親セルであるかに応じて、セルの論理回路が異なるように動作できるようになる。
【００５８】
セル発生事象後のネットワークの再構築
セル発生事象が生じた後に、ネットワークの隣接構造が更新される。セル複製後、新たに生成された親セルと子セルとは常に互いの隣接セルであり、それぞれ、元のセルの隣接セルの或るサブセットの中の１組の隣接セルでもある。本明細書では、隣接とは、他のセルが一切介在することなく、それらのセル間が直に接続されることを意味する。
【００５９】
同様に、セル除去が生じた後に、除去されたセルに隣接していたセルは、その隣接構造を更新する。最後に、セル再編成事象は、影響を受けたセルの隣接構造を更新するための或る１組の規則に従う。
【００６０】
隣接構造を更新するための規則は、１組の「セル発生隣接規則」として、ネットワークのためのプログラム１４０において指定される。
【００６１】
以下の説明は、あり得る１組の規則のための具体例であり、それは、セル複製だけが起こり得るが、セル再編成又はセル除去が起こらない例を含む。一例の１組のセル発生隣接規則では、ネットワーク全体が常に正方形のエリアを占有し、水平方向及び垂直方向において０．０〜１．０に及ぶ単位を有するものと仮定する。図３を参照されたい。
【００６２】
初期のネットワークは、エリア全体を占有する単一のセル３０１から成る。セル複製によって、１つのセルが、所定の場所において親セル３１１及び子セル３１２によって置き換えられ、元のセルによって以前に占有されていたエリアの半分を親セルが占有し、そのエリアのもう半分を子セルが占有する。この例では、２つのタイプのセル複製事象が起こる可能性があり、そのうちの一方では、親セルが、新たな子セルに対して、元のセルのエリアの左半分に置かれ、他方では、親セルが新たな子セルの下に置かれる。
【００６３】
この例の１組のセル発生隣接規則では、セルが互いに近接している場合には、それらのセルは隣接していると見なされる。図３は、これらの規則による一連のセル複製の一例を示す。単一セルの初期ネットワークから開始して、全部で４回のセル複製が行われ、最終的には、５つのセルから成るネットワークが形成される。ネットワークの最終的な隣接構造３０５も図に示される。
【００６４】
この例では、そのセル発生隣接規則は、セルが所与のエリアを「占有」する幾何学的な特徴抽出を用いて導出された。１つのエリアを占有するセルの幾何学的形状を参照しない他のセル発生隣接規則も実現可能であることは理解されたい。たとえば、その規則は、幾何学的な形状を全く考えることなく、トポロジ（接続性）の関係に厳密に基づくことができる。
【００６５】
ネットワークの発生の終了
先に述べられたように、そのネットワークは、初期には単一のセルである。その初期のネットワークはオプションでは、その発生段階中に「母」セルと見なされることがある複数のセルから成る別のネットワークからの信号に接続されると共に当該信号を受信することがあるか、又は、そのネットワークは一切の他の信号から切り離されることがある。
【００６６】
そのネットワークは、そのセル内の論理ユニットの規則、及びそのプログラムに含まれる任意の他の関連する規則に従って更新される。そのプログラムにおいて指定される終了点１５５では、そのネットワークは、あらゆるセル発生事象を「オフ」にし、ネットワーク内のセルの構造が静的になる。初期のネットワークが、その発生段階中に、複数のセルから成る別のネットワークに接続される場合には、初期のネットワークは、その他のネットワークから切り離される。
【００６７】
その静的ネットワークは試験され（１５２）、そのネットワークが、その所望の入力・出力機能を適切に実行するか否かが調べられる。ネットワークを試験するために、そのネットワークを、ネットワーク内に信号を送信するだけである１組の「入力ノード」１４１、及びネットワークから受信される信号を測定するだけである１組の「出力ノード」１４２に接続することができる。入力ノード及び出力ノードの配置、並びにどの信号が入力ノードによって送信され、出力ノードによって測定されるかについての詳細は、ネットワークプログラム１４０において指定される。
【００６８】
ネットワークプログラム
そのネットワークのための「プログラム」１４０は、ネットワークをシミュレートするために必要とされる全ての情報を含む。ネットワークプログラムは、入力信号、出力信号、実行される入力・出力機能、及び遅延を含む、各セル内の全ての論理ユニット１１０のリストを含む。この情報の一部として、全ての信号の２値又はアナログの特性が与えられる。
【００６９】
また、そのプログラムは、どのセル及び出力ノードがセル間信号を受信するかについての規則も含む。
【００７０】
また、そのプログラムは、複数の論理ユニットが全く同じ出力信号を生成する場合に、及び複数の隣接するセルが別のセルに全く同じセル間信号を送信するときに用いられる調停関数も指定する。
【００７１】
また、そのプログラムは、セル発生隣接規則も指定する。また、そのプログラムは、セル発生事象後に、発生入力信号がいかに設定されるかも指定することができる。
【００７２】
また、そのプログラムは、発生出力信号のどの値が発生事象をトリガするか、及び発生事象後に、発生入力信号の値がいかに設定されるかも指定する。
【００７３】
また、そのプログラムは、その発生段階中に、そのネットワークが別のネットワークに対して有する任意の接続も指定する。
【００７４】
また、そのプログラムは、発生段階が終了する時刻も指定することができる。発生段階のために経過した全時間は、タイミング信号１３０によって測定することができる。
【００７５】
また、そのプログラムは、その静的段階中にネットワークに接続される任意の一定の入力ノード１４１及び出力ノード１４２の配置、並びに入力ノードによって生成され、出力ノードによって測定されるセル間信号の詳細も指定する。
【００７６】
一例のＲＡＭネットワークのためのプログラム
本発明による方法を例示するために、上述のＲＡＭ入力・出力機能を実行する２つのセルから成るネットワークを生成するプログラムを詳細に説明する。そのプログラムを理解するために、それは、信号がプログラム内で、且つ図６のセル６００の配線図内でラベルを付される方法を理解するのに役に立つ。
【００７７】
そのプログラムは、以下のようにラベルを付される１２個の２値信号を指定する：
１．Ｉ＿Ａ：ＲＡＭのための「アドレス」ビットに対応するセル間信号。
２．Ｉ＿Ｉ：ＲＡＭのための「入力」ビットに対応するセル間信号。
３．Ｉ＿Ｃ：ＲＡＭのための「制御」ビットに対応するセル間信号。
４．Ｉ＿Ｏ：ＲＡＭのための「出力」ビットに対応するセル間信号。
５．ＤＯ＿Ｄ：値１を有するときにセル複製を引き起こす発生出力信号。
６．Ｆ＿Ｔ：或るセルがアドレスビットのターゲットであるか否かを指示するために用いられるファクタ信号。
７．Ｆ＿Ｃ：入力ビットがレジスタに書き込まれるか否かを指示するために用いられるファクタ信号。
８．Ｆ＿Ｒ：セルが生成する出力を指示するために用いられるファクタ信号。それはそのセルのレジスタ値に対応するため、「Ｆ＿Ｒ」と呼ばれる。
９．ＤＩ＿Ｄ：セル複製が生じた直後に、１の値に設定される発生入力信号。
１０．ＤＩ＿Ｐ：セルが親セルである場合に、セル複製直後に、１の値に設定される発生入力信号。
１１．Ｆ＿Ｄ：セル複製が生じたか否かを永続的に指示するファクタ信号。
１２．Ｆ＿Ｐ：セルが親セルであるか否かを永続的に指示するファクタ信号。
【００７８】
そのプログラムはセル６００のための以下の論理ユニット１１０を指定し、その表記法が以下に説明される：
ＬＵ１  ＮＯＲ（ＤＩ＿Ｄ，Ｆ＿Ｄ）⇒ＤＯ＿Ｄ                        ［遅延＝１］
ＬＵ２  ＯＲ（ＤＩ＿Ｄ，Ｆ＿Ｄ）⇒Ｆ＿Ｄ                            ［遅延＝１］
ＬＵ３  ＯＲ（ＤＩ＿Ｐ，Ｆ＿Ｐ）⇒Ｆ＿Ｐ                            ［遅延＝１］
ＬＵ４  ＸＯＲ（Ｉ＿Ａ，Ｆ＿Ｐ）⇒Ｆ＿Ｔ                            ［遅延＝１］
ＬＵ５  ＡＮＤ（Ｆ＿Ｔ，Ｉ＿Ｃ）⇒Ｆ＿Ｃ                            ［遅延＝０］
ＬＵ６  ＴＲＵＴＨ｛０１０００１１１｝（Ｉ＿Ｉ，Ｆ＿Ｃ，Ｆ＿Ｒ）⇒Ｆ＿Ｒ
［遅延＝１］
ＬＵ７  ＡＮＤ（Ｆ＿Ｔ，Ｆ＿Ｒ）⇒Ｉ＿Ｏ                            ［遅延＝０］
【００７９】
ここで、論理ユニットのための上記の表記法を説明する。一例として、上記の第５の論理を取り上げる。表記「ＡＮＤ」は、入力から論理ＡＮＤを計算して、出力を計算することを意味する。表記「（Ｆ＿Ｔ，Ｉ＿Ｃ）」は、２つの入力がＦ＿Ｔファクタ信号及びＩ＿Ｃセル間信号であることを意味する。表記「⇒Ｆ＿Ｃ」は、ファクタ信号Ｆ＿Ｃが出力信号であることを意味し、一方、表記「［遅延＝０］」は、０単位時間の遅延後に、入力信号から出力信号が計算されることを意味する。
【００８０】
第６の論理ユニットにおいて用いられている表記「ＴＲＵＴＨ｛．．．｝」は、真理値表関数が用いられることを意味する。ただし、括弧内の数は、入力０００、００１、０１０、０１１、１００、１０１、１１０及び１１１の場合に、その順序において得られる出力値を指示する。したがって、たとえば、ＴＲＵＴＨ｛０００００００１｝は、３つの変数にわたるＡＮＤ関数に対応し、３つの変数が全て１である場合には、１の出力が与えられ、それ以外の場合には、０が与えられる。
【００８１】
プログラム１４０内の全仕様は以下のとおりである。
１．論理ユニットは上記で指定されたとおりである。
２．１つのセル又は入力ノードに隣接する全てのセル又は出力ノードは、そのセル又は入力ノードから、全てのセル間信号を受信する。
３．調停関数として、常にＯＲ関数が用いられる。
４．セル発生隣接規則は、項［セル発生事象後のネットワークの再構築］において、ただ１つのタイプのセル複製を用いて説明された例において与えられたとおりであり、親セルが元のセルのエリアの半分を占有し、子セルがもう半分を占有し、親セルが子セルの下に配置されるようになる。
５．発生出力信号ＤＯ＿Ｄが１の値を有する場合には、セル複製事象がトリガされる。発生入力信号ＤＩ＿Ｄは、セル複製事象の直後に、新たに生成された親セル及び新たに生成された子セルのいずれにおいても１に設定され、それ以外の場合には、０に設定される。発生入力信号ＤＩ＿Ｐは、セル複製事象の直後に、新たに生成された親セルにおいて１に設定され、それ以外の場合には、０に設定される。
６．発生段階中に、ネットワークは別のネットワークから切り離されており、接続されない。
７．ｔ＝５であるときに、発生段階は終了する。
８．図４及び図６に示されるように、ネットワークはただ１つの入力ノード１４１及びただ１つの出力ノード１４２に接続される。その入力ノードは３つのセル間信号Ｉ＿Ｉ、Ｉ＿Ａ及びＩ＿Ｃを生成し、一方、出力ノードはセル間信号Ｉ＿Ｏを測定する。
【００８２】
一例のネットワーク機能の説明
以下は、一例のネットワークがいかにＲＡＭ入力・出力機能を実施するのに成功するかの説明である。図４に示されるように、静的ネットワークは２つのセルを有し、各セルは入力ノード及び出力ノードに接続される。図６は、ＲＡＭネットワークの単一のセル６００内の論理ユニットの詳細な配線及び信号を示す。そのネットワークは、単一セルとして初期化される。
【００８３】
第１の論理ユニット（ＬＵ１）（ＮＯＲ（ＤＩ＿Ｄ，Ｆ＿Ｄ）⇒ＤＯ＿Ｄ［遅延＝１］）は、セル複製事象をトリガする。以前に、ＤＩ＿Ｄ入力発生信号又はＦ＿Ｄファクタ信号によって記録されるような複製事象がなかった場合には、その論理ユニットは、ＤＯ＿Ｄ発生出力信号を１に設定し、それによりセル複製がトリガされる。
【００８４】
第２の論理ユニット（ＬＵ２）（ＯＲ（ＤＩ＿Ｄ，Ｆ＿Ｄ）⇒Ｆ＿Ｄ［遅延＝１］）は、セル複製事象が生じたことを永続的に指示するファクタ信号Ｆ＿Ｄをオンにし、第１の論理ユニットとともに、それ以上複製が生じないことを確実にする。
【００８５】
第３の論理ユニット（ＬＵ３）（ＯＲ（ＤＩ＿Ｐ，Ｆ＿Ｐ）⇒Ｆ＿Ｐ［遅延＝１］）は、親セル内の持続的な信号をオンにし、親セルを子セルから区別できるようにする。Ｆ＿Ｄ又はＦ＿Ｐが１に設定された後に、第２の論理ユニット及び第３の論理ユニットは、Ｆ＿Ｄ及びＦ＿Ｐが１のままであることを確保することに留意されたい。
【００８６】
５単位時間後に、発生段階は終了し（１５５）、ネットワークは入力ノード１４１及び出力ノード１４２に取り付けられる。５単位時間を選択することに特別なことは何もなく、プログラムによって、ただ一度のセル複製が生じること、及びファクタ信号Ｆ＿Ｐが親セルを永続的に指示することが強制されるために、２単位時間以上の任意の数の単位時間でうまく機能できることに留意されたい。
【００８７】
第４の論理ユニット（ＬＵ４）（ＸＯＲ（Ｉ＿Ａ，Ｆ＿Ｐ）⇒Ｆ＿Ｔ［遅延＝１］）は、２つのセルのうちのいずれがアドレスのターゲットであるかを知らせるために用いられる。アドレス信号Ｉ＿Ａが１である場合には、ターゲットファクタ信号Ｆ＿Ｔは、親セルにおいて１であり、子セルにおいて０であるのに対して、アドレス信号Ｉ＿Ａが０である場合には、ターゲットファクタ信号Ｆ＿Ｔは、親セルにおいて０であり、子セルにおいて１である。
【００８８】
第５の論理ユニット（ＬＵ５）（ＡＮＤ（Ｆ＿Ｔ，Ｉ＿Ｃ）⇒Ｆ＿Ｃ［遅延＝０］）は、そのセルにおいて書込みが行われるべきであるか否かを知らせるために用いられる。そのセルがターゲットであり（Ｆ＿Ｔ＝１）、制御信号が入力ノードから送信されていた（Ｉ＿Ｃ＝１）場合には、Ｆ＿Ｃファクタ制御信号は１に設定され、そうでない場合には、Ｆ＿Ｃは０に設定される。
【００８９】
第６の論理ユニット（ＬＵ６）（ＴＲＵＴＨ｛０１０００１１１｝（Ｉ＿Ｉ，Ｆ＿Ｃ，Ｆ＿Ｒ）⇒Ｆ＿Ｒ［遅延＝１］）は、レジスタファクタ信号Ｆ＿Ｒの値を設定するために用いられる。Ｆ＿Ｃが１である場合には、Ｆ＿Ｒは、入力信号Ｉ＿Ｉの値に設定される。Ｆ＿Ｃが０である場合には、Ｆ＿Ｒは、その以前の値に等しくなるように設定される。
【００９０】
第７の論理ユニット（ＬＵ７）（ＡＮＤ（Ｆ＿Ｔ，Ｆ＿Ｒ）⇒Ｉ＿Ｏ［遅延＝０］）は、出力セル間信号Ｉ＿Ｏを、アドレス指定されているセルのためのレジスタの値に設定する。
【００９１】
この例はネットワーク内で２つのセルだけを用いており、簡単なネットワーク入力・出力機能を用いて、説明するのを簡単にしている。しかしながら、その方法は、複雑な機能を実施する非常に多数のセルを用いてネットワークを生成するために用いることができることは理解されたい。
【００９２】
ネットワークのプログラミング
ネットワークのためのプログラムは、種々の方法で、たとえば手動で又は自動的に選択された手順によって選択することができる。
【００９３】
そのような自動化された手順は、ネットワーク毎に、そのネットワークが所望の入力・出力機能をどの程度良好に実施するか、及びそのネットワークがいくつの計算資源（たとえば論理ユニット及び／又は信号）を必要とするかを反映する「適応度」値を使用する。最小量の計算資源を用いながら、所望の入力・出力機能を正確に実行するネットワークには、大きな適応度値が割り当てられる。
【００９４】
また、自動化された手順は、或るプログラムを比較的類似の別のプログラムに変更する方法も必要とする。これは、論理ユニットを変更することによって行うことができる。論理ユニットにおいて成し得る変更は、論理ユニットの個々の入力又は出力を変更すること、及び論理ユニットによって計算される論理関数を変更することを含むことができる。
【００９５】
その自動化された手順は、適応度が高いプログラムを見つけるために、取り得るプログラムの空間を探索する。この探索は、ヒルクライミング又は焼きなましのような従来の最適化方法を用いることができる。それは、１組のネットワークのためのプログラム１４０の集団において動作する遺伝的アルゴリズムも用いることもできる。そのプログラムの変更は、そのネットワークの多数のセルの動作に自動的に反映されるため、遺伝的アルゴリズムは、適応度が高いネットワークを探索するのによく適している。
【００９６】
十分な適応度のネットワークが発見されると、そのネットワークは、ソフトウエア又はハードウエアのいずれかで実現することができる。そのネットワーク内の各セルは同じ全く論理ユニットを含むため、そのネットワークのハードウエア実施態様は、多数のセルを含むネットワークに対して、潜在的に非常にコスト効率的である可能性がある。
【００９７】
本発明は、好ましい実施形態の一例として説明されてきたが、本発明の精神及び範囲内で、種々の他の改変及び変更を行うことができることは理解されたい。それゆえ、添付の特許請求の範囲の目的は、本発明の真の精神及び範囲内に入るような全てのそのような変形及び変更を包含することである。
【図面の簡単な説明】
【００９８】
【図１Ａ】本発明の実施の形態による処理セルのネットワークのブロック図である。
【図１Ｂ】本発明の実施の形態による処理セルのネットワークのブロック図である。
【図２】本発明の実施の形態による単一の処理セルのブロック図である。
【図３】本発明の実施の形態による経時的に発生するネットワークのブロック図である。
【図４】本発明の実施の形態による一例のネットワークのブロック図である。
【図５】本発明の実施の形態によるランダムアクセスメモリとして構成されるネットワークのブロック図である。
【図６】本発明の実施の形態によるランダムアクセスメモリとして構成されるネットワーク内の単一セルの配線を詳細に示すブロック図である。
【図１Ａ】
2008269594.tif 000003
【図１Ｂ】
2008269594.tif 000004
【図２】
2008269594.tif 000005
【図３】
2008269594.tif 000006
【図４】
2008269594.tif 000007
【図５】
2008269594.tif 000008
【図６】
2008269594.tif 000009
【外国語明細書】
2008269594.tif 000010
2008269594.tif 000011
2008269594.tif 000012
2008269594.tif 000013
2008269594.tif 000014
2008269594.tif 000015
2008269594.tif 000016
2008269594.tif 000017
2008269594.tif 000018
2008269594.tif 000019
2008269594.tif 000020
2008269594.tif 000021
2008269594.tif 000022
2008269594.tif 000023
2008269594.tif 000024
2008269594.tif 000025
2008269594.tif 000026
2008269594.tif 000027
2008269594.tif 000028
2008269594.tif 000029
2008269594.tif 000030
2008269594.tif 000031
2008269594.tif 000032
2008269594.tif 000033
2008269594.tif 000034
2008269594.tif 000035
2008269594.tif 000036
2008269594.tif 000037
2008269594.tif 000038
2008269594.tif 000039
2008269594.tif 000040
2008269594.tif 000041
2008269594.tif 000042
2008269594.tif 000043
2008269594.tif 000044
2008269594.tif 000045
2008269594.tif 000046
2008269594.tif 000047
2008269594.tif 000048
2008269594.tif 000049
2008269594.tif 000050
2008269594.tif 000051
2008269594.tif 000052
2008269594.tif 000053