Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

Ộ Ố Ả

TÌM HI U M T S  GI I THU T

MÔN H C Ọ

TRÍ TU  NHÂN T O

GVHD: Th.S Ngô H  Anh Khôi

ươ

Sinh viên th c hi n:

ệ  Nguy n L p An Kh

ng

ề ộ

ế

1. Tìm ki m theo chi u r ng.

ậ ế

ệ ế ướ

ỉ ng t

ế ề ộ ỉ ề ớ ỉ ậ

i m t đ nh đích, và tìm ki m đ ướ ớ c t

ườ ậ ế ố ố ỉ ừ   t c  các đ nh khác. Trong đ  th  không có tr ng s , thu t toán tìm

ề ộ ộ ỉ ồ ị ắ ườ ậ

ầ ượ ớ

ậ ỉ t nhìn tr

ấ ề ớ ỉ ướ ậ ặ ạ ề ọ ể ng đi ng n nh t có th . Thu t toán BFS  ỗ ố t nhìn các đ nh k  v i đ nh g c. Sau đó, v i m i  ư ề ớ ỉ ạ ầ ượ c các đ nh k  v i nó mà ch a  i l n l ế i. Xem thêm thu t toán tìm ki m theo chi u sâu, c đó và l p l c quan sát tr

ướ ử ụ ự ỉ quan sát các đ nh khác

ề ộ ậ ồ ị ế ộ Tìm ki m theo chi u r ng (BFS) là m t thu t toán tìm ki m trong đ  th  trong  ồ ủ ồ ị ộ ỉ c m t đ nh c a đ  th ; (b)  đó vi c tìm ki m ch  bao g m 2 thao tác: (a) cho tr ể ướ ớ ế ừ i ti p theo. Có  thêm các đ nh k  v i đ nh v a cho vào danh sách có th  h ế ụ ể ử ụ th  s  d ng thu t toán tìm ki m theo chi u r ng cho hai m c đích: tìm ki m  ườ ừ ộ ỉ đ ng đi t ng đi t  m t đ nh g c cho tr ỉ ố ớ ấ ả đ nh g c t i t ề ộ ế ki m theo chi u r ng luôn tìm ra đ ố ắ ầ ừ ỉ  đ nh g c và l n l b t đ u t ố ỉ đ nh trong s  đó, thu t toán l ượ đ ư trong đó cũng s  d ng 2 thao tác trên nh ng có trình t ế ớ v i thu t toán tìm ki m theo chi u r ng.

ậ ớ ớ ớ i F sau đó t i E t A t i C,

ớ gi ớ t ả ế ố i G và cu i cùng t (cid:0) i B t ắ ư ề ệ

ượ ộ ượ ể ỉ đ nh mà đã đ (cid:0) ề ộ ớ ệ ừ i thu t tìm ki m theo chi u r ng duy t t ả ậ i thu t này tuân theo qui t c: i D. Gi ệ ế ớ ỉ ề Qui t c 1ắ : Duy t ti p t i đ nh li n k  mà ch a đ ẩ ỉ ị ề ệ ế ề ấ ầ ỉ ỉ ấ   c duy t. Đánh d u ợ c duy t. Hi n th  đ nh đó và đ y vào trong m t hàng đ i (queue).. Qui t c 2ắ : N u không tìm th y đ nh li n k , thì xóa đ nh đ u tiên trong

hàng đ i.ợ (cid:0) ặ ạ ắ ớ ố i Qui t c 1 và 2 cho t ợ i khi hàng đ i là tr ng. Qui t c 3ắ : L p l

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

Ứ ụ ng d ng:

ượ ể ả ề c dùng đ  gi i nhi u bài toán trong lý

ậ ế ồ ị ế ẳ ạ ề ộ Thu t toán tìm ki m theo chi u r ng đ ư thuy t đ  th , ch ng h n nh :

(cid:0) ầ

(cid:0) ề ớ ườ ỉ ắ ấ ỉ ng đi ng n nh t gi a hai đ nh u và v (v i chi u dài đ ng đi tính

ộ ấ ả t c  các đ nh trong m t thành ph n liên thông Tìm t ườ ữ Tìm đ ằ ố b ng s  cung) ể ồ ị

(cid:0) ộ ồ ị (cid:0) Ki m tra xem m t đ  th  có là đ  th  hai phía ầ Tìm các thành ph n liên thông

Ư ể u đi m: (cid:0) ệ ấ ả ể ả ề ế

ỉ ữ ạ ế ắ

ả t c  các đ nh đ  tr  v  k t qu . ả ắ ậ (cid:0) N u s  đ nh là h u h n, thu t toán ch c ch n tìm ra k t qu . ượ Xét duy t t ế ố ỉ ể c đi m: Nh

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

ệ ố ỉ

ế

GVHD: Th.S Ngô Hồ Anh Khôi ạ (cid:0) Mang tính ch t vét c n, không nên áp d ng n u duy t s  đ nh quá

l n.ớ

ế

ệ ấ ả ỉ t c  đ nh, không chú ý đ n thông  ệ ả ẫ ệ

ế

ấ (cid:0) Mang tính ch t mù quáng, duy t t ỉ ế

tin trong các đ nh đ  duy t hi u qu , d n đ n duy t qua các đ nh  không c n thi

t.

ế

2. Tìm ki m theo chi u sâu.

t là DFS), còn

ả ậ ả ặ ế i thu t tìm ki m  u tiên chi u sâu, là gi ệ i thu t duy t ho c tìm

ế ắ t t ậ ế ề ử ụ ớ ỉ

ề ầ

ặ ượ ỉ ặ ượ ỉ ề ỉ ừ ả

ướ ề ậ ả i thu t tìm ki m theo chi u sâu (Depth First Search – vi Gi ế ư ượ ọ c g i là gi đ ể ộ ồ ị ộ ế ặ ki m trên m t cây ho c m t đ  th  và s  d ng stack (ngăn x p) đ  ghi nh  đ nh  ề ề ể ắ ầ ấ ỳ  ế ề ệ c đ nh li n k  trong b t k li n k  đ  b t đ u vi c tìm ki m khi không g p đ ặ ớ ớ ậ ế ụ ả ặ c đ nh c n tìm ho c t i  i khi g p đ i thu t ti p t c cho t vòng l p nào. Gi ế ở ớ ậ ộ m t nút không có con. Khi đó gi   i thu t quay lui v  đ nh v a m i tìm ki m  ướ b c tr c.

ề ầ

ệ ừ  iả i ọ iớ  C t A t i thu t tìm ki m theo chi u sâu đ u tiên duy t t ớ  G. Gi ế iớ  E, sau đó t ố iớ  F và cu i cùng t

ả ậ iớ  D sau đó t ắ Trong hình minh h a trên, gi các đ nhỉ iớ  B t ậ thu t này tuân theo qui t c sau:

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi ề

(cid:0) ư ệ Qui t c 1ắ : Duy t ti p t

ượ ệ ế ớ ỉ ỉ ề i đ nh li n k  mà ch a đ ẩ ị ượ ộ ể ỉ đ nh mà đã đ (cid:0) ệ ế ỉ

ấ ề ậ ẽ ấ ấ ả ấ ỉ ả ấ   c duy t. Đánh d u ế c duy t. Hi n th  đ nh đó và đ y vào trong m t ngăn x p (stack). ộ ỉ Qui t c 2ắ : N u không tìm th y đ nh li n k , thì l y m t đ nh t ừ ề  trong   ế   ừ ế  trong ngăn x p i thu t s  l y t t c  các đ nh t

ề ỉ

(cid:0) ngăn x p (thao tác pop up). (Gi mà không có các đ nh li n k  nào) ắ ắ ớ ố ề ặ ạ i các qui t c 1 và qui t c 2 cho t ế i khi ngăn x p là tr ng. Qui t c 3ắ : L p l

Ư ể u đi m: (cid:0) ệ ấ ả ể ả ề ế

ỉ ữ ạ ế ắ ắ

Nh Xét duy t t ế ố ỉ ể c đi m:

ế ạ ớ

ấ ấ

ả t c  các đ nhđ  tr  v  k t qu . ả ậ (cid:0) N u s  đ nh là h u h n, thu t toán ch c ch n tìm ra k t qu . ượ (cid:0) Mang tính ch t vét c n, không nên áp d ng n u duy t s  đ nh quá l n. t c  đ nh, không chú ý đ n thông tin  (cid:0) Mang tính ch t mù quáng, duy t t ầ ụ ệ ấ ả ỉ ế ả ẫ ệ ố ỉ ế ỉ ệ ệ ể ệ ỉ

trong các đ nh đ  duy t hi u qu , d n đ n duy t qua các đ nh không c n  thi t.ế

ế

ớ ạ

3. Tìm ki m theo chi u sâu có gi

i h n.

ạ ế ồ ị ế ậ

hay depth­limited search algorithm là m t thu t toán phát tri n các  ớ ạ ớ ạ i h n  ể ữ

ộ ứ ể ậ ế ầ ệ Trong trí tu  nhân t o hay các lý thuy t đ  th , thu t toán tìm ki m có gi ộ đ  sâu (DLS) ư nút ch a xét các theo chi u sâu nh ng có gi ư ườ con đ i h n m c đ  tránh đi vào nh ng  t nh  trong thu t toán tìm ki m sâu d n. ề ạ ế ng không mang l ư ả ố i k t qu  t

Ư ể u đi m:

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

ớ ệ

ế

GVHD: Th.S Ngô Hồ Anh Khôi ả ử ụ

(cid:0) Nó là b  nh  hi u qu , s  d ng không gian tuy n tính O (bxL)

ượ Nh ể c đi m:

ư

ế

ướ

ớ ạ

i pháp n m d

i gi

i h n L(d 

ấ Solution.

(cid:0) Ch a hoàn thành n u gi ể không th  tìm th y

ấ ố ư ế

ơ Solution.

(cid:0) Nó có th  không tìm th y t

i  u n u có nhi u h n

ả ề ờ

(cid:0) Nó không hi u qu  v  th i gian vì ph i m t O (b ^ L).

ế

ế

ượ ử ụ

(cid:0) Nó có th  gây ra các vòng l p n u tìm ki m cây đ

c s  d ng trên

ồ bi u đ .

ế

4. Tìm ki m theo giá thành th ng nh t.

ữ ợ ư ữ ệ ư ầ ử

ỏ ấ ấ ầ ử ợ ẽ ấ

ộ ạ ứ  ra kh i hàng đ i s  căn c  vào đ   u tiên nh  nh t. ườ ệ ệ ổ

ớ ộ ư  cùng v i đ   u tiên  ộ ư ỏ ắ ử ụ ạ ầ ậ

ể ư ườ ữ

ệ ể ư ạ ữ ậ ạ ộ

Hàng đ i  u tiên PQ là c u trúc d  li u l u tr  các ph n t ủ c a nó và khi l y ph n t ấ ng đi ng n nh t (hi n có)  Cho m t tr ng thái n, ký hi u g(n) là t ng chi phí đ ợ ộ ế ừ ạ  tr ng thái ban đ u S đ n tr ng thái n. Thu t toán UCS s  d ng m t hàng đ i  t ư ng đi.  u tiên (Priority Queue – PQ) đ  l u tr  và duy t các tr ng thái trên đ ượ Thu t toán dùng thêm m t danh sách CLOSE đ  l u tr  các tr ng thái đã đ c  xét.

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

Ư ể u đi m:

(cid:0)

ố ư

ườ

i  u vì con đ

ng có chi phí

ấ ượ

ế Tìm ki m theo giá thành th ng nh t là t ọ c ch n. th p nh t đ

ượ Nh ể c đi m:

ướ

ế ố ượ ườ

ế ế c liên quan đ n tìm ki m  ể  thu t này có th

(cid:0) Không c n quan tâm đ n s  l ng các b ế ẫ ỉ và ch  quan tâm đ n chi phí đ ng d n. Do đó gi ặ ộ ị ắ ẹ b  m t k t trong m t vòng l p vô h n.

ế 5. Tìm ki m sâu d n.

ế ồ ị ế ế ệ ạ ậ ầ

ệ ế ặ ậ Trong trí tu  nhân t o hay lý thuy t đ  th , thu t toán tìm ki m ki m sâu d n là  ặ ồ ị 1 thu t toán duy t ho c tìm ki m trên cây ho c đ  th .

ượ ư ể

ả ằ ở ộ ế ơ ủ i n m DLS

ả ậ Thu t toán đ ộ ạ h n đ  sâu ộ ạ h n đ  sâu l thì gi ớ ậ ắ i  c đ a ra đ  kh c ph c đi m yêu c a thu t toán tìm ki m gi ớ ớ   . Đó là khi mà t  đ  sâu l n h n gi i  i gi i thu t ụ ể ờ ấ ả t c  các l ẽ ấ ạ ậ  DLS s  th t b i.

ả ậ Gi i thu t tìm ki m sâu d n ầ   s  :ẽ (cid:0) ố ớ ườ i thu t (cid:0) ế ả ấ ạ ậ    DLS  ế ụ ộ ng đi có đ  dài <= 1 ố ớ ườ ế ả ậ ộ ụ   đ i v i đ áp d ng gi ụ N u th t b i, ti p t c áp d ng gi i thu t dfs đ i v i đ ng đi có đ  dài

ả ặ ộ ượ ượ ờ c l i gi i ho c khi toàn b  cây đã đ c

ả <= 2 ứ ư ậ (cid:0) …..c  nh  v y đ n khi tìm đ xét mà không tìm đ ế ượ ờ c l i gi i.

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

ủ ớ ễ ệ ệ ọ

GVHD: Th.S Ngô Hồ Anh Khôi ế ­         Luôn tìm ra nghi m (n u bài toán có nghi m), mi n là ch n max đ  l n  ề ộ ế (gi ng nh  tìm ki m theo chi u r ng)

ư ố

ộ ứ ạ ế ờ ố ộ ­         Có đ  ph c t p th i gian là O(kd) (gi ng tìm ki m r ng)

ộ ứ ạ ế ố ­         Có đ  ph c t p không gian là O(k*d) (gi ng tìm ki m sâu)

ả ụ ầ

ế i thu t tìm ki m sâu d n th ộ ươ ệ ậ ớ ủ ­         Gi ạ gian tr ng thái l n và đ  sâu c a nghi m không bi ng áp d ng cho các bài toán có không  c. ế ướ t tr

Ư ể u đi m:

(cid:0) Nó t ả

ổ ứ ề ặ ủ ệ ế ợ

i ích c a thu t toán tìm ki m BFS và DFS v  m t hi u  ộ ch c các l ế ớ ậ qu  tìm ki m và b  nh  nhanh.

ế

ướ

(cid:0) H n ch  chính c a IDS là nó l p l

ặ ạ ấ ả i t

ệ ủ t c  các công vi c c a giai đo n tr

c.

ượ Nh ể c đi m:

ế 6. Tìm ki m leo đ i.

ồ ế ế ở ộ

ướ ế ớ

ẫ ng d n b i hàm đánh giá.  ộ ỉ ề ượ ướ c h ể ứ ẹ c ti p theo  ể ộ ủ ố ỉ

ượ ở ị Tìm ki m leo đ i là tìm ki m theo đ  sâu đ ế Song khác v i tìm ki m theo đ  sâu, khi phát tri n m t đ nh u thì b ấ ể ỉ ọ ta ch n trong s  các đ nh con c a u, đ nh có h a h n nhi u nh t đ  phát tri n,  ỉ đ nh này đ c xác đ nh b i hàm đánh giá.

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

Ư ể u đi m:

(cid:0) ọ ế ế ươ ướ ng pháp tìm ki m leo đ i chú tr ng tìm h

ế

ớ ế ỗ ướ i m i b ấ ể ứ ẹ ế ướ ấ

ọ c. V n đ  quan tr ng là bi ẩ ả ị

ạ ế ậ ề ộ ạ c ta s   u tiên ch n m t tr ng thái có h a h n  ề ướ ỗ ạ ọ ế ủ ườ ế ớ t khai  ng đi ti p và đ y nhanh  ng ta gán m i tr ng thái c a bài toán v i

ứ ộ ầ ạ ộ ố ề ờ

ạ ề ớ ế ế ủ ể ế ạ

ặ ồ ễ ẫ ng đi d  d n đ n tr ng  Ph ứ ả ượ ư ấ thái đích nh t. Cách đó đ c đ a ra nh m làm gi m công s c tìm ki m.  ự ấ ồ ậ Thu t toán tìm ki m leo đ i th c ch t là thu t toán tìm ki m theo chi u  ẽ ư sâu, song t ể i đich nh t đ  phát tri n tr nhanh t ồ ể thác kheo léo thông tin ph n h i đ  xác đ nh h quá trình tìm ki m. Thông th ủ ằ m t s  đo (hàm đánh giá) nào đó nh m đánh giá m c đ  g n đích c a nó.  ẽ ượ ệ Đi u đó có nghĩa là n u tr ng thái hi n th i là u thì tr ng thái v s  đ c  ị phát tri n ti p theo n u v k  v i u và hàm đanh giá c a v đ t giá tr  max  (ho c min).

ượ Nh ể c đi m:

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

ị ố ơ

ư ả ể ươ ng án t

(cid:0) C c tr  đ a ph ự ị ươ ả ph i là ph ướ ể nút tr ườ ng đi.          đ

ớ ạ ả ỏ ng: nút đang xét t ấ ng khác. Gi ậ t h n các nút lân c n, nh ng đó không  ề ể ậ t nh t trong toàn th , ví v y có th  ph i quay lui v   ề ướ i nhi u i pháp này đòi h i ghi nh  l ố c đ  đi theo h

(cid:0) Cao nguyên: Các giá tr  c a các ph

ươ ư ị ng án nh  nhau, không xác đ nh

7. Simulated annealing search.

ượ ướ ố ơ ậ đ c ngay h t h n trong vùng lân c n. ị ủ ng nào là t

ự ứ ạ ạ ộ ạ (annealing process): Kim lo i ngu i đi và l nh c ng l i

ế ấ ủ D a trên quá trình tôi  thành c u trúc k t tinh

ể ượ ể ố ư ng pháp tìm ki m Simulated Annealing có th  tránh đ c các đi m t i  u

ế ươ Ph ụ ộ c c b  (local optima)

ươ ử ụ ế ng pháp tìm ki m Simulated Annealing s  d ng chi n l

ế c tìm ki m ng u  ầ ự ấ ậ ổ ị

ế ượ ụ ả ấ ậ ạ ổ ẫ Ph nhiên, trong đó ch p nh n các thay đ i làm tăng giá tr  hàm m c tiêu (c n c c  ế ạ đ i hóa) và cũng ch p nh n (có h n ch ) các thay đ i làm gi m

ố ề ử ụ ể ộ ng pháp tìm ki m Simulated Annealing s  d ng m t tham s  đi u khi n T

ế ệ ố ươ ư Ph (nh  trong các h  th ng nhi ệ ộ t đ )

ắ ầ ề ậ ả ầ ị ❑ B t đ u thì T nh n giá tr  cao, và gi m d n v  0

ượ

ỏ ồ ừ ạ ố ư ụ ộ ằ t qua) các đi m t ờ ể ệ ấ ủ ư ả ả i  u c c b  b ng cách cho phép c   ầ ầ  tr ng thái hi n th i, nh ng gi m d n t n xu t c a các

ưở ng: Thoát kh i (v Ý t ể ị i” t các d ch chuy n “t ể ồ i này di chuy n t

ứ ộ ả ượ ị

ể ứ ấ ố ớ

ấ ấ ẽ ố ị ủ ế ầ   c) N u giá tr  c a tham s  T (xác đ nh m c đ  gi m t n (Có th  ch ng minh đ ế ươ ả ậ ể ồ   xu t đ i v i các di chuy n t ng pháp tìm ki m Simulated i) gi m ch m, thì ph ỉ ụ ớ ả ố ư i  u toàn c c v i xác su t x p x  1  i t i gi Annealing s  tìm đ ượ ờ c l

ươ ế ấ ượ ử ụ ng pháp tìm ki m Simulated Annealing Search r t hay đ c s  d ng trong

ự ế ế ơ ồ ả ậ ị ạ Ph các lĩnh v c: thi t k  s  đ  b ng m ch VLSI, l p l ch bay, …

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

Ư ể u đi m:

(cid:0) ế ớ

ộ ỹ ạ ậ ỗ ộ

ữ ệ ẽ ạ ể ố Simulated annealing search có th  đ i phó v i các mô hình phi tuy n tính  ề ồ cao, d  li u h n lo n và  n ào và nhi u ràng bu c. Đó là m t k  thu t  m nh m  và chung chung.

(cid:0) ươ ủ ớ ị ươ ng khác

u đi m chính c a nó so v i các ph ế ậ ạ ả Ư ể là tính linh ho t và kh  năng ti p c n toàn c u s  t ế ng pháp tìm ki m đ a ph ầ ự ố ư i  u.

(cid:0) ậ ấ ỳ ự ạ ạ ộ

ế Thu t toán này khá linh ho t vì nó không d a trên b t k  thu c tính h n  ủ ch  nào c a mô hình.

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

(cid:0) M t b t l

ượ Nh ể c đi m:

i

ỏ ủ ộ ấ ợ Simulated annealing search là chuyên sâu tính toán. Có t n ồ i các bi n th  c  b n nhanh h n mô ph ng

ể ơ ả ễ , nh ng rõ ràng chúng  ượ ử ụ ế ượ ậ ộ ư ơ c mã hóa d  dàng và vì v y chúng không đ c s  d ng r ng

ạ t không đ rãi.

ế 8. Tìm ki m Beam

ề ộ ể ố

ậ i thu t tìm ki m beam gi ng nh  tìm ki m theo chi u r ng, nó phát tri n các ở ộ ế ở ứ ế ế ứ ồ ư ỉ ể ả Gi ỉ đ nh m t m c r i phát tri n các đ nh m c ti p theo.

ể ấ ả m t

ề ộ ạ ế ỉ ể

ượ ế ị

ỉ ứ ố ỉ ề ộ ỉ ở ộ t c  các đ nh  ấ ố ỉ t nh t(các đ nh ở ấ  b t kì m c  c xác đ nh b i hàm đánh giá). Do đó trong tìm ki m beam,  ế c phát tri n, trong khi tìm ki m theo chi u r ng, s  đ nh

ố ế Tuy nhiên trong tìm ki m theo chi u r ng, ta phát tri n t ế ứ m c, còn trong tìm ki m beam, ta h n ch  ch  phát tri n đ nh K t ở này đ ỉ ượ nào cũng có K đ nh đ ể ở ứ ầ  m c d là b c n phát tri n ể d (b là nhân t t nhánh).

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

Ư ể u đi m:

(cid:0) ế ả ả ợ i th  là có kh  năng làm gi m tính toán, và do đó,

ớ ủ ờ ồ

ụ ộ ơ ả ủ ứ ế ủ ề ộ ớ ươ ơ ế Tìm ki m beam có l ế   ờ ế th i gian c a m t tìm ki m. Đ ng th i, m c tiêu th  b  nh  c a tìm ki m ít h n nhi u so v i các ph ng pháp tìm ki m c  b n c a nó.

ượ Nh ể c đi m:

ế ể ẫ

ụ ể ế i  u và th m chí có th  không đ t đ

ủ ậ ế ạ ượ ậ ợ ế c đi m chính c a tìm ki m beam là tìm ki m có th  không d n đ n  ự c m c tiêu. Trong th c  ườ c nút ng h p: đ t đ

ứ ấ ạ ượ ặ ắ c nút m c tiêu và không còn nút

(cid:0) Nh ể ượ ụ ạ ượ ố ư m c tiêu t ế , thu t toán tìm ki m chùm ch m d t cho hai tr t ụ ộ ụ m c tiêu b t bu c ho c không đ t đ nào đ  khám phá.

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

ế

9. Tìm ki m nhánh c n.

ươ ố ư ổ ợ ệ i các bài toán t ng pháp ch  y u đ  gi i  u t

ừ ủ ế ướ ể ả ế ế ả

ế

ẽ ố ầ ệ ậ

ủ ị ệ ờ ủ ậ ạ ệ ự Là ph  h p. Ta th c hi n vi c  ẽ ả ố ơ ấ t h n thì r   c, n u không có kh  năng tìm th y k t qu  t đánh giá theo t ng b ể ệ ự ỉ  nhánh nó, không th c hi n tìm ti p mà chuy n ngay sang nhánh khác. Khi đó, ch ầ ả ố ơ ế ầ t d n  c n ghi nh n các k t qu  t ả ố ơ ế i giá tr  hi n th i c a bài toán. lên do khi tìm ra k t qu  t t h n lúc ban đ u. Nghi m c a bài toán s  t ẽ ậ t h n ta s  c p nh t l

ả ế ủ ộ ạ ươ ng pháp quay lui dùng

ế ươ Ph ể ả đ  gi ậ ng pháp Nhánh c n là m t d ng c i ti n c a ph i quy t bài toán t ố ư . i  u

Ư ể u đi m:

(cid:0) ươ ệ ể ậ ộ ng pháp nhánh c n không quét qua toàn b  các nghi m có th  có

Ph ủ c a bài toán .

ượ Nh ể c đi m:

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

(cid:0) Khó khăn c a ph

ượ ế ậ

ề ế ệ c các  ầ t s  b  nhi u nghi m không c n

ế ả ươ ủ ng pháp nhánh c n là làm th  nào đánh giá đ ệ ố ẽ ỏ ậ ở ộ nghi m m  r ng (c n). N u đánh giá t t ph i xét (nhánh) thi .

10. Gi

i thu t Minimax.

ậ ệ ọ ướ ậ i thu t Minimax là m t thu t toán đ  quy l a ch n b

ườ ườ

ờ ộ ư ờ ơ ố ờ ướ c đi c a mình nh  c  vua, c  t

ủ ế ờ ư ộ ế ế ự c đi k  ti p trong  i thay  i. Xét m t trò ch i đ i kháng trong đó hai ng ơ ng, c  caro, c  vây… Khi ch i  ạ

ượ ủ ố ế ả ứ

ả ử ố ư ế ế ủ ể c ph n  ng và n ạ

ố ả ế ụ ứ ề ể ướ ủ ủ ạ ậ thuy t này đ  tìm ủ ử ụ  s  đ i th  c a b n cũng s  d ng ki n th c v  không  i thu t Minimax áp d ng gi

ấ ậ ượ ướ c b

ằ ế ế ế ố c đi k  ti p t ế ể

ị ạ ố t nh t ế   c ti p

ế ạ ơ ị ể

ơ ượ ọ ố

ế ư ườ ạ ợ i quy t dành th ng l

ố ố ắ i và c  g ng t ạ ố ắ ườ i ng

ả ố ể  thi

ế i đa hóa  u th   ố ả i c  g ng gi m đi m s   ế t  t. Gi ơ ế ề ạ

ứ ơ

ủ ế

ể ệ ậ ơ ị ị

ơ ẽ ự ướ ườ ế ợ ị ả Gi ơ ộ m t trò ch i có hai ng ướ phiên đi n ạ ể ạ b n có th  khai tri n h t không gian tr ng thái nh ng khó khăn ch  y u là b n  ả c đi c a đ i th  mình nh  th  nào? Cách  ph i tính toán đ ơ ả ử x  lý đ n gi n là b n gi ả ạ ạ gian tr ng thái gi ng b n. Gi ơ ủ ạ ế ki m không gian tr ng thái c a trò ch i. ả t nh t trong các  Gi i thu t Minimax giúp chúng ta tìm đ ạ không gian tr ng thái ti p theo b ng cách phát tri n h t không gian tr ng thái  ấ ở ướ  b cây trò ch i đ nh giá tr  cho các Node tìm Node có tr ng thái t theo phát tri n ti p. ủ c g i là MIN và MAX luân phiên thay th  nhau đi.  Hai đ i th  trong trò ch i đ ắ ế ệ MAX đ i di n cho ng ệ ơ ạ ượ ạ ủ i ch i đ i di n cho MIN l c l c a mình, ng ố ủ ể ố ắ ủ c a MAX và c  g ng làm cho đi m s  c a mình càng âm càng t ư ứ ư đ a ra MIN và MAX có ki n th c nh  nhau v  không gian tr ng thái trò ch i và  ư ủ ề ố ắ ả c  hai đ i th  đ u c  g ng nh  nhau. ộ ạ ễ ể ỗ M i Node bi u di n cho m t tr ng thái trên cây trò ch i. Node lá là Node ch a  ạ ơ tr ng thái k t thúc c a trò ch i. ằ ả i thu t Minimax th  hi n b ng cách đ nh tr  các Node trên cây trò ch i: Gi ị ớ (cid:0) Node thu c l p MAX thì gán cho nó giá tr  l n nh t c a con Node đó. ỏ (cid:0) Node thu c l p MIN thì gán cho nó giá tr  nh  nh t c a con Node đó. ọ i ch i s  l a ch n cho mình n ấ ủ ấ ủ c đi ti p theo h p lý

ộ ớ ộ ớ ừ T  các giá tr  này ng nh t.ấ

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

Ư ể u đi m: (cid:0) ế ượ ự ố c đi ti p theo sau đó l a ch n n c đi t ấ t nh t, vì

ả ọ ướ c m i n ấ ạ ỏ

Nh

ạ ớ ư

ọ ướ ế Tìm ki m đ ậ ạ gi i thu t có tính ch t vét c n nên không b  soát tr ng thái. ể c đi m: ố ớ ệ ẽ ệ ậ ờ ướ ả ữ ng…  ự  không còn hi u qu  n a do s

ượ (cid:0) Đ i v i các trò ch i có không gian tr ng thái l n nh  caro, c  t i thu t Minimax có l ớ h p quá l n.

ậ ụ ượ i thu t áp d ng nguyên lý vét c n không t n d ng đ

ạ ọ ướ c thông tin c a  ạ ệ ế ệ ạ ể ự ủ c đi, vì duy t h t các tr ng thái nên i đ  l a ch n n

ơ ả ụ ỉ vi c ch  áp d ng gi ổ ổ ợ bùng n  t (cid:0) Gi ả ụ ậ ạ tr ng thái hi n t ờ ố t n th i gian.

ớ ắ ỉ

11. Gi

i thu t Minimax v i c t t a Alpha­Beta.

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

ượ ậ ắ ỉ

ọ ề ế c c i ti n cho đ n ngày nay. Gi ề i thu t này th

ừ i thu t c t t a Alpha­beta t ng đ ượ ả ế ừ ng và không ng ng đ ậ ậ ỗ ợ ả ế ằ ớ

ớ ể ắ ơ ơ i thu t c t t a Alpha­beta có nguyên t c đ n gi n

ườ ế ả ầ ợ ấ ả c nhi u nhà khoa h c máy tính đ  xu t ý  Gi ưở ườ ả t ng  ử ụ s  d ng chung v i thu t toán tìm ki m Minimax nh m h  tr  gi m b t các  ơ ạ không gian tr ng thái trong cây trò ch i, giúp thu t toán Minimax có th  tìm  ế ả ậ ắ ỉ ả ki m sâu và nhanh h n. Gi ấ ế "N u bi ng h p x u thì không c n ph i xét thêm". t là tr

ộ ặ ằ ơ

ị ộ ị ỏ ơ ả

ớ ặ ằ ị ể

ư ượ ượ ề Nút Max có m t giá tr  alpha (l n h n ho c b ng alpha – luôn tăng), nút min có  m t giá tr  beta (nh  h n ho c b ng beta – luôn gi m). ế ự ệ   Khi ch a có alpha và beta xác đ nh thì th c hi n tìm ki m sâu (depth­first) đ  xác ị đ nh đ c lên các nút cha. c alpha, beta, và truy n ng

ộ ố ệ ắ ỉ ắ ỉ ệ ớ

ơ ọ

ể ắ ỉ ộ ề ậ M t s  sách và tài li u có đ  c p v i vi c c t t a alpha và c t t a beta, dùng m t  ướ ả i  cách khác đó là dùng các kho ng trong toán h c. Hãy nhìn cây trò ch i phía d ể đ  hình dung cách đ  c t t a.

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

ả ừ ế ượ ư c đ a ra trái sang ph i ta s  th y S là Max, theo chi n l

ị ạ ẽ ấ i S.

ơ  đây là nút Min (tr ng thái trò ch i dành cho Max) t c là s  l y  ư ậ ế ị ạ ở ướ  d ẽ ấ ả i. N u nh  v y thì giá tr  chúng ta ph i

ể ễ ị

ượ Ở ị

ệ ả ệ c alpha và beta, chúng ta có th  d  dàng xác đ nh vi c có  ư ở  C   nút S (Max), giá tr  alpha luôn ≥ 10 (luôn tăng) nh ng  ạ ở i C là

ạ ỉ i nút g c ố   S,

ả ậ ầ ả ầ Đ u tiên là xét cây t ậ ẽ v y chúng ta s  có giá tr  alpha ≥ 10 t ế ở ở  C  Ti p theo,  ấ ủ ỏ ị giá tr  nh  nh t c a các nút con  ấ l y là beta ≤ 3. ị Sau khi xác đ nh đ ắ ỉ c t t a hay không.  ị (Min) thì giá tr  luôn luôn ≤ 3 (luôn gi m), nên vi c xét các con còn l ế không c n thi t. ế N u nói theo kho ng thì hi n t ậ v y thì đâu c n b n tâm đ n vi c kho ng ≤ 3 t ả ậ ệ ạ i chúng ta ch  nh n kho ng ≥ 10 t ạ ệ ế i nút C.

ụ ớ ộ ơ Ví d  v i m t cây trò ch i trung bình

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

ố ả ắ ầ ừ nút g c và nút con bên trái

ừ ệ ướ trái qua ph i b t đ u t c.

ị ố ầ ư ề ồ ạ đây chúng ta cũng xét t c  u tiên duy t tr ệ ừ

ệ ẽ ặ ố ầ

trên g c xu ng sâu (vì ban đ u ch a h  t n t ị ẽ ắ ầ ế ệ

ể ẽ ọ ị ể  đây ta s  ch n cho alpha = 3 (Max).

ả ầ ượ ừ ệ ừ ả  trái sang ph i và ph i l n l

ế ế ậ

ủ ệ ả ầ ị t t ng nhánh  ẽ ư c duy t,    Khi duy t con đ u tiên mang giá tr  5 v y alpha c a

ạ ạ ầ

i F – alpha ≥ 5. Nh  v y chúng ta không c n xem xét các  ả ư ậ ỉ ạ ủ ầ ở ắ ộ đây ch  là kho ng ≤ 3 nên ta c t toàn b  các i c a F vì cái ta c n

ủ ệ ạ ạ Ở ẽ ượ ư s  đ Xét duy t t i giá tr  alpha hay  ở ủ beta c a các nút). Nút đ u tiên ta duy t là E s  g p giá tr  2 (alpha ≥ 2), khi đó  ư trên ch a có giá tr  beta đ  ta có th  so sánh nên s  b t đ u duy t con ti p theo  ủ ở c a nút E đó và  ư L u ý là chúng ta luôn luôn duy t t ố ộ m t, sau đó sang nhánh ti p theo cùng g c. V y nên ti p theo chúng ta s  đ a  ệ ẽ ượ giá tr  alpha này lên nút B (Min) và nút B – beta ≤ 3, sau đó nút F s  đ ủ ậ và ta ph i tìm alpha c a F. F – alpha ≥ 5. T i B – beta ≤ 3 và t nút con còn l i.ạ con còn l ộ Sau khi duy t toàn b  các con c a B thì t i nút A – alpha ≥ 3. i B – beta = 3, và t

Ư ể

(cid:0) ắ ỉ ể ố ư ậ i  u thu t toán Minimax.

ượ u đi m: ậ Thu t toán c t t a Alpha Beta sinh ra đ  t ể c đi m: Nh

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

ỗ ạ ể ả ả ượ c đi m c a thu t toán minimax là m i tr ng thái b ng ph i

(cid:0) M t nh ộ ượ đ ị giá giá tr  heuristic.

ủ ứ ể ể ầ ậ ộ ầ ậ ủ ầ c truy c p hai l n: m t l n đ  tìm con c a nó và l n th  hai đ  đánh

ế

12. Gi

i thu t tìm ki m t

ấ ầ t nh t đ u tiên.

ậ ả ự Có 3 thu t gi i con d a vào nó:

(cid:0) ả ậ Thu t gi i AT

(cid:0) ả ậ Thu t gi i AKT

(cid:0) ả ậ Thu t gi i A*

ế ủ ế ự ở ộ

ề ủ Ư ể ị

ế ắ ụ

ố ư ẽ ế ợ ộ ấ ạ ng duy nh t t

ư ồ

ướ ườ ẻ ằ ọ i  u s  k t h p 2  ờ i m t th i  ế ng khác. N u con đ ng ta đang "quan sát" ta s ườ   ng ẽ

ể ộ ố Ư ể ả u đi m c a tìm ki m theo chi u sâu là không ph i quan tâm đ n s  m  r ng  ế ủ ấ ả ề ộ c a t t c  các nhánh.  u đi m c a tìm ki m chi u r ng là không b  sa vào các  ế ư ẫ ườ đ ng d n b  t c (các nhánh c t). Tìm ki m  u tiên t ườ ộ ươ ph ng pháp trên cho phép ta đi theo m t con đ ờ ẫ ữ ượ ể c nh ng h đi m, nh ng đ ng th i v n "quan sát" đ ữ ể đang đi "có v " không tri n v ng b ng nh ng con đ ườ ng này. chuy n sang đi theo m t trong s  các con đ

ọ ạ ế ụ ể ạ c c a tìm ki m BFS, ta ch n đi theo tr ng thái có

ờ ế ượ ộ ả c xét cho đ n th i đi m đó.

ạ ỗ ướ ủ ạ ỉ ọ ể ế ượ ừ ạ

ả ạ ệ ạ  tr ng thái hi n t ả ẽ ư ữ ố

ồ ố ứ ẽ ẩ

ệ ế ế ị ẩ ệ ng mà ta ch a đi, thì ta s  không đi

ộ ướ ấ ố ướ ng mà ta phát hi n ra r ng h ư ướ t nh t trong s  nh ng ơ ả ữ ọ i n a mà ch n đi theo m t h

ủ ạ ủ i m i b M t cách c  th , t ể ố ấ kh  năng cao nh t trong s  các tr ng thái đã đ ồ ố ứ ố ấ (khác v i leo đ i d c đ ng là ch  ch n tr ng thái có kh  năng cao nh t trong s   ớ ế   ư ậ ế ế i). Nh  v y, v i ti p c t các tr ng thái k  ti p có th  đ n đ ậ ấ c n này, ta s   u tiên đi vào nh ng nhánh tìm ki m có kh  năng nh t (gi ng tìm  ế ki m leo đ i d c đ ng), nh ng ta s  không b  l n qu n trong các nhánh này vì  ế ng này càng đi thì  n u càng đi sâu vào m t h ẽ càng t ố ữ ế ướ ti p h ướ h ư ộ ướ ứ ấ , đ n m c nó x u h n c  nh ng h ệ ạ ữ ng hi n t ư ng ch a đi. Đó là t ng t ế ng ch  đ o c a tìm ki m Best First Search. ư ưở  t

Ư ể u đi m:

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

(cid:0) ậ ữ ổ

GVHD: Th.S Ngô Hồ Anh Khôi ố t nh t đ u tiên có th  chuy n đ i gi a BFS và DFS ữ c nh ng l

ế ạ ượ ấ ầ ợ ế ủ ả ể ậ Thu t toán tìm ki m t ằ b ng cách đ t đ ể i th  c a c  hai thu t toán.

(cid:0) Nó hi u qu  h n BFS và DFS. ả ơ

(cid:0) Đ  ph c t p th i gian c a tìm ki m đ u tiên t

ủ ế ầ ố ề ấ ơ ớ t nh t ít h n nhi u so v i

ộ ứ ạ ầ ế ủ ờ tìm ki m đ u tiên c a Breadth.

(cid:0) ẫ ệ ố ọ ườ ấ ạ ờ t nh t t

ậ ề

ữ ử ụ ứ ế

ể i th i đi m đó. Nó  ế ế ậ t nh t cho phép chúng tôi t n d ng l

ầ ố ợ t nh t,

ậ ự ế ợ ề ộ ố ấ ớ ự ợ ể ọ ủ ứ ẹ ấ ng d n xu t hi n t thu t toán luôn ch n đ ế là s  k t h p gi a thu t toán tìm ki m theo chi u sâu và tìm ki m theo  ầ chi u r ng. Nó s  d ng ch c năng heuristic và tìm ki m. Tìm ki m đ u  ế ủ ả ậ ụ i th  c a c  hai thu t toán.  tiên t ế ấ ở ỗ ướ V i s  tr  giúp c a tìm ki m đ u tiên t c, chúng ta có   m i b ấ th  ch n nút h a h n nh t.

ượ Nh ể c đi m:

(cid:0) Nó có th  ho t đ ng nh  m t tìm ki m sâu đ u tiên không có đi u ki n

ạ ộ ệ ề ầ

ể ườ ợ ấ ế ể ị ẹ ư ặ ộ ng h p x u nh t. Nó có th  b  k t trong m t vòng l p nh  DFS.

trong tr ậ Thu t toán này không t ư ộ ấ ố ư i  u.

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

13. Gi

i thu t tham lam.

ọ ể ố i thu t tham lam l a ch n gi c cho là t

th i đi m  ự ấ ở ờ ọ ự

ậ i và sau đó gi ậ ự ệ c đó. Vi c

t nh t  ệ ự  vi c th c hi n l a ch n đó. L a  ướ ệ ờ

ế ị ậ ả ế ậ ượ ả ự i pháp nào đ ả ừ ệ ả i bài toán con n y sinh t ể ụ ả ộ i thu t tham lam có th  ph  thu c vào l a ch n tr ả ủ ớ ng đi c a gi i thu t cùng v i vi c không bao gi ố ư ể ả ế i  u đ ọ ớ i thu t này không t

ổ ướ ẽ ẫ i các quy t đ nh cũ s  d n đ n k t qu  là gi ả ụ ả Gi ệ ạ hi n t ọ ủ ch n c a gi ế ị quy t đ nh s m và thay đ i h ạ xét l tìm gi i pháp toàn c c.

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

Ư ể u đi m:

(cid:0) ờ ạ

ề ư ớ ỹ

ơ ố ớ ỹ ậ ở ỗ ấ ỏ ơ ỹ ụ ướ ộ ệ  m i c p đ  đ  quy kích th ậ ố c nh  h n và s

ề ụ ẽ ễ ậ Phân tích th i gian ch y cho các thu t toán tham lam nói chung s  d   ụ ậ dàng h n nhi u so v i các k  thu t khác (nh  Phân chia và chinh ph c).  Đ i v i k  thu t Phân chia và chinh ph c, không rõ k  thu t này nhanh  ề hay ch m. Đi u này là do  ấ ượ l ng các v n đ  ph  tăng lên.

ượ Nh ể c đi m:

ề ố ớ ạ

(cid:0) Đi u khó khăn là đ i v i các thu t toán tham lam, b n ph i làm vi c  ệ ậ ậ

ỉ ơ ả ả ớ ề

ể ể ể ứ ậ ằ

ậ ơ ệ ậ ọ ộ

ề ự ế ấ ấ ề chăm ch  h n nhi u đ  hi u các v n đ  chính xác. Ngay c  v i thu t toán   ộ ứ ạ i sao nó đúng. Ch ng minh r ng m t  chính xác, th t khó đ  ch ng minh t ộ thu t toán tham lam là chính xác là m t ngh  thu t h n là m t khoa h c.  ạ Nó liên quan đ n r t nhi u s  sáng t o.

14. Gi

ậ i thu t A*.

ầ ượ

ể ượ ứ ọ

ư ư ộ c xem nh  là  ồ ng đ ng nh ng có

ố ầ Đ c công b  l n đ u tiên vào năm 1968 do Peter Hart, Nils Nilsson và Bertram  ệ ủ Raphael c a Vi n nghiên c u khoa h c Stanford. Đây có th  đ ủ ớ ặ ươ ậ ở ộ m t m  r ng c a thu t toán Dijkstra v i các b ở ỗ ướ ượ  m i b thêm thông tin l ướ c cài đ t t ế c tìm ki m. ng giá (heuristic)

ả ậ ườ ệ ạ i thu t tìm ki m trong đ  th , tìm đ m t t i

ế ử ụ ỉ ng đi t ả ồ ị ể ướ ượ c l ừ ộ ừ ộ ỉ  m t đ nh hi n t ọ ng kho ng cách hay còn g i là hàm

A* là gi ế đ n đ nh đích có s  d ng hàm đ   Heuristic.

ệ ạ ự ể

ấ ả i A* xây d ng t ể ườ ườ ể ố ừ ạ T  tr ng thái hi n t ả ượ l t c  các đ c kho ng cách ( hàm Heuristic) đ  đánh giá đ ng đi có th  đi dùng hàm  ấ ng đi t ướ c  t nh t có th  đi.Tùy

Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo

GVHD: Th.S Ngô Hồ Anh Khôi

ỗ ạ ẽ ượ c đánh giá khác nhau. A*

ắ theo m i d ng bài khác nhau mà hàm Heuristic s  đ ấ ế ồ ạ ườ luôn tìm đ ng đi ng n nh t n u t n t ượ ườ c đ i đ ư ế ng đi nh  th .

Ư ể u đi m:

ộ ả ậ ứ ả ế ổ

ữ ướ ng c a hàm Heuristic. Chính vì th  mà

(cid:0) M t thu t gi ế ế ờ i gi ườ i ta th

ể ả ề   i linh đ ng, t ng quát, trong đó hàm ch a c  tìm ki m chi u sâu, tìm ki m chi u r ng và nh ng nguyên lý Heuristic khác.Nhanh chóng  ủ tìm đ n l ậ ườ ng ộ ề ộ ả ớ ự ị i v i s  đ nh h ng nói, A* chính là thu t gi ế i tiêu bi u cho Heuristic.

ượ Nh ể c đi m:

(cid:0) ộ ấ ư ế ể ặ ố

ơ ả ộ ề ẫ ề ộ ế ố i

ư ộ A* r t linh đ ng nh ng v n g p m t khuy t đi m c  b n – gi ng nh   ế ượ ớ ể ư ạ chi n l c tìm ki m chi u r ng – đó là t n khá nhi u b  nh  đ  l u l ạ ữ nh ng tr ng thái đã đi qua.