Chức năng suy diễn lựi

Một phần của tài liệu đồ án công nghệ thông tin Ứng dụng công nghệ phần mềm trong bài toán hệ chuyên gia.Giải quyết các bài toán hệ chuyên gia dựa trên các quy trình công nghệ phần mềm. (Trang 84 - 87)

Mụ tả

Cũng giống như chức năng suy diễn tiến, đõy là chức năng trọng tõm của hệ thống. Người dựng cú trỏch nhiệm trả lời cỏc cõu hỏi do hệ thống đưa ra trong quỏ trỡnh suy diễn. Anh ta cũng cú thể đưa ra những cõu hỏi yờu cầu hệ thống trả lời “Tại sao hệ thống lại hỏi người dựng cõu hỏi như vậy?”

Luồng sự kiện

Chức năng này được thực hiện khi người dựng chọn sử dụng chiến lược suy diễn lựi.

Điều kiện thực hiện chức năng này

Người dựng sử dụng phải trả lời đầy đủ cỏc cõu hỏi của hệ thống đưa ra để xõy dựng bộ nhớ làm việc cho suy diễn lựi.

Kết quả sau khi thực hiện chức năng

Chứng minh cỏc kết luận của người dựng nhập cú đỳng khụng.

Giải thuật suy diễn lựi Đầu vào:

- Tập cỏc giả thiết GT={g1,g2…} /*tập này được xõy dựng dần khi người dựng trả lời cỏc cõu hỏi của hệ thống*/

- Tập cỏc luật RULE={r1,r2,…}cú dạng chuẩn Horn p1^p2…^pnq - Tập cỏc kết luận KL={q1,q2,….,qk}

Đầu ra:

Thụng bỏo thành cụng nếu mọi kết luận cú thể suy ra từ cỏc giả thiết nhờ sử dụng tập luật đó cho. Giải thuật Subgoal={KL} Repeat F ←get(subgoal) TimLuat(f,i,RULE,j) If j≤ m {

For each t∈ leftj\GT do

If isPrimive(t) then { Hoi_nguoi_dung GT=GT∪{t} } Else subgoal=subgoal∪{t} } Until subgoal=φ

/* Vet là danh sỏch dạng stack*/ /* Goal là danh sỏch dạng stack*/ {

goal=φ;

Vet=φ;

First=0;

For each q∈KL do goal=goal∪{q,0} Repeat { {f,i}← get(goal); first=first+1; back=false if not(f ∈GT then) { TimLuat(f,i,RULE,j) /**/ If j≤m then { Vet=Vet∪{(f,j)};

for each t∈ leftj\GT do

goal=goal ∪{(t,0)}

TinhLaiCF }

} Else {

back=true;

while (f ∉KL and back) do

{ (g,k)← get(vet); goal=goal\leftk } until f ∈ left k TimLuat(g,k,RULE,l); If l≤m then { goal=goal\leftk

for each t∈ leftl\GT do goal=goal∪ {(t,0)} Vet=Vet {(g,l)}; Back=false; } Else f=g; } } }

Until goal= φ or {f∈KL and (first≥2)}

If f ∈KL then exit “Khụng thành cụng”

Else exit(“Thành cụng”) }

} }

Trong giải thuật trờn ta sử dụng cỏc thủ tục: TimLuat(f,i,RULE,j)

Xỏc định xem cú luật ra nào kể từ luật thứ i+1 trở đi cho ra rj cú dạng leftjf. Trong trường hợp khụng tỡm được ta cú j=m+1

Cơ sở tri thức Suy diễn lùi Bộ nhớ làm việc Danh sách luật và sự kiện

Kết luận

Người dùng

Cháy luật

Yêu cầu cho CF của sự kiện

Giao diện

Kết luận

Yêu cầu cho CF

Yêu cầu giải thích câu hỏi

CF của sự kiện Y/c giải thích câu hỏi

CF của sự kiện Kết quả giải thích

Kết quả giải thích

Hỡnh 5.4 Suy diễn lựi

Cạnh tranh trong suy diễn lựi:

Tỡnh huống cạnh tranh trong suy diễn lựi xảy ra với một sự kiện f nào đú tồn tại ớt nhất hai luật: ri: Left f và rj: Left f.

Giải phỏp sử dụng đồ thị FPG hoặc RPG.

Xử lý vấn đề nối vũng trong suy diễn lựi. Nối vũng được phỏt hiện dựa vào định nghĩa đệ quy trỏi.

Định nghĩa đệ quy trỏi:

Sự kiện A là đệ quy trỏi khi và chỉ khi trong suy diễn lựi tồn tại một vết suy diễn Vei để:

{Aα } ← {Auα}

Khi thực hiện suy diễn lựi nếu phỏt hiện ra đệ quy trỏi thỡ phải thực hiện quay lui.

Một phần của tài liệu đồ án công nghệ thông tin Ứng dụng công nghệ phần mềm trong bài toán hệ chuyên gia.Giải quyết các bài toán hệ chuyên gia dựa trên các quy trình công nghệ phần mềm. (Trang 84 - 87)