(Translated by https://www.hiragana.jp/)
Planner - Wikipedia コンテンツにスキップ

Planner

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

Planner("PLANNER"とも表記ひょうきされる)は、1969ねんMITカール・ヒューイット設計せっけいしたプログラミング言語げんご当初とうしょ、サブセットの Micro-Planner や Pico-Planner が実装じっそうされ、のち完全かんぜん実装じっそうとして Popler が登場とうじょう。その派生はせい言語げんごとして QA-4、Conniver、QLISP、Ether などが実装じっそうされ、1970年代ねんだい人工じんこう知能ちのう研究けんきゅう道具どうぐとして重要じゅうよう役割やくわりたし、商用しょうようの KEE や ART の開発かいはつにも影響えいきょうあたえた。

当時とうじマービン・ミンスキーシーモア・パパート、Mike Peterson の学生がくせいだったヒューイットは、「知識ちしき手続てつづてきみ」論者ろんしゃであり、こうレベルの手続てつづてき計画けいかくによるアプローチを信奉しんぽうしていた。当時とうじジョン・マッカーシーらは人工じんこう知能ちのう(AI)のための知識ちしき表現ひょうげんとして数理すうりろん理学りがくもちいた宣言せんげんてきかつ論理ろんりてきアプローチを信奉しんぽうしており、両者りょうしゃ対立たいりつ関係かんけいにあった。このことはつぎのような基本きほんてき疑問ぎもんした。「手続てつづてきアプローチと論理ろんりてきアプローチのちがいはなにか?」である。これにこたえがせるようになるまですうねんようした。

Plannerの初期しょき歴史れきし

[編集へんしゅう]

ヒューイット[2006]によれば、Planner は「手続てつづてき計画けいかく; procedural plan」機能きのう世界せかいはつ言語げんごであり、これを「ゴール」と「表明ひょうめい; assertion」を使つかった「パターン管理かんりし; pattern-directed invocation」とぶ。Planner のサブセット Micro-Planner は Gerry Sussman、Eugene Charniak、テリー・ウィノグラードらが実装じっそうし、ウィノグラードの自然しぜん言語げんご理解りかいプログラム SHRDLU、Eugene Charniak のストーリー理解りかいのプロジェクトなどに使つかわれた。これらの成果せいか人工じんこう知能ちのう分野ぶんや活気かっきかせた。また、当時とうじ主流しゅりゅうであった論理ろんりてきアプローチとはことなる手法しゅほう提案ていあんしていたため、論争ろんそうぶこととなった。

エジンバラ大学だいがくの Bruce Anderson は Planner のサブセット Pico-Planner を実装じっそうし、おなじエジンバラ大学だいがくの Julian Davies は完全かんぜんな Planner 言語げんご処理しょりけいである Popler を実装じっそうした。SRIでは、ジェフ・ルリフソン、Jan Derksen、Richard Waldinger らは、Planner の文法ぶんぽうをベースにしてデータベースのモジュールせい提供ていきょうする機構きこうとしてコンテキスト機構きこう導入どうにゅうした QA4 を開発かいはつした。おなじ SRI の Earl Sacerdoti と Rene Reboh は QA4 を InterLisp うえ実装じっそうした QLISP を開発かいはつし、これをいくつかのアプリケーション開発かいはつ使用しようした。論理ろんりてきアプローチの Robert Kowalski は Alain Colmerauer と共同きょうどうで Micro-Planner によくProlog開発かいはつかかわった。実際じっさい、ヒューイットは Prolog を Micro-Planner のサブセットのさい発明はつめいとみなした。というのは、Prolog がたんにパターンの一致いっちによってゴールをるだけなのにたいして、Micro-Planner は手続てつづてき計画けいかくすこともできたからである。しかし、Kowalski 自身じしんは Prolog を人工じんこう知能ちのう開発かいはつへのアプローチのひとつとして論理ろんりてきパラダイムを保持ほじするものとかんがえていた。

制御せいぎょ構造こうぞうかんする議論ぎろん

[編集へんしゅう]

ヒューイット[2006]にもあるように、Planner 開発かいはつ当時とうじのコンピュータメモリは高価こうかであり容量ようりょうちいさかった。そこでメモリの使用しよう節約せつやくするため、制御せいぎょ構造こうぞうとして当時とうじ一般いっぱんてきだったバックトラッキング採用さいようした。この手法しゅほうでは、コンピュータはいくつもの可能かのうせいのうちひとつだけをメモリに保持ほじしておけばよかったのである。

この実装じっそうじょう決断けつだんにより、Micro-Planner は不運ふうん結果けっかまねくこととなった。LISPでは NILそらのリストをあらわすと同時どうじfalse(メモリ番地ばんち 0)をあらわすようにしている。というのも 0 かどうかのチェックが高速こうそくおこなえるからである。このため、LISPプログラムでは NILかどうかのチェックは非常ひじょう頻繁ひんぱんおこなわれる。Micro-Planner はこれを拡張かくちょうして NIL をバックトラッキング開始かいしのシグナルとしてもあつかった。Micro-Planner では、リストのかく要素ようそなんらかの処理しょりをループでおこなうのが一般いっぱんてきだが、このとき先頭せんとう要素ようそをリストから除去じょきょしたのこりのリストをってループの先頭せんとう分岐ぶんきし、リストがそらかどうかをチェックする。リストがそらだった場合ばあい、プログラムはつぎべつ処理しょり分岐ぶんきする。このようなプログラムで最後さいご要素ようそ処理しょりされ、それをリストからのぞいたのこりのリストが NIL になったとき、それをチェックする部分ぶぶんにはプログラムは到達とうたつしない。というのも、Micro-Planner は NIL到達とうたつしたときにそれをバックトラッキングのシグナルとしてあつかい、それまでリストのかく要素ようそたいしてった処理しょりしてしまうのである。このことに人々ひとびとおどろかされた。

このことはバックトラッキングのあつかいにくさを証明しょうめいし、制御せいぎょ構造こうぞうかんする議論ぎろん活性かっせいされることとなった。ヒューイットは可能かのう実装じっそう方法ほうほう調査ちょうさした。

制御せいぎょ構造こうぞうのクラス

[編集へんしゅう]

ヒューイットは Mike Paterson とともに、再帰さいき(recursion)がかえし(iteration)よりも強力きょうりょくであること、並列へいれつ処理しょり逐次ちくじてき再帰さいきよりも強力きょうりょくであることを証明しょうめいした。ヒューイットは同時どうじコルーチン再帰さいきよりも強力きょうりょくであると推測すいそくしたが、最近さいきん強力きょうりょく形式けいしき手法しゅほう使つかうまでそれを証明しょうめいできなかった。

Hairy Control Structure

[編集へんしゅう]

ヒューイット[2006]によれば、Peter Landin は J (Jump) 演算えんざん使つかって非常ひじょう強力きょうりょく制御せいぎょ構造こうぞう導入どうにゅうした。これはプロシージャしの途中とちゅうむことが可能かのうなローカルでない goto である。実際じっさいJ 演算えんざんすでにリターンみのプロシージャしの途中とちゅう分岐ぶんきしてもどることができる。Drew McDermott と Gerald Sussman は、Landin のコンセプトを 「Hairy Control Structure; 複雑ふくざつ制御せいぎょ構造こうぞう(Hairy はハッカー用語ようご本来ほんらい意味いみは"毛深けぶかい")」とび、Conniver 言語げんご実装じっそうした。スコット・ファールマンはこれをロボット開発かいはつ活用かつようした。このコンセプトは現在げんざいさい可能かのう継続けいぞくばれているものと関連かんれんしている。

制御せいぎょ構造こうぞうはメッセージパッシングのパターンである

[編集へんしゅう]

ヒューイットはつぎのようにべている。「…"Hairy control structure"(たとえば CONNIVER のような可能かのうせいリスト、ローカルでない goto、のプロシージャの内部ないぶ変数へんすうへの代入だいにゅうなど)を使つかわない手法しゅほう発見はっけんした…通常つうじょうのメッセージパッシングが問題もんだい解決かいけつモジュールあいだ協調きょうちょう動作どうさかんして、より構造こうぞうされ直観ちょっかんてき通信つうしんシステムを構築こうちくする基礎きそとなる。」すなわち、アクターモデル人工じんこう知能ちのう制御せいぎょ構造こうぞう問題もんだい解決かいけつする基礎きそとなるとした。アクターモデルのためのプログラム方法ほうほうろん開発かいはつするにはかなりの時間じかんようした。しかし、Scientific Community Metaphor実装じっそうには洗練せんれんされたメッセージパッシングを必要ひつようとし、いま研究けんきゅう課題かだいのひとつとなっている。

数理すうり論理ろんりがく限界げんかい

[編集へんしゅう]

制御せいぎょ構造こうぞう議論ぎろんはプログラミング言語げんごとしての数理すうりろん理学りがく使用しよう可能かのうせいかんして議論ぎろんんだ。手続てつづてきアプローチは、数理すうり論理ろんりがくとはことなる数学すうがくてき意味いみろん表示ひょうじてき意味いみろん参照さんしょう)をつ。数理すうり論理ろんりがくだけでは、決定けっていせい並列へいれつシステムや分散ぶんさんシステムを記述きじゅつできない。

参考さんこう文献ぶんけん

[編集へんしゅう]
  • Carl Hewitt. PLANNER: A Language for Proving Theorems in Robots IJCAI 1969
  • Gerry Sussman and Terry Winograd. Micro-planner Reference Manual AI Memo No, 203, MIT Project MAC, July 1970.
  • Terry Winograd. Procedures as a Representation for Data in a Computer Program for Understanding Natural Language MIT AI TR-235. January 1971.
  • Carl Hewitt. Procedural Embedding of Knowledge In Planner IJCAI 1971.
  • Gerry Sussman, Terry Winograd and Eugene Charniak. Micro-Planner Reference Manual (Update) AI Memo 203A, MIT AI Lab, December 1971
  • Carl Hewitt. Description and Theoretical Analysis (Using Schemata) of Planner, A Language for Proving Theorems and Manipulating Models in a Robot AI Memo No. 251, MIT Project MAC, April 1972.
  • Bruce Anderson. Documentation for LIB PICO-PLANNER School of Artificial Intelligence, Edinburgh University. 1972
  • Bruce Baumgart. Micro-Planner Alternate Reference Manual Stanford AI Lab Operating Note No. 67, April 1972.
  • Eugene Charniak. Toward a Model of Children's Story Comprehension MIT AI TR-266. December 1972.
  • Julian Davies. Popler 1.6 Reference Manual University of Edinburgh, TPU Report No. 1, May 1973.
  • Jeff Rulifson, Jan Derksen, and Richard Waldinger. QA4, A Procedural Calculus for Intuitive Reasoning SRI AI Center Technical Note 73, November 1973.
  • Robert Kowalski Predicate Logic as Programming Language Memo 70, Department of Artificial Intelligence, Edinburgh University. 1973
  • Pat Hayes. Computation and Deduction Mathematical Foundations of Computer Science: Proceedings of Symposium and Summer School, Štrbské Pleso, High Tatras, Czechoslovakia, September 3-8, 1973.
  • Carl Hewitt, Peter Bishop and Richard Steiger. A Universal Modular Actor Formalism for Artificial Intelligence IJCAI 1973.
  • Drew McDermott and Gerry Sussman. The Conniver Reference Manual MIT AI Memo 259A. January 1974.
  • Earl Sacerdoti, et. al., QLISP A Language for the Interactive Development of Complex Systems AFIPS. 1976
  • William Kornfeld and Carl Hewitt. The Scientific Community Metaphor MIT AI Memo 641. January 1981.
  • Carl Hewitt. The Challenge of Open Systems Byte Magazine. April 1985
  • Robert Kowalski. The limitation of logic Proceedings of the 1986 ACM fourteenth annual conference on Computer science.
  • Robert Kowalski. The Early Years of Logic Programming CACM January 1988.
  • Carl Hewitt and Gul Agha. Guarded Horn clause languages: are they deductive and logical? in Artificial Intelligence at MIT, Vol. 2. MIT Press 1991.
  • Carl Hewitt. The repeated demise of logic programming and why it will be reincarnated What Went Wrong and Why: Lessons from AI Research and Applications. Technical Report SS-06-08. AAAI Press. March 2006.

外部がいぶリンク

[編集へんしゅう]