見出し画像

Retro-gaming and so on

Prologに対する色んな人のコメント、そして第5世代コンピュータ

Prolog(Programming Logic)は、人工知能分野でLispと直接競合する言語である。
Prologのアプローチは、この付録(注: 各言語紹介)で紹介したその他の言語とも根本的に異なる。
Prologプログラムは、基本的には解決すべき問題を表すものであり、Prologが組み込みの推論エンジンを使ってそのソリューションを導く。Prologは、ここで挙げた言語の中で唯一、その制御構造をPythonで学習した基本制御構造と簡単に対応させることができない言語である。他の言語とこれだけ違うという理由だけでも、Prologは十分知っておく価値のある言語である。


 
広い視点で見れば、Lispは利用可能な高級言語の1つであると同時に、普遍性の高いアセンブリ言語である。Lispはデータの抽象、制御の抽象を容易に捕捉できるので、高級言語と言ってもよいだろう。また、Lispは、最新のコンピュータ上で利用可能な操作を、直接反映するようなスタイルでコードを書けるので、良質なアセンブリ言語である。
一般的には、Prologはアセンブリ言語ほど効率は良くないが、少なくとも、いくつかの問題に対して簡明な仕様記述言語である。ユーザーはPrologを使用して仕様を書く。すなわち、問題領域の中で保持されている関係を記述する公理のリストを書く。この仕様が正しい形式で書かれているならば、プログラマが明示的なアルゴリズムを用意しなくても、Prologの自動後戻り制御が解を発見してくれる。探索空間が大き過ぎるか、または無限になってしまう問題もあるし、また、Prologのバックアップ付きの単純な深さ優先探索では、柔軟性がきわめて乏しくなってしまう問題もある。このようなケースでは、Prologは仕様記述言語というよりも、むしろプログラミング言語として使用する必要がある。プログラマはPrologの探索戦略を知った上で、問題に適したアルゴリズムを実装しなければならない。
PrologはLispと同様に、公正を欠いた俗説に悩まされてきた。Prologの初期の実装がインタープリタだったことと、インタープリタを書くために使用されてきたため、効率が悪い言語だと考えられてきた。しかし、最新のコンパイルされたPrologコードは、きわめて効率が良い(Warren他 (1977) とVan Roy (1990) )。Prologは、プログラミング言語というよりも、むしろProlog自身を1つの問題解決手法として見なしたくなる。このような見方をする人は、Prologの深さ優先探索戦略や述語論理の原理は、あまり柔軟性がないという意見に異議を唱える。Lispやその他の言語で行われたのと同じように、Prolog言語によって提供される機能を使用して、より強力な探索戦略や表現方法を組み立てているプログラマは、この異議に対して反論する。


 
Prolog は append を書くには素晴らしい言語だ; あとは(記述力は)落ちる一方だ。


1979年から具体的計画が進められ、その担い手となる電子技術総合研究所(現:産業技術総合研究所)の渕一博博士らは、論理型言語「Prolog」の潜在力に大きく注目していた。当時の人工知能研究の主流は関数型プログラミング言語「LISP」であったが、欧米の後追いをせずに日本独自の人工知能技術の確立を望んだ電総研は、論理プログラミングの選択を提唱した。これは自然言語処理など特定の推論分野への有用性は知られていたが、人工知能分野に対しては全くの未知数であった。論理型言語の中でもPrologは、特に簡素化された言わばBASIC的な言語であったので、その採用は取り分け欧米の研究者たちからは前衛的に受け止められた。

人工知能研究の第一人者であったファイゲンバウム博士からの「何故すでに二十年来の研究実績があるLISPではないのか?」という問いかけに、渕博士は「私たちは技術的に若いがゆえに何でも取り入れる柔軟さがある」と答え、先方の二十年来のLISP研究を知識の硬直化になぞらえた上で、日本はその既存概念に捉われないというスタンスが表明された。

1982年に通産省所管の新世代コンピュータ技術開発機構(ICOT)が設立され、第五世代コンピュータ計画が始動された。人工知能ソフトウェアは知識情報処理と定義され、それを運用するための計算ハードウェアは要素プロセッサを並列的に搭載した並列推論マシンと定義された。計画の要点である人工知能構築にはPrologベースの並行論理プログラミングが採用された。多額の開発研究予算と各企業からの推薦人材が集まった一大プロジェクトの始動後まもなくして、ICOTの目標がより具体化され「述語論理を基礎にした自動推論を高速実行する並列推論マシンとそのOSを構築する」というものになった。プロジェクトの目標はいつの間にか鳴り物入りの人工知能から、その一分野である自動推論へとシフトされていた。

日本は10年の歳月をPrologと並行論理の研究に費やしたが、論理プログラミングの国際学会では日本の研究成果が注目されたとは言い難く、PrologのISO規格化の場でも大きな影響力を持てなかった。

第五世代コンピュータの顛末は、同時期のΣプロジェクトと同様に、目に見える物作りのハードウェアの価値のみを重んじて、目に見えない抽象的なソフトウェアの価値を理解し得なかった当時の日本型思考に起因していたと言える。ビギナー論理型言語Prologが採用されて、それを並列推論マシンで運用すれば人工知能に化けると考えられたのも同様であった。


日本人のProlog好きは異常(笑)。
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事