第23章 一般問題解決器

人工知能プログラミング教科書用に GPS についてほぼほぼ書きました．以下はその最初と最後の記述です．

GPS を覚えているかな？今では「GPS」はパズルを解く大いに愚かなプログラム指す何の色もついてない用語だが，元々は「一般問題解決器，General Problem Solver」を意味していて，それに誰もがたくさん不必要に興奮し動揺した．それは LFGNS ― 「局所的特徴にガイドされたネットワーク探索器，Local Feature-Guided Network Searcher」と呼ばれるべきだった．[McDermott, 1976]

23.1 手段・目標解析，Means-Ends Analysis

一般問題解決器(General Problem Solver)とは，まるでそれで何でも解くことができると，容易に人々に誤解を起こさせるようなおおげさな名前だが，人工知能の歴史の初期に生まれた人工知能システムだ．目標（ゴール）と現在の状態と手段（オペレーション）が与えられたとき，ゴールのサブゴールを見つけて現状と目標との差を無くすように手段（オペレーション）を適用することから，GPS が問題を解くやりかたを，手段・目標解析と呼ぶようになった．アレン・ニューウェル と ハバート A. サイモン (1961) による GPS プログラムの説明[1]では概略以下のように解説される(訳は阿部，横山監訳による)．

目標：対象Aを対象Bに変換せよ

対象Aと対象Bを照合し差Dを見つけよ サブゴールDを縮小せよ サブゴールA'をBに変換せよ

目標：対象Aと対象Bとの間の差Dを縮小せよ

Dを縮小するのに適した作用子Qを探せ 実行可能かどうかテストせよ サブゴールAにQを適用してA'を作る

目標：対象Aに作用子Qを適用せよ

Qの条件をAと照合し差を見つけよ サブゴールDを縮小せよ サブゴールA'にQを適用せよ



正確な記述は原著にあたってほしいが，この記述だけでも，対象領域のゴール記述とシステムにおける目標があいまいにされ，対象とゴールという用語の区別もあいまいであるのが分かる．さらにオリジナルのプログラムは IPL で書かれていて，そのせいもあってプログラムは非常に複雑で分かりにくいものであった．それを ノーヴィクは PAIP の中でプラニングシステム STRIPS 流の概念で Common Lisp に書き直して簡単化した．以下では PAIP におけるプログラムをとりあげて GPS の説明をする．

23.6 GPS とはなんであったか？

GPS は人工知能の歴史の中で初期のものであり今日の目から見れば批判される点も多いが，そこにはその後の人工知能の色々な分野の要素が含まれていた．それをここでは，認知心理学，論理プログラミング，計画システムの観点から眺めてみる．

人間の問題解決行動

GPS オリジナル論文[1]のタイトルは GPS，人間の思考をシミュレートするプログラム である．ファイゲンバウムとフェルドマンによるアンソロジー コンピュータと思考 においても，この論文は第2部 認知過程のシミュレーション に収められている．ニューウェルとサイモンにとっては計画プログラムを作るのが目的であったのではない．人間の問題解決能力について観察し，問題領域によらない一般的な人間の知的な行動をシミュレーションすることによって，人間の知的能力の一端を明らかにしようとしたのである．

人間がするのと同じ仕事を機会におこなわせようとすることと，人間が実際に仕事をする過程をシミュレートしようとすることとは区別しなければならない，としばしば議論されている．この報告で述べるプログラム (GPS, General Problem Solver) は，この2つの接近法を最大限に混同させるものである．しかしそうすることによって相互に利益がえられる．以前には，GPS は問題解決プログラムを作る1つの試みとして述べられてきた（Newell, Shaw and Simon, 1959a, 1960a)．[...] 同じ頃，GPS の変形されたプログラムによって，人間行動のシミュレーションが得られた(Newell and Simon, 1961a)．ここでもっぱら注意を集中したいのは後者，すなわち GPS を人間の問題解決の理論として使うということである．[ [1](阿部，横山監訳）]

そのために彼らはこの論文の前書きで，感覚と概念の関係に着目する連合主義，内観を重視するヴェルツブルク派，行動主義，ゲシュタルト心理学などについて触れてさえいる．そしてそれらの心理学の当時の現状に対して GPS を次のように位置づけた．

今日の心理学は，行動主義とゲシュタルト心理学という2つの極の間の比較的安定した張力均衡の状態にある．われわれは両者の主要な教訓をとり入れた．すなわち，われわれの実験における主観的な要素を懐疑的にとりあつかい，結局はすべての概念を黄道上の尺度によってオペレーショナルにしなければならないという考えに同意する．また，われわれは，人間はきわめて複雑な組織化されたシステムであり，現代の行動主義心理学の簡単な体系は，これらすべてを反映するのがむずかしいように思われるということを認めている．[ [1](阿部，横山監訳）]

GPS によって開始された人間の知的行動のシミュレーションという立場は，結局現在では SOAR プロジェクトに引き継がれたといえる．興味を持たれたかたは SOAR ホームページからプログラムをダウンロードできるが，残念なことにそれは Java で書かれたものである．もちろん最初は Lisp であった．Lisp 版 SOAR はカーネギーメロン大学のリポジトリから入手可能である．

論理プログラミングからの視点

GPS オリジナル論文[1]で取り上げられた問題は命題論理の式を解く学生の行動である．彼らは例題のプロトコル分析の結果を，手段・目的解析に照らして跡付けている．しかしこの論文からは彼らの論理プログラミングへの関心は見られない．1981年発行のウィンストンの LISP にユニフィケーションはないが，Common Lisp で書かれた第3版ではあることから類推すれば，1961年当時ではユニフィケーションというテクニックが実装されていなかったということは十分に考えられる．今日ではラッセルとノーヴィクの人工知能教科書に見られるように，一般的な人工知能技術の定式化とシステムにおいても論理が全盛である．著者自身は決して論理万能とは思っていないが，ユニフィケーションは高度なパターンマッチ機能の実現手段として必須の技術である．GPS においても変数が扱えればと思うことはしばしばある．宇宙ロボットではポート1とポート2についてそれぞれ似ているが厳密には異なる作用子を書かざるを得なかったが，変数を導入できればそのようなことはなくなる．本書では第28章においてユニフィケーションを導入し，第31章のプラニングでは変数を可能としたプラニングシステムを紹介する．

計画プログラムからの視点

人工知能システムと一般のシステムのアーキテクチュア上での明確な違いは，一般のシステムでは領域の知識がプログラムと一体になってプログラム中に埋め込まれているのに対して，人工知能システムでは必ず知識部分が手続き部分から分離されているということだ．人間の一般的な問題解決能力をシミュレートするという目的で開発された GPS は図らずもその人工知能の原則に先鞭をつけたことになる．以後，エクスパートシステムその他においてもこの原則は貫徹されている．最近の話題ではジェパディで優勝した IBM のワトソンが医療診断分野に応用されるというのも，原理的にはこの推論部と知識部の分離にある．

今では GPS は問題解決器としてよりも，計画プログラムとしての位置づけのほうが強い．最初の典型的な計画システムである STRIPS においても，ファイクスとニルソン自身が STRIPS uses a GPS-like means-end analysis strategy というように，計画システムとして大きな影響を与えた．STRIPS は GPS を論理証明の力を借りて新しく作り直したものと言えるが，今日ではこの方向での計画システムの定式化は，Ghallab, Nau, Traverso の Automated Planning に纏められている．本書第30章ではGhallab, Nau, Traverso の定式化による，Lisp の継続を利用したプラニングシステムを提示する．