Tìm kiếm trên đồ thị Và/Hoặc And/Or graph Nhóm 7 CNTT2a2 Trí tuệ nhân tạo... Các quá trình trên được minh họa bằng đồ thị đồ thị và/hoặc để giải quyết bài toán... Đồ thị và/hoặc an
Trang 1Tìm kiếm trên đồ thị Và/Hoặc
( And/Or graph )
Nhóm 7 CNTT2a2
Trí tuệ nhân tạo
Trang 2Đặt vấn đề: Tìm đường
Giả sử có bản đồ một thành
phố như sau:
Cần tìm đường đi từ A đến B
Như vậy, có thể có 2 trường
hợp:
Đường đi từ A đến B qua E,
Đường đi từ A đến B qua G
Trang 3Ví dụ tìm đường (tiếp)
Như vậy, bài toán tìm đường từ A đến B qua E có thể quy về các bài toán con:
Tìm đường từ A đến E (và),
Tìm đường từ E đến B
Bài toán tìm đường từ A đến B qua G có thể quy về các bài toán con:
Tìm đường từ A đến G (và),
Tìm đường từ G đến B
Các quá trình trên được minh họa bằng đồ thị (đồ thị và/hoặc) để giải quyết bài toán
Trang 4Đồ thị và/hoặc (and/or graph)
Ví dụ về đồ thị và/hoặc cho bài toán tìm đường từ A đến B
Trang 5Quy tắc xây dựng đồ thị và/hoặc
Mỗi bài toán ứng với một đỉnh của đồ thị
Nếu có một toán tử quy một bài toán về một
bài toán khác, ví dụ R: a→b, thì trong đồ thị
có cung gán nhãn đi từ đỉnh a tới đỉnh b
Đối với mỗi toán tử quy một bài toán về một
số bài toán con, ví dụ R: a→b,c,d, ta đưa một
đỉnh mới a1, đỉnh này biểu diễn tập các bài
toán con {b,c,d} và bài toán R: a→b,c,d được
xây dựng như sau:
Trang 6Ví dụ về đồ thị và/hoặc
Xét bài toán sau:
Trạng thái ban đầu (bài toán cần giải) là a
Tập các toán tử quy gồm:
R1: a→d,e,f
R2: a→d,k
R3: a→g,h
R4: d→b,c
R5: f→i
R6: f→c,j
R7: k→e,l
R8: k→h
Tập các trạng thái kết thúc (các bài toán sơ cấp) là T={b,c,e,j,l}
Trang 7Ví dụ về đồ thị và/hoặc
Trang 8Tìm kiếm trên đồ thị và/hoặc
Thông thường, sử dụng tìm kiếm theo chiều sâu để tìm lời giải cho bài toán
Tìm đến đỉnh u, đỉnh này có thể giải được hay không tùy thuộc nó thuộc lớp bài toán nào Hàm Solvable sau sẽ trả về TRUE nếu giải được, nếu không là FALSE
Function Solvable(u);
Begin
If u là đỉnh kết thúc then {Solvable(u) ← true; stop }
If u không là đỉnh kết thúc và không có đỉnh kề then {Solvable(u) ← false; stop }
For mỗi toán tử R áp dụng được tại u do
{ Ok ← true;
For mỗi v kề u theo R do
If Solvable(v) = false then {Ok ← false; exit }
If Ok then Solvable(u) ← true; Operator(u) ← R; stop}
Solvable(u) ← false;
Trang 9Tìm kiếm trên đồ thị và/hoặc(tiếp)
Biến Ok: với mỗi toán tử R áp dụng được tại u, biến Ok nhận
giá trị true nếu tất cả các đỉnh v kề u theo R đều giải được, và
Ok nhận giá trị false nếu có một đỉnh v kề u theo R không
giải được
Hàm Operator(u) ghi lại toán tử áp dụng thành công tại u, tức
là Operator(u) = R nếu mọi đỉnh v kề u theo R đều giải được
Trang 10Tóm tắt
Để giải quyết vấn đề cần phân tích các đặc trưng và yêu cầu của vấn
đề
Việc biểu diễn dùng không gian trạng thái giúp biến quá trình giải quyết vấn đề thành một quá trình tìm kiếm (trên không gian trạng thái)
Các chiến lược tìm kiếm khác nhau: chiều rộng, đều giá, chiều sâu, sâu dần
Tìm kiếm sâu dần có độ phực tạp không gian tuyến tính và độ phức
Trang 11THANK YOU!