Tải bản đầy đủ (.pdf) (36 trang)

chapter03

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (640.18 KB, 36 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Ch</b>

ươ

<b>ng 3</b>



<b>CÁC K</b>

<b>THU</b>

<b>T TÌM KI</b>

<b>M </b>



<b>HEURISTIC</b>



GV: Nguyễn Thị Trúc Viên
Email:


<b>N</b>

<b>i dung</b>



<b>Gi</b>

<b>i thi</b>

<b>u.</b>



<b>Ph</b>

ươ

<b>ng pháp sinh-và-th</b>

<b>.</b>


<b>Ph</b>

ươ

<b>ng pháp leo </b>

đồ

<b>i.</b>


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t nh</b>

<b>t tr</b>

ướ

<b>c.</b>


<b>Thu gi</b>

<b>m ràng bu</b>

<b>c.</b>


<b>Tho</b>

<b>mãn ràng bu</b>

<b>c.</b>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 3


<b>Gi</b>

<b>i thi</b>

<b>u</b>



<b>Hai chi</b>

ế

<b>n l</b>

ượ

<b>c tìm ki</b>

ế

<b>m c</b>

ơ

<b> b</b>

<b>n </b>

đ

<b>ã gi</b>

<b>i thi</b>

<b>u:</b>



– DFS có quay lui


– BrFS



<b>Hi</b>

<b>n th</b>

<b>c:</b>



<b>Procedure Depth_first_search;</b>
<b>Begin</b>


<b>open :=[start]; close:=[];</b>
<b>While (open <>[]) do</b>


<b>begin</b>


<b>remove X which is the leftmost of Open;</b>
<b>If (X=goal) the return (Success)</b>
<b>else begin</b>


<b>generate children of X; Put X to close;</b>


<b>eleminate children of X which is in Open or Close;</b>
<b>Put remain children on LEFT end of open;</b>


<b>End;</b>
<b>End;</b>


<b>Return (FALL);</b>
<b>End;</b>


<b>DFS</b>
<b>có quay lui</b>


<b>Gi</b>

<b>i thi</b>

<b>u(tt.)</b>




<b>Hai chi</b>

ế

<b>n l</b>

ượ

<b>c tìm ki</b>

ế

<b>m c</b>

ơ

<b> b</b>

<b>n </b>

đ

<b>ã gi</b>

<b>i thi</b>

<b>u:</b>



– DFS có quay lui


– BrFS


<b>Hi</b>

<b>n th</b>

<b>c:</b>



<b>BrFS</b>


<b>Procedure Breadth_first_search;</b>
<b>Begin</b>


<b>open :=[start]; close:=[];</b>
<b>While (open <>[]) do</b>


<b>begin</b>


<b>remove X which is the leftmost of Open;</b>
<b>If (X=goal) the return (Success)</b>
<b>else begin</b>


<b>generate children of X; Put X to close;</b>


<b>eleminate children of X which is in Open or Close;</b>
<b>Put remain children on RIGHT end of open;</b>


<b>End;</b>
<b>End;</b>



<b>Return (FALL);</b>
<b>End;</b>


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 5


<b>Sinh-và-Th</b>



<b>Gi</b>

<b>i thu</b>

<b>t:</b>



1. Sinh một lời giải nào đó (trạng thái OR con đường).


2. So sánh với trạng thái đích.


3. Nếu là đích dừng; ngược lại đến bước 1.


<b>Các d</b>

<b>ng hi</b>

<b>n th</b>

<b>c:</b>



– Có hệthống: sinh các trạng thái một cách có hệthống, bằng
giải thuật tìm kiếm vét cạn KGTT, như DFS có quay lui.


– Ngẫu nhiên: sinh các trạng thái một cách ngẫu nhiên.


– Heuristic: dùng heuristic đểkhông phải sinh những trạng thái


mà nó dường như khơng dẫn đến đích.


<b>V</b>

<b>i các bài tốn l</b>

<b>n:</b>




– Thường khơng chỉsửdụng sinh-và-thử.


– Thường kết hợp với các kỹthuật khác đểgiới hạn KGTT được


khảo sát, (như DENRAL)


<b>Leo </b>

đồ

<b>i</b>



<b>Phiên b</b>

<b>n </b>

đơ

<b>n gi</b>

<b>n:</b>



1. Xét trạng thái bắt đầu.
<b>1.</b> <b>Nếu là đích </b><sub></sub><sub></sub><sub></sub><sub></sub><b>dừng.</b>


<b>2.</b> <b>Ngược lại: thiết lập khởi đầu như TT hiện tại.</b>


2. Lặp đến khi: gặp đích OR khơng cịn luật nào chưa được áp
dụng vào TT hiện tại


<b>1.</b> <b>Lựa một luật đểáp dụng vào TT hiện tại đểsinh ra một TT mới.</b>
<b>2.</b> <b>Xem xét TT mới này:</b>


1. Nếu là đích dừng.


2. Nếu khơng là đích, nhưng tốt hơn TT hiện tại thiết lập TT mới là TT
hiện tại.


3. Nếu khơng tốt hơn thì thì tiếp lần lặp kế.


<b>Nh</b>

<b>n xét:</b>




– Có sửdụng hàm đánh giá đểtích hợp tri thức vào điều khiển.


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 7


<b>Leo </b>

đồ

<b>i(tt.)</b>



<b>Phiên b</b>ả<b>n c</b>ả<b>i ti</b>ế<b>n:</b>


1. Xem xét trạng thái đầu.


<b>1.</b> <b>N</b>ế<b>u là</b> đ<b>ích d</b>ừ<b>ng.</b>


<b>2.</b> <b>Ng</b>ượ<b>c l</b>ạ<b>i thi</b>ế<b>t l</b>ậ<b>p TT </b>đầ<b>u là TT hi</b>ệ<b>n t</b>ạ<b>i.</b>


2. Lặp đến khi: gặp đích OR khơng có sự thay đổi TT hiện tại


<b>1.</b> <b>SUCC = TT con b</b>ấ<b>t k</b>ỳ<b>nào c</b>ủ<b>a TT hi</b>ệ<b>n t</b>ạ<b>i</b>


<b>2.</b> <b>V</b>ớ<b>i m</b>ỗ<b>i lu</b>ậ<b>t:</b>


1. Áp dụng luật đểsinh ra TT mới.


2. Nếu TT mới là đích dừng. Ngược lại, so sánh với SUCC. Nếu tốt hơn SUCC thì
thiết lập SUCC là TT này. Ngược lại, không thay đổi SUCC.


3. Nếu SUCC tốt hơn TT hiện tại SUCC làm TT hiện tại.


<b>Nh</b>ậ<b>n xét:</b>



– Cảhai phiên bản trên có thểsẽkhơng thểtìm đến đích được trong 3 trường
hợp sau:


<b>Local Maximum:</b>
<b>Plateau:</b>


<b>Ridge:</b>


<b>Leo </b>

đồ

<b>i(tt.)</b>



<b>Bài toán s</b>

<b>p x</b>

ế

<b>p các kh</b>

<b>i:</b>



<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>
<b>A</b>


<b>A</b>
<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>



Trạng thái đầu Trạng thái đích


Thửgiải với giải thuật leo đồi, với hai heuristic (H1 và H2):


1. Cộng 1 cho các khối nằm mà nó nằm trên khối khác như mong muốn.
Trừ1 cho các khối nằm mà nó khơng nằm trên khối mong muốn
2. Cộng 1 cho mỗi khối nằm trong cấu trúc mong muốn (nhưđích).


Trừ1 cho mỗi khối khơng nằm trong cấu trúc mong muốn.
H1=4


H2=-28


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Môn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 9


<b>Leo </b>

đồ

<b>i(tt.)</b>



<b>Bài tốn s</b>

<b>p x</b>

ế

<b>p các kh</b>

<b>i:</b>



<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>
<b>A</b>


<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>
<b>A</b>
<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>
<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>
<b>A</b>
<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>

<b>A</b>
<b>A</b>
H1=4
H2=-28
H1=6
H2=-21
H1=4
H2=-28
H1=4


H2=-16 H1=4<sub>H2=-15</sub>


<b>K</b>

<b>thu</b>

<b>t luy</b>

<b>n thép</b>



<b>Xác su</b>

<b>t ch</b>

<b>p nh</b>

<b>n TT có tr</b>

<b>th</b>

<b>p h</b>

ơ

<b>n TT hi</b>

<b>n t</b>

<b>i:</b>



– T: nhiệt độluyện, được chọn dựa vào lịch luyện thép.


– <sub>∆</sub>E: Chuyển đổi trong mức năng lượng (dương). Trong giải
thuật đó là hiệu sốcủa hai hàm heuristic.


<b>So sánh v</b>

<b>i GT leo </b>

đồ

<b>i:</b>



– Là một cải tiến của leo đồi đểnó có thểchấp nhận TT mới khi
khơng có TT nào tốt hơn TT hiện tại.


– Lịch luyện phải được xây dựng trước, dựa vào kinh nghiệm, và


được lưu lại trong lúc GT chạy.



– Có thểchấp nhận TT mới tệ hơn TT hiện tại.


<i>T</i>
<i>E</i>


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Môn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 11


<b>K</b>

<b>thu</b>

<b>t luy</b>

<b>n thép(tt.)</b>



<b>Gi</b>ả<b>i thu</b>ậ<b>t:</b>


1. Xem xét trạng thái đầu.


<b>1.</b> <b>N</b>ế<b>u là</b> đ<b>ích d</b>ừ<b>ng.</b>


<b>2.</b> <b>Ng</b>ượ<b>c l</b>ạ<b>i thi</b>ế<b>t l</b>ậ<b>p TT </b>đầ<b>u là TT hi</b>ệ<b>n t</b>ạ<b>i.</b>
2. Khởi động BEST-SO-FAR = TT hiện tại.


3. Khởi động T dựa vào lịch luyện.


4. Lặp đến khi: gặp đích OR khơng cịn luật nào chưa được áp dụng vào TT
hiện tại.


<b>1.</b> <b>Ch</b>ọ<b>n m</b>ộ<b>t lu</b>ậ<b>t </b>để<b>áp d</b>ụ<b>ng vào TT hi</b>ệ<b>n t</b>ạ<b>i và sinh ra TT m</b>ớ<b>i.</b>


<b>2.</b> <b>Xem xét TT m</b>ớ<b>i, tính:</b>







∆<b>E = (Tr</b>ị<b>c</b>ủ<b>a TT hi</b>ệ<b>n t</b>ạ<b>i) – (Tr</b>ị<b>c</b>ủ<b>a TT m</b>ớ<b>i)</b>


1. TT mới = đích dừng.


2. TT mới khơng là đích, nhưng tốt hơn TT hiện tại TT hiện tại là TT mới và


BEST-SO-FAR = TT mới.


3. Nếu không tốt hơn TT hiện tại thì:


1. Tính xác suất p’ nói trên.


2. Sinh ngẫu nhiên một sốp thuộc [0,1]. Nếu p < p’ thì chấp nhận TT mới tệ hơn


này.


<b>3.</b> <b>Thay </b>đổ<b>i T d</b>ự<b>a vào l</b>ị<b>ch luy</b>ệ<b>n.</b>
5. TrảvềBEST-SO-FAR


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c</b>



<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c, best-first-search (BFS):</b>



– Là phương pháp dung hồ của BrFS và DFS.


– Có bơm tri thức cụthểcủa bài tốn vào phần điều khiển.



– Có sửdụng để đánh giá ưu thếcủa mỗi trạng thái, có thểlà


ước lượng từnó đến TT đích.


– Tại mỗi bước, GT sẽchọn trạng thái mà nó cho rằng là có ưu


thếnhất trong sốcác trạng thái đã sinh ra được đến thời điểm
đó.


– Khác với GT leo đồi có cải tiến ởchổ: có lưu tất cảnhững TT


đã phát sinh đến thời điểm chọn TT đểxét tiếp.


– Dùng hai danh sách:


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 13


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>Gi</b>

<b>i thu</b>

<b>t BFS:</b>



1. OPEN = [TT đầu]


2. Lặp đến khi: gặp đích OR OPEN rỗng.


<b>1.</b> <b>Lấy TT tốt nhất từOPEN.</b>
<b>2.</b> <b>Phát sinh các con của nó.</b>
<b>3.</b> <b>Với mỗi con:</b>



1. Nếu nó chưa được phát sinh: gán nó trị đánh giá, đưa vào OPEN, ghi nhận
TT cha của nó.


2. Nếu đã được phát sinh trước: Nếu đạt đến bởi đường khác tốt hơn ghi
nhận lại TT cha của nó, cập nhật lại trị đánh giá của nó và của các con của
nó.


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>Tìm t</b>

<b>t tr</b>

ướ

<b>c qua các b</b>

ướ

<b>c:</b>



<b>A</b> <b>A</b>


<b>B</b> <b>C</b> <b>D</b>


(3) (5) (1)
Bước 1 Bước 2


<b>A</b>


<b>B</b> <b>C</b> <b>D</b>


(3) (5)
Bước 3


<b>E</b> <b>F</b>


(4) (6)



<b>A</b>


<b>B</b> <b>C</b> <b>D</b>


(5)
Bước 4


<b>E</b> <b>F</b>


<b>G</b> <b>H</b>


<b>A</b>


<b>B</b> <b>C</b> <b>D</b>


(5)
Bước 5


<b>E</b> <b>F</b>


(6)


<b>G</b> <b>H</b>


(6) (5)


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Môn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 15



<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>Greedy Search</b>



– h(n) = Ước lượng chi phí từ TT n đến TT đích


Khơng đảm bảo tính tối ưu lẫn tính đầy đủ


<b>Uniform-cost search</b>



– g(n) = Ước lượng chi phí từ TT đầu đến TT n


Tối ưu và đầy đủ, nhưng khơng hiệu quả


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>Gi</b>ớ<b>i thi</b>ệ<b>u gi</b>ả<b>i thu</b>ậ<b>t A*:</b>


– Sửdụng 3 hàm:


<b>f’(n) : </b>Ướ<b>c l</b>ượ<b>ng chi phí t</b>ừ TT đầ<b>u </b>đế<b>n </b>đ<b>ich trên con </b>đườ<b>ng có qua TT n.</b>
<b>g(n) : chi phí</b> đã phả<b>i tr</b>ả<b>i t</b>ừ TT đầ<b>u </b>đế<b>n TT n.</b>


<b>h’(n):</b> Ướ<b>c l</b>ượ<b>ng chi phí t</b>ừ TT n đế<b>n TT </b>đ<b>ích.</b>
<b>f’(n) = g(n) + h’(n)</b>


– Sửdụng hai danh sách OPEN và CLOSED như đã nói trên.


<b>Gi</b>ả<b>i thu</b>ậ<b>t A*:</b>



1. OPEN =[TT đầu, g=0, f’=g+ h’ = h’]


2. Lặp đến khi: gặp TT đích:


<b>1.</b> <b>OPEN r</b>ỗ<b>ng báo error.</b>


<b>2.</b> <b>BESTNODE = TT t</b>ố<b>t nh</b>ấ<b>t( f nh</b>ỏ<b>nh</b>ấ<b>t) trên OPEN.</b>
<b>Xoá BESTNODE kh</b>ỏ<b>i OPEN.</b>


Đư<b>a vào CLOSED.</b>


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 17


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



Với mỗi con gọi là SUCCESSOR:


(a) Thiết lập đểSUCCESSOR chỉ ngược về BESTNODE, đểcho phép trả


về con đường khi gặp đích.


(b) Tính g(SUCCESSOR) = g(BESTNODE) + cost(BESTNODE,
SUCCESSOR).


(c) Nếu SUCCESSOR đã có trong OPEN, TT trong OPEN gọi là OLD.
Nếu g(SUCCESSOR) < g(OLD) thì gán lại parent của OLD là


BESTNODE. Cập nhật lại con đường đạt đến OLD và trị đánh giá f cho


OLD trong OPEN.


(d) Nếu SUCCESSOR đã có trong CLOSED, gọi đó là OLD’. Thực hiện
kiểm tra tương tự như OPEN, song chú ý là nếu đạt tới SUCCESSOR bởi
con đường tốt hơn thì:


- Cập nhật lại cha của OLD’
- Đưa OLD’ vào lại OPEN.


<i><b>- C</b></i>ậ<i><b>p nh</b></i>ậ<i><b>t l</b></i>ạ<i><b>i giá tr</b></i>ị<i><b>f cho các TT con c</b></i>ủ<i><b>a OLD’.</b></i>


(e) Nếu SUCCESSOR khơng có trong cảOPEN , CLOSED thì: đưa nó
vào OPEN và thêm nó nào ds con của BESTNODE. Tính tốn gía trịf cho
nó.


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>M</b>

<b>t cách hi</b>

<b>n th</b>

<b>c BFS:</b>



Procedure Best_First_Search;
Begin


open:=[start]; close:=[];
<b>While</b>(open<>[]) do
<b>begin</b>


X = removefirst(OPEN).
<b>if</b>X=GOAL then return path.
else begin



Sinh các con của X;
<b>FOR</b>mỗi con Y của X DO


case Y khơng có trong OPEN, CLOSED:
begin


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

Khoa Cơng Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 19


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>M</b>

<b>t cách hi</b>

<b>n th</b>

<b>c BFS(tt.):</b>


<b>case Y</b>Có trong OPEN:


<b>if</b> đến được Y bởi một path ngắn hơn


<b>then</b>


gán path ngắn hơn này cho Y trên OPEN.


<b>case Y</b>có trong CLOSED


<b>if</b> đến được Y bởi một path ngắn hơn


<b>then begin</b>


Xoá Y khỏi CLOSED;
Thêm Y vào OPEN



<b>end</b>
<b>end</b>; /*end FOR*/
Đưa X vào CLOSED


Sắp xếp các TT trên OPEN (tăng dần theo hàm f)


<b>end</b>; / while/
return failure;


<b>End;</b>


<b>Thu gi</b>

<b>m bài toán</b>



Đồ

<b>th</b>

<b>AND-OR :</b>



– Được dùng đểbiểu diễn KGTT cho bài toán giải được bằng


cách phân rã ra các bài toán nhỏ hơn


– Khi bài toán được phân rã thành N bài toán con, mà tất cả


chúng phải được giải đểhồn thành bài tốn lớn thì được biểu


diễn thành cung AND chỉ đến N trạng thái con.


– Nhiều cách giải cho bài tốn có thể được dùng thì có thểbiểu
diễn bởi cung OR .


– Ví dụ: <b>A</b>



<b>B</b> <b>C</b> <b>D</b>


<b>A có thể được thơng qua hai cách:</b>
-<b>Giải B, hoặc</b>


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 21


<b>Thu gi</b>

<b>m bài toán (tt.)</b>



Đồ

<b>th</b>

<b>AND-OR :</b>



– Nếu dùng giải thuật BFS cho việc tìm lời giải trên đồthị


AND-OR thì có lẽkhơng thích hợp vì như xem xét đồthịsau:


<b>A</b>


<b>B</b> <b>C</b> <b>D</b>


(5) (3) (4)


-<b>Nếu giá trịghi kềbên trạng thái là trị ước lượng cho trạng thái đó.</b>
-<b>Theo BFS thì trạng thái kếtiếp được chọn là C, như:</b>


-<b>Khi chọn cách giải qua C thì bắt buộc phải giải cảD. Do vậy </b>
<b>tổng chi phí cho cách giải này là: C+D+ 2 = 9, 2 là giá trịcủa </b>
<b>hàm g trong BFS.</b>



- Trong khi đó nếu chọn cách giải qua B thì chi phí chỉ<b>là: B+1 = </b>
<b>6.</b>


(9)


<b>Thu gi</b>

<b>m bài toán (tt.)</b>



<b>GT Thu gi</b>

<b>m:</b>



1. Khởi động đồthịlà TT bắt đầu.


2. Lặp đến khi: TT đầu được gán nhãn là SOLVED OR chi phí


vượt qua ngưỡng FUTILITY:


<b>1.</b> <b>Duyệt đồthịbắt đầu từ TT đầu, theo con đường tốt nhất hiện tại, </b>


<b>tích luỹtập trạng thái trên con đường đó mà nó chưa được mở</b>
<b>rộng hoặc được gán nhãn SOLVED.</b>


<b>2.</b> <b>Lấy một TT chưa mởrộng và mởrộng nó. Nếu khơng có con thì</b>


<b>gán FUTILITY bằng trịcủa TT này. Ngược lại, thêm các con vào </b>
đồ<b>thịvà mỗi chúng tính f’ (sửdụng chỉh’, bỏqua g). Nếu f’ =0 thì</b>
<b>gán nhãn cho TT đó là SOLVED.</b>


<b>3.</b> <b>Thay đổi f’ của TT đã được mởrộng đểphản ánh thông tin được </b>


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM



Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 23


<b>Thu gi</b>

<b>m bài toán (tt.)</b>



<b>GT Thu gi</b>

<b>m (tt.) - t</b>

<b>ng b</b>

ướ

<b>c:</b>



<b>A</b>


<b>B</b> <b>C</b> <b>D</b>


<b>A</b>
Trước bước 1:


(<b>5</b>)


Trước bước 2:


(3) (4) (5)


(<b>9</b>)
(<b>6</b>)


<b>Thu gi</b>

<b>m bài toán (tt.)</b>



<b>GT Thu gi</b>

<b>m (tt.) - t</b>

<b>ng b</b>

ướ

<b>c:</b>



<b>A</b>


<b>B</b> <b>C</b> <b>D</b>



Trước bước 3:


(3) (4)


(<b>9</b>)


<b>E</b> <b>F</b>


4 4


<b>10</b>


<b>A</b>


<b>B</b> <b>C</b> <b>D</b>


Trước bước 4:


(4)
(<b>12</b>)


<b>E</b> <b>F</b>


4 4


<b>10</b>


10 10


<b>G</b> <b>H</b>



5 7


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 25


<b>Thu gi</b>

<b>m bài toán</b>

<b>(tt.)</b>



<b>Gi</b>

<b>i thu</b>

<b>t AO*:</b>



1. Gán GRAPH chứa TT đầu (INIT). Tính h’(INIT).


2. Lặp đến khi INIT có nhãn SOLVED OR h’(INIT) >


FUTILITY:


<b>1.</b> <b>Lần theo cung đã được gán nhãn đi từINIT, lựa chọn một NODE </b>


để<b>mởrộng.</b>


<b>2.</b> <b>Phát sinh con của NODE. Nếu khơng có con thì FUTILITY = </b>


<b>h’(NODE). Nếu có con, với mỗi con SUCCESSOR thực hiện:</b>
1. Đưa SUCCESSOR vào GRAPH.


2. Nếu SUCCESSOR là nốt dừng, gán nhãn SOLVED, gán
h’(SUCCESSOR) =0.


3. Nếu SUCCESSOR không là nốt dừng thì tính h’(SUCCESSOR).



<b>3.</b> <b>Lan truyền ngược lên đồthị như sau: Gọi S là tập các nốt có nhãn </b>


<b>SOLVED, h’ của nó đã chuyển đổi, cần lan truyền ngược lên nốt </b>
<b>cha. Khởi động S chưa NODE. Đến khi S trống thực hiện:</b>


<b>Thu gi</b>

<b>m bài toán</b>

<b>(tt.)</b>



<b>Gi</b>

<b>i thu</b>

<b>t AO*:</b>



1. ...


2. …


<b>1.</b> <b>…</b>
<b>2.</b> <b>…</b>
<b>3.</b> <b>…</b>


1. Nếu có thểthì: lựa từS một nốt mà khơng có con nào của nó trong
GRAPH nằm trong S. nếu khơng có nốt như vậy thì : lựa một nốt bất kỳtừ
S, gọi là CURRENT, xố nó khỏi S.


2. Tính tốn phí của mỗi cung đi từCURRENT. Phí này bằng tổng các h’
của con nốt nằm ởcuối cung (AND NODE), cộng với phí của chính cung
đó (thơng thường là 1 cho mỗi cung). Gán cost nhỏnhất (trong các OR
NODE) cho CURRENT.


3. Đánh dấu con đường tốt nhất hiện tại.


4. Đánh dấu SOLVED cho CURRENT nếu: tất cảnốt nối vào nó xuyên qua


cung mới nói trên là SOLVED.


5. Nếu CURRENT là SOLVED hoặc nếu chi phí của CURRENT đã thay đổi
thì phải lan truyền ngược lên trên. Đưa vào S tất cảcác cha của


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 27


<b>Tho</b>

<b>mãn ràng bu</b>

<b>c</b>



<b>Gi</b>ả<b>i thu</b>ậ<b>t:</b>


1. Sinh ra các ràng buộc có thểcó:


Gọi OPEN = tập các đối tượng phải được gán trị. Lặp đến khi OPEN trống
OR vi phạm xảy ra:


<b>1.</b> <b>OB là m</b>ộ<b>t </b>đố<b>i t</b>ượ<b>ng c</b>ủ<b>a OPEN. Áp d</b>ụ<b>ng các ràng bu</b>ộ<b>c có th</b>ể<b>có vào OB.</b>


<b>2.</b> <b>N</b>ế<b>u t</b>ậ<b>p này khác so v</b>ớ<b>i t</b>ậ<b>p </b>đ<b>ã </b>đượ<b>c gán trong l</b>ầ<b>n sau cùng OB </b>đượ<b>c xem </b>
<b>xét, ho</b>ặ<b>c </b>đ<b>ây là l</b>ầ<b>n </b>đầ<b>u tiên OB </b>đượ<b>c xem xét.</b> Đưa v<b>ào OPEN t</b>ấ<b>t c</b>ả<b>các </b>


đố<b>i t</b>ượ<b>ng n</b>ằ<b>m trong cùng ràng bu</b>ộ<b>c v</b>ớ<b>i OB.</b>


<b>3.</b> <b>B</b>ỏ<b>OB kh</b>ỏ<b>i OPEN.</b>


2. Nếu hợp các ràng buộc đã được sinh ra có lời giải dừng.


3. Nếu hợp ràng buộc sinh đã được sinh ra có vi phạm trảvềlỗi.



4. Nếu hai điều trên khơng xảy ra thì: thực hiện cơng việc đốn, bằng cách:
lặp đến khi có lời giải OR tất cảcác lời giải có khả năng đã bịloại:


<b>1.</b> <b>L</b>ự<b>a m</b>ộ<b>t </b>đố<b>i t</b>ượ<b>ng ch</b>ư<b>a có tr</b>ị<b>. Ch</b>ọ<b>n cách gán tr</b>ị để<b>tho</b>ả<b>các ràng bu</b>ộ<b>c </b>
<b>trên </b>đ<b>ó.</b>


<b>2.</b> <b>G</b>ọ<b>i </b>đệ<b>qui trên t</b>ậ<b>p ràng bu</b>ộ<b>c m</b>ớ<b>i v</b>ừ<b>a c</b>ậ<b>p nh</b>ậ<b>t </b>ở bướ<b>c trên.</b>


<b>Tho</b>

<b>mãn ràng bu</b>

<b>c</b>



<b>Ví d</b>

<b>:</b>



<b>SEND</b>
<b>+MORE</b>
<b></b>
<b>---MONEY</b>
<b>Trạng thái đầu:</b>


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

Khoa Cơng Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 29


<b>Tho</b>

<b>mãn ràng bu</b>

<b>c</b>



<b>Ví d</b>

<b>: (tt) - m</b>

<b>t s</b>

ố bướ

<b>c gi</b>

<b>i</b>



<b>M=1</b>
<b>S = 8 | 9</b>
<b>O = 0 | 1O=0</b>


<b>N=E | E+1 N = E+1.</b>
<b>C2 = 1</b>


<b>N +R > 8</b>
<b>E <> 9</b>


<b>N =3</b>
<b>R = 8 | 9</b>


<b>2 + D = Y | 2 + D = 10 + Y</b>
Trạng thái đầu


SEND
+MORE

---MONEY


E =2 Đốn !!!


<b>Tho</b>

<b>mãn ràng bu</b>

<b>c</b>



<b>Ví d</b>

<b>: (tt) - m</b>

<b>t s</b>

ố bướ

<b>c gi</b>

<b>i</b>



<b>N =3</b>
<b>R = 8 | 9</b>


<b>2 + D = Y | 2 + D = 10 + Y</b>


<b>2 + D = Y</b>
<b>N + R = 10 + E</b>


<b>R =9</b>


<b>S = 8</b>


<b>2 + D = 10 + Y</b>
<b>D = 8 + Y</b>
<b>D = 8 | 9</b>


C1 =0 C1 =1


<b>Y= 0</b> <b>Y = 1</b>


D=8 D=9


Vi phạm Vi phạm


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 31


<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>



<b>Chi</b>

ế

<b>n l</b>

ượ

<b>c tìm ki</b>

ế

<b>m có th</b>

<b>là:</b>



– Tiến (forward)


– Lùi (backward)


– Hay kết hợp cả 2 như dạng: phương tiện - mục đích.



<b>Ý t</b>

ưở

<b>ng:</b>



– Nếu muốn đi từtrạng thái (A) đến (B), mà đã có tốn tửO
(luật) làm được như vậy thì áp dụng O dừng.


– Nếu khơng có tốn tử O như vậy thì:


<b>Cốgắng tìm một con đường từ(A) (C), gọi lại thủtục này.</b>
<b>Mỗi khi đến (C) được rồi thì có thểáp dụng tốn tử O để đến (D). </b>
<b>Nếu (D) là GOAL dừng.</b>


<b>Nếu khơng thì cốgắng tìm đường đến (D), gọi lại thủtục này.</b>


<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>



<b>Chi</b>ế<b>n l</b>ượ<b>c tìm ki</b>ế<b>m có th</b>ể<b>là:</b>


– Tiến (forward)


– Lùi (backward)


– Hay kết hợp cả 2 như dạng: phương tiện - mục đích.


<b>Gi</b>ả<b>i thu</b>ậ<b>t: Mean-End-Analysis, MEA(CURRENT-GOAL):</b>


1. So sánh CURRENT và GOAL. If không khác dừng.


2. Ngược lại: Chọn sựkhác nhau lớn nhất, thực hiện:


<b>1.</b> <b>L</b>ự<b>a m</b>ộ<b>t tốn t</b>ử<b>(lu</b>ậ<b>t) O mà có th</b>ể<b>dùng </b>đượ<b>c cho s</b>ự<b>khác nhau này. N</b>ế<b>u </b>


<b>khơng cóbáo error.</b>


<b>2.</b> <b>Áp d</b>ụ<b>ng O vào CURRENT. Phát sinh hai tr</b>ạ<b>ng thái: (i) O-START, tr</b>ạ<b>ng </b>
<b>thái mà</b> điề<b>u ki</b>ệ<b>n </b>đầ<b>u c</b>ủ<b>a O </b>đượ<b>c tho</b>ả<b>mãn, (ii) O-RESULT , tr</b>ạ<b>ng thái </b>
<b>k</b>ế<b>t c</b>ụ<b>c n</b>ế<b>u nh</b>ư<b> O </b>đ<b>ã </b>đượ<b>c áp d</b>ụ<b>ng vào O-START.</b>


<b>3.</b> <b>IF</b>


<b>(FIRST-PART </b><b>MEA(CURRENT, O-START))</b>
<b>AND</b>


<b>(LAST-PART </b><b>MEA(O-RESULT, GOAL))</b>
<b>Là thành công</b>


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 33


<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>



<b>Ví d</b>

<b>:</b>



<b>Một robot với các hành động có thể như bảng 1 và cho trước hành </b>
động nào thì được dùng để<b>làm giảm sựkhác biệt của bài toán như </b>
<b>bảng 2 (bảng khác biệt).</b>


Đưa ra chuổi hành động để<b>robot có thểmang một cái bàn từ</b>
<b>phịng này sang phịng khác, trên bàn có hai vật nhỏ.</b>


<b>at(robot, loc)</b>


<b>None</b>


<b>WALK(loc)</b>


<b>at(obj, loc) ^</b>
<b>at(robot, loc)</b>
<b>at(robot, obj)^</b>


<b>small(obj)</b>
<b>CARRY(obj, loc)</b>


<b>at(obj, loc) ^</b>
<b>at(robot, loc)</b>
<b>at(robot, obj)^</b>
<b>large(obj)^</b>
<b>clear(obj)^</b>
<b>armempty.</b>
<b>PUSH(obj, loc)</b>
<b>Kết quả</b>
Điều kiện đầu


<b>Tốn tử</b>


<b><Bảng 1></b>


<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>



<b>Ví d</b>

<b>: (tt.)</b>



<b>on(obj1,obj2)</b>


<b>at(robot, obj2) ^</b>


<b>holding(obj1)</b>
<b>PLACE(obj1, obj2)</b>
<b>¬holding(obj)</b>
<b>holding(obj)</b>
<b>PUTDOWN(obj)</b>
<b>holding(obj)</b>
<b>at(robot, obj)</b>
<b>PICKUP(obj)</b>
<b>Kết quả</b>
Điều kiện đầu


<b>Tốn tử</b>


<b>*</b>
<b>Be holding object</b>


<b>*</b>
<b>*</b>


<b>Get arm empty</b>


<b>*</b>
<b>Get object on object</b>


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 35



<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>



<b>Ví d</b>

<b>: (tt.)</b>



– Move: bàn <sub></sub>phịng 2.


<b>Khơng có tốn tửnào dùng được.</b>


<b>Bảng khác biệt cho biết có PUSH và CARRY có thễdùng được.</b>
– Nếu chọn CARRY: hai điều kiện phải thoả:


at(robot, bàn) ^ small(bàn).


<b>at(robot, bàn) : giải được bằng WALK</b>


<b>small(bàn): khơng thể được vì khơng có tốn tửnào.</b>
<b>DEAD END.</b>


– Chỉcòn giải pháp: dùng PUSH


<b>A</b> <b>C</b> <b>PUSH</b> <b>D</b> <b>B</b>


<b>START</b> <b>GOAL</b>


<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>



<b>Ví d</b>

<b>: (tt.)</b>



– Hai bài tốn cịn lại là : (A)(C) và (D) (B)



– Giải (A)(C): Khi dùng PUSH thì cần 4 điều kiện:


<b>at(robot, bàn) : giải được WALK.</b>
<b>large(bàn): bàn sẵn sàng là large.</b>
<b>clear(bàn): giải được bằng PICKUP.</b>
<b>armempty: robot đã sẵn empty.</b>


– Sau khi dùng PICKUP thì sau đó phải dùng PUTDOWN để


đưa cánh tay robot vềrỗng.


– … Kết quảcó thểtóm lược như sau:


<b>A</b> <b>walk</b> <b>pickup</b> <b>putdown</b> <b>pickup</b> <b>putdown</b> <b>C</b> <b>D</b> <b>B</b>


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<b>Ch</b>

ươ

<b>ng 3</b>



<b>CÁC K</b>

<b>THU</b>

<b>T TÌM KI</b>

<b>M </b>



<b>HEURISTIC</b>



GV: Nguyễn Thị Trúc Viên
Email:


<b>N</b>

<b>i dung</b>



<b>Gi</b>

<b>i thi</b>

<b>u.</b>



<b>Ph</b>

ươ

<b>ng pháp sinh-và-th</b>

<b>.</b>


<b>Ph</b>

ươ

<b>ng pháp leo </b>

đồ

<b>i.</b>



<b>Tìm ki</b>

ế

<b>m t</b>

<b>t nh</b>

<b>t tr</b>

ướ

<b>c.</b>


<b>Thu gi</b>

<b>m ràng bu</b>

<b>c.</b>


<b>Tho</b>

<b>mãn ràng bu</b>

<b>c.</b>



</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 3


<b>Gi</b>

<b>i thi</b>

<b>u</b>



<b>Hai chi</b>

ế

<b>n l</b>

ượ

<b>c tìm ki</b>

ế

<b>m c</b>

ơ

<b> b</b>

<b>n </b>

đ

<b>ã gi</b>

<b>i thi</b>

<b>u:</b>



– DFS có quay lui


– BrFS


<b>Hi</b>

<b>n th</b>

<b>c:</b>



<b>Procedure Depth_first_search;</b>
<b>Begin</b>


<b>open :=[start]; close:=[];</b>
<b>While (open <>[]) do</b>


<b>begin</b>


<b>remove X which is the leftmost of Open;</b>
<b>If (X=goal) the return (Success)</b>
<b>else begin</b>



<b>generate children of X; Put X to close;</b>


<b>eleminate children of X which is in Open or Close;</b>
<b>Put remain children on LEFT end of open;</b>


<b>End;</b>
<b>End;</b>


<b>Return (FALL);</b>
<b>End;</b>


<b>DFS</b>
<b>có quay lui</b>


<b>Gi</b>

<b>i thi</b>

<b>u(tt.)</b>



<b>Hai chi</b>

ế

<b>n l</b>

ượ

<b>c tìm ki</b>

ế

<b>m c</b>

ơ

<b> b</b>

<b>n </b>

đ

<b>ã gi</b>

<b>i thi</b>

<b>u:</b>



– DFS có quay lui


– BrFS


<b>Hi</b>

<b>n th</b>

<b>c:</b>



<b>BrFS</b>


<b>Procedure Breadth_first_search;</b>
<b>Begin</b>


<b>open :=[start]; close:=[];</b>


<b>While (open <>[]) do</b>


<b>begin</b>


<b>remove X which is the leftmost of Open;</b>
<b>If (X=goal) the return (Success)</b>
<b>else begin</b>


<b>generate children of X; Put X to close;</b>


<b>eleminate children of X which is in Open or Close;</b>
<b>Put remain children on RIGHT end of open;</b>


<b>End;</b>
<b>End;</b>


<b>Return (FALL);</b>
<b>End;</b>


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 5


<b>Sinh-và-Th</b>



<b>Gi</b>

<b>i thu</b>

<b>t:</b>



1. Sinh một lời giải nào đó (trạng thái OR con đường).


2. So sánh với trạng thái đích.



3. Nếu là đích dừng; ngược lại đến bước 1.


<b>Các d</b>

<b>ng hi</b>

<b>n th</b>

<b>c:</b>



– Có hệthống: sinh các trạng thái một cách có hệthống, bằng
giải thuật tìm kiếm vét cạn KGTT, như DFS có quay lui.


– Ngẫu nhiên: sinh các trạng thái một cách ngẫu nhiên.


– Heuristic: dùng heuristic đểkhông phải sinh những trạng thái


mà nó dường như khơng dẫn đến đích.


<b>V</b>

<b>i các bài tốn l</b>

<b>n:</b>



– Thường khơng chỉsửdụng sinh-và-thử.


– Thường kết hợp với các kỹthuật khác đểgiới hạn KGTT được


khảo sát, (như DENRAL)


<b>Leo </b>

đồ

<b>i</b>



<b>Phiên b</b>

<b>n </b>

đơ

<b>n gi</b>

<b>n:</b>



1. Xét trạng thái bắt đầu.
<b>1.</b> <b>Nếu là đích </b><sub></sub><sub></sub><sub></sub><sub></sub><b>dừng.</b>


<b>2.</b> <b>Ngược lại: thiết lập khởi đầu như TT hiện tại.</b>



2. Lặp đến khi: gặp đích OR khơng cịn luật nào chưa được áp
dụng vào TT hiện tại


<b>1.</b> <b>Lựa một luật đểáp dụng vào TT hiện tại đểsinh ra một TT mới.</b>
<b>2.</b> <b>Xem xét TT mới này:</b>


1. Nếu là đích dừng.


2. Nếu khơng là đích, nhưng tốt hơn TT hiện tại thiết lập TT mới là TT
hiện tại.


3. Nếu khơng tốt hơn thì thì tiếp lần lặp kế.


<b>Nh</b>

<b>n xét:</b>



– Có sửdụng hàm đánh giá đểtích hợp tri thức vào điều khiển.


</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 7


<b>Leo </b>

đồ

<b>i(tt.)</b>



<b>Phiên b</b>ả<b>n c</b>ả<b>i ti</b>ế<b>n:</b>


1. Xem xét trạng thái đầu.


<b>1.</b> <b>N</b>ế<b>u là</b> đ<b>ích d</b>ừ<b>ng.</b>



<b>2.</b> <b>Ng</b>ượ<b>c l</b>ạ<b>i thi</b>ế<b>t l</b>ậ<b>p TT </b>đầ<b>u là TT hi</b>ệ<b>n t</b>ạ<b>i.</b>


2. Lặp đến khi: gặp đích OR khơng có sự thay đổi TT hiện tại


<b>1.</b> <b>SUCC = TT con b</b>ấ<b>t k</b>ỳ<b>nào c</b>ủ<b>a TT hi</b>ệ<b>n t</b>ạ<b>i</b>


<b>2.</b> <b>V</b>ớ<b>i m</b>ỗ<b>i lu</b>ậ<b>t:</b>


1. Áp dụng luật đểsinh ra TT mới.


2. Nếu TT mới là đích dừng. Ngược lại, so sánh với SUCC. Nếu tốt hơn SUCC thì
thiết lập SUCC là TT này. Ngược lại, khơng thay đổi SUCC.


3. Nếu SUCC tốt hơn TT hiện tại SUCC làm TT hiện tại.


<b>Nh</b>ậ<b>n xét:</b>


– Cảhai phiên bản trên có thểsẽkhơng thểtìm đến đích được trong 3 trường
hợp sau:


<b>Local Maximum:</b>
<b>Plateau:</b>


<b>Ridge:</b>


<b>Leo </b>

đồ

<b>i(tt.)</b>



<b>Bài toán s</b>

<b>p x</b>

ế

<b>p các kh</b>

<b>i:</b>



<b>B</b>


<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>
<b>A</b>


<b>A</b>
<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>


Trạng thái đầu Trạng thái đích


Thửgiải với giải thuật leo đồi, với hai heuristic (H1 và H2):


1. Cộng 1 cho các khối nằm mà nó nằm trên khối khác như mong muốn.
Trừ1 cho các khối nằm mà nó không nằm trên khối mong muốn
2. Cộng 1 cho mỗi khối nằm trong cấu trúc mong muốn (nhưđích).


Trừ1 cho mỗi khối không nằm trong cấu trúc mong muốn.
H1=4


H2=-28



</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 9


<b>Leo </b>

đồ

<b>i(tt.)</b>



<b>Bài toán s</b>

<b>p x</b>

ế

<b>p các kh</b>

<b>i:</b>



<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>
<b>A</b>
<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>
<b>A</b>
<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>


<b>H</b>
<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>
<b>A</b>
<b>B</b>
<b>C</b>
<b>D</b>
<b>E</b>
<b>F</b>
<b>G</b>
<b>H</b>
<b>A</b>
<b>A</b>
H1=4
H2=-28
H1=6
H2=-21
H1=4
H2=-28
H1=4


H2=-16 H1=4<sub>H2=-15</sub>


<b>K</b>

<b>thu</b>

<b>t luy</b>

<b>n thép</b>




<b>Xác su</b>

<b>t ch</b>

<b>p nh</b>

<b>n TT có tr</b>

<b>th</b>

<b>p h</b>

ơ

<b>n TT hi</b>

<b>n t</b>

<b>i:</b>



– T: nhiệt độluyện, được chọn dựa vào lịch luyện thép.


– <sub>∆</sub>E: Chuyển đổi trong mức năng lượng (dương). Trong giải
thuật đó là hiệu sốcủa hai hàm heuristic.


<b>So sánh v</b>

<b>i GT leo </b>

đồ

<b>i:</b>



– Là một cải tiến của leo đồi đểnó có thểchấp nhận TT mới khi
khơng có TT nào tốt hơn TT hiện tại.


– Lịch luyện phải được xây dựng trước, dựa vào kinh nghiệm, và


được lưu lại trong lúc GT chạy.


– Có thểchấp nhận TT mới tệ hơn TT hiện tại.


<i>T</i>
<i>E</i>


</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 11


<b>K</b>

<b>thu</b>

<b>t luy</b>

<b>n thép(tt.)</b>



<b>Gi</b>ả<b>i thu</b>ậ<b>t:</b>


1. Xem xét trạng thái đầu.



<b>1.</b> <b>N</b>ế<b>u là</b> đ<b>ích d</b>ừ<b>ng.</b>


<b>2.</b> <b>Ng</b>ượ<b>c l</b>ạ<b>i thi</b>ế<b>t l</b>ậ<b>p TT </b>đầ<b>u là TT hi</b>ệ<b>n t</b>ạ<b>i.</b>
2. Khởi động BEST-SO-FAR = TT hiện tại.


3. Khởi động T dựa vào lịch luyện.


4. Lặp đến khi: gặp đích OR khơng cịn luật nào chưa được áp dụng vào TT
hiện tại.


<b>1.</b> <b>Ch</b>ọ<b>n m</b>ộ<b>t lu</b>ậ<b>t </b>để<b>áp d</b>ụ<b>ng vào TT hi</b>ệ<b>n t</b>ạ<b>i và sinh ra TT m</b>ớ<b>i.</b>


<b>2.</b> <b>Xem xét TT m</b>ớ<b>i, tính:</b>






∆<b>E = (Tr</b>ị<b>c</b>ủ<b>a TT hi</b>ệ<b>n t</b>ạ<b>i) – (Tr</b>ị<b>c</b>ủ<b>a TT m</b>ớ<b>i)</b>


1. TT mới = đích dừng.


2. TT mới khơng là đích, nhưng tốt hơn TT hiện tại TT hiện tại là TT mới và


BEST-SO-FAR = TT mới.


3. Nếu khơng tốt hơn TT hiện tại thì:


1. Tính xác suất p’ nói trên.



2. Sinh ngẫu nhiên một sốp thuộc [0,1]. Nếu p < p’ thì chấp nhận TT mới tệ hơn


này.


<b>3.</b> <b>Thay </b>đổ<b>i T d</b>ự<b>a vào l</b>ị<b>ch luy</b>ệ<b>n.</b>
5. TrảvềBEST-SO-FAR


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c</b>



<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c, best-first-search (BFS):</b>



– Là phương pháp dung hoà của BrFS và DFS.


– Có bơm tri thức cụthểcủa bài tốn vào phần điều khiển.


– Có sửdụng để đánh giá ưu thếcủa mỗi trạng thái, có thểlà


ước lượng từnó đến TT đích.


– Tại mỗi bước, GT sẽchọn trạng thái mà nó cho rằng là có ưu


thếnhất trong sốcác trạng thái đã sinh ra được đến thời điểm
đó.


– Khác với GT leo đồi có cải tiến ởchổ: có lưu tất cảnhững TT


đã phát sinh đến thời điểm chọn TT đểxét tiếp.


– Dùng hai danh sách:



</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Môn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 13


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>Gi</b>

<b>i thu</b>

<b>t BFS:</b>



1. OPEN = [TT đầu]


2. Lặp đến khi: gặp đích OR OPEN rỗng.


<b>1.</b> <b>Lấy TT tốt nhất từOPEN.</b>
<b>2.</b> <b>Phát sinh các con của nó.</b>
<b>3.</b> <b>Với mỗi con:</b>


1. Nếu nó chưa được phát sinh: gán nó trị đánh giá, đưa vào OPEN, ghi nhận
TT cha của nó.


2. Nếu đã được phát sinh trước: Nếu đạt đến bởi đường khác tốt hơn ghi
nhận lại TT cha của nó, cập nhật lại trị đánh giá của nó và của các con của
nó.


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>Tìm t</b>

<b>t tr</b>

ướ

<b>c qua các b</b>

ướ

<b>c:</b>



<b>A</b> <b>A</b>



<b>B</b> <b>C</b> <b>D</b>


(3) (5) (1)
Bước 1 Bước 2


<b>A</b>


<b>B</b> <b>C</b> <b>D</b>


(3) (5)
Bước 3


<b>E</b> <b>F</b>


(4) (6)


<b>A</b>


<b>B</b> <b>C</b> <b>D</b>


(5)
Bước 4


<b>E</b> <b>F</b>


<b>G</b> <b>H</b>


<b>A</b>


<b>B</b> <b>C</b> <b>D</b>



(5)
Bước 5


<b>E</b> <b>F</b>


(6)


<b>G</b> <b>H</b>


(6) (5)


</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 15


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>Greedy Search</b>



– Sửdụng hàm h(n) = Ước lượng chi phí từ TT n đến TT đích


Khơng đảm bảo tính tối ưu lẫn tính đầy đủ


<b>Uniform-cost search</b>



– Sửdụng hàm g(n) = Ước lượng chi phí từ TT đầu đến TT n


Tối ưu và đầy đủ, nhưng khơng hiệu quả



<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>Gi</b>ớ<b>i thi</b>ệ<b>u gi</b>ả<b>i thu</b>ậ<b>t A*:</b>


– Sửdụng 3 hàm:


<b>f’(n) : </b>Ướ<b>c l</b>ượ<b>ng chi phí t</b>ừ TT đầ<b>u </b>đế<b>n </b>đ<b>ich trên con </b>đườ<b>ng có qua TT n.</b>
<b>g(n) : chi phí</b> đã phả<b>i tr</b>ả<b>i t</b>ừ TT đầ<b>u </b>đế<b>n TT n.</b>


<b>h’(n):</b> Ướ<b>c l</b>ượ<b>ng chi phí t</b>ừ TT n đế<b>n TT </b>đ<b>ích.</b>
<b>f’(n) = g(n) + h’(n)</b>


– Sửdụng hai danh sách OPEN và CLOSED như đã nói trên.


<b>Gi</b>ả<b>i thu</b>ậ<b>t A*:</b>


1. OPEN =[TT đầu, g=0, f’=g+ h’ = h’]


2. Lặp đến khi: gặp TT đích:


<b>1.</b> <b>OPEN r</b>ỗ<b>ng báo error.</b>


<b>2.</b> <b>BESTNODE = TT t</b>ố<b>t nh</b>ấ<b>t( f nh</b>ỏ<b>nh</b>ấ<b>t) trên OPEN.</b>
<b>Xoá BESTNODE kh</b>ỏ<b>i OPEN.</b>


Đư<b>a vào CLOSED.</b>


</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 17



<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



Với mỗi con gọi là SUCCESSOR:


(a) Thiết lập đểSUCCESSOR chỉ ngược về BESTNODE, đểcho phép trả


về con đường khi gặp đích.


(b) Tính g(SUCCESSOR) = g(BESTNODE) + cost(BESTNODE,
SUCCESSOR).


(c) Nếu SUCCESSOR đã có trong OPEN, TT trong OPEN gọi là OLD.
Nếu g(SUCCESSOR) < g(OLD) thì gán lại parent của OLD là


BESTNODE. Cập nhật lại con đường đạt đến OLD và trị đánh giá f cho
OLD trong OPEN.


(d) Nếu SUCCESSOR đã có trong CLOSED, gọi đó là OLD’. Thực hiện
kiểm tra tương tự như OPEN, song chú ý là nếu đạt tới SUCCESSOR bởi
con đường tốt hơn thì:


- Cập nhật lại cha của OLD’
- Đưa OLD’ vào lại OPEN.


<i><b>- C</b></i>ậ<i><b>p nh</b></i>ậ<i><b>t l</b></i>ạ<i><b>i giá tr</b></i>ị<i><b>f cho các TT con c</b></i>ủ<i><b>a OLD’.</b></i>


(e) Nếu SUCCESSOR khơng có trong cảOPEN , CLOSED thì: đưa nó
vào OPEN và thêm nó nào ds con của BESTNODE. Tính tốn gía trịf cho
nó.



<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>M</b>

<b>t cách hi</b>

<b>n th</b>

<b>c BFS:</b>



Procedure Best_First_Search;
Begin


open:=[start]; close:=[];
<b>While</b>(open<>[]) do
<b>begin</b>


X = removefirst(OPEN).
<b>if</b>X=GOAL then return path.
else begin


Sinh các con của X;
<b>FOR</b>mỗi con Y của X DO


case Y khơng có trong OPEN, CLOSED:
begin


</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 19


<b>Tìm ki</b>

ế

<b>m t</b>

<b>t tr</b>

ướ

<b>c(tt.)</b>



<b>M</b>

<b>t cách hi</b>

<b>n th</b>

<b>c BFS(tt.):</b>


<b>case Y</b>Có trong OPEN:


<b>if</b> đến được Y bởi một path ngắn hơn


<b>then</b>


gán path ngắn hơn này cho Y trên OPEN.


<b>case Y</b>có trong CLOSED


<b>if</b> đến được Y bởi một path ngắn hơn


<b>then begin</b>


Xoá Y khỏi CLOSED;
Thêm Y vào OPEN


<b>end</b>
<b>end</b>; /*end FOR*/
Đưa X vào CLOSED


Sắp xếp các TT trên OPEN (tăng dần theo hàm f)


<b>end</b>; / while/
return failure;


<b>End;</b>


<b>Thu gi</b>

<b>m bài toán</b>



Đồ

<b>th</b>

<b>AND-OR :</b>




– Được dùng đểbiểu diễn KGTT cho bài toán giải được bằng


cách phân rã ra các bài toán nhỏ hơn


– Khi bài toán được phân rã thành N bài tốn con, mà tất cả


chúng phải được giải đểhồn thành bài tốn lớn thì được biểu


diễn thành cung AND chỉ đến N trạng thái con.


– Nhiều cách giải cho bài tốn có thể được dùng thì có thểbiểu
diễn bởi cung OR .


– Ví dụ: <b>A</b>


<b>B</b> <b>C</b> <b>D</b>


<b>A có thể được thông qua hai cách:</b>
-<b>Giải B, hoặc</b>


</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 21


<b>Thu gi</b>

<b>m bài toán (tt.)</b>



Đồ

<b>th</b>

<b>AND-OR :</b>



– Nếu dùng giải thuật BFS cho việc tìm lời giải trên đồthị



AND-OR thì có lẽkhơng thích hợp vì như xem xét đồthịsau:


<b>A</b>


<b>B</b> <b>C</b> <b>D</b>


(5) (3) (4)


-<b>Nếu giá trịghi kềbên trạng thái là trị ước lượng cho trạng thái đó.</b>
-<b>Theo BFS thì trạng thái kếtiếp được chọn là C, như:</b>


-<b>Khi chọn cách giải qua C thì bắt buộc phải giải cảD. Do vậy </b>
<b>tổng chi phí cho cách giải này là: C+D+ 2 = 9, 2 là giá trịcủa </b>
<b>hàm g trong BFS.</b>


- Trong khi đó nếu chọn cách giải qua B thì chi phí chỉ<b>là: B+1 = </b>
<b>6.</b>


(9)


<b>Thu gi</b>

<b>m bài tốn (tt.)</b>



<b>GT Thu gi</b>

<b>m:</b>



1. Khởi động đồthịlà TT bắt đầu.


2. Lặp đến khi: TT đầu được gán nhãn là SOLVED OR chi phí


vượt qua ngưỡng FUTILITY:



<b>1.</b> <b>Duyệt đồthịbắt đầu từ TT đầu, theo con đường tốt nhất hiện tại, </b>


<b>tích luỹtập trạng thái trên con đường đó mà nó chưa được mở</b>
<b>rộng hoặc được gán nhãn SOLVED.</b>


<b>2.</b> <b>Lấy một TT chưa mởrộng và mởrộng nó. Nếu khơng có con thì</b>


<b>gán FUTILITY bằng trịcủa TT này. Ngược lại, thêm các con vào </b>
đồ<b>thịvà mỗi chúng tính f’ (sửdụng chỉh’, bỏqua g). Nếu f’ =0 thì</b>
<b>gán nhãn cho TT đó là SOLVED.</b>


<b>3.</b> <b>Thay đổi f’ của TT đã được mởrộng đểphản ánh thông tin được </b>


</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Môn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 23


<b>Thu gi</b>

<b>m bài tốn (tt.)</b>



<b>GT Thu gi</b>

<b>m (tt.) - t</b>

<b>ng b</b>

ướ

<b>c:</b>



<b>A</b>


<b>B</b> <b>C</b> <b>D</b>


<b>A</b>
Trước bước 1:


(<b>5</b>)



Trước bước 2:


(3) (4) (5)


(<b>9</b>)
(<b>6</b>)


<b>Thu gi</b>

<b>m bài toán (tt.)</b>



<b>GT Thu gi</b>

<b>m (tt.) - t</b>

<b>ng b</b>

ướ

<b>c:</b>



<b>A</b>


<b>B</b> <b>C</b> <b>D</b>


Trước bước 3:


(3) (4)


(<b>9</b>)


<b>E</b> <b>F</b>


4 4


<b>10</b>


<b>A</b>



<b>B</b> <b>C</b> <b>D</b>


Trước bước 4:


(4)
(<b>12</b>)


<b>E</b> <b>F</b>


4 4


<b>10</b>


10 10


<b>G</b> <b>H</b>


5 7


</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 25


<b>Thu gi</b>

<b>m bài toán</b>

<b>(tt.)</b>



<b>Gi</b>

<b>i thu</b>

<b>t AO*:</b>



1. Gán GRAPH chứa TT đầu (INIT). Tính h’(INIT).


2. Lặp đến khi INIT có nhãn SOLVED OR h’(INIT) >



FUTILITY:


<b>1.</b> <b>Lần theo cung đã được gán nhãn đi từINIT, lựa chọn một NODE </b>


để<b>mởrộng.</b>


<b>2.</b> <b>Phát sinh con của NODE. Nếu khơng có con thì FUTILITY = </b>


<b>h’(NODE). Nếu có con, với mỗi con SUCCESSOR thực hiện:</b>
1. Đưa SUCCESSOR vào GRAPH.


2. Nếu SUCCESSOR là nốt dừng, gán nhãn SOLVED, gán
h’(SUCCESSOR) =0.


3. Nếu SUCCESSOR không là nốt dừng thì tính h’(SUCCESSOR).


<b>3.</b> <b>Lan truyền ngược lên đồthị như sau: Gọi S là tập các nốt có nhãn </b>


<b>SOLVED, h’ của nó đã chuyển đổi, cần lan truyền ngược lên nốt </b>
<b>cha. Khởi động S chưa NODE. Đến khi S trống thực hiện:</b>


<b>Thu gi</b>

<b>m bài toán</b>

<b>(tt.)</b>



<b>Gi</b>

<b>i thu</b>

<b>t AO*:</b>



1. ...


2. …



<b>1.</b> <b>…</b>
<b>2.</b> <b>…</b>
<b>3.</b> <b>…</b>


1. Nếu có thểthì: lựa từS một nốt mà khơng có con nào của nó trong
GRAPH nằm trong S. nếu khơng có nốt như vậy thì : lựa một nốt bất kỳtừ
S, gọi là CURRENT, xố nó khỏi S.


2. Tính tốn phí của mỗi cung đi từCURRENT. Phí này bằng tổng các h’
của con nốt nằm ởcuối cung (AND NODE), cộng với phí của chính cung
đó (thơng thường là 1 cho mỗi cung). Gán cost nhỏnhất (trong các OR
NODE) cho CURRENT.


3. Đánh dấu con đường tốt nhất hiện tại.


4. Đánh dấu SOLVED cho CURRENT nếu: tất cảnốt nối vào nó xuyên qua
cung mới nói trên là SOLVED.


5. Nếu CURRENT là SOLVED hoặc nếu chi phí của CURRENT đã thay đổi
thì phải lan truyền ngược lên trên. Đưa vào S tất cảcác cha của


</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Môn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 27


<b>Tho</b>

<b>mãn ràng bu</b>

<b>c</b>



<b>Gi</b>ả<b>i thu</b>ậ<b>t:</b>


1. Sinh ra các ràng buộc có thểcó:



Gọi OPEN = tập các đối tượng phải được gán trị. Lặp đến khi OPEN trống
OR vi phạm xảy ra:


<b>1.</b> <b>OB là m</b>ộ<b>t </b>đố<b>i t</b>ượ<b>ng c</b>ủ<b>a OPEN. Áp d</b>ụ<b>ng các ràng bu</b>ộ<b>c có th</b>ể<b>có vào OB.</b>


<b>2.</b> <b>N</b>ế<b>u t</b>ậ<b>p này khác so v</b>ớ<b>i t</b>ậ<b>p </b>đ<b>ã </b>đượ<b>c gán trong l</b>ầ<b>n sau cùng OB </b>đượ<b>c xem </b>
<b>xét, ho</b>ặ<b>c </b>đ<b>ây là l</b>ầ<b>n </b>đầ<b>u tiên OB </b>đượ<b>c xem xét.</b> Đưa v<b>ào OPEN t</b>ấ<b>t c</b>ả<b>các </b>


đố<b>i t</b>ượ<b>ng n</b>ằ<b>m trong cùng ràng bu</b>ộ<b>c v</b>ớ<b>i OB.</b>


<b>3.</b> <b>B</b>ỏ<b>OB kh</b>ỏ<b>i OPEN.</b>


2. Nếu hợp các ràng buộc đã được sinh ra có lời giải dừng.


3. Nếu hợp ràng buộc sinh đã được sinh ra có vi phạm trảvềlỗi.


4. Nếu hai điều trên khơng xảy ra thì: thực hiện cơng việc đốn, bằng cách:
lặp đến khi có lời giải OR tất cảcác lời giải có khả năng đã bịloại:


<b>1.</b> <b>L</b>ự<b>a m</b>ộ<b>t </b>đố<b>i t</b>ượ<b>ng ch</b>ư<b>a có tr</b>ị<b>. Ch</b>ọ<b>n cách gán tr</b>ị để<b>tho</b>ả<b>các ràng bu</b>ộ<b>c </b>
<b>trên </b>đ<b>ó.</b>


<b>2.</b> <b>G</b>ọ<b>i </b>đệ<b>qui trên t</b>ậ<b>p ràng bu</b>ộ<b>c m</b>ớ<b>i v</b>ừ<b>a c</b>ậ<b>p nh</b>ậ<b>t </b>ở bướ<b>c trên.</b>


<b>Tho</b>

<b>mãn ràng bu</b>

<b>c</b>



<b>Ví d</b>

<b>:</b>



<b>SEND</b>


<b>+MORE</b>
<b></b>
<b>---MONEY</b>
<b>Trạng thái đầu:</b>


</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 29


<b>Tho</b>

<b>mãn ràng bu</b>

<b>c</b>



<b>Ví d</b>

<b>: (tt) - m</b>

<b>t s</b>

ố bướ

<b>c gi</b>

<b>i</b>



<b>M=1</b>
<b>S = 8 | 9</b>
<b>O = 0 | 1O=0</b>
<b>N=E | E+1 N = E+1.</b>
<b>C2 = 1</b>


<b>N +R > 8</b>
<b>E <> 9</b>


<b>N =3</b>
<b>R = 8 | 9</b>


<b>2 + D = Y | 2 + D = 10 + Y</b>
Trạng thái đầu


SEND
+MORE



---MONEY


E =2 Đoán !!!


<b>Tho</b>

<b>mãn ràng bu</b>

<b>c</b>



<b>Ví d</b>

<b>: (tt) - m</b>

<b>t s</b>

ố bướ

<b>c gi</b>

<b>i</b>



<b>N =3</b>
<b>R = 8 | 9</b>


<b>2 + D = Y | 2 + D = 10 + Y</b>


<b>2 + D = Y</b>
<b>N + R = 10 + E</b>
<b>R =9</b>


<b>S = 8</b>


<b>2 + D = 10 + Y</b>
<b>D = 8 + Y</b>
<b>D = 8 | 9</b>


C1 =0 C1 =1


<b>Y= 0</b> <b>Y = 1</b>


D=8 D=9



Vi phạm Vi phạm


</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 31


<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>



<b>Chi</b>

ế

<b>n l</b>

ượ

<b>c tìm ki</b>

ế

<b>m có th</b>

<b>là:</b>



– Tiến (forward)


– Lùi (backward)


– Hay kết hợp cả 2 như dạng: phương tiện - mục đích.


<b>Ý t</b>

ưở

<b>ng:</b>



– Nếu muốn đi từtrạng thái (A) đến (B), mà đã có tốn tửO
(luật) làm được như vậy thì áp dụng O dừng.


– Nếu khơng có tốn tử O như vậy thì:


<b>Cốgắng tìm một con đường từ(A) (C), gọi lại thủtục này.</b>
<b>Mỗi khi đến (C) được rồi thì có thểáp dụng tốn tử O để đến (D). </b>
<b>Nếu (D) là GOAL dừng.</b>


<b>Nếu khơng thì cốgắng tìm đường đến (D), gọi lại thủtục này.</b>


<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>




<b>Chi</b>ế<b>n l</b>ượ<b>c tìm ki</b>ế<b>m có th</b>ể<b>là:</b>


– Tiến (forward)


– Lùi (backward)


– Hay kết hợp cả 2 như dạng: phương tiện - mục đích.


<b>Gi</b>ả<b>i thu</b>ậ<b>t: Mean-End-Analysis, MEA(CURRENT-GOAL):</b>


1. So sánh CURRENT và GOAL. If không khác dừng.


2. Ngược lại: Chọn sựkhác nhau lớn nhất, thực hiện:


<b>1.</b> <b>L</b>ự<b>a m</b>ộ<b>t toán t</b>ử<b>(lu</b>ậ<b>t) O mà có th</b>ể<b>dùng </b>đượ<b>c cho s</b>ự<b>khác nhau này. N</b>ế<b>u </b>
<b>khơng cóbáo error.</b>


<b>2.</b> <b>Áp d</b>ụ<b>ng O vào CURRENT. Phát sinh hai tr</b>ạ<b>ng thái: (i) O-START, tr</b>ạ<b>ng </b>
<b>thái mà</b> điề<b>u ki</b>ệ<b>n </b>đầ<b>u c</b>ủ<b>a O </b>đượ<b>c tho</b>ả<b>mãn, (ii) O-RESULT , tr</b>ạ<b>ng thái </b>
<b>k</b>ế<b>t c</b>ụ<b>c n</b>ế<b>u nh</b>ư<b> O </b>đ<b>ã </b>đượ<b>c áp d</b>ụ<b>ng vào O-START.</b>


<b>3.</b> <b>IF</b>


<b>(FIRST-PART </b><b>MEA(CURRENT, O-START))</b>
<b>AND</b>


<b>(LAST-PART </b><b>MEA(O-RESULT, GOAL))</b>
<b>Là thành công</b>



</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 33


<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>



<b>Ví d</b>

<b>:</b>



<b>Một robot với các hành động có thể như bảng 1 và cho trước hành </b>
động nào thì được dùng để<b>làm giảm sựkhác biệt của bài toán như </b>
<b>bảng 2 (bảng khác biệt).</b>


Đưa ra chuổi hành động để<b>robot có thểmang một cái bàn từ</b>
<b>phòng này sang phòng khác, trên bàn có hai vật nhỏ.</b>


<b>at(robot, loc)</b>
<b>None</b>


<b>WALK(loc)</b>


<b>at(obj, loc) ^</b>
<b>at(robot, loc)</b>
<b>at(robot, obj)^</b>


<b>small(obj)</b>
<b>CARRY(obj, loc)</b>


<b>at(obj, loc) ^</b>
<b>at(robot, loc)</b>
<b>at(robot, obj)^</b>


<b>large(obj)^</b>
<b>clear(obj)^</b>
<b>armempty.</b>
<b>PUSH(obj, loc)</b>
<b>Kết quả</b>
Điều kiện đầu


<b>Toán tử</b>


<b><Bảng 1></b>


<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>



<b>Ví d</b>

<b>: (tt.)</b>



<b>on(obj1,obj2)</b>
<b>at(robot, obj2) ^</b>


<b>holding(obj1)</b>
<b>PLACE(obj1, obj2)</b>
<b>¬holding(obj)</b>
<b>holding(obj)</b>
<b>PUTDOWN(obj)</b>
<b>holding(obj)</b>
<b>at(robot, obj)</b>
<b>PICKUP(obj)</b>
<b>Kết quả</b>
Điều kiện đầu


<b>Tốn tử</b>



<b>*</b>
<b>Be holding object</b>


<b>*</b>
<b>*</b>


<b>Get arm empty</b>


<b>*</b>
<b>Get object on object</b>


</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>

Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp. HCM


Bài Giảng Mơn: Trí tuệ<b>nhân t</b>ạ<b>o</b> Chương 03. Side 35


<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>



<b>Ví d</b>

<b>: (tt.)</b>



– Move: bàn <sub></sub>phịng 2.


<b>Khơng có tốn tửnào dùng được.</b>


<b>Bảng khác biệt cho biết có PUSH và CARRY có thễdùng được.</b>
– Nếu chọn CARRY: hai điều kiện phải thoả:


at(robot, bàn) ^ small(bàn).


<b>at(robot, bàn) : giải được bằng WALK</b>



<b>small(bàn): không thể được vì khơng có tốn tửnào.</b>
<b>DEAD END.</b>


– Chỉcịn giải pháp: dùng PUSH


<b>A</b> <b>C</b> <b>PUSH</b> <b>D</b> <b>B</b>


<b>START</b> <b>GOAL</b>


<b>Phân tích ph</b>

ươ

<b>ng ti</b>

<b>n - m</b>

<b>c </b>

đ

<b>ích</b>



<b>Ví d</b>

<b>: (tt.)</b>



– Hai bài tốn còn lại là : (A)(C) và (D) (B)


– Giải (A)(C): Khi dùng PUSH thì cần 4 điều kiện:


<b>at(robot, bàn) : giải được WALK.</b>
<b>large(bàn): bàn sẵn sàng là large.</b>
<b>clear(bàn): giải được bằng PICKUP.</b>
<b>armempty: robot đã sẵn empty.</b>


– Sau khi dùng PICKUP thì sau đó phải dùng PUTDOWN để


đưa cánh tay robot vềrỗng.


– … Kết quảcó thểtóm lược như sau:


<b>A</b> <b>walk</b> <b>pickup</b> <b>putdown</b> <b>pickup</b> <b>putdown</b> <b>C</b> <b>D</b> <b>B</b>



</div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×