Comments
Description
Transcript
シスチム - AZ
3 9 シスチム ド 夢 宮 この主主では、非単調論理に基づく推論システムについて紹介する。まず最 初に非単調論理とは何かについて解説し、次に TMSという非単調論理の方 式を核とした推論システムを構築する。 2 .1 (まじめに 非単調論理と単調論理を対比することにより、非単調論理とは何かを浮き 彫りにしよう。単調論理に基づくシステムの代表格は、 P r o l o gの処理系が採 用している述語論理である。単調論理に基づくシステムでは、真となる記述 隠されることがない。また、システム外から入ってきた記述は、 が決して取り i 1に挙げる例を システム内の記述とは矛盾しないことを前提としている。圏 2 考えてみよう。 記述 A (事実)寸 1 記述 B 記述 C 「一(仮定)寸 I (事実)-- E I (記述 結論) 記述 D (事実) 図2 1 単調論理に基づくシステムでは、新しい記述は古い記述を否定しない。そ 1において、記述 Fが付加されるとしても結論 Eは変わらない。真 のため図2 となる記述が一方的に増える点が「単調Jで、あると言われる由縁である。しか 1の し、非単調推論では新しい記述が古い記述を消すことがある。例えば図 2 2のように考える。 各記述の内容を闇 2 4 0 第│部推論システム 事実:昼間である「 トー仮定:太陽が出ている「 事実:晴れている」 ト 結 論 :N氏は l 目を痛める 事実 :N氏は太陽を見つめている i 図2 2 「昼間である Jという事実と、「晴れている」という事実から「太陽が出てい る」という仮定を導くのは、通常は十分もっともらしい。しかし、ここに「い ま日食中である」という事実をつけ加えると、それは「太陽が出ている」という 氏は目を痛める」という結論は rN 氏は日食 仮定を消し、その仮定に基づく rN を観測中である」という結論に置き変わる。このように非単調論理では、新し い記述が古い記述を消したり、変えたりするのである。 単調論理に基づくシステムには以下のような利点が指摘されている。(人工 知能 II/E.リッチ著虞田、宮村共訳/マグロウヒルブック) ① 外部から新しい主張が入ってきたときに、内部の主張との矛盾があるか 否かを確認しなくてもよい。 ② 前提が消去されることがないので、 2次的な主張の証明経過を保持して おく必要がない。 しかし、この長所は同時にシステムの制約ともなる。単調推論に基づくシス テムでは、例外的事態の発覚や状況の変化による前提となる主張の取り消し には対応することはできない。そして、推論システムを複雑な問題に適用す" る時に必ず問題となるのは、そうした状況の変化や例外的な事態による前提 条件の変化なのである。例えば「日食」といった例外的事態に対応するために 2の事実から仮定、結論を導く筋道は図 2 3のように書き改めなけれ は、図 2 ばならない。 このような、ある記述の欠加に基づく推論をデフォールト推論という。デ フォールト推論では、日食であるという事実が証明されなければ、日食でな いという事実が確認されなくとも推論をとりあえず進行させて「太陽が出て いる」という結論を導くようになっている。そして、状況が変わって「日食で ある」という事実が成り立つことが分かると、結論は修正される。 同様な例で、ある動物が烏であると分かったとすると、その動物はとりあ えず飛べると判定する。しかし、鳥がペンギンであると分かったときには「飛 48 第 ! 部 推 論 シ ス テ ム あるいは m (記述) の形式の述語。その他 P r o l o gの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの ときに成功する。 m (記述)は n o t(記述)というノードがア ウトである場合に成功する 。条件部が全て成功すればノー ドがインとなり条件部に合わせて理由づけが付加された上 で、データベースに付け加えられる。 m (記述)という記述 があればそれは SL型証明のアウトノードということにな りその理由づけは『仮定』となる 。 ノードとルールの他に、 n o d e p t r(数)• 数:ノードの数 の書式で、ノードの総数を書いておく必要がある。 2 . 3 . 2 TMSに基づく非単調推論システムのインプリメント 図2 8が TMSを含んだ推論エンジンのプログラムである 。 Z主主主主本主主主主主主主主主主主主主主主主主主 Z AMORD % % 1主主本主主主主主主主主主主主主主主主本主主主主主 a m o r d : n1,w rit守ド初期ノードのリスト'), n1, Ii s t n o d巳, r e p e a t, n l,w r it e ( 'ル ー ル 適 用 開 始 , , )n I, w a i t, apply_rule, n l,w r i t e ( '矛盾解消開始'), nI, w a i t, r e s o l v e, n l,w r i t eC'ノードの表示, , ) nI, w a i t . l i s t n o d e, writ e (, 終 了 し ま す か (y/n)'), d_keyin(X), n1 .n1, ( [ X J =" Y " ; [ X J =" Y " ), i ni t . 幽 Z主主主主主主主字本主本主客孝章主主孝章本主主主 z Z 初期化 z Z本本本本孝章本本主主本主主孝章孝章孝章孝章本主 Z a b o li s h ( n o d e, 4 ), a b o li s h ( r u l e, 3), a b o li S h ( n o d e p t r, l ) . i n i t z 事実の一覧 Z z 孝章孝章本本意孝章主主孝章孝章本本主孝章主主主 Z Z本本主主孝章孝章孝章本主孝章本本毒事本本主主主 Z Ii s t n o d e : get_nodeptr(Ptr), Ii s t n o d e( 1 ,P t r ), 司 Ii s t n o d e ( N l, N ) : - Ii s t n o d e ( N, E n d ) : e li e f, Support,1 0 ), n o d e ( N,B write(node(N,B e l i e f, Support,I O ) ), N1 > N . N li sN + l, Ii s t n o d e ( N l, E n d ) . 2本本主主主主客孝章牢主主主本孝章主主主孝章寺本 Z n1, Z ルールの適用 z Z主主主主主主キキ主主主主宰本本主本主本主主主*% apply_rule:r u l e ( l d, Condition,B e li et ) , c on di t i o n check(Condition,I n L i s t, O u t L i s t ), w r i t eC'ルール, ), w r i t e ( l d ) . w r i t e ( 'を適用 ,), ふ '中 - - ' l, l - , l 畠 nusL・・ l,.avu.、、ノATU、、ノHU、、ノ+hv、、J E ugs-nHU+uS 凸り,a・edt'ed E ﹁ し。“、自﹂-B''tu lsl'LιL・L ・1 4 1 u H U A L 4 1v E 且 suaunUHU n --円 U 1 中 u,Aり lL'nH'4b' nHaτhVES--'I'cdιτU 31SEtel--s , B a n H q 帥' t u . 1JIb-'Tan-し l'nrLnain Ui ・ 先陣、、ノ I AL 中 AEUQJ V 1: 、、,,, 、 , ﹂ •• tttt 士・←令lill 'Iφ令やATAUAua 同 UAu nv&品・4ATnnnn nv&令③AVAunvhunu a w 冷 釘r m 町A C C C C y 一主主 品 、ノ ・ 1 ﹂ ' 1 J ' T・4L't'12121st qmwAWA -lil £﹄Ul 令+令eoaaaaa ψ 中 T I T I やAT+令:l,甲1 I 1 中 士・るや't-sI千-zI千・ f・ v '白EV白﹂白﹂ 。令。令白﹂'白しρ士・や令EU¥ノ1 ・ 1¥/lia-φ令やAT--t-SI--'tnH's・212E 士・ゆ令・・1ノeeeleee 士・φAY、JSI--nDnD'nDnDnD φ令'φ令、Jet--・/kot 一〆k・l /' k 必孟TJJ£号FELlhElks--ikH2IiMH @ 令 F や や ' ' i n D puρし £l ﹁ v l ﹂ F , や A T A £ 令 、 B ﹂ 由、 l 、 〆t 、 自 ιv ・'白し白EM﹂ ' a b 白 e令 : £ A T ﹁ ELnpALhH261ιHl hH E 士・コるAT'rto c e--ce c 本白‘本可Jmn -D D e -口D 。令司ノ必令rzL 1 tLnH ﹁ し'nHFELnDnH ﹁ 本)。令 ' t﹁、+しO/1・'O﹁、。 。ゐ-nu必AYin-HU ・ s・-knHlしn'l -tw 必ふ・RH&ATeen HVAYUCEIL-vC 干 r -+令立ロφ令ee -er、le e -t ・ 'l&司令LLEA事 h H し n e j n u L n e JuhHiBinu - -+ 令μド ψ令 C C AunCAun c lsn 9Hρ﹄やAY'泊、。令・ -AUAM-AVAV -A﹂凸v s''l士- Ad A+令nH7・nHnH c n n c n n D C HUるふ・る令凸vhvAUUAU rE6A・&令aEi,,. , a E ( O u t L i s t 干== [ ] ー 〉 a d d_n o d e ( B e li e f . [仮定, l n Li s t,O u t L i s t ] ) ; a d d _ n o d e ( B e li e f,[根拠, l n L i s t ] ) ), 4 9 第 2章 非 単 調 推 論 シ ス テ ム 5 0 第 l部 推 論 シ ス テ ム 1本主本主主主主主主本主客本主主本本本主主主主主 Z Z 事実の追加 Z Z本主主字本主主主主主主主主主主本主主主主主主客 Z add_node(Belief, Support):Support,in), node(Ptr,Belief, ¥ o Ir ite('事 実 ' ), ¥ o Ir ite(Ptr), write(' ' ) , write(Beli ef ) , ¥ o Ir ite(' を確認, ), n1, nH , add_node(Beli e f, Support):node(Ptr,B e lief, Support 1 , in), Support V== Supportl, retract(node(Ptr,Be1i ef, 5upport 1,in)), assertz(node(Ptr,Belief,Support,in)), write('事 実 , ), ¥ o Ir ite(Ptr), write(' ' ) , ¥ o Ir ite(Beli ef ) , ¥ o Ir ite(' の 理 由 づ け を ' ), write(Support), write('に変えた, ), nH , add_node(Beli e f, Support):retract(node(Ptr,Beli e f, ー , out)), assertz(node(Ptr,Belief, Support,in)), write('事 実 ' ), write(Ptr), ¥ o Ir ite(' ' ) , ¥ o Ir ite(Beli ef ) , write(' を o u tから nに変えた, ), add_node(Beli e f, Support):get_nodeptr(Ptr), Pt r1 i s Pt r +1, assertz(node(Ptrl,BeIi ef, Support,i n)), ¥ 0 1r i te(,新事実 ,), write(Ptrl), ¥ o Ir ite(' ' ) , write(Beli ef ) , ¥ o Ir ite(' を追加, ), n1, put_nodeptr(Ptrl), ? Z主主主主主主主主主意事本本主主意本主主客本意本 Z 矛盾の解消 Z Z Z本本主主主主本事本主主客本本意事主主主客本本意 Z resolve:- 第 2章 非 単 調 推 論 シ ス テ ム 51 node(Num,矛盾 (Content), Support,in), ¥Hi te('事 実 ' ), IHite(Num), . . . . r i t e ( ' :' ) , ....rite(Content), . . . . r i t e ( ' に 矛 盾 発 見 , ), n1, assumption_search(Support, Assumption), add_node(nogood(Num),[c p , AssumptionJ), get_nodeptr(Ptr), resolve_conflict(Ptr, Assumption), fai1. resolve. Z字本主主キキキキ主主主字本本主主客本主主主主本主主主主客宰主主 Z Z 矛盾を導く仮定の発見 Z Z本主主主主主主本意キキキ主主主主主意本主主主本本主主主主意孝章 Z assumption_search([根拠, lnListJ, Assumption):ー as sub(lnList, Assumption), assumption_search([仮定, lnList,_J, Assumption):・ as_sub(lnList, Assumption), as_sub([],[]). as_sub([IOIIOTail J, [IOIAsTai1]):/ 車1 0 は変数名〈アイオー)で数ではない草/ node(IO, ー , [仮定 I_J, _ ) , as_sub(1 OTai1, AsTai1). as_sub([1 011 OTai1J, Assumpti 0n ):node(IO, _ , Support, _ ) , assumption_search(Support, Asl), as_sub(1 OTai1, As2), append(Asl, As2, Assumption). as_sub([_IIOTai1 ], Assumption):as_sub(1 OTai1, Assumpti on). z 本本本字本主主客孝章本本孝章主主本宰客本主主客 E z 矛盾の解消 z z 本本孝章本主本本孝章本主主主本主主宰本主主主主 Z res0Ive_c0nfIi ct(Num, [As1AsTaiI]):in_to_out (As), remove( X , [AsIAsTai1 ],Rest), node(X, 一 , [仮定,_, OutList],ー), member(Y, OutList), add_support(Y,[根拠, [NumIRest]]), fai1• resolve_conflict(ー'ー):- add_support(Ptr, Support):(node(Ptr,BeIief, 一 , out)), retract in_out_check(Support, 10), assertz(n , ode(Ptr,Belief, Support,10)), write('事 実 ' ). write(Ptr), . . . . r i t e ( ' ' ) , 5 2 第 l部 推 論 シ ス テ ム I . 'r ite(Beli ef ) , I . 'r ite('に 理由づけ , ' ), I . 'r ite(Support) I . 'r ite('を 与 え ま し た ' ), I . 'rite('in-out 値 は , ), , I . 'r ite(lO) n H ' I . 'r ite(' です, ), in_out_check([根拠, lnList],IO):ー allinp(lnList)ー 〉 10=in ; 10=out. allinp([]). aI1inp( [1n11nTai1])ー : node(ln, _ , ー , i n), allinp(lnTai1 ) . Z主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主 Z % i nから ou tヘ 1 2主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主 1 i n t0 out(ptr ):retract(node(Ptr,Beli e f,Support,一)), assertz(node(Ptr ,Beli e f,Support,out)), I . 'r ite('事 実 , ), I . 'r ite(Ptr), write(' ' ) , write(Beli ef ) , write(' を n から o u t(こ変えました, ), tms(Ptr), 1主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主 Z % TM S ( 真 理 保 全 機 構 ) % 1主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主 1 tms(Ptr):(node(Ptr, lB eli e f,[恨拠, lnList],in); node(Ptrl,Beli e f,[仮定, lnList, _ ] , in)), member(Ptr, lnList), i n to out(Ptrl ) , faiI. tms(一). 1主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主 1 ユーティリティ2 Z 1主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主 member(A, [AI ]). z [ ー1 V]):member(A, V). member(A, append([],X,X). append([AIX], Y, [AIZ]): append(X, Y, Z). 咽 第 2章 非 単 調 推 論 システム 5 3 r e m o v e ( T g, [ T g I T a i1 ], T a i1 ), r e m o v e ( T g, [ X I T a iI ], [ X I Y ] ) : a iI, Y ) , r e m o v e ( T g,T get_nodeptr(Ptr):n0d _ eptr(P tr)• get_nodeptr(O), put_nodeptr(Ptr):r e t r a ct(n o d e p t r (ー)), asserta(nodeptr(Ptr)), w a i t w r i t e ( '適 当 な キ ー を 押 し て く だ さ い , ). d _ k e y i n (ー), n1, 図2 8 非単調推論システムの推論エンジン トップレベルは、 ルールの適用 a p p l y_r u l e/ O 矛盾解消機構 r e s o l v e / O 現時点のノード表示 l i s t n o d e/ O の 3つのルーチンを繰り返すだけである 。 ノレールの適用の部分で、は、プロダクションシステムの前向き推論と同様に、 ノードと条件部を照合して全ての要素が成立すれば、アクション部のノード を理由づけとともにデータベースに登録する 。 矛盾解消機構は、 矛盾の有無のチェ ック もし矛盾があれば 矛盾を導く 『 仮定』ノ ードをさがす a s s u m p t i o n_s e a r c h / 2 c p型証明に基づくノードを生成する 矛盾を解消する r e s o l v e_c o n f 1 i c t / 2 という一連の手続きからなっている 。 このうち矛盾を解消する述語は理由づ けをたどって 2節で説明したアルゴリズムに沿って矛盾を解消し、 全体の整 合性を保つためにノードのインーアウト値の書換えを行なう 。 5 4 第 l部 推 論 システム 2 . 3 . 3 TMSに基づく非単調推論システムーーその 1 まず最初にドイルの論文にならって、 男女関係 の悲喜劇 を例にと って TMSの挙動を説明してみよ う 。 ドイルの例はシェークスピァか ら引用して いるが、登場人物の名前になじみがないので、漫画の「うる星やつら」の人物 に出演 してもら うことにする 。 ここでは、あたる、終太郎の 2人の男性陣と、 ラム、しのぶの 2人の女性陣に登場してもらう。図 2 9がノードとルールの初 期状態である。 z 主主主主主主本主主主主本主主本 Z Z 女性陣 Z Z主主主主字本本主主主本主主本主 Z node(l,女性(ラム).前提.i n). n). node(2,愛する(ラム,あたる),前提, i node(3,女性(しのぶ),前提, in). n). node(ll,愛する(しのぶ,終太郎),前提, i 1本主主主主本本主宰主主本主主主 Z Z 終太郎 E Z本主主主宰主主牢主主主主孝章t% node(5,男性(終太郎),前提, i n). not(愛する(終太郎,ラム)),[], out). node(6, 2本主主主主主主主本主主主主本主主 1 あたる z Z本主主主主主主主主主主主主本主 Z nodeC 7,男性(あたる),前提.in). not(愛する(あたる.しのぶ)),[], out). node(8, node(9.not(愛する(あたる,ラム)),[], out). nodeptr(9). Z主主主主主本主主主本主主主主主 Z Z ルール 1 2主主主主主主主主主本主主主主主 Z rule(, l 女 性 (Person), m(愛する(あたる, Person)) 愛する(あたる, Person) rule(2, 男 性 (Person), m(愛 す る (Person.ラム)) 愛 す る (Person,ラム〉 rule(3, not(愛する(終太郎.ラム)) 第 2章 非 単 調 推 論 シ ス テ ム ルール?を適用 新事実 1 6:嘆く(しのぶ〉 を追加 ルール?を適用 新事実 1 7: 嘆く〈あたる) を追加 JL--ル?を適用 新事実 1 8:嘆く〈終太郎〉 を追加 ルール 8を適用 新事実 1 9:矛盾〈嘆く〈ラム)) を追加 ル } ル 8を適用 新事実 2 0:矛盾(嘆く(しのぶ)) を追加 矛盾解消開始 適 当なキーを押してください 事実 1 9:嘆く〈ラム〉 に 矛 盾 発 見 新事実 2 1 :n o g o o d( 19 ) を追加 事実 1 1:愛する(あたる,しのぶ〉 を 1 nから ou tに変えました 事実 1 3:電撃(ラム,あたる〉 を nから o u t.に変えました ' 事実 1 5:嘆く(ラム〉 を 1 nから ou tに変えました 事実 1 9:矛盾〈嘆く(ラム)) を nから ou tに変えました 事実 1 7 : 嘆く〈あたる〉 を 1 nから ou tに変えました . 事実 8 :n o t (愛するくあたる,しのぶ))に理由づけ [根拠, [ 2 I J Jを与えました n - 0 u t値 は i n です 事実 2 0:嘆く(しのぶ〉 に 矛 盾 発 見 新事実 2 2 :n o g o o d ( 2 0 ) を追加 事実 1 2:愛する〈終太郎,ラム〉 を 1 nから ou tに変えました 事実 1 4:抜万〈終太郎,あたる〉 を nから ou tに変えました 事実 1 6:嘆くくしのぶ〉 を nから ou tに変えました 事実 2 0:矛盾〈嘆くくしのぶ)) を nから outに変えました 事実 1 8:嘆く〈終太郎〉 を 1 nから ou tに変えました 事実 6 :n o t (愛する(終太郎,ラム))に理由づけ [根拠, [ 2 2 J Jを 与 え ま し た 1 n一 ou t 値は i n です ノードの表示 適当なキ}を押してください n o d e(1,女性〈ラム),前提, i n ) n ) n o d e ( 2,愛する〈ラム,あたる),前提, i n o d e ( 3,女性〈しのぶ),前提, i n ) n ) n o d e ( 4,愛する〈しのぶ,終太郎),前提, i n o d e ( 5,男性(終太郎),前提, i n ) ot(愛する(終太郎,ラム)),[根拠, [ 2 2 ] ],i n ) n o d e ( 6,n n o d e ( 7,男性(あたる),前提, i n ) n o d e ( 8,n o t (愛する〈あたる,しのぶ)),[根拠, [ 2 1日, i n ) n o d e ( 9,n o t (愛するくあたる,ラム)),[], o u t ) n o d e( 10,愛する〈あたる,ラム),[仮定, [ 7 ],[ 9 ] ],i n ) 3 ],[ 8 ] ],o u t ) n o d e ( l l,愛する〈あたる,しのぶ),[仮定, [ 12,愛する〈終太郎,ラム), [仮定, [ 5 ],[ 6 ] ],o u t ) n o d e( n o d e( 13,電撃(ラム,あたる),[根拠, [ 2,l l ] ],o u t ) 14,抜万(終太郎,あたる), [根拠, [1 2,1 0 ] ],o ut ) n o d e( 15 ,嘆く(ラム),[根拠, [ 2,1 1日, o u t ) n o d e( n o d e( 16,嘆く(しのぶ),[根拠, [ 4,1 2 ] ],o u t ) 17,嘆く(あたる),[根拠, [ 1 1,4 ] ],o u t ) n o d e( 5 7 第 2章 Z本牢本キキ寺本本主主主主宰主主 Z 前提 Z Z :u事本主主主主主主本字本孝章本児 n o d e (1,人間(ボール),前提, in ) . ) . n o d e ( 2 .人 間 ( サ ム ),前提, in n o d e ( 3,ロボット〈ハル),前提, in ) . ) . n o d e ( 4 .ロ ボ ッ ト ( ヴ ィ ザ ー ),前提, in ) . n o d e ( 5,命令者〈ボール),前提, in n o d e ( 6,命令〈危害を加える(ハル,サム)),前提, in ) . ) . n o d e(7,原則 1に 従 わ な け れ ば な ら な い , 前 提 , in n o d e ( 8,n o t (原 則 2 に従わなければならない),[], o u t ) ot(原則 3 に従わなければならない),[], o u t ) . n o d e ( 9,n n o d e(lO .n o t (命令に従わなければならない),[], o u t ) . ) . n o d e p t r(lO 1本主本本**本主主主孝章孝章本本事本主意本孝章 Z Z z 行為の生成 、もノ ・iv 、 り な ω JJa な キJ れ ﹀な 削従制 Mわ ω nwpL・ 剛 山 443 . 叩ア﹄川 、 , r hP3 MW 令 令命一口 [一"mL実 Z主宰牢宰本主主主主主客孝章孝章孝章本本意本寺本Z r u l e (, l ) Z孝章本本本本本本主主主客主主主主客本本本主主主 Z Z 実行規則 z Z牢孝章宇牢主主主主主主客主主客孝章本本意事本本 Z r u l e ( 2, m(原 則 2に 従 わ な け れ ば な ら な い ), 原 則 1に 従 わ な け れ ば な ら な い 原 則 2に 従 わ な け れ ば な ら な い r u l e ( 3, [ m(原 則 3に 従 わ な け れ ば な ら な い ), 原 則 2に 従 わ な け れ ば な ら な い , 原 則 1に 従 わ な け れ ば な ら な い ] 原 則 3に 従 わ な け れ ば な ら な い . E毒事事本孝章毒事本事事本幸孝章孝章本孝章本主主主意本毒事本孝章 Z z 矛 盾 を 判 定 す る 規 員J I % Z幸毒事事事本主主事本本本本本孝章本意孝章孝章主主宰牢本主主主主 Z r u l e ( 4, [ ロ ボ ッ ト (X), 人 間 (Y), 実 行 〈 危 害 を 加 え る (X,Y)), 非単調推量動システム 6 1 6 2 第│部推論システム 原則J I 1~こ従わなければならない ], 矛盾〈実行〈危害を加える ( X,Y ) ) ) rule(5, 命 令 者 (X), 人 間 (X), not(命 令 に 従 わ な け れ ば な ら な い ), 原 則 2に 従 わ な け れ ば な ら な い , ] 矛 盾 (not(命 令 に 従 わ な け れ ば な ら な い ) ) rule(6, ロボット (X), 実行〈危害を加える , X ) ), 原 則 3に 従 わ な け れ ば な ら な い c 矛盾(実行(危害を加える仁, X ) ) ) 国2 1 3 ロボ ット工学 3原則 ないことが、前提ノードではなく仮定ノードであることを示している 。各ル ールの内容を簡単に説明する 。 /レール 1:命令を実行するルール ノレール 2 :ロボ ッ ト工学 3原則の原則 2 jレール 3 :ロボ ット工学 3原則の原則 3 ルール 4 :原則 1に従わないときの矛盾ノードの設定 /レール 5:原則 2に従わないときの矛盾ノードの設定 ルール 6 :原則 3に従わないとき の矛盾ノードの設定 2 . 3 . 6 実行例ーーその 2 図2 1 4はロボ ッ ト工学 3原則に関する非単調推論の実行経過である。 ロポ ッ トに人聞が人聞を傷つけろと命令を与えた場合、最初のルール適用 サイクルではノード 1 4に n o d e( 1 4,矛盾(実行(危害を加える(ハル,サム))), [根拠, [ 3, 2, 1 1, 7 ] ], i n ) . 第 2章 非 単 調 推 論 システム 6 3 I? a m o r d . 初期ノードのリスト n o d e (1,人間(ボール).前提.i n ) n ) n o d e(2.人間(サム).前提.i n ) n o d e ( 3,ロボ、ソト(ハル).前提, i n o d e ( 4,ロボ、ソト(ヴィザー).前提, i n ) n ) n o d e ( 5 .命 令 者 ( ボ ー ル ),前提, i n ) n o d e ( 6,命令(危害を加える(ハル,サム)),前提, i n o d e(7,原則 1,こ従わなければならない,前提, i n ) ot(原則 2 ,こ従わなければならない),[], o u t ) n o d e ( 8,n n o d e ( 9,n o t (原則J I3 に 従 わ な け れ ば、 ならない),[], o u t ) n o d e(lO .n o t (命令に従わなければならない).[], o u t ) ルール適用開始 適当なキーを押してください ル ー ル 1を 適 用 新事実 1 1:実行〈危害を加える(ハル,サム)) を 追 加 ル ー ル 2を 適 用 新事実 1 2:原則 2 に 従 わ な け れ ば な ら な い を 追 加 ル ー ル 3を 適 用 1 3:原則J I3 に 従 わ な け れ ば な ら な い を追加 新事実 ル ー ル 4を 適 用 新事実 1 4:矛盾(実行(危害を加える(ハル,サム))) を 追 加 矛盾解消開始 適当なキーを押してください 事実 1 4:実行(危害を加えるくハル,サム)) に 矛 盾 発 見 新事実 1 5 : nogood(4) を 追 加 1 1:実行〈危害を加える〈ハル,サム)) を 1 nから ou tに 変 え ま し た 事実 1 4:矛盾〈実行〈危害を加えるくハル,サム))) を nから o u tt こ変えまし 事実 た 事実 1 0 :n o t (命 令 に 従 わ な け れ ば な ら な い 〉 に 理 由 づ け [根拠,[15 ] ]を 与 え ま した n ー ou t値 は i n です ノードの表示 適当なキーを押してください n o d e (1,人間〈ボール),前提, i n ) n o d e ( 2,人間〈サム),前提, i n ) n o d e ( 3,ロボット〈ハル),前提, i n ) n o d e ( 4,ロボット〈ヴィザー),前提パ n ) n o d e ( 5,命令者〈ボール),前提, i n ) ¥ . -,サム)),前提, i n ) n o d e ( 6,命令(危害を加える(ハ J n o d e(7,原則 1に 従 わ な け れ ば な ら な い , 前 提 , i n ) n 9 d e ( 8,n o t (原 則 2に 従 わ な け れ ば な ら な い ) , [ l . o u t ) o t (原 則 3 に従わなければならない),[], o u t ) n o d e ( 9,n n o d e ( 1 0,n o t (命 令 に 従 わ な け れ ば な ら な い ) , [根拠,[l5 J J,i n ) n o d e ( 1 1,実行〈危害を加えるくハル,サム)),[仮定, [ 6 J,[10 J J,o u t ) n o d e(l2,原則 2tこ 従 わ な け れ ば な ら な い ベ 仮 定 , [ 7 J,[ 8 ] J,i n ) 第 2章 非 単 調 推 論 シ ス テ ム 6 5 という矛盾ノードが設定される。次に矛盾解消機構が発動し、 n o d e( 15 , n o g o o d( 14 ),[ c p, 1 4,[ 1 1 J J, i n ) . という CP型証明を根拠とするノードが設定される。この CP型証明を根拠 として人聞を傷つけるというのが命令内容である場合には、理由があれば命 令に従わなくてもよいノード 1 0は下記のようにアウトからインに変わる。 n o d e( 10 , n o t(命令に従わなければならない),[根拠, [ 1 5 JJ, i n ) しかし、人聞が命令者である以上命令に従わないというのは原則 2に違反し てしまう。従って、次のルール適用サイクルでは新しい矛盾ノード 1 6が生成 される。 n o d e( 16,矛盾 ( n o t(命令に従わなければならない)), [根拠, [ 5, l, 1 0, 1 2 J J, i n ) . これにともない再び、矛盾解消機構が発動し、まず C P型証明に基づくノード 1 7が設定される。 n o d e( 1 7, n o g o o d( 16 ),[ c p, 1 6,[ 1 2 J J, i n ) . このノードを理由づけとしてノード 8がインに変わり、ノード 8をアウトノ ードとして持つ仮定ノード 1 2はインからアウトに変わる。 n o d e( 8, n o t(原則 2に従わなければならない),[根拠, [ 1 7 J J, i n ) . 7 J,[ 8 J J, o u t ) . n o d e( 1 2,原則 2に従わなければならない, [仮定, [ これにともない矛盾ノード 1 6はアウトに変わる。すなわち命令者が人間であ っても、人聞を傷つける命令には従わなくてもよい、という原則 2の例外規 則がうまく働いたわけである。こうした実行経過を追うと無理な命令を与え られたロボットのジレンマがよく表現されている。ノード 5、 6を変えてロ ボットに自分自身を破壊するように命令したらどうなるか。また命令者が他 のロボットだったらどうなるか。いろいろ試みられるとよいだろう。 2 . 4 システムの評価 推論エンジンの部分のインプリメントは、 TMSについて理解さえしてい れは難しくはなかった。むしろ TMSとは何かについて理解することの方が 困難で、ある。非単調推論の特徴を簡潔に表わす小規模なルールベースを考え る作業は、意外と難しいものである。特にロボット工学 3原則の初期ノード