28
39 シスチム この主主では、非単調論理に基づく推論システムについて紹介する。まず最 初に非単調論理とは何かについて解説し、次に TMS という非単調論理の方 式を核とした推論システムを構築する。 2. 1 (まじめに 非単調論理と単調論理を対比することにより、非単調論理とは何かを浮き 彫りにしよう。単調論理に基づくシステムの代表格は、 Prolog の処理系が採 用している述語論理である。単調論理に基づくシステムでは、真となる記述 が決して取り i 隠されることがない。また、システム外から入ってきた記述は、 システム内の記述とは矛盾しないことを前提としている。圏2-1 に挙げる例を 考えてみよう。 記述 A (事実)寸 1 記述 C 「一(仮定)寸 記述 B I 記述 E (事実)-- I( 結論) 記述D (事実) 2-1 単調論理に基づくシステムでは、新しい記述は古い記述を否定しない。そ のため図2-1 において、記述 F が付加されるとしても結論Eは変わらない。真 となる記述が一方的に増える点が「単調J で、あると言われる由縁である。しか し、非単調推論では新しい記述が古い記述を消すことがある。例えば図2-1 各記述の内容を闇2-2 のように考える。

夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

39

宮 夢ド シスチム

この主主では、非単調論理に基づく推論システムについて紹介する。まず最

初に非単調論理とは何かについて解説し、次に TMSという非単調論理の方

式を核とした推論システムを構築する。

2. 1 (まじめに

非単調論理と単調論理を対比することにより、非単調論理とは何かを浮き

彫りにしよう。単調論理に基づくシステムの代表格は、 Prologの処理系が採

用している述語論理である。単調論理に基づくシステムでは、真となる記述

が決して取りi隠されることがない。また、システム外から入ってきた記述は、

システム内の記述とは矛盾しないことを前提としている。圏2-1に挙げる例を

考えてみよう。

記述A(事実)寸

1 記述C「一(仮定)寸

記述B I 記述E(事実)-- I(結論)

記述D(事実)

図2-1

単調論理に基づくシステムでは、新しい記述は古い記述を否定しない。そ

のため図2-1において、記述Fが付加されるとしても結論Eは変わらない。真

となる記述が一方的に増える点が「単調Jで、あると言われる由縁である。しか

し、非単調推論では新しい記述が古い記述を消すことがある。例えば図2-1の

各記述の内容を闇2-2のように考える。

Page 2: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

40 第|部推論システム

事実:昼間である「

トー仮定:太陽が出ている「

事実:晴れている」 ト結論 :N氏は

l 目を痛める

事実 :N氏は太陽を見つめている i

図2-2

「昼間であるJという事実と、「晴れている」という事実から「太陽が出てい

る」という仮定を導くのは、通常は十分もっともらしい。しかし、ここに「い

ま日食中である」という事実をつけ加えると、それは「太陽が出ている」という

仮定を消し、その仮定に基づく rN氏は目を痛める」という結論はrN氏は日食

を観測中である」という結論に置き変わる。このように非単調論理では、新し

い記述が古い記述を消したり、変えたりするのである。

単調論理に基づくシステムには以下のような利点が指摘されている。(人工

知能II/E.リッチ著虞田、宮村共訳/マグロウヒルブック)

① 外部から新しい主張が入ってきたときに、内部の主張との矛盾があるか

否かを確認しなくてもよい。

② 前提が消去されることがないので、 2次的な主張の証明経過を保持して

おく必要がない。

しかし、この長所は同時にシステムの制約ともなる。単調推論に基づくシス

テムでは、例外的事態の発覚や状況の変化による前提となる主張の取り消し

には対応することはできない。そして、推論システムを複雑な問題に適用す"

る時に必ず問題となるのは、そうした状況の変化や例外的な事態による前提

条件の変化なのである。例えば「日食」といった例外的事態に対応するために

は、図2-2の事実から仮定、結論を導く筋道は図2-3のように書き改めなけれ

ばならない。

このような、ある記述の欠加に基づく推論をデフォールト推論という。デ

フォールト推論では、日食であるという事実が証明されなければ、日食でな

いという事実が確認されなくとも推論をとりあえず進行させて「太陽が出て

いる」という結論を導くようになっている。そして、状況が変わって「日食で

ある」という事実が成り立つことが分かると、結論は修正される。

同様な例で、ある動物が烏であると分かったとすると、その動物はとりあ

えず飛べると判定する。しかし、鳥がペンギンであると分かったときには「飛

Page 3: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 4: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 5: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 6: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 7: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 8: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 9: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 10: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

48 第!部推論システム

あるいは

m(記述)

の形式の述語。その他Prologの任意の述語を書くことも

できる。「記述」はノード中の記述の事で、その記述がインの

ときに成功する。 m(記述)は not(記述)というノードがア

ウトである場合に成功する。条件部が全て成功すればノー

ドがインとなり条件部に合わせて理由づけが付加された上

で、データベースに付け加えられる。 m(記述)という記述

があればそれは SL型証明のアウトノードということにな

りその理由づけは『仮定』となる。

ノードとルールの他に、

nodeptr (数)•

数:ノードの数

の書式で、ノードの総数を書いておく必要がある。

2.3.2 TMSに基づく非単調推論システムのインプリメント

図2-8がTMSを含んだ推論エンジンのプログラムである。

Z主主主主本主主主主主主主主主主主主主主主主主主Z% AMORD % 1主主本主主主主主主主主主主主主主主主本主主主主主amord:幽

n 1, wr i t守ド初期ノードのリスト'), n 1, I istnod巳,

repeat, nl ,wri te('ルール適用開始, ), n I , wait, apply_rule, nl,write('矛盾解消開始'), n I ,

wait, resolve, nl,writeC'ノードの表示, ), n I ,

wait. listnode, w r i te( ,終了しますか (y/n)'),

d_keyin(X), n 1. n 1, ([XJ = "Y";[XJ= "Y"), i n i t.

Page 11: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

第 2章非単調推論システム 49

Z主主主主主主主字本主本主客孝章主主孝章本主主主zZ 初期化 z Z本本本本孝章本本主主本主主孝章孝章孝章孝章本主Zinit

abol ish(node,4), abol ish(rule,3), abol iSh(nodeptr,l).

Z本本主主孝章孝章孝章本主孝章本本毒事本本主主主Zz 事実の一覧 Z z孝章孝章本本意孝章主主孝章孝章本本主孝章主主主ZI istnode:司

get_nodeptr(Ptr), I istnode(1,Ptr),

I istnode(Nl,N):-N 1 > N.

I istnode(N,End):-node(N,Bel ief,Support, 10), write(node(N,Belief,Support,IO)), n 1, Nl is N+l, I istnode(Nl,End).

2本本主主主主客孝章牢主主主本孝章主主主孝章寺本Zz ルールの適用 Z

Z主主主主主主キキ主主主主宰本本主本主本主主主*%apply_rule:-

rule(ld,Condition,Bel iet), condition check(Condition, InList,OutList),

writeC'ルール, ) , write(ld). write('を適用 ,) ,

(OutList干== []ー〉add_node(Bel ief.[仮定, lnList,OutList]);add_node(Bel ief,[根拠, lnList])),

•• 、、,,,

、,」・

1

:

I

A

L

A

E

U

Q

J

V

U

i

-

-

n

u

s

L

l

.

a

v

u

.

-

ATU、、ノHU、、ノ+hv、、J

ugs-nHU+uS

E

a

e

d

t

'

e

d

Eし。“、自」-B''tu

---

'中l

s

l

'

L

ι

L

L

A

L

4

1v・141uHU

E

s

u

a

u

n

U

H

U

--円U中

1

nu

A

l

L

'

n

H

'

4

b

'

nHaτhVES--'I'cdιτU

3

1

S

E

t

e

l

-

-

s

.B

a

n

H

q帥

'tu

---

1

J

I

b

-

'

T

a

n

-

l

'

n

r

L

n

a

i

n

-'l

,l

,l

品、ノ

1

'

1

J

'

T・4L't'12121st

qふ

mwAWA

£

U

l

--

l

i

-

-l

ψ令

+

e

o

a

a

a

a

a

A

T

+

:

l

1

I

T

I

T

I

1

'

t

-

s

I

-

z

I

f・

'

ρ

-

v

'白EV白」白」

E

U

¥

1

・1

¥

/

l

i

a

-

-

φ令やAT--t-SI--'tnH's・212E

1

e

e

e

l

e

e

e

士・φAY、JSI--nDnD'nDnDnD

φ令'φ令、Jet--・/kot

一〆k・l

/'k

必孟TJJ£号FELlhElks--ikH2IiMH

@令

F

'

'

i

n

D

puρし

£l「lv白」

F」

やAT

A、,£令、B」由、〆t、自ιv・'白し白EMl'

ab

e令

:

£AT「

ELnpALhH261ιHlE

hH

A

T

'

r

t

o

c

e

-

-

c

e

c

J

m

n

-DDe

-口D

-

。令司ノ必令rzL

1し'nHFELnDnH「

t

L

n

H

)

't

+

O

/

1

'

O

。ゐ-nu必AYin-HU・s・-knHlしn'l

必ふ・RH&ATeenHVAYUCEIL-vC干

-tw

-

+

φ

e

e

rt

・-

e

r

l

e

e

--

'l&司令LLEA事

hHしnejnuLn

e

JuhHiBinu

-

-+令

μドψ令

C

C

A

u

n

C

A

u

n

c

lsn

9Hρ』やAY'泊、。令・

-AUAM-AVAV

-A」凸v

s''l士-AdA+令nH7・nHnH

c

n

n

c

n

n

D

C

H

U

v

h

v

A

U

U

A

U

r

E

6

A

&

a

E

i

.

,aE

t

t

t

t

y士

l

i

l

l

'

I

φ

A

T

A

U

A

u

a

U

A

u

n

v

&

4

A

T

n

n

n

n

n

v

&

A

V

A

u

n

v

h

u

n

u

a

w冷

rm町

A

C

C

C

C

Page 12: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

50 第 l部推論システム

1本主本主主主主主主本主客本主主本本本主主主主主ZZ 事実の追加 Z Z本主主字本主主主主主主主主主主本主主主主主主客Zadd_node(Bel ief,Support):-

node(Ptr,Belief,Support,in),

¥oIrite('事実 ') , ¥oIrite(Ptr), write(' '),

write(Bel ief), ¥oIrite(' を確認, ) ,

n 1,

add_node(Bel ief,Support):-node(Ptr,Bel ief,Support1, in), Support V== Supportl, re t ract (node (P t r, Be 1 i ef ,5u p po r t1 , i n)) , assertz(node(Ptr,Bel ief,Support, in)),

write('事実 , ) , ¥oIrite(Ptr), write(' '),

¥oIrite(Bel ief), ¥oIrite(' の理由づけを'), write(Support),

write('に変えた, ) ,

nH

add_node(Bel ief,Support):-retract(node(Ptr,Bel ief,ー, out)),assertz(node(Ptr,Bel ief,Support, in)),

write('事実 ') , write(Ptr), ¥oIrite(' '),

¥oIrite(Bel ief), write(' を o u tから nに変えた, ) ,

nH

add_node(Bel ief,Support):-get_nodeptr(Ptr), P t r 1 i s P t r+ 1 , assertz( node(Ptrl, Be I i ef, Support, i n)),

¥01 r i te( ,新事実 , ) ,

write(Ptrl), ¥oIrite(' '),

write(Bel ief), ¥oIrite(' を追加, ) ,

n 1, put_nodeptr(Ptrl), ?

Z主主主主主主主主主意事本本主主意本主主客本意本ZZ 矛盾の解消 Z Z本本主主主主本事本主主客本本意事主主主客本本意Zresolve:-

Page 13: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

node(Num,矛盾 (Content),Support,in),

¥H i te('事実 ') , IHite(Num), ....rite(': '), ....rite(Content), ....rite(' に矛盾発見, ) ,

n 1, assumption_search(Support,Assumption), add_node(nogood(Num),[c p ,AssumptionJ),

get_nodeptr(Ptr), resolve_confl ict(Ptr,Assumption),

fa i 1 .

resolve. Z字本主主キキキキ主主主字本本主主客本主主主主本主主主主客宰主主ZZ 矛盾を導く仮定の発見 Z Z本主主主主主主本意キキキ主主主主主意本主主主本本主主主主意孝章Zassumption_search([根拠, lnListJ,Assumption):ー

as sub(lnList,Assumption),

assumption_search([仮定, lnList,_J,Assumption):・

as_sub(lnList,Assumption),

as_sub([],[]).

第 2章非単調推論システム 51

as_sub([IOIIOTai lJ,[IOIAsTai 1]):- /車10は変数名〈アイオー)で数ではない草/

node(IO,ー, [仮定 I_J,_),as_sub( 1 OTa i 1 ,AsTa i 1).

a s _ s u b ([ 1 0 1 1 OT a i 1 J , A s s u m p t i 0 n) : -

node(IO,_,Support,_), assumption_search(Support,Asl), as_sub( 1 OTa i 1 ,As2), append(Asl,As2,Assumption).

as_sub([_IIOTai 1],Assumption):-as_sub( 1 OTa i 1 ,Assumpt i on).

z本本本字本主主客孝章本本孝章主主本宰客本主主客Ez 矛盾の解消 z z本本孝章本主本本孝章本主主主本主主宰本主主主主Zr es 0 I ve _ c 0 n f I i ct ( N u m , [A s 1 A s Ta i I ] ) : -

i n_ to_out(As), remove(X, [AsIAsTai 1],Rest),

node(X,一, [仮定,_, OutList],ー),

member(Y,OutList), add_support(Y,[根拠, [NumIRest]]),

fa i 1 • resolve_conflict(ー'ー):-

add_support(Ptr,Support):-retract(node(Ptr, Be I i ef,一, out)),i n_out_check(Support, 10), assertz(n,ode(Ptr,Bel ief,Support, 10)),

write('事実 ') .

write(Ptr), ....rite(' '),

Page 14: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

52 第 l部推論システム

I.'rite(Bel ief),

I.'rite('に理由づけ ') , I.'rite(Support), I.'rite('を与えました'),

I.'rite('in-out 値は , ) , I.'rite(lO), I.'rite(' です, ) ,

'

nH

in_out_check([根拠, lnList],IO):ー

all inp(lnList)ー〉

10= i n;

10=out. allinp([]).

a I 1 i n p ([ 1 n 1 1 nTa i 1 ]) :ー

node(ln,_,ー, i n),

all inp(lnTai 1).

Z主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主Z% i nから ou tヘ 1 2主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主1i n t 0 ou t (p t r) : -

retract(node(Ptr,Bel ief,Support,一)), assertz(node(Ptr,Bel ief,Support,out)),

I.'rite('事実 , ) , I.'rite(Ptr), write(' '),

write(Bel ief), write(' を nから o u t (こ変えました, ) ,

tms(Ptr),

1主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主Z% T M S (真理保全機構) % 1主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主1tms(Ptr):-

(node(Ptrl, Bel ief,[恨拠, lnList],in);

node(Ptrl,Bel ief,[仮定, lnList,_], in)), member(Ptr,lnList), in to out(Ptrl),

fa i I .

tms(一). 1主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主1Z ユーティリティ- 2 1主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主主zmember(A,[AI ]).

member(A,[ー 1V]) : -member(A,V).

append([],X,X).

append([AIX],Y,[AIZ]):咽

append(X,Y,Z).

Page 15: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

第 2章非単調推論システム 53

remove(Tg,[TgITai 1],Tai 1),

remove(Tg,[XITai I],[XIY]):-remove(Tg,Tai I,Y),

get_nodeptr(Ptr):-n 0 d_e p t r ( P t r) •

get_nodeptr(O),

put_nodeptr(Ptr):-

wait

retract(nodeptr(ー)), asserta(nodeptr(Ptr)),

write('適当なキーを押してください, ) . d_keyin(ー), n 1,

図2-8 非単調推論システムの推論エンジン

トップレベルは、

ルールの適用 apply _ rule/O

矛盾解消機構 resolve/O

現時点のノード表示 listnode/O

の3つのルーチンを繰り返すだけである。

ノレールの適用の部分で、は、プロダクションシステムの前向き推論と同様に、

ノードと条件部を照合して全ての要素が成立すれば、アクション部のノード

を理由づけとともにデータベースに登録する。

矛盾解消機構は、

矛盾の有無のチェ ック

もし矛盾があれば

矛盾を導く 『仮定』ノ ードをさがす

assumption _ search/2

cp型証明に基づくノードを生成する

矛盾を解消する

resolve _ conf1ict/2

という一連の手続きからなっている。このうち矛盾を解消する述語は理由づ

けをたどって 2節で説明したアルゴリズムに沿って矛盾を解消し、 全体の整

合性を保つためにノードのインーアウト値の書換えを行なう。

Page 16: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

54 第 l部推 論システム

2.3.3 TMSに基づく非単調推論システムーーその 1

まず最初にドイルの論文にならって、 男女関係の悲喜劇 を例にと って

TMSの挙動を説明してみよ う。 ドイルの例はシェークスピァから引用して

いるが、登場人物の名前になじみがないので、漫画の「うる星やつら」の人物

に出演 してもら うことにする。ここでは、あたる、終太郎の2人の男性陣と、

ラム、しのぶの 2人の女性陣に登場してもらう。図2-9がノードとルールの初

期状態である。

z主主主主主主本主主主主本主主本ZZ 女性陣 Z Z主主主主字本本主主主本主主本主Znode(l,女性(ラム).前提.i n).

node(2,愛する(ラム,あたる),前提, i n). node(3,女性(しのぶ),前提, i n).

node(ll,愛する(しのぶ,終太郎),前提, i n).

1本主主主主本本主宰主主本主主主ZZ 終太郎 E Z本主主主宰主主牢主主主主孝章t%node(5,男性(終太郎),前提, i n) .

node(6,not(愛する(終太郎,ラム)),[], out).

2本主主主主主主主本主主主主本主主1 あたる z Z本主主主主主主主主主主主主本主ZnodeC7 ,男性(あたる),前提.i n). node(8,not(愛する(あたる.しのぶ)),[], out).

node(9.not(愛する(あたる,ラム)),[], out).

nodeptr(9). Z主主主主主本主主主本主主主主主ZZ ルール 1 2主主主主主主主主主本主主主主主Zrule(l,

女性(Person),m(愛する(あたる, Person))

愛する(あたる, Person)

rule(2,

男性 (Person),m(愛する (Person.ラム))

愛する (Person,ラム〉

rule(3,

not(愛する(終太郎.ラム))

54 第 l部推 論システム

2.3.3 TMSに基づく非単調推論システムーーその 1

まず最初にドイルの論文にならって、 男女関係の悲喜劇 を例にと って

TMSの挙動を説明してみよ う。 ドイルの例はシェークスピァから引用して

いるが、登場人物の名前になじみがないので、漫画の「うる星やつら」の人物

に出演 してもら うことにする。ここでは、あたる、終太郎の2人の男性陣と、

ラム、しのぶの 2人の女性陣に登場してもらう。図2-9がノードとルールの初

期状態である。

z主主主主主主本主主主主本主主本ZZ 女性陣 Z Z主主主主字本本主主主本主主本主Znode(l,女性(ラム).前提.i n).

node(2,愛する(ラム,あたる),前提, i n). node(3,女性(しのぶ),前提, i n).

node(ll,愛する(しのぶ,終太郎),前提, i n).

1本主主主主本本主宰主主本主主主ZZ 終太郎 E Z本主主主宰主主牢主主主主孝章t%node(5,男性(終太郎),前提, i n) .

node(6,not(愛する(終太郎,ラム)),[], out).

2本主主主主主主主本主主主主本主主1 あたる z Z本主主主主主主主主主主主主本主ZnodeC7 ,男性(あたる),前提.i n). node(8,not(愛する(あたる.しのぶ)),[], out).

node(9.not(愛する(あたる,ラム)),[], out).

nodeptr(9). Z主主主主主本主主主本主主主主主ZZ ルール 1 2主主主主主主主主主本主主主主主Zrule(l,

女性(Person),m(愛する(あたる, Person))

愛する(あたる, Person)

rule(2,

男性 (Person),m(愛する (Person.ラム))

愛する (Person,ラム〉

rule(3,

not(愛する(終太郎.ラム))

Page 17: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 18: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 19: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

ルール?を適用

新事実 16 :嘆く(しのぶ〉 を追加ルール?を適用

新事実 17:嘆く〈あたる) を追加JL--ル?を適用

新事実 18 :嘆く〈終太郎〉 を追加ルール8を適用

新事実 19 :矛盾〈嘆く〈ラム)) を追加ル}ル8を適用

新事実 20 :矛盾(嘆く(しのぶ)) を追加

矛盾解消開始

適 当なキーを押してください

事実 19 :嘆く〈ラム〉 に矛盾発見新事実 21: nogood(19) を追加

第 2章非単調推論システム 57

事実 11 :愛する(あたる,しのぶ〉 を 1 nから ou tに変えました事実 13 :電撃(ラム,あたる〉 を nから ou t.に変えました '

事実 15 :嘆く(ラム〉 を 1 nから ou tに変えました

事実 19 :矛盾〈嘆く(ラム)) を nから ou tに変えました事実 17:嘆く〈あたる〉 を 1nから ou tに変えました .

事実 8: not(愛するくあたる,しのぶ))に理由づけ [根拠, [2IJJを与えましたn -0 u t値は in です

事実 20 :嘆く(しのぶ〉 に矛盾発見新事実 22: nogood(20) を追加事実 12 :愛する〈終太郎,ラム〉 を 1nから ou tに変えました事実 14:抜万〈終太郎,あたる〉 を nから ou tに変えました事実 16 :嘆くくしのぶ〉 を nから ou tに変えました

事実 20 :矛盾〈嘆くくしのぶ)) を nから ou tに変えました事実 18 :嘆く〈終太郎〉 を 1nから ou tに変えました事実 6: not(愛する(終太郎,ラム))に理由づけ [根拠,[22JJを与えました

1 n一 ou t値は in です

ノードの表示適当なキ}を押してくださいnode(1,女性〈ラム),前提, i n) node(2,愛する〈ラム,あたる),前提, i n) node(3,女性〈しのぶ),前提, i n) node(4,愛する〈しのぶ,終太郎),前提, i n) node(5,男性(終太郎),前提, i n) node(6, not(愛する(終太郎,ラム)),[根拠,[22]],in) node(7,男性(あたる),前提, i n) node(8,not(愛する〈あたる,しのぶ)),[根拠, [21日, i n) node(9,not(愛するくあたる,ラム)),[],out)node(10,愛する〈あたる,ラム),[仮定,[7],[9]],in) node(ll,愛する〈あたる,しのぶ),[仮定,[3],[8]],out)node(12,愛する〈終太郎,ラム),[仮定,[5],[6]],out)node(13,電撃(ラム,あたる),[根拠,[2,ll]],out)node(14,抜万(終太郎,あたる), [根拠,[ 12, 10]] , ou t) node(15,嘆く(ラム),[根拠, [2,11日,out)node(16,嘆く(しのぶ),[根拠,[4,12]],out)node(17,嘆く(あたる),[根拠,[11,4]],out)

Page 20: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 21: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 22: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 23: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

第 2章 非単調推量動システム 61

Z本牢本キキ寺本本主主主主宰主主ZZ 前提 Z :u事本主主主主主主本字本孝章本児

node( 1,人間(ボール),前提, i n). node(2.人間(サム),前提, i n). node(3,ロボット〈ハル),前提, i n). node(4.ロボット(ヴィザー),前提, i n). node(5,命令者〈ボール),前提, i n). node(6,命令〈危害を加える(ハル,サム)),前提, i n). node(7,原則 1に従わなければならない,前提, i n). node(8,not(原則 2に従わなければならない),[],out)node(9, not(原則 3に従わなければならない),[],out).node(lO. not(命令に従わなければならない),[],out).nodeptr(lO). 1本主本本**本主主主孝章孝章本本事本主意本孝章ZZ 行為の生成 z Z主宰牢宰本主主主主主客孝章孝章孝章本本意本寺本Zrule(l,

、もノ・ivな、りなJ

Ja

れキJ

〉な

Mわ

ω

nwpL・剛

MW令

ω

令命一口

hP3

,r、443

[一

"mL実

) . Z孝章本本本本本本主主主客主主主主客本本本主主主ZZ 実行規則 z Z牢孝章宇牢主主主主主主客主主客孝章本本意事本本Zrule(2,

m(原則 2に従わなければならない),

原則 1に従わなければならない

原則 2に従わなければならない

rule(3, [

m(原則 3に従わなければならない),

原則 2に従わなければならない,原則 1に従わなければならない

] . 原則 3に従わなければならない

E毒事事本孝章毒事本事事本幸孝章孝章本孝章本主主主意本毒事本孝章Zz 矛盾を判定する規員IJ % Z幸毒事事事本主主事本本本本本孝章本意孝章孝章主主宰牢本主主主主Z

rule(4, [

ロボット (X),人間 (Y),実行〈危害を加える (X,Y)),

Page 24: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

62 第|部推論システム

rule(5,

rule(6,

原則IJ1 ~こ従わなければならない] , 矛盾〈実行〈危害を加える (X,Y)))

命令者 (X),人間 (X),not(命令に従わなければならない),

原則 2に従わなければならない

], 矛盾 (not(命令に従わなければならない))

ロボット (X),実行〈危害を加えるc,X)), 原則 3に従わなければならない

矛盾(実行(危害を加える仁,X)))

国2-13 ロボット工学3原則

ないことが、前提ノードではなく仮定ノードであることを示している。各ル

ールの内容を簡単に説明する。

/レール 1:命令を実行するルール

ノレール 2:ロボット工学3原則の原則 2

jレール 3:ロボット工学3原則の原則 3

ルール 4:原則 1に従わないときの矛盾ノードの設定

/レール 5:原則 2に従わないときの矛盾ノードの設定

ルール 6:原則 3に従わないときの矛盾ノードの設定

2.3.6 実行例ーーその2

図2-14はロボット工学3原則に関する非単調推論の実行経過である。

ロポットに人聞が人聞を傷つけろと命令を与えた場合、最初のルール適用

サイクルではノード14に

node (14,矛盾(実行(危害を加える(ハル,サム)) ) ,

[根拠, [3,2,11,7]],in).

Page 25: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

I ?-amord.

初期ノードのリストnode( 1,人間(ボール).前提.i n) node(2.人間(サム).前提.i n) node(3,ロボ、ソト(ハル).前提, i n) node(4,ロボ、ソト(ヴィザー).前提, i n) node(5.命令者(ボール),前提, i n) node(6,命令(危害を加える(ハル,サム)),前提, i n) node(7,原則 1,こ従わなければならない,前提, i n) node(8,not(原則 2,こ従わなければならない),[],out)node(9,not(原則IJ3に従わなければ、ならない),[],out)node(l O. not(命令に従わなければならない).[],out)

ルール適用開始適当なキーを押してください

ルール 1を適用新事実 11 :実行〈危害を加える(ハル,サム)) を追加

ルール2を適用新事実 12 :原則 2に従わなければならない を追加ルール 3を適用新事実 13 :原則IJ3に従わなければならない を追加ルール 4を適用

第 2章非単調推論システム 63

新事実 14 :矛盾(実行(危害を加える(ハル,サム))) を追加

矛盾解消開始

適当なキーを押してください事実 14 :実行(危害を加えるくハル,サム)) に矛盾発見

新事実 15: nogood(4) を追加事実 11 :実行〈危害を加える〈ハル,サム)) を 1 nから ou tに変えました

事実 14 :矛盾〈実行〈危害を加えるくハル,サム))) を nから ou t tこ変えまし

た事実 10: not(命令に従わなければならない〉に理由づけ [根拠,[15]]を与えま

したnー ou t値は in です

ノードの表示

適当なキーを押してくださいnode( 1,人間〈ボール),前提, in)node(2,人間〈サム),前提, i n) node(3,ロボット〈ハル),前提, i n) node(4,ロボット〈ヴィザー),前提パ n)node(5,命令者〈ボール),前提, i n) node(6,命令(危害を加える(ハ J¥.-,サム)),前提, i n) node(7,原則 1に従わなければならない,前提, i n)

n9de(8,not(原則 2に従わなければならない),[l.out)node(9,not(原則 3に従わなければならない),[],out)node(10,not(命令に従わなければならない), [根拠,[l5JJ,in)node(11,実行〈危害を加えるくハル,サム)),[仮定, [6J,[10JJ,out)node(l2,原則 2tこ従わなければならないベ仮定, [7J,[8]J,in)

Page 26: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの
Page 27: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの

第 2章非単調推論システム 65

という矛盾ノードが設定される。次に矛盾解消機構が発動し、

node (15,nogood (14), [cp,14, [11JJ ,in).

という CP型証明を根拠とするノードが設定される。このCP型証明を根拠

として人聞を傷つけるというのが命令内容である場合には、理由があれば命

令に従わなくてもよいノード10は下記のようにアウトからインに変わる。

node (10, not (命令に従わなければならない), [根拠, [15J J ,in)

しかし、人聞が命令者である以上命令に従わないというのは原則 2に違反し

てしまう。従って、次のルール適用サイクルでは新しい矛盾ノード16が生成

される。

node (16,矛盾(not(命令に従わなければならない)) ,

[根拠, [5,l,10,12JJ,in).

これにともない再び、矛盾解消機構が発動し、まずCP型証明に基づくノード

17が設定される。

node (17,nogood (16), [cp,16, [12JJ ,in).

このノードを理由づけとしてノード 8がインに変わり、ノード 8をアウトノ

ードとして持つ仮定ノード12はインからアウトに変わる。

node (8, not (原則 2に従わなければならない), [根拠, [17JJ,in).

node (12,原則 2に従わなければならない, [仮定, [7J,[8JJ ,out).

これにともない矛盾ノード16はアウトに変わる。すなわち命令者が人間であ

っても、人聞を傷つける命令には従わなくてもよい、という原則 2の例外規

則がうまく働いたわけである。こうした実行経過を追うと無理な命令を与え

られたロボットのジレンマがよく表現されている。ノード 5、6を変えてロ

ボットに自分自身を破壊するように命令したらどうなるか。また命令者が他

のロボットだったらどうなるか。いろいろ試みられるとよいだろう。

2.4 システムの評価

推論エンジンの部分のインプリメントは、 TMSについて理解さえしてい

れは難しくはなかった。むしろ TMSとは何かについて理解することの方が

困難で、ある。非単調推論の特徴を簡潔に表わす小規模なルールベースを考え

る作業は、意外と難しいものである。特にロボット工学3原則の初期ノード

Page 28: 夢ド シスチム - AZ-Prolog...48 第!部推論システム あるいは m(記述) の形式の述語。その他Prologの任意の述語を書くことも できる。「記述」はノード中の記述の事で、その記述がインの