2. 提案 1「プログラムなしの計算をめざそう」


Written as Paper: 11/17/92 ((C) 1992 by Information Processing Society of Japan ).
Created as HTML Document: 10/10/94, Updated: 5/6/2002.

2.1 提案の内容と提案理由

最初の提案は,プログラムなしの計算をめざそう,あるいはプログラムしないようにしよ うということである.その意味は,いわゆる ``プログラム'' というものをつかわずに,人 間がもとめるなんらかの結果をみちびく ``計算'' ができるようにしよう,つまり計算の完 全な計画すなわち決定論的なプログラムをつくらずにコンピュータをふくむシステムをつ かえるようにしようということである [*1].ただし,いますぐプログラムなしの計算ができる わけではないから,そのような方向にむけて研究しようということである.

なぜ上記のような提案をするかというと,その理由はすくなくとも 3 つある.第 1 の理由 は,すでにのべたように完全な計画すなわち仕様やプログラムはそもそも記述不可能だと いうことである.すなわち,まず,バグのないプログラムをつくることは,しょせん人間 には無理だとかんがえられる.もちろん,明確な仕様があたえられている問題をとくため の小規模なプログラムであれば,完全なプログラムをつくることは夢ではない.しかし, 1 万ステップ程度のプログラムにおいてもそれはすでに困難である [*2].また,オペレーティ ング・システムやオンライン・システムをはじめとする開放系である大規模ソフトウェ ア・システムにおいては完全な仕様を記述することが本質的にできない.そのような不可 能なことを技術の進歩によって実現することをめざすよりも,不完全な計画からでもうま く計算できるようなしかけをつくることのほうが,より現実的な目標ということができる だろう[*3]

プログラムなしの計算を提案する第 2 の理由は,決定論的な ``プログラミング'' では ``ど うでもよい'' ことまできちんときめなければならないが,このようなむだな努力はさけた いということである.例として,LSI の配線プログラムの開発についてかんがえてみよう. 配線プログラムの開発においては,そのプログラムが配線する順序を,可能なさまざまな 順序のなかからえらんできちんときめなければならない (図 1 参照).基本的な配線法がお なじでも配線順序によって最適解にどれだけちかづけるかが変化するから,それはまった くどうでもよいこととはいえない.しかし,どのような順序で配線するのが最適であるか はわからないままにプログラムをつくるから (あるいは,つくるとすれば),その意味では 配線順序は ``どうでもよい'' ことだといえる.現在のプログラミングにおいては,本質的 なことだけでなく,このような ``どうでもよい'' ことまできちんときめなければならず, わずらわしい.

      基板            基板

     配線順序 1         配線順序 2
図 1 LSI 配線における ことなる配線順序の例

プログラムなしの計算を提案する第 3 の理由は,``プログラミング'' は計算システムの自 己組織化能力をころしているとかんがえられるということである.「自己組織化」という ことばを生物における自己組織化たとえば生物の発生過程における形態形成のようなはた らきという意味でつかうとすれば,計算システムが自己組織能力をもちうるという点に関 しては異論がおおいとかんがえられる.しかし,生物だけでなく非平衡熱力学系な どにおいても自己組織化がおこっている [Pri 77][Pri 84] のだから,それがコンピュータに おいておこりえない理由はないと著者はかんがえている.そして,コンピュータにおいて自己組 織化をおこすためには,(決定論的な) ``プログラミング'' をやめることが必要だとかんが える.なぜなら,決定論的な世界では自己組織化はおこらないからである.なぜなら,自 己組織化というのは自発的・自律的な行為であり,非決定性があることが必須だからであ る [Kan 92].決定論的な世界でおこる組織化は他者によって完全に制御されたものであり, したがって自己組織化ではない.コンピュータのばあいには,間接的ではあるがプログラ ムによる決定論的な組織化を制御しているのは人間である[*4]

この点について,さきほどの LSI 配線問題を例にとって,もうすこしかんがえてみよう. 配線の順序をプログラマがきめることは単にプログラマにとってわずらわしいだけでなく, よりよい順序を排除することによって自己組織的な最適化の余地を排除してしまっている. その順序がプログラマが熟考をかさねることによってはじめてえられたものならば自己組 織化によってよりよい順序がみいだされる可能性はひくいだろうが, ``どうでもよい'' こ ととしてきめられたならばその可能性はたかいといえるだろう [*5].``プログラミング'' は, このような自己組織的な最適化の可能性をころしてしまっている.

2.2 提案実現に必要な 2 つのモデル

ところで,プログラムなしの計算の価値をみとめるとしても,すでにのべたようにそれは ただちに実現可能ではない.したがって,それをどうやって実現するかが問題になる.そ のためには,著者はつぎのような 2 つのモデルを確立するとともに,それらをうまくむす びつけることが必要だとかんがえる.

第 1 のモデルはミクロ・モデルである.これは,部分的な知識だけでソフトウェアが実行 できる,あるいはシステムをうごかすことができるしかけ,すなわち計算モデルである. 計算システムは人間がつくるものであるから,それを動作させるためにこのようなモデル をつくることが必要であることをとくに説明する必要はないだろう.ただし,ここで ``計 算モデル'' といっても,``計算'' の概念が従来の ``完全な計画'' にもとづく計算とはちが っているから,従来の意味の計算モデルとはちがっている.ところで,この「部分的な 識だけで」ということばはさまざまな意味に解釈しうるが,ここでは「非決定的な部分を ふくんでいても」という意味だと解釈する[*6]. 著者の研究においてはミクロ・モデルとして化学的キャスティング・モデルを 使用しているが,それについては第 3 章でのべる.

第 2 のモデルはマクロ・モデルである.これは,システムがのぞみどおりに動作している かどうかを観測し,制御するしかけである.マクロ・モデルが必要な理由は,ミクロ・モ デルは不完全なモデルであるから,それだけでは計算が人間の意図したとおりにおこなわ れる保証がないからである.意図がうまく実現されたかどうかは観測によって確認される べきである.また,観測の結果として計算が意図したとおりにおこなわれていないことが あきらかになれば,それをのぞましい方向に修正するために制御することが必要になる. 著者の研究においてはマクロ・モデルとして確率過程にもとづくモデルを使用しているが, それについては第 4 章でのべる [*6a]

これらの 2 つのモデルは,すでにのべたことからもある程度わかるように相補的,すなわ ち両方とも不可欠である.相補的であるという理由を 3 つあげることにする.第 1 の理由 は,システムのミクロな状態のなかには観測と制御には不要な情報すなわち本質的な情報 をとらえるうえではじゃまになる微細な情報がおおいから,観測と制御のためにミクロ・ モデルをつかうことはできず,マクロ・モデルが必要だということである.

第 2 の理由はより重要だが,それはミクロ・モデルからはシステムのマクロな状態やふる まいは予測できないから,ミクロ・モデル以外にマクロ・モデルが必要だということであ る.計算システムとの直接の関係はないが,物理学から例をとると,物理学にはミクロな 世界とマクロな世界とをつなぐ統計物理学という分野がある.そこではミクロ・モデルと しては力学,マクロ・モデルとしては熱力学があり,統計力学がこれらをつないでいると いうことができるだろう.マクロ・モデルである熱力学におけるマクロな量たとえばエン トロピーは多数の分子の関係として定義されるから,個々の分子のうごきを説明するミク ロ・モデルである力学によっては説明されない.また,熱力学における第 2 法則すなわち エントロピー増大の法則が力学だけからはうまく説明できないことはよくしられた事実で ある.

第 3 の理由は,マクロ・モデルだけではシステムの詳細な動作を決定できないということ である.これは,マクロ・モデルにおいては捨象されている部分があるからあきらかであ ろう.

ところで,物理・化学系などの自己組織化の理論として Haken らによるシナジェティク ス [Hak 78][Hak 83] や Prigogine らによる散逸構造理論 [Pri 77] などがある.これらの理論 はもともと計算システムには直接関係がないが [*8],これらの理論においてもミクロなレベル とマクロなレベルとがあつかわれ,それらの ``からみあい'' から自己組織化がおこること がしめされている.また清水 [Shi 90][Shi 92] は生物における自己組織化を理論化しようと しているが,生物においてはこのような 2 つのレベルのあいだのフィードバックとフィー ド・フォワードによってつくられる ``ホロニック・ループ'' が多層的に存在し,自己組織 化をおこなっていると主張している.計算システムにおいても,定性的にはこのような ミクロなレベルとマクロなレベルとのあいだのからみあいから 自己組織化がおこるといえるであろう.

これらの 2 つのモデルをうまくくみあわせることによって,適応的な計算システムを構成 することが将来の研究目標になるとかんがえられる.この点については次章でもうすこし くわしくのべる.

[→ 次章]


脚注

[*1] 上記のことからわかるように,ここでいう ``計算'' はそれじたいが非決定論的なものである.``計算'' は基本的には人間の要求や希望をみたすようにおこなわれるが, プログラムによって完全に制御されているわけではないので, かならず人間の希望どおりになるとはかぎらない. この問題への対策については後述する.

[*2] (11/14/94 追記) 複雑な問題においては計算に必要な知識が部分的にしかあたえられないということを 橋田は「情報の部分性」ということばでよんでいる.

[*3] 現在われわれが手にしている道具をつかっても, この目標をある程度実現することはできる.西垣 [Nis 88][Nis 90] はソフトウェア工学や AI が合理的なものをもとめながら,実際には人間の非合理性, あいまいさ,情念などを反映したソフトウェアがつくられていることを指摘している. しかし,``もっとうまくやる'' ためには,``不完全な計画'' にもとづく計算の理論が必要だろう.

[*4] (11/14/94 追記) 最近はやりのエージェント指向というかんがえかたでは,エージェントに自律性 (自発性 ?) をもたせる必要があることが指摘されている. この自律性とはエージェントの外部からみたときに そのふるまいが外的制約だけから決定的にきまらないということだとかんがえられる. しかし,エージェントの内部は古典的な方法 (たとえばオブジェクト指向) によってプログラムされているのがふつうである.これで はたしてほんとうに自律性を獲得することができるのだろうか. この論文で提案しているモデル CCM においては,もっとミクロなレベルから非決定性を 導入することを意図している.

[*5] (11/14/94 追記) LSI 配線の例は,GA をはじめとする非決定論的な計算法全般に関して,それが すすむべきひとつのみちをしめしているようにおもわれる.人間の英知をしぼって 最適化プログラムが記述されるばあいを相手にするかぎり,プログラミングを否定する このような方法がいきる余地はないようにおもわれる.しかし,人間には あらゆる問題に英知をしぼるだけの時間はないはずである. ただし,LSI 配線問題がこの問題に関する最適な例であるかどうかには疑問がある.

[*6] (11/14/94 追記) 「部分的な知識」の意味をここでは限定してしまっているが,他の意味についても, いうまでもなく,別途検討しなければならない.

[*7] (11/14/94 追記) ここではミクロ・モデルにおける不足をマクロなモデルによっておぎなうことを かんがえている.しかし,「情報の部分性」をおぎなうのに,いつもこのような やりかたをつかわなければならないわけではない.重要なのは,みかたのことなる 複数のモデルをうまく統合して計算をおこなうということであり (情報の統合),おなじレベルの情報をパタンとしてみるモデルと 記号としてみるモデルとの統合ということも可能性としてかんがえることができる.

[*8] Haken らはシナジェティクスの計算システムへの適用もかんがえている [Hak 83] が,その対象はおもに並列処理におけるハードウェアの自己組織化である. この研究がめざす記号処理における自己組織化のためには,Haken らのとは質的にちがう理論が必要だとかんがえられる.なぜなら, 自己組織化対象がおかれる空間の構造がまったくことなる (たとえば Haken らがあつかっているのは連続系であり,われわれの対象は離散系である) からである.
(10/12/94 追記) ここで指摘しているのは連続な系と離散的な系という構文的な ちがいであるが,この研究がめざすのは意味づけられたシステムであるという点も 重要である.この「意味」というものをもっとも深刻にうけとめているのが清水である.


Y. Kanada