3. 自己組織のための計算モデル CCM


Created: 10/13/94, Updated: 5/6/2002.

この章では,前章の分析結果にもとづいて,自己組織系を記述するための計算モデルで ある化学的プログラミング・モデル (Chemical Casting Model, CCM) を提案する.3.2 節で CCM の詳細をしめすが,そのまえに 3.1 節でより一般的な自己組織系のモデルをしめす. また 3.3 節では,2 章でしめした自己組織系の必要条件が CCM においてどのようにすれ ばみたされるかをかんがえ,3.4 節では例題として N クウィーン問題をとりあげる.

3.1 自己組織系の基本モデル

自己組織系の基本モデルとして図 3.1 のようなものをかんがえることができる.このモ デルがあらゆる自己組織系にあてはまると主張することはできないだろう [*1] が, われわれが対象としようとしている情報の自己組織をおこなうシステムをはじめとして,散逸 構造をうみだす熱力学系やその他のさまざまな自己組織系のモデルとなっているとかんが えられる.


図 3.1 自己組織系の基本モデル

このモデルにおいて,システムは時間とともに変化する (したがってそれは動力学系と して表現できる).入力がなければシステムは通常,一定時間後には定常状態に達してい る.しかし,そのばあいでもあとから入力があれば再度変化しはじめるという自己組織的 あるいは散逸構造的な性質がある.この性質を漸進性 (incrementalism) とよぶことにする.

システムに対して,秩序の指標としてのエントロピーまたは (大域) 秩序度が定義されて いる.エントロピーが定義されているばあいには,それは時間とともに減少する.秩序度 が定義されたばあいには,それは時間とともに増加する.熱力学系のばあいには,熱力学 第 2 法則をみたしつつエントロピーを減少させるためには,エントロピーを外界にすてな ければならない.したがって,システムは開放系 (open system) でなければならない.こ のような法則が存在しないシステムにおいては,(この要請だけをかんがえるかぎりは) かならずしも開放系でなくてもよいであろう.

また,システムの変化のしかたを支配する規則あるいは法則が存在するはずである [*2]. その規則の記述形式としてはさまざまなかたちがかんがえられる.

上記のモデルをより具体化して,情報の自己組織化のためのモデルを構成しよう.この モデルにおける規則の記述のために (化学反応式のような,あるいはプロダクション・シ ステムにおけるような) プロダクション規則を採用する.その理由は次のとおりである.

(1) プロダクション・システムはボトム・アップな計算のモデルとして適当だとかんがえ られる  規則ベースの計算モデルとして,前向き推論のシステムすなわち OPS5 のようなプロ ダクション・システムと,後向き推論のシステムすなわち Prolog のような論理型言語, あるいは後向きプロダクション・システムとがある [*3].後者はトップ・ダウンな計算 機構であるのに対して,前者はボトム・アップな計算機構である.前章でのべたように 自己組織化は基本的にボトム・アップなプロセスであり,そのモデルとしては前者のほ うが適しているとかんがえられる.したがって,前向き推論のプロダクション・システ ムを採用する.

(2) 化学反応系とのアナロジーをつかう  情報の自己組織系を構成するための方法論はまだまったくえられていないといってよ い.したがって,それを実現するためには,他の分野からのアナロジーをつかうのがよ いとかんがえられる.散逸構造理論の舞台である化学反応系は,この目的に適している とかんがえられる [*4]

(3) プロダクション・システムは自由度のたかいプログラムを記述しやすい  手続き型言語はもちろん,関数型言語や論理型言語においても実行順序がきっちりと (半順序として) きめられていて自由度がすくない.それに対してプロダクション・シ ステムは,規則が適用される順序に関して自由度がたかい [*5]

また,システムは空間的にも時間的にも離散的だとする.空間的に離散的であるという ことは,これから定義しようとしているモデルが記号の自己組織化のためのモデルである というところからくる.なぜなら,言語学・記号論において Saussure [Sau 49] 以来指摘 されてきているように,人間があつかう記号は離散的だとかんがえられるからである.

3.2 化学的プログラミング・モデル (CCM)

自己組織系の記述をめざした計算モデルとして化学的プログラミング・モデル (CCM) を定義する [*6].CCM の構成要素を図 3.2 にしめす.プログラムの作用対象であるデー タ集合は,通常のプロダクション・システムにおけるのと同様に作業記憶とよぶ.作業記 憶がふくむ単位的なオブジェクトは原子とよぶ.原子は内部状態をもち,他の原子へのリ ンクをもつことができる [*7].リンクによって結合された原子の集合を分子とよぶ [*8]. 原子とリンクとによって,任意のリスト,木,グラフ,ネットワークなどの離散的な構造 を表現することができる.リンクは化学反応系とのアナロジーにおいては化学結合にあた るが,向きがあるという点において,それとはちがいがある.

システムの状態を変化させるのは反応規則である.以下,反応規則を単に規則とよぶ. 規則はプロダクション・システムにおけるプロダクション規則のかたちで記述される.こ れは化学反応における反応式に似たものだといえる.すなわち, 規則はつぎのようなか たちをしている.

LHS → RHS.

左辺 LHS,右辺 RHS には,ともに原子または分子のパタンの列が記述される.左辺にマ ッチする原子・分子が存在するときに規則は動作可能になる.規則が動作すると,左辺に 記述された原子・分子は消滅し,右辺に記述された原子・分子が生成される.たとえば 図 3.3 の例では ``酸素分子'' と ``水素分子'' が反応によって消滅し,``水分子'' が生成される [*9][*10][*11]


図 3.2 CCM (化学的プログラミング・モデル)


図 3.3 反応規則の例

ただし,規則の左辺にマッチする原子・分子が存在すればただちに規則が適用されるわ けではない.規則が適用されるためには,局所秩序度に関する条件がみたされなければな らない.ここで局所秩序度とは局所的な秩序の指標であり,通常は整数値か実数値をとる [*12].局所秩序度はつぎの 2 つのうちのいずれかのかたちで定義される.

  1. 自己秩序度 o(e): 1 個の原子 e に対して定義される.
  2. 相互秩序度 o(e1, e2): 2 個の原子 e1, e2 のあいだに定義される.

規則は,その適用対象の原子の局所秩序度の和が規則適用によって増加するときだけ (あ るいは減少しないときだけ) 適用される [*13].自己秩序度のばあいは,規則の両辺にあ らわれるすくなくともひとつのパタンとマッチする原子すべてについての,規則の適用前 と適用後の局所秩序度の和を比較して,規則を適用するかどうかをきめる.相互秩序度の ばあいは,それらの原子のなかから 2 個をえらんで計算した秩序度のすべてのくみあわせ についての和を同様に比較して,規則を適用するかどうかをきめる.

ところで,上記の局所秩序度を作業記憶全体にわたってたしあわせたものが,最大化を はかるべき大域秩序度になるべきであろう [*14].あたえられた局所秩序度の定義から大 域秩序度をこのようにして定義することもできるし,大域秩序度がプログラムの仕様とし てあたえられたときに,それから局所秩序度をもとめるばあいにもこの関係がつかえるで あろう.

規則の適用にあたって大域的な秩序を (直接) 考慮しないのは,計算が局所的におこな われるようにするためである.それは効率をよくするという実用的な目的のためでもある が,それよりも化学反応系などとのアナロジーのためであり[*15],自己組織化が局所的 な作用をもとにしてなしとげられるボトム・アップなはたらきだとかんがえられるからで ある.このように局所的な秩序の指標をつかって大域的な秩序をきずくことをめざしてい る点が,CCM のおおきな特徴のひとつである [*16][*17]

これ以降,プロダクション規則と,その左辺にマッチしうるデータとの組のことを, プロダクション・システムの用語にならって ``インスタンス'' とよぶ.ただし,従来のプロダクション・ システムとはちがって CCM においては競合集合をつくらない方法を基本と する (5 章参照) ので,インスタンスはシステムによって実際に構成される競合集合の要 素ではなく,むしろ仮想的なものである.また,このインスタンスをオブジェクト指向に おけるインスタンスと混同しないようにされたい.

CCM においては,上記のような規則の適用が可能であるかぎり,何度でも規則の適用 が反復される.そして,規則の適用によって秩序度が増加するインスタンスが存在しない 状態にいたると,停止する [*18]

ところで,局所秩序度だけではプログラムの動作が一意にきまらないばあいがある.す なわち,ある時刻において適用 (発火) 可能なインスタンスは複数個存在しうる.これら のうちのいずれをさきに発火させるか,あるいは並列に発火させるかは,仕様としては定 義しない [*19].ただし,ひとつの原子をかきかえる複数のインスタンスは同時に発火さ せないものとする [*20].したがって,CCM にしたがってうまく記述されたプログラムに おいては,秩序度関数によって定義された意味での秩序が,非決定論的に,したがって `` 自己組織'' 的に実現されることになる.

3.3 自己組織系の必要条件と CCM

CCM において,前章でしめした自己組織系の必要条件はすでにみたされているか,あ るいはどのようにすればみたされるかをかんがえよう.

(1) 組織化条件 : 秩序の生成
プログラムは局所的な秩序指標がたかまる方向に動作する.したがって,局所的な秩 序がすなわち大域的な秩序につながるばあいには,ただちに組織化条件がみたされる. しかし,局所的な秩序が他の部分の局所的な秩序や大域的な秩序と競合的な関係にある ばあいもあるから,ただちに組織化条件がみたされるとはいえない.

このような競合が存在しないばあいには,プログラムの動作は直線的であり,自己組織 的とはいえず,あまり興味をひかない.競合が存在するプログラムの例は次節でしめす.

(2) 自発性条件 : 非決定性の存在
前節でのべたように,同時に発火可能なインスタンスのうちのいずれをさきに発火さ せるか,あるいは並列に発火させるかは非決定的である.

この非決定性が,自己組織を可能にするうえで非常に重要だとかんがえられる.したが って,今後 CCM を詳細化していくときに,それをどのようにあつかうかが主要な問題に なるとかんがえられる.この点に関する課題については 4 章において論じる.

(3) コヒーレンス条件
秩序度をたかめる方向に動作するプロダクション・システムという機構じたいが コヒーレント なものだとかんがえられる.

3.1 節でのべた動作の漸進性は,コヒーレンスと関係がふかいとかんがえられる.

以上で計算モデル CCM のおおすじが定義され,それが自己組織系の必要条件をみたせ ることがしめされた.ただし,ここでことわっておくが,CCM は自己組織系の記述のた めのベースにすぎず,それじたいが自己組織系だとはいえない.すなわち,自己組織系の 本質は CCM のなかにではなく,そのうえに記述されるプログラムに存在するはずである.

3.4 例題 : N クウィーン問題

CCM によるプログラムの例として N クウィーン問題のプログラムをしめす. 図 3.4 は解を 1 個だけもとめるプログラムである [*21].このプログラムはただひとつの規則と, クウィーンの相互秩序度の定義とから構成されている.この規則は, 図 3.5 にしめすように 2 個のクウィーン (図 3.4 における Queen2 と Queen3) の列を交換する規則である [*22][*23].Queen1 は交換の動作には直接は関係ない.Queen1 のやくわりについては後 述する.

このプログラムにおける局所秩序度は,2 個のクウィーンが対角方向になければたかく (1 であり),対角方向にあればひくい (0 である) と定義されている.適当な初期値をあた えて (たとえば全クウィーンを対角線上において) このプログラムを実行させると,適当 な 3 個のクウィーンを選択して規則を適用するという動作をくりかえし,結果として N クウィーン問題の解がえられると停止する [*24][*25]


図 3.4 CCM による N クウィーン問題のプログラム


図 3.5 N クウィーン問題のプログラムの規則の意味

規則の適用について, 図 3.6 を使用してよりくわしく説明する.プログラムを実行させ ると,処理系は適当なインスタンスをえらんで発火させる.規則は 1 個しかないので,こ こでの処理系の仕事は 3 個のクウィーンを選択することだけである.えらばれた 3 個のク ウィーンに関して,その規則適用前と適用後における局所秩序度を計算する.この規則の ばあい,交換する 2 個のクウィーン Queen2 と Queen3 とのあいだの相互秩序度は変化し ない.したがって,Queen2, Queen3 と Queen1 とのあいだの相互秩序度だけが問題になる. 図 3.6 のばあいには交換によって局所秩序度の和が増加するので規則を適用する.

上記のように交換する 2 個のクウィーンのあいだの関係だけをかんがえるかぎりは局所 秩序度は変化しない.そのために,この規則に第 3 のクウィーンを登場させる必要が生じ ている.


図 3.6 N クウィーン問題のプログラムにおける局所秩序度の計算

[→ 次章]


脚注

[*1] 自己組織系の全体像がみえていない現在,あらゆる自己組織系を記述するベースにな りうるほど一般性があるモデルをつくることは不可能だとかんがえられる.

[*2] この報告ではこの規則をあまくだりのものとするが,本来それは自己参照によって変 化するものであり,また ``規則'' という結晶したかたちで記述されるとはかぎらない.さ らに,次章でのべるのように,この規則によってシステムのふるまいが完全に決定論的に きめられるのではなく,システムの構成要素には自由がのこされる.

[*3] 図 3.1 における規則の表現としてかならずしもプログラミング言語論でいう規則ベー スの表現をとる必然性はないが,後述する数理解析の容易さなどをかんがえると規則ベー スの表現がよいとかんがえられる.

[*4] ただし,通常は化学反応系はエントロピーをちいさくする方向にははたらかないとい う点で,次節でのべる化学的プログラミング・モデルとちがっている.

[*5] この性質は (1) とも関係があるとかんがえられる.

[*6] このモデルによって自己組織的な記号処理をめざすわけだが,このモデルによって実 現することをめざしているのは意味的な (深層構造の) 自己組織化よりも構文的な (表層構 造の) 自己組織化である.記号の自己組織化をめざすとすれば自然言語で記述された情報 をあつかうことが必須とかんがえられ,そのためには意味的な自己組織化をかんがえるこ とはさけられないとかんがえられる.しかし,このような自己組織化は当面はあつかわな いことにする.したがって,意味的な自己組織化のために CCM が適当なモデルであるか どうかもさだかではない.

[*7] リンクによってデータ間の関係を陽にあつかえるという点が,従来のプロダクショ ン・システムとくらべての CCM のひとつの特徴だとかんがえられる.また,GA におい ては直線的なデータ構造しかゆるされないのに対して,CCM においてはリンクによって 任意のネットワーク構造があらわせることも指摘しておきたい.ただし,GA においても より柔軟なデータ構造すなわち木構造をゆるそうとする研究もあることをつけくわえてお く.

[*8] 分子は後述の局所秩序度関数内で参照可能な範囲という意味をもっている.

[*9] ただし,この規則は水を生成する化学反応のモデルとしては適当だといえない.すな わち,意味のない例である.

[*10] 規則はこのように視覚的に表現するのが便利である.なぜなら,通常のプロダクシ ョン・システムにおける規則とちがってリンクが存在し,それをつかってデータ構造が表 現されるからである.

[*11] なお,規則の左辺と右辺とが同一の形式をしているうえ,規則の適用が秩序度によ って制御されているため,規則を化学反応式のように可逆なものとかんがえることも可能 である.このばあいには規則の左辺と右辺をつなぐ矢印を双方向 ( にすればよいだろ う.規則を可逆にすることによって規則の数がへらせるばあいがある.規則を可逆にする ことは秩序度による制御があるためにはじめて可能になっている.したがって,通常のプ ロダクション・システムにはない特徴的な機能ということができる.

[*12] ここでエントロピーということばをつかわないのは,この用語を理論的に定義され るべき量のためにとっておきたいからである.秩序度は実践的に定義される量である.

[*13] 局所秩序度が変化しないときにも規則を適用するべきかどうかは,プログラムごと に選択できるようにすることがのぞましいとかんがえられる.

[*14] 局所秩序度の定義が自己秩序度としてあたえられているばあいには,大域秩序度は すべてのデータに関する局所秩序度の和となる.また,局所秩序度の定義が相互秩序度と してあたえられているばあいには,大域秩序度はすべての 2 個のデータのくみあわせに関 する局所秩序度の和となる.

[*15] ただし,化学反応系とはちがって CCM にはいまのところ原子間の距離というよう な概念をもちこんでいない. したがって, ``局所性'' の意味は両者においてことなってい る.すなわち,CCM における局所性の概念は,反応に関与する原子数のすくなさに関係 している.

[*16] いうまでもないが,ゲームにおける探索や遺伝的アルゴリズムにおいては,評価関 数として通常は大域的な状態を評価する関数を使用する.CCM による探索がこれらとこ となる点のひとつが,この秩序度関数の局所性である.

[*17] ところで,局所的な秩序度関数にもとづいて決定される動作のつみかさねで自己組 織化がなされるとすれば,この機構は市場経済の機構をおもいださせる.市場経済におい て秩序度関数のやくわりを演じているのは価格である.Simon は,価格機構に関してつぎ のように指摘している :「経済学者が好んで用いる外部性への救済策は,そのような説明 のつかない結果を価格機構の計算のなかに入れこむこと,例えば排煙に対し課税すること である」[Sim 81J][p. 68].これと同様に,秩序度関数やスケジュリング戦略は非合理な要 因あるいは説明できない要因をシステムにとりこむためにつかえるとかんがえられる (von Hayek によるつぎの指摘は,CCM あるいは分散的な計算機構にとって示唆的である : 「価格機構の最も重要な事実は,その機構が機能する際に知識が節約される点にあり,あ るいは個々の参加者が,正しい行為を行いうるためには,ほんの少しの知識を持つだけで よいという点にある」[Simon 81J][p. 56]).市場経済の機構を計算システムに応用しようと している研究もあることをつけくわえておく [Fer 88][Dre 88][Mil 88][Kuw 92]

[*18] ただし,4.1 節でものべたように,その後の入力によってシステムを漸動的に動作 させることができる.すなわち,適用可能な規則がなくなるとシステムはユーザ入力まち 状態になり,ユーザが終了コマンドを入力しないかぎりはつぎの入力によってふたたび動 作する.このようなシステムのつくりは,従来のプロダクション・システムにはなかった 特徴的なものだとかんがえられる.

[*19] インスタンスの選択に意識的に非決定性をもちこもうとしている点が,CCM が通 常のプロダクション・システムとことなる点のひとつだとかんがえられる.

[*20] このように,並列発火をさまたげないがひとつの原子の並列かきかえはゆるさない という制約は,化学反応におけるのとおなじだとかんがえられる.

(10/14/94 追記) What is coference? -- to be supplied !!

[*21] CCM の性質上,全解探索は困難である.

[*22] ただし,5 章でのべる実験に使用した化学的プログラミング言語 SOOC-92 はテキスト・ ベースの言語であり,図 3.4 のプログラムはつぎのように記述される.

(defelement queen	-- 元素の宣言 (Lisp の defstruct  にちかい)
  row
  col)

(defun queen-ord (c1 r1 c2 r2)	-- 相互秩序度関数の宣言
  (if (= (abs (- r1 r2)) (abs (- c1 c2)))
    0
    1))

(defrule swap-queen	-- 規則の宣言 (現在は規則は不可逆)
  (var C1 R1 C2 R2 C3 R3)
  (exist (queen :col C1 :row R1) Q1)
  (exist (queen :col C2 :row R2))
  (exist (queen :col C3 :row R3) Q3)
  (< (+ (queen-ord C2 R2 C1 R1)
        (queen-ord C2 R2 C3 R3))
     (+ (queen-ord C2 R2 C3 R1)
        (queen-ord C2 R2 C1 R3)))
	-- 現在は相互秩序度を自動計算する機構がない (自己秩序度は自動計算可能)
  -->
  (modify Q1 :col C3)
  (modify Q3 :col C1))
(10/14/94 追記) その後,言語を改定した.現在の版 SOOC-94 において (まだ実装していない) 相互秩序度の自動計算機能をつかった反応規則を記述すると,つぎのようになる.
(defelement queen
  row
  col)

(deforder queen-ord ((q1 queen) (q2 queen))	-- 相互秩序度関数の宣言
  (if (= (abs (- (queen-row q1) (queen-row q2)))
         (abs (- (queen-col q1) (queen-col q2))))
    0
    1))

(defrule (swap-queen :strategy random)	-- 規則の宣言 (ランダム戦略を指定)
	-- まだ不可逆性がのこっているが,左辺と右辺の構文を対称にちかづけた.
  (var C1 R1 C2 R2 C3 R3 Q1 Q2 Q3)
  (exist queen Q1 :col C1 :row R1)
  (exist queen Q2 :col C2 :row R2)
  (exist queen Q3 :col C3 :row R3)
  -->
  (exist queen Q1 :col C3)
  (exist queen Q3 :col C1))

[*23] クウィーンの列の交換によって解をもとめようとしている点で,この解法は清水 らによる解法 [Shi 90] にちかい.ただし,清水らは交換の際に他のすべてのクウィーンと の関係をしらべているのに対して,ここでの解法においては他のクウィーンのうちの 1 個 だけを考慮している.

[*24] N クウィーン問題にかぎらずこのような単純な問題においては,適当な初期状態を あらかじめ設定しておきさえすれば,CCM にしたがうただ 1 個の規則と秩序度関数とを 定義するだけでとけるばあいがおおい.このようにできるだけ少数の規則 (単純なプログ ラム) で問題をとこうというかんがえかたは,AI でつかわれてきた従来のプロダクショ ン・システムにはなかったとかんがえられる.

[*25] 解がえられると停止することは,解状態では任意の 3 個のクウィーンをとって計算 した局所秩序度が最大値 3 をとることをつかって容易に証明できる.ただし,5 節でもし めすように停止性は保証されない.


Y. Kanada