人工知能、特に認知科学において、フレーム問題とは、 ロボットが世界に存在するという事実を表現するために一階述語論理を使用する際の問題点を指します。従来の一階述語論理でロボットの状態を表現するには、環境内の物事が恣意的に変化しないことを単純に示唆する多くの公理を用いる必要があります。例えば、ヘイズはブロックを積み重ねるルールを持つ「ブロックの世界」を記述しています。一階述語論理システムでは、環境について推論を行うために追加の公理が必要となります(例えば、ブロックは物理的に移動されない限り位置を変えることができないなど)。フレーム問題とは、ロボット環境の適切な記述を行うための公理の適切な集合を見つける問題です。[ 1 ]
ジョン・マッカーシーとパトリック・J・ヘイズは、1969年の論文「人工知能の観点から見たいくつかの哲学的問題」でこの問題を定義した。この論文、そしてその後の多くの論文において、形式的な数学的問題は、人工知能における知識表現の難しさについてのより一般的な議論の出発点となった。仮想環境において、合理的なデフォルト仮定をどのように提供するか、人間が常識と考えるものとは何かといった問題である。[ 2 ]
哲学において、フレーム問題は、行為に応じて更新しなければならない信念の範囲を限定するという問題と関連して、より広義に解釈されるようになった。論理的な文脈では、行為は通常、それが何を変えるかによって規定され、それ以外のすべて(フレーム)は変化しないという暗黙の前提がある。
フレーム問題は、非常に単純な領域でも発生します。開いているか閉じているかのドアと、オンかオフかのライトがあるシナリオは、2 つの命題によって静的に表現されます。そしてこれらの条件が変化する可能性がある場合、2つの述語でより適切に表現できます。そして時間に依存する述語。このような述語は流暢性と呼ばれます。時刻 0 でドアが閉まり、ライトが消え、時刻 1 でドアが開く領域は、論理では次の式で直接表現できます。
最初の2つの式は初期状態を表し、3番目の式は時刻1でドアを開ける動作を実行した結果を表します。このような動作に、ドアのロックが解除されているなどの前提条件があった場合、それは次のように表されます。実際には、述語が存在するだろう。アクションが実行されるタイミングとルールを指定する行動の効果を具体的に示すためのものです。状況計算に関する記事に詳細が記載されています。
上記の3つの公式は、既知の事実を論理的に直接表現したものであるが、それだけでは正しい帰結を導き出すには不十分である。以下の条件(想定される状況を表す)は上記の3つの公式と矛盾しないが、唯一の条件ではない。
実際、上記の3つの公式と矛盾しない別の条件は次のとおりです。
フレーム問題とは、アクションによって変更される条件のみを指定しても、他のすべての条件が変更されないことを保証するものではないという点です。この問題は、いわゆる「フレーム公理」を追加することで解決できます。フレーム公理は、アクションの実行中にアクションの影響を受けないすべての条件が変更されないことを明示的に規定します。例えば、時刻0で実行されるアクションはドアを開けることであるため、フレーム公理は、時刻0から時刻1にかけてライトの状態が変化しないことを規定します。
フレーム問題とは、行為が条件に影響を与えないような行為と条件のあらゆる組み合わせに対して、そのようなフレーム公理が一つ必要となるという点にある。言い換えれば、フレーム公理を明示的に指定することなく、動的領域を形式化するという問題である。
この問題を解決するためにマッカーシーが提案した解決策は、最小限の条件変更が発生したと仮定することであり、この解決策は限定の枠組みを用いて形式化されています。しかし、イェール射撃問題は、この解決策が常に正しいとは限らないことを示しています。そこで、述語補完、流暢なオクルージョン、後継状態公理などを含む代替の解決策が提案されました。これらについては後述します。1980年代末までに、マッカーシーとヘイズによって定義されたフレーム問題は解決されました。しかしその後も、「フレーム問題」という用語は、同じ問題が異なる設定(例えば、同時アクション)で言及される場合と、動的ドメインの表現と推論に関する一般的な問題を指す場合の両方で使用され続けました。
以下の解法は、フレーム問題が様々な形式でどのように解決されるかを示しています。形式そのものは完全には示されていません。示されているのは、完全な解法を説明するのに十分な簡略化されたバージョンです。
この解決策は、動的ドメインの仕様記述のための形式言語も定義したErik Sandewall氏によって提案されました。そのため、このようなドメインはまずこの言語で表現され、その後自動的に論理に変換されます。この記事では、論理式のみを示し、アクション名を含まない簡略化された言語のみを使用します。
この解決策の根拠は、時間の経過に伴う条件の値だけでなく、最後に実行されたアクションによって条件が影響を受けるかどうかも表現することにあります。後者は、オクルージョンと呼ばれる別の条件によって表現されます。条件が特定の時点でオクルージョンされているとは、その条件を真または偽にするアクションが直前に実行されたことを意味します。オクルージョンは「変更の許可」と見なすことができます。条件がオクルージョンされている場合、慣性の制約から解放されます。
ドアとライトの単純化された例では、遮蔽は2つの述語によって形式化できる。そしてその理由は、条件の値が変わるのは、対応するオクルージョン述語が次の時点で真である場合に限られるからである。そして、オクルージョン述語は、条件に影響を与えるアクションが実行された場合にのみ真となる。
一般的に、条件を真または偽にするすべてのアクションは、対応する遮蔽述語も真にします。この場合、が真であるため、上記の第4式の前件は偽となる。したがって、制約は次のようになります。当てはまらない。 したがって、値を変更することができ、それは3番目の式によって強制されるものでもある。
この条件が機能するためには、オクルージョン述語は、アクションの結果として真になった場合にのみ真でなければなりません。これは、限定または述語の補完によって実現できます。オクルージョンは必ずしも変化を意味するわけではないことに注意が必要です。たとえば、既に開いているドアを開けるアクションを実行すると(上記の形式化において)、述語は真実であり、確かにそうですが、価値は変わっていません。なぜなら、それは既に真実だったからです。
このエンコーディングは流暢なオクルージョンソリューションに似ていますが、追加の述語は変更の許可ではなく変更を表します。たとえば、述語が事実を表している時間の経過とともに変化するに結果として、述語が変化するのは、対応する変化述語が真である場合に限る。アクションが変化をもたらすのは、それが以前は偽であった条件を真にする場合、またはその逆の場合に限る。
3つ目の式は、ドアを開けるとドアが開くということを別の言い方で表現したものです。正確には、ドアが以前に閉まっていた場合、ドアを開けるとドアの状態が変わると述べています。最後の2つの条件は、ある時点で条件の値が変わることを示しています。対応する変化述語が時刻において真である場合に限る解決策を完成させるには、変更述語が真となる時点をできるだけ少なくする必要があり、これはアクションの効果を指定するルールに述語補完を適用することで実現できます。
アクション実行後の条件の値は、条件が真となるのは、以下の条件が満たされる場合のみであるという事実によって決定されます。
後継状態公理は、これら2つの事実を論理的に形式化したものである。例えば、そしては、時刻に実行されたアクションを示すために使用される 2 つの条件です。ドアを開閉する場合、実行例は次のようにエンコードされます。
この解決策は、行動の結果ではなく、条件の価値を中心に据えています。言い換えれば、すべての行動に公式があるのではなく、すべての条件に公理があります。行動の前提条件(この例には含まれていません)は、別の公式によって形式化されます。後継状態の公理は、レイ・ライターが提案した 状況計算の変種で使用されます。
流暢な計算は、状況計算の一種です。これは、状態を表すのに述語ではなく一階述語論理の項を用いることで、フレーム問題を解決します。一階述語論理において述語を項に変換することを実体化と呼びます。流暢な計算は、条件の状態を表す述語が実体化される論理体系と見なすことができます。
一階述語論理における述語と項の違いは、項は対象(他の対象から構成される複雑な対象である場合もある)を表すものであるのに対し、述語は与えられた項の集合に対して評価された際に真偽を判定できる条件を表すという点にある。
流暢な計算では、各可能な状態は、他の項の合成によって得られる項で表され、各項は状態において真である条件を表します。たとえば、ドアが開いていてライトが点灯している状態は、次の項で表されます。用語はそれ自体では真偽を判断できないことに注意することが重要です。なぜなら、用語は条件ではなく対象だからです。言い換えれば、用語はこれは可能な状態を表しており、それ自体が現在の状態であることを意味するものではありません。これが特定の時点での実際の状態であることを指定するには、別の条件を記述することができます。例:これは時刻における状態であることを意味します。
流暢な微積分で提示されるフレーム問題の解決策は、状態を表す項が動作の実行時にどのように変化するかを記述することによって、動作の効果を指定することです。例えば、時刻 0 でドアを開ける動作は、次の式で表されます。
ドアを閉めるという行為は、条件を真から偽に変えるものであり、少し異なる方法で表現されます。
この公式は、適切な公理が与えられている場合に有効です。そして例えば、同じ条件を2回含む用語は有効な状態ではありません(例えば、は常に偽であるそして)
イベント計算は、フルーエント計算と同様に、フルーエントを表すための用語を使用しますが、後継状態公理のように、フルーエントの値を制約する1つ以上の公理も持ちます。イベント計算には多くのバリエーションがありますが、最も単純で有用なものの1つは、慣性の法則を表すために単一の公理を使用します。
この公理は、流暢な一度に保持するイベントが発生した場合発生し、開始する以前の時代に、イベントはありません それは起こり、そして終わる。 後または同時にそしてその前に。
イベント計算を特定の問題領域に適用するには、そしてそのドメインの述語。例:
イベント計算を特定の問題に適用するには、その問題のコンテキストで発生するイベントを指定する必要があります。例えば、次のようになります。
「時刻5においてどのフルエントが成り立つか?」といった問題を解決するには、問題を目標として設定する必要がある。例えば、次のように。
この場合、唯一の解を得るには:
イベント計算は、非単調論理(一階述語論理と限定[ 3 ]など)を使用したり、イベント計算を否定を失敗として用いる論理プログラムとして扱ったりすることで、望ましくない解を排除し、フレーム問題を解決します。
フレーム問題は、「すべてのものは現状のままであると想定される」(ライプニッツ『秘密百科事典序論』、 1679年頃)という原則を形式化する問題と考えることができる。このデフォルトは、慣性の常識法則と呼ばれることもあり、レイモンド・ライターによってデフォルト論理で表現された。
(もし状況において真実である、そして[ 4 ]はアクション実行後も真のまますると、次の結論が得られます。(依然として真実である)。
スティーブ・ハンクスとドリュー・マクダーモットは、イェール大学の射撃実験を例に挙げ、この枠組み問題の解決策は不十分であると主張した。しかし、ハドソン・ターナーは、適切な追加公理が存在する場合には、この解決策が正しく機能することを示した。
回答集合プログラミング言語におけるデフォルト論理ソリューションの対応物は、強い否定を持つルールである。
(もし時には真実である、そして、その時も真実であり続けるすると、次の結論が得られます。(依然として真実である)。
分離論理は、次の形式の事前/事後仕様を使用してコンピュータプログラムについて推論するための形式体系である。分離論理は、コンピュータメモリやその他の動的リソース内の可変データ構造に関する推論を目的としたホーア論理の拡張であり、分離メモリ領域に関する独立した推論をサポートするために、「and separate」と発音される特別な接続子*を備えています。[ 5 ] [ 6 ]
分離論理では、事前/事後仕様を厳密に解釈し、コードは事前条件によって存在が保証されたメモリ位置にのみアクセスできると規定する。 [ 7 ]これにより、この論理で最も重要な推論規則であるフレーム規則の健全性が保証される。
フレームルールでは、コードのフットプリント(アクセスされたメモリ)外の任意のメモリの説明を仕様に追加できます。これにより、初期仕様はフットプリントのみに集中できます。たとえば、推論
リストxをソートするコードは、別のリストyをアンソートしないということを捉えており、上記の最初の仕様ではyについて全く言及していません。
フレームルールの自動化により、コードに対する自動推論技術のスケーラビリティが大幅に向上し、 [ 8 ]最終的には数千万行のコードベースに産業的に展開されました。[ 9 ]
フレーム問題に対する分離論理による解決策と、上述の流暢な計算の解決策には、何らかの類似点があるように思われる。
動作記述言語は、フレーム問題を解決するのではなく、むしろ回避する。動作記述言語は、状況や動作を記述するための構文を持つ形式言語である。例えば、動作がロックされていない場合にドアを開ける動作は、次のように表現されます。
動作記述言語の意味論は、その言語が何を表現できるか(同時動作、遅延効果など)に依存し、通常は遷移システムに基づいています。
ドメインは論理ではなくこれらの言語で表現されるため、フレーム問題は、アクション記述論理で与えられた仕様を論理に変換する場合にのみ発生します。ただし、通常、これらの言語から一階述語論理ではなく、応答集合プログラミングへの変換が行われます。