ÁNH GIÁ I M QUÁ TRÌNH Gi ng viên: TS Ph m V n H i, HUST BÀI T P V NHÀ (SV l p t o qu c t ): Sinh viên cài t b ng ngôn ng l p trình tùy ý mơ t thu t tốn suy di n ti n lùi, v lu t kèm các phương th c: t o m i, xem xóa, s a c a nút BÀI T P D ÁN: D a vào ch suy di n ti n lùi, sinh viên xây d ng t p d án theo nhóm cho mi n ng d ng th c ti n Yêu c u h th ng bao g m ch c n ng qu n tr , c p nh t lu t, thay i s a i tri th c s tri th c Mi n ng d ng sinh viên t xu t N i dung tham kh o: Suy di n ti n: i t! gi thi t ta s suy di n d"n t i k t qu mong mu n Suy di n ti n trình suy di n b#t c v y cho u t! t p s ki n ã bi t, rút nh ng s ki n m i n có ư$c s ki n c n ch ng minh ho c khơng có Q trình suy di n ti n trình xem xét lu t, v i m%i lu t ta xét ph n i u ki n ( v trái) v i ph n k t lu n ( v ph i) mà t t c i u ki n c a lu t l u th&a mãn ta suy s ki n ph n k t lu n Chính ó mà có tên suy di n ti n Trong m%i bư c c a th t c, ngư'i ta xét m(t lu t t p lu t So sánh m%i i u ki n ( v trái) c a t p lu t v i s ki n s s ki n, n u t t c i u ki n c a lu t ư$c tho mãn s ki n ph n k t lu n ư$c xem s ki n ư$c suy N u s ki n s ki n m i (khơng có b( nh làm vi c) ư$c ưa vào b( nh làm vi c Quá trình c l p l i cho n lu t sinh s ki n m i Q trình suy di n ti n khơng quy t m(t v n nh hư ng t i gi i c , khơng hư ng t i tìm câu tr l'i cho m(t câu h&i c Suy di n ti n ch) trình suy s ki n m i t! s ki n có b( nh làm vi c Thêm thông tin vào b( nh làm vi c Xét lu t Xét lu t ti p theo u tiên True False Gi thi t kh p v i b( nh Còn lu t True False K t lu n vào b( nh làm vi c D!ng suy di n S suy di n ti n t ng quát u i m: • Ưu i+m c a suy di n ti n làm vi c t t toán v b n ch t i thu th p thơng tin r i th y i u c n suy di n • Suy di n ti n cho s lư$ng l n thông tin t! thơng tin ban u Nó sinh nhi u thơng tin m i • Suy di n ti n ti p c n lý tư ng v i lo i toán c n gi i quy t nhi m v l p k ho ch, i u hành, i u khi+n di n d ch Nh c i m: • H th ng suy di n không c m nh n ư$c m(t vài thông tin quan tr,ng H th ng h&i câu h&i có th+ h&i mà khơng bi t r ng ch) c n n k t lu n ư$c m(t câu thơi ã có th+ i • H th ng có th+ h&i c câu h&i khơng liên quan Có th+ câu tr l'i quan tr,ng, làm ngư'i dùng lúng túng ph i tr l'i câu khơng dính dáng n ch Thu t toán suy di n ti n: [5] Trong gi i thu t sau R = { ,…., }, lu t s n xu t - Tgian t p s ki n úng - Vet t p lu t s n xu t ã s d ng - Loc(F, Rule) th t c cho t p lu t r ∈ Rule, r:left → q cho left ⊆ F Phương pháp: { Tgian = GT; Vet = 0; Thoa = Loc(Tgian,R); While ((Thoa ≠ 0) and (KL ⊄ GT)) /*r: left →q*/ { r ← Get(Thoa) Vet = Vet ∪ {r}; R=R\{r}; Tgian = Tgian ∪ {q}; Thoa = Loc(Tgian, R) } If (KL ⊂ Tgian) Then exit (“Thành công”) Else exit (“Không thành công”); } u tiên h th ng l y thơng tin v tốn ngư'i s d ng cung c p t chúng vào b( nh làm vi c Suy lu n quét lu t theo dãy xác nh trư c; xem ph n gi thi t có trùng kh p v i n(i dung b( nh không N u phát hi n m(t lu t mô t b sung k t lu n c a lu t vào b( nh Lu t g,i cháy Ti p t c trình này, có th+ b& qua lu t ã cháy Quá trình d!ng l i khơng kh p ư$c lu t hay th y i u c n ch ng minh Lúc b( nh có thơng tin c a ngư'i dùng thông tin h th ng suy lu n Suy di n lùi: Ý tư ng c a suy di n lùi xu t phát t! k t lu n ta s suy di n d"n t i m(t i u ó úng gi thi t ã cho Là trình xu t phát t! s ki n c n ch ng minh thay vào ó nh ng s ki n v trái c a lu t có v ph i s ki n c n ch ng minh Quá trình ư$c th c hi n cho n ưa v s ki n t p s ki n c a t p s ki n gi thi t Ta có bi+u suy di n lùi t ng quát sau: Thêm thông tin vào b( nh làm vi c Ki+m tra b( nh làm vi c Tìm ích m i True ích kh p v i gi thi t False True Quay lui Còn lu t False True False D!ng suy di n K t lu n vào ích S suy di n lùi t ng quát u i m: • M(t ưu i+m c a suy di n lùi phù h$p v i toán ưa gi thuy t r i xem hi u qu c a gi thuy t ó có úng khơng • Suy di n lùi t p trung vào ích ã cho Nó t o m(t lo t câu h&i ch) liên quan nv n ang xét, n hoàn c nh thu n ti n i v i ngư'i dùng • Khi suy di n lùi mu n suy di n ó t! thơng tin ã bi t, ch) tìm m(t ph n c a sơ tri th c thích Nh i v i tốn ang xét c i m: • Như$c i+m b n c a lo i suy di n theo u i m(t dịng suy lu n, thay úng ph i d!ng ó mà sang ch% khác Tuy nhiên, ngư'i ta có th+ dùng nhân t tin c y + kh#c ph c hi n tư$ng • So v i suy di n lùi, suy di n ti n ơn gi n Song trình suy di n ti n ph i huy (ng m,i lu t có th+ áp d ng ư$c, mà không lưu ý n li u lu t có liên quan i n k t lu n mong mu n hay không Do v y, v i s tri th c l n v i s lu t ngày t ng, thu t gi i d"n t i bùng n t h$p Ngư$c l i, suy di n lùi ph c t p hơn, có ưu i+m ch) ch,n nh ng lu t hư ng t i ích suy di n lùi ư$c cài t t ta V th c ch t ch ây tương ng v i tìm ki m sâu th Thu t toán suy di n lùi: [5] - Goal t p s ki n c n ph i ch ng minh (t ch c dư i d ng Stack) - Vet t p lu t ã s d ng (t ch c dư i d ng Stack) - Tìm lu t (f, j, Rule, i) th t c xác nh , m ≥ j ≥ i+1 cho có d ng :left →f N u khơng tìm th y j = m +1, m s lu t Rule { If (KL ⊆ GT) then exit(“Thành công”) Else { Goal = KL\GT; Vet=0; back =false; f →get(goal); repeat {if f ∉GT then {tìm lu t (f, j, r, 0) //Tìm lu t th j cho : If (j≤m) then { Vet= Vet ∪{(f, j)} goal = goal ∪ \GT; } Else // s quay lui theo lu t { back=true; While ((f ∉ KL) and (back)) { repeat {(g, k) ←get(vet); goal = goal \ } ; until f ∉ Tìm lu t (g, l, r, k); // Tìm phương án khác i v i g If (l