数理論理学 第12回 導出原理1(準備) © 加藤,高田,新出 4.2.1項(p. 89) 導出原理の概要 4.2.2項(p. 92) 単一化 課題11(教科書 p. 205 [6]) • quick_sort を参考に、大きいもの順に 数字のリストを並べ替えるプログラム、 quick_reverseを定義せよ。 ?- quick_reverse([3, 8, 0, 5, 2, 1], List2). List2 = [8, 5, 3, 2, 1, 0] ?- quick_reverse([ ], List2). List2 = [ ] 課題11 ?- quick_reverse([3, 8, 0, 5, 2, 1], List2). List2 = [8, 5, 3, 2, 1, 0] quick_reverse([Head | Tail], List2) :- partition(Tail, Head, Small, Large), quick_reverse(Small, ListS ), quick_reverse(Large, ListL), append( ListL, [Head | ListS], List2). quick_reverse([], []). 4.2 導出原理による推論 (p. 89) 4.2.1 導出原理の概要 4.2.2 単一化とmgu • 単一化代入 • 不一致集合 • 代入の合成 • 単一化アルゴリズム • mgu 4.2.3 導出原理を用いた推論手順 4.2 導出原理による推論 (p. 89) 4.2.1 導出原理の概要 4.2.2 単一化とmgu • 単一化代入 • 不一致集合 • 代入の合成 • 単一化アルゴリズム • mgu 4.2.3 導出原理を用いた推論手順 4.2 導出原理による推論 (p. 89) 4.2.1 導出原理の概要 4.2.2 単一化とmgu • 単一化代入 • 不一致集合 • 代入の合成 • 単一化アルゴリズム • mgu 4.2.3 導出原理を用いた推論手順 冠頭連言標準形へ変換 yx( ( A( x) B ) ( E F ) ( P Q ) ) スコーレム標準形へ変換 y ( ( A( f ( y )) B ) C1 ( E F ) C2 ( P Q )Cm) y( C1 C2 Cm ) 4.1.4 節集合 p. 87 Fsk x1x2 (C1 C2 Cm ) とする。このとき、 prologプログラム に対応 S {C1, C2 ,, Cm} をFsk に対応する節集合という。また、 Fsk を S に対応するスコーレム標準形という。 定義 4.5 S の解釈は、 Fsk の解釈と同じ。 I(S) = I(Fsk) 4.2.1 導出原理の概要 (p. 89) female(sumire). parent(sumire,maruko). mother(X,Y) :- parent(X,Y), female(X). ?- mother(sumire,maruko). S={female(sumire), parent(sumire,maruko), mother(x,y)∨¬parent(x,y)∨¬female(x), ¬ mother(sumire,maruko)} 4.2.1 導出原理の概要 (p. 90) { female(sumire), (4.1) parent(sumire,maruko), (4.2) mother(x,y)∨¬parent(x,y)∨¬female(x), ¬ mother(sumire,maruko) } (4.4) (4.3) 4.2.1 導出原理の概要 (p. 90) { female(sumire), (4.1) parent(sumire,maruko), (4.2) mother(x,y)∨¬parent(x,y)∨¬female(x), ¬ mother(sumire,maruko) } (4.4) (4.3) 4.2.1 導出原理の概要 (p. 90) { female(sumire), (4.1) parent(sumire,maruko), (4.2) mother(x,y)∨¬parent(x,y)∨¬female(x), ¬ mother(sumire,maruko) } (4.4) (4.3) {sumire/x, maruko/y} mother(sumire,maruko)∨¬parent(sumire,maruko) ∨¬female(sumire) ¬ mother(sumire,maruko) 4.2.1 導出原理の概要 (p. 90) { female(sumire), (4.1) parent(sumire,maruko), (4.2) mother(x,y)∨¬parent(x,y)∨¬female(x), ¬ mother(sumire,maruko) } (4.4) (4.3) {sumire/x, maruko/y} mother(sumire,maruko)∨¬parent(sumire,maruko) ∨¬female(sumire) ¬ mother(sumire,maruko) 4.2.1 導出原理の概要 (p. 90) { female(sumire), (4.1) parent(sumire,maruko), (4.2) mother(x,y)∨¬parent(x,y)∨¬female(x), ¬ mother(sumire,maruko) } (4.4) (4.3) {sumire/x, maruko/y} mother(sumire,maruko)∨¬parent(sumire,maruko) ∨¬female(sumire) ¬ mother(sumire,maruko) ¬parent(sumire,maruko)∨¬female(sumire) 節4.3 と 4.4 の導出節 (p. 90 ll. 4) 4.2.1 導出原理の概要 (p. 91) { female(sumire), (4.1) parent(sumire,maruko), (4.2) mother(x,y)∨¬parent(x,y)∨¬female(x), ¬ mother(sumire,maruko) } (4.4) (4.3) ¬parent(sumire,maruko)∨¬female(sumire) ¬female(sumire) 三段論法 p. 92, p. 41 (空節) mgu {sumire/x, maruko/y} 4.2 導出原理による推論 (p. 92) 4.2.1 導出原理の概要 4.2.2 単一化とmgu • 単一化代入 • 不一致集合 • 代入の合成 • 単一化アルゴリズム • mgu 4.2.3 導出原理を用いた推論手順 4.2.2 単一化と mgu (p. 92) 定義 3.16 代入 (p. 59) θ :シータ、 σ:シグマ 例 θ ={sumire/x, maruko/y} 定義 4.6 単一化、単一化代入 {L1, L2,..., Ln } : 項または論理式の集合 L1θ=L2θ=,..., =Lnθ となるとき θは {L1, L2,..., Ln } の単一化代入 例 θ ={sumire/x, maruko/y} は {mother(x,y), mother(sumire,maruko)} の単一化代入 4.2.2 単一化と mgu (p. 93) 定義 4.7 不一致集合 {L1, L2,..., Ln } =S: 同じ述語記号を持つ 原子論理式の集合 各 Li を 左から辿って最初に見つかる 一致しない項の集合が S の不一致集合 例4.9 L1 = mother(x,y), L2 = mother(w,maruko) {L1, L2} の不一致集合は {x,w} 4.2.2 単一化と mgu (p. 93) 定義 4.8 代入の合成 σ○θ 任意の項または論理式 F に対して (F θ2)σ= F θ1 : θ1はθ2とσの合成 σ θ 2 例 4.10 ○ θ1 ={sumire/x, maruko/y, sumire/w} θ2 ={w/x, maruko/y}, σ ={sumire/w} mother(x,y) θ1 =mother(sumire,maruko) mother(x,y) θ2 =mother(w,maruko) mother(w,maruko)σ =mother(sumire,maruko) 4.2.2 単一化と mgu (pp. 94, 95) 定義 4.9 単一化アルゴリズム 例 4.11 S={mother(x,y) , mother(w,maruko)} ・ S0 ={mother(x,y) , mother(w,maruko)} θ0=ε ={} ・ D0 ={x,w} x0=x, t0=w S の単一化代入 ・ θ1=θ0 ○{w/x}= {w/x} S1 =S0θ1 ={mother(w,y), mother(w,maruko)} ・ D1 ={y,maruko} x1=y, t1=maruko ・ θ2=θ1 ○{maruko/y}= {w/x, maruko/y} S2 =S1θ2 ={mother(w,maruko), mother(w,maruko)} ={mother(w,maruko)} (p. 1 参照) 課題12 下記の S を単一化せよ 全て記述 S ={parent(hiroshi,y) , parent(v,z)} すること ・ S0 ={parent(hiroshi,y) , parent(v,z)} θ0=ε ={} ・ D0 ={ ・ θ1=θ0 ○{ S1 =S0θ1 ={ ・ D1 ={ ・ θ2=θ1 ○{ S2 =S1θ2 ={ } x0= , } ={ t0= } } } x1= , t1= }= { ={parent(hiroshi,z)} } }
© Copyright 2024 ExpyDoc