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

Bài giảng Trí tuệ nhân tạo - ThS. Nguyễn Thị Thúy Loan

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 (1.29 MB, 65 trang )

TRÍ TUỆ NHÂN TẠO
ThS. Nguyễn Thị Thúy Loan
6/8/2010
Nguyễn Thị Thúy Loan 2
Cách đánh giá
 Thực hành: 30%
 Bài tập: 20%
 Lý thuyết: 50%
6/8/2010
Nguyễn Thị Thúy Loan 3
Tài liệu tham khảo
[1]. Bài giảng của Nguyễn Thị Thúy Loan
[2]. Trí tuệ nhân tạo, Đỗ Trung Tuấn, NXB Giáo
dục, 1998.
[3]. Bạch Hưng Khang – Hoàng Kiếm, Trí tuệ nhân
tạo, NXB KHKT - 1989.
[4]. Lập trình C cho TTNT, 3C soft (dịch), NXB Đại
học và Trung học chuyên nghiệp Hà nội –
1990.
[5]. Trang web
/>Engineering-and-Computer-Science/index.htm
6/8/2010
Nguyễn Thị Thúy Loan 4
NỘI DUNG
 Các thuật giải tô màu đồ thị.
 Các thuật giải tìm kiếm trên đồ thị.
 Biểu diễn và xử lý tri thức.
 Phân lớp.
ThS. Nguyễn Thị Thúy Loan
Chương I
CÁC THUẬT GIẢI TÔ


MÀU ĐỒ THỊ
6/8/2010
Nguyễn Thị Thúy Loan 6
6
Bài toán
 Cho một đồ thị gồm n đỉnh. Quan hệ giữa
đỉnh i và đỉnh j, kí hiệu Qh
ij
, là 1 nếu đỉnh i
có nối với đỉnh j và 0 nếu ngược lại.
 Bài toán đặt ra là làm thế nào để tô màu đồ
thị sao cho không tồn tại hai đỉnh có quan hệ
với nhau được tô chung một màu với số màu
cần tô là ít nhất?
6
6/8/2010
Nguyễn Thị Thúy Loan 7
7
Tô 3 màu Ít nhất chưa?
7
a
b
c
d
p
h
e
Ví dụ
6/8/2010
Nguyễn Thị Thúy Loan 8

8
Thuật giải tô màu “Tối ưu”
Bước 1: [Tô màu] Tô màu i (i bắt đầu xét từ 1) cho đỉnh
có bậc lớn nhất.
Bước 2: [Hạ bậc & cấm tô]
2.1. Bậc của đỉnh được tô màu i thì bậc:=0.
2.2. Bậc của đỉnh có quan hệ với đỉnh được tô màu i thì
bậc:= bâc – 1.
2.3. Cấm tô màu i cho đỉnh có quan hệ với đỉnh được tô
màu i.
Bước 3: Lặp lại bước 1 cho đến khi tất cả các đỉnh đều
được tô màu.
8
6/8/2010
Nguyễn Thị Thúy Loan 9
9
Minh họa
9
d
b
p
c
e
h
aa
b
c
d
p
h

e
10
Một công ty có 8 đài phát thanh A, B, C, D, E, F, G, H có
khoảng cách (km) được cho trong ma trận sau:
Do yêu cầu kỹ thuật nên các đài có khoảng cách  100km
không được dùng chung một trạm phát sóng. Hãy lắp đặt các
trạm phát sóng sao cho số trạm cần lắp là nhỏ nhất.
10
A B C D E F G H
A 0 100 50 30 200 150 40 120
B 0 30 80 120 50 200 150
C 0 120 100 30 80 50
D 0 50 120 150 30
E 0 200 120 120
F 0 180 150
G 0 50
H 0
Ví dụ
6/8/2010
Nguyễn Thị Thúy Loan 11
11
1. Xác định đồ thị
a) Đỉnh:
b) Cung:
11
A B C D E F G H
A 0 100 50 30 200 150 40 120
B 0 30 80 120 50 200 150
C 0 120 100 30 80 50
D 0 50 120 150 30

E 0 200 120 120
F 0 180 150
G 0 50
H 0
Giải quyết
6/8/2010
Nguyễn Thị Thúy Loan 12
12
2. Áp dụng thuật giải
để tô màu
12
Kết quả:
Giải quyết
6/8/2010
Nguyễn Thị Thúy Loan 13
13
Thuật giải tham lam (Greedy)
Bước 1:
i := 0
Bước 2:
i := i+1
Tô màu i cho tất cả các đỉnh có thể tô được.
Bước 3:
Lặp lại bước 2 cho đến khi tất cả các đỉnh
đều được tô màu.
13 14
Ví dụ
Cho ma trận bên

14

AC AD AF BC BD BE CE DE DF EF
AC 0 1 1 1 0 0 1 0 0 0
AD 1 0 1 0 1 0 0 1 1 0
AF 1 1 0 0 0 0 0 0 1 1
BC 1 0 0 0 1 1 1 0 0 0
BD 0 1 0 1 0 1 0 1 1 0
BE 0 0 0 1 1 0 1 1 0 1
CE 1 0 0 1 0 1 0 1 0 1
DE 0 1 0 0 1 1 1 0 1 1
DF 0 1 1 0 1 0 0 1 0 1
EF 0 0 1 0 0 1 1 1 1 0
AC AD AF BC BD BE CE DE DF EF
i=1 1
   
i=1 1
  
1
   
i=1 1
  
1
   
1
AD AF BC BE CE DE DF
i=2 2
  
i=2 2

2
   

AF BE CE DE DF
i=3 3

i=3 3 3
  
CE DE DF
i=4 4

i=4 4

4
DE
i=5 5
6/8/2010
Nguyễn Thị Thúy Loan 15
15
Thuật giải sắp thứ tự +
tham lam
Bước 1:
Sắp xếp các đỉnh theo chiều giảm dần của
bậc.
i := 0
Bước 2:
i := i+1
Tô màu i cho tất cả các đỉnh có thể tô được (xét
từ trái sang).
Bước 3:
Lặp lại bước 2 cho đến khi tất cả các đỉnh đều
được tô màu.
15 16

Ví dụ
Cho ma trận
bên 
16
AC AD AF BC BD BE CE DE DF EF Bậc
AC 0 1 1 1 0 0 1 0 0 0 4
AD 1 0 1 0 1 0 0 1 1 0 5
AF 1 1 0 0 0 0 0 0 1 1 4
BC 1 0 0 0 1 1 1 0 0 0 4
BD 0 1 0 1 0 1 0 1 1 0 5
BE 0 0 0 1 1 0 1 1 0 1 5
CE 1 0 0 1 0 1 0 1 0 1 5
DE 0 1 0 0 1 1 1 0 1 1 6
DF 0 1 1 0 1 0 0 1 0 1 5
EF 0 0 1 0 0 1 1 1 1 0 5
DE AD BD BE CE DF EF AC AF BC
i=1 1
     
i=1 1
     
1
 
AD BD BE CE DF EF AF BC
i=2 2
  
i=2 2

2
    
BD CE DF EF AF BC

i=3 3
 
i=3 3 3
  
i=3 3 3
 
3

DF EF BC
i=4 4

i=4 4

4
EF
i=5 5
6/8/2010
Nguyễn Thị Thúy Loan 17
17
Ví dụ
Một cuộc hội thảo có 9 chủ đề a, b, c, d, e, f, g,
h, i biết rằng các chủ đề sau không được phép
diễn ra trong cùng một buổi: ac, bde, adg, cdf,
dfg, egh, ghi.
Hãy sắp xếp các chủ đề vào các buổi sao cho số
buổi diễn ra là ít nhất.
17
6/8/2010
Nguyễn Thị Thúy Loan 18
18

Ví dụ
Học kì II năm 2009 -2010, Phòng ĐT muốn tổ
chức thi các môn A,B,C,D,E,F,G,H,I biết rằng
các môn sau không được thi chung một buổi.
ABC, AE, BCD, BHI, EFG, EI, GHI.
Hãy sắp xếp lịch thi sao cho số buổi thi cần sắp
là ít nhất.
18
6/8/2010
Nguyễn Thị Thúy Loan 19
19
Ví dụ
Cho ngã năm giao thông như sau trong đó BE là
đường 1 chiều:
19
B
A
E
D
C
Yêu cầu:
1. Xác định đồ thị.
2. Tô màu đồ thị.
Sao cho tại mỗi thời điểm,
các tuyến lưu thông
không giao nhau.
ThS. Nguyễn Thị Thúy Loan
Chương II
CÁC PHƯƠNG PHÁP
TÌM KIẾM LỜI GIẢI

Ref: />Phần 1
6/8/2010
Nguyễn Thị Thúy Loan 21
Nội dung
 Bài toán tìm kiếm
 Tìm kiếm Theo chiều Rộng
 Tìm kiếm Theo chiều Sâu
6/8/2010
Nguyễn Thị Thúy Loan 22
Bài toán tìm kiếm
Làm sao đi từ S đến G? Số bước đi ít nhất có thể
là bao nhiêu? Đi qua các đỉnh nào?
S
G
d
b
p
q
c
e
h
a
f
r
START
GOAL
6/8/2010
Nguyễn Thị Thúy Loan 23
Bài toán tìm kiếm
Một bài toán tìm kiếm gồm năm thành phần:

Q , S , G , succs , cost
 Q là một tập hữu hạn các trạng thái.
 S  Q một tập khác rỗng các trạng thái đầu
(START).
 G  Q một tập khác rỗng các trạng thái đích
(GOAL).
6/8/2010
Nguyễn Thị Thúy Loan 24
Bài toán tìm kiếm
 succs: Q  P(Q) là một hàm nhận một trạng
thái làm đầu vào và trả về kết quả là một tập
trạng thái. succs(s) nghĩa là “tập các trạng
thái có thể đến từ s trong một bước”.
 cost: Q  Q  R là một hàm nhận hai trạng
thái s và s’làm đầu vào. Nó trả về chi phí
một bước của việc di chuyển từ s đến s’.
Hàm chi phí ch
ỉ được xác định khi và chỉ khi
s’làtrạng thái con của s, nghĩa là s’ 
succs(s)
Q = {START, a , b , c , d , e , f , h , p , q , r , GOAL}
S = { START }
G = { GOAL }
succs(b) = { a }
succs(e) = { h , r }
succs(a) = {}, …
cost(s,s’) = 1 cho tất cả các biến đổi
START
GOAL
d

b
p
q
c
e
h
a
f
r
START
GOAL
Bài toán tìm kiếm
Q = {START, a , b , c , d , e , f , h , p , q , r , GOAL}
S = { START }
G = { GOAL }
succs(b) = { a }
succs(e) = { h , r }
succs(a) = {}
cost(s,s’) = 1 cho tất cả các biến đổi
START
GOAL
d
b
p
q
c
e
h
a
f

r
T

i

s
a
o

t
a

q
u
a
n

t
â
m
?

B
à
i

t
o
á
n


n
à
o

g
i

n
g

n
h
ư

v

y
?
Bài toán tìm kiếm
Các bài toán tìm kiếm
6/8/2010
Nguyễn Thị Thúy Loan 28
Các bài toán tìm kiếm
Lập lịch
8-Hậu
Gì nữa?
Giải toán
6/8/2010
Nguyễn Thị Thúy Loan 29

Tìm kiếm theo chiều rộng
(BFS – Breadth First Search)
START
GOAL
d
b
p
q
c
e
h
a
f
r
6/8/2010
Nguyễn Thị Thúy Loan 30
Tìm kiếm theo chiều rộng
(BFS – Breadth First Search)
 Gán nhãn tất cả trạng thái có thể đi đến được
từ S trong 1 bước.
 Sau đó gán nhãn tất cả trạng thái có thể đi đến
được từ S trong 2 bước nhưng không thể đi
đến được trong ít hơn 2 bước.
6/8/2010
Nguyễn Thị Thúy Loan 31
Tìm kiếm theo chiều rộng
(BFS – Breadth First Search)
 Sau đó gán nhãn tất cả trạng thái có thể đi đến
được từ S trong 3 bước nhưng không thể đi
đến được trong ít hơn 3 bước.

 v.v… cho đến khi đạt được trạng thái G hoặc
không còn đi tiếp được nữa.
6/8/2010
Nguyễn Thị Thúy Loan 32
Tìm kiếm theo chiều rộng
START
GOAL
d
b
p
q
c
e
h
a
f
r
0 bước từ
start
6/8/2010
Nguyễn Thị Thúy Loan 33
START
GOAL
d
b
p
q
c
e
h

a
f
r
0 bước từ
start
1 bước từ
start
Tìm kiếm theo chiều rộng
6/8/2010
Nguyễn Thị Thúy Loan 34
START
GOAL
d
b
p
q
c
e
h
a
f
r
0 bước từ
start
1 bước từ
start
2 bước từ
start
Tìm kiếm theo chiều rộng
6/8/2010

Nguyễn Thị Thúy Loan 35
START
GOAL
d
b
p
q
c
e
h
a
f
r
0 bước từ
start
1 bước từ
start
2 bước từ
start
3 bước từ
start
Tìm kiếm theo chiều rộng
6/8/2010
Nguyễn Thị Thúy Loan 36
START
GOAL
d
b
p
q

c
e
h
a
f
r
0 bước từ
start
1 bước từ
start
2 bước từ start
3 bước từ
start
4 bước từ
start
Tìm kiếm theo chiều rộng
6/8/2010
Nguyễn Thị Thúy Loan 37
Ghi nhớ đường đi!
START
GOAL
d
b
p
q
c
e
h
a
f

r
6/8/2010
Nguyễn Thị Thúy Loan 38
Ghi nhớ đường đi!
Khi gán nhãn một trạng thái, ghi nhận trạng thái
trước đó. Ghi nhận này được gọi là con trỏ quay
lui. Lịch sử trước đó được dùng để phát sinh con
đường lời giải, khi đã tìm được đích:
“Tôi đã đến đích. Tôi thấy mình đã ở f trước đó.
Và tôi đã ở r trước khi tới f. Và…
…. do đó con đường lời giải là S  e  r  f 
G”
6/8/2010
Nguyễn Thị Thúy Loan 39
Con trỏ quay lui
START
GOAL
d
b
p
q
c
e
h
a
f
r
0 bước từ
start
1 bước từ

start
2 bước từ start
3 bước từ
start
4 bước từ
start
6/8/2010
Nguyễn Thị Thúy Loan 40
START
GOAL
d
b
p
q
c
e
h
a
f
r
0 bước từ
start
1 bước từ
start
2 bước từ start
3 bước từ
start
4 bước từ
start
Con trỏ quay lui

6/8/2010
Nguyễn Thị Thúy Loan 41
Tìm kiếm theo chiều rộng
Với bất kỳ trạng thái s nào đã gán nhãn, ghi nhớ:
 previous(s) là trạng thái trước đó trên đường đi
ngắn nhất từ trạng thái START đến s.
 Trong vòng lặp thứ k của thuật toán ta bắt đầu
với V
k
được định nghĩa là tập các trạng thái mà
từ trạng thái START đi đến có đúng k bước
6/8/2010
Nguyễn Thị Thúy Loan 42
 Sau đó, trong suốt vòng lặp, ta sẽ tính V
k+1
,
được định nghĩa là tập các trạng thái mà từ
trạng thái START đi đến có đúng k+1 bước
 Chúng ta bắt đầu với k = 0, V
0
= {START}
và định nghĩa, previous(START) = NULL
 Sau đóta sẽ thêm vào những trạng thái một
bước từ START vào V
1
. Và tiếp tục.
Tìm kiếm theo chiều rộng
6/8/2010
Nguyễn Thị Thúy Loan 43
START

GOAL
d
b
p
q
c
e
h
a
f
r
V
0
BFS
6/8/2010
Nguyễn Thị Thúy Loan 44
START
GOAL
d
b
p
q
c
e
h
a
f
r
V
0

V
1
BFS
6/8/2010
Nguyễn Thị Thúy Loan 45
START
GOAL
d
b
p
q
c
e
h
a
f
r
V
0
V
1
V
2
BFS
6/8/2010
Nguyễn Thị Thúy Loan 46
START
GOAL
d
b

p
q
c
e
h
a
f
r
V
0
V
1
V
2
V
3
BFS
6/8/2010
Nguyễn Thị Thúy Loan 47
START
GOAL
d
b
p
q
c
e
h
a
f

r
V
4
V
0
V
1
V
2
V
3
BFS
6/8/2010
Nguyễn Thị Thúy Loan 48
START
GOAL
d
b
p
q
c
e
h
a
f
r
V
4
V
0

V
1
V
2
V
3
G
iả
s

kh
ôn
g
gia
n

t
ìm

ki
ế
m

c
h
o

ph
é
p c


n
g

t
a

l

y

đư

c

tr

ng

th
á
i

t
r
ư

c

m


t
c
á
c
h

th
u

n

ti

n

C
ó
thể
ng
h
ĩ
r
a

m
ột
c
á
c

h

k

c

c
h
o

B
FS
?

C
ó
thể
kh
ôn
g

c

n

ph

i

l

ư
u

tr

nh

ng

g
ì

t
r
ư

c

đó
ph

i

l
ư
u
?
BFS
6/8/2010
Nguyễn Thị Thúy Loan 49

Chi phí chuyển đổi
START
GOAL
d
b
p
q
c
e
h
a
f
r
2
9
9
81
1
2
3
5
34
4
15
1
5
5
2
6/8/2010
Nguyễn Thị Thúy Loan 50

 Lưu ý rằng BFS tìm đường đi ngắn nhất theo
số bước. Nó không tìm thấy đường đi có chi
phí thấp nhất.
 Bây giờ chúng ta xem xét một thuật toán tìm
đường đi với chi phí thấp nhất. Trong vòng
lặp thứ k, với bất kỳ trạng thái S nào, đặt g(s)
là chi phí đường đi có chi phí nhỏ nhất đến S
trong k bước hay ít hơn.
Chi phí chuyển đổi
6/8/2010
Nguyễn Thị Thúy Loan 51
Tìm kiếm với chi phí đồng nhất
(UCS – Uniform Cost Search)
 Một cách tiếp cận BFS đơn giản về mặt khái
niệm khi có chi phí chuyển đổi
 Dùng hàng đợi ưu tiên
Hàng đợi ưu tiên
Một hàng đợi ưu tiên là một cấu trúc dữ liệu trong
đó ta có thể thêm và lấy các cặp (thing, value) với
các thao tác sau:
Init-PriQueue(PQ)
khởi tạo PQ rỗng.
Insert-PriQueue(PQ, thing, value) thêm (thing, value) vào hàng đợi.
Pop-least(PQ)
trả về cặp (thing, value) với giá trị
thấp nhất, và loại bỏ nó khỏi hàng đợi.
Hàng đợi ưu tiên có thể được
cài đặt theo một cách sao
cho chi phí của các toán tử
thêm vào và lấy ra là:

Rất nhỏ
(dù không tuyệt đối)
O(log(số mục trong hàng đợi ưu tiên))
6/8/2010
Nguyễn Thị Thúy Loan 53
UCS
 Một cách tiếp cận BFS đơn giản về mặt khái
niệm khi có chi phí chuyển đổi
 Dùng hàng đợi ưu tiên
PQ = Tập trạng thái đã được mở
Độ ưu tiên của trạng thái s là g(s) = chi phí đến
s sử dụng đường đi được cho bởi con trỏ quay
lui.
6/8/2010
Nguyễn Thị Thúy Loan 54
Bắt đầu UCS
PQ = { (s,0, null) }
START
GOAL
d
b
p
q
c
e
h
a
f
r
2

9
9
81
1
2
3
5
34
4
15
1
2
5
2
PQ = { (s,0,null) }
START
GOAL
d
b
p
q
c
e
h
a
f
r
2
9
9

81
1
2
3
5
34
4
15
1
2
5
2
Lặp:
1. Lấy trạng thái có chi phí thấp
nhất từ PQ
2. Thêm các con vào PQ
Lặp UCS
n = (s,0)
PQ = { (p,1,s), (d,3,s), (e,9,s) }
START
GOAL
d
b
p
q
c
e
h
a
f

r
2
9
9
81
1
2
3
5
34
4
15
1
2
5
2
Lặp UCS
Lặp:
1. Lấy trạng thái có chi phí
thấp nhất từ PQ
2. Thêm các con vào PQ
n = (p,1)
PQ = { (d,3,s), (e,9,s), (q,16,p) }
START
GOAL
d
b
p
q
c

e
h
a
f
r
2
9
9
81
1
2
3
5
34
4
15
1
2
5
2
Lặp UCS
Lặp:
1. Lấy trạng thái có chi
phí thấp nhất từ PQ
2. Thêm các con vào PQ
n = (d,3)
PQ = { (b,4,d), (e,5,d), (c,11,d), (q,16,p) }
START
GOAL
d

b
p
q
c
e
h
a
f
r
2
9
9
81
1
2
3
5
34
4
15
1
2
5
2
Lặp UCS
Lặp:
1. Lấy trạng thái có chi
phí thấp nhất từ PQ
2. Thêm các con vào PQ
Lặp:

1. Lấy trạng thái chi phí
thấp nhất từ PQ
2. Thêm các con
START
GOAL
d
b
p
q
c
e
h
a
f
r
2
9
9
81
1
2
3
5
34
4
15
1
2
5
2

n = (d,3)
PQ = { (b,4,d), (e,5,d), (c,11,d), (q,16,p) }
Lặp UCS
START
GOAL
d
b
p
q
c
e
h
a
f
r
2
9
9
81
1
2
3
5
34
4
15
1
2
5
2

Lặp:
1. Lấy trạng thái chi phí
thấp nhất từ PQ
2. Thêm các con
n = (b,4)
PQ = { (e,5,d), (a,6,b), (c,11,d), (q,16,p) }
Lặp UCS
n = (e,5)
PQ = { (a,6,b),(h,6,e),(c,11,e),(r,14,e),(q,16,p) }
START
GOAL
d
b
p
q
c
e
h
a
f
r
2
9
9
81
1
2
3
5
34

4
15
1
2
5
2
Lặp:
1. Lấy trạng thái chi phí
thấp nhất từ PQ
2. Thêm các con
Lặp UCS
n = (a,6)
PQ = { (h,6,e),(c,11,e),(r,14,e),(q,16,p) }
START
GOAL
d
b
p
q
c
e
h
a
f
r
2
9
9
81
1

2
3
5
34
4
15
1
2
5
2
Lặp:
1. Lấy trạng thái chi phí
thấp nhất từ PQ
2. Thêm các con
Lặp UCS
n = (h,6)
PQ = {
(q,10,h), (c,11,e),(r,14,e) }
START
GOAL
d
b
p
q
c
e
h
a
f
r

2
9
9
81
1
2
3
5
34
4
15
1
2
5
2
Lặp:
1. Lấy trạng thái chi phí
thấp nhất từ PQ
2. Thêm các con
Lặp UCS
n = (h,6)
PQ = {
(q,10,h), (c,11,d),(r,14,e) }
START
GOAL
d
b
p
q
c

e
h
a
f
r
2
9
9
81
1
2
3
5
34
4
15
1
2
5
2
Lặp:
1. Lấy trạng thái chi phí
thấp nhất từ PQ
2. Thêm các con
Lặp UCS
n = (q,10)
PQ = { (c,11,d),(r,14,e) }
START
GOAL
d

b
p
q
c
e
h
a
f
r
2
9
9
81
1
2
3
5
34
4
15
1
2
5
2
Lặp:
1. Lấy trạng thái chi phí
thấp nhất từ PQ
2. Thêm các con
Lặp UCS
n = (c,11)

PQ = {(r,13,q) }
START
GOAL
d
b
p
q
c
e
h
a
f
r
2
9
9
81
1
2
3
5
34
4
15
1
2
5
2
Lặp:
1. Lấy trạng thái chi phí thấp

nhất từ PQ
2. Thêm các con
Lặp UCS
n = (r,13)
PQ = { (f,18,r) }
START
GOAL
d
b
p
q
c
e
h
a
f
r
2
9
9
81
1
2
3
5
34
4
15
1
2

5
2
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
Lặp UCS
n =(f,18)
PQ = { (G,23,f) }
START
GOAL
d
b
p
q
c
e
h
a
f
r
2
9
9
81
1
2
3
5
34

4
15
1
2
5
2
Lặp UCS
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
n = (g, 23)
PQ = {}
START
GOAL
d
b
p
q
c
e
h
a
f
r
2
9
9
81
1

2
3
5
34
4
15
1
2
5
2
Lặp UCS
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
START
GOAL
d
b
p
q
c
e
h
a
f
r
2
9
9

81
1
2
3
5
34
4
15
1
2
5
2
n = (g, 23)
PQ = { (G,23,f) }
Lặp UCS
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { }
START
GOAL
d
b
p
q
c
e
h
a

f
r
2
9
9
81
1
2
3
5
34
4
15
1
2
5
2
Kết thúc UCS
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
Biểu diễn cây tìm
kiếm
START
GOAL
d
b
p
q

c
e
h
a
f
r
C
h
ú
n
g

t
a

d
u
y

t

c
â
y

t
ì
m

k

iế
m

v

i
BF
S

t
h
e
o

t
h

t

n
à
o
?
START
GOAL
d
b
p
q
c

e
h
a
f
r
Biểu diễn cây tìm
kiếm
START
GOAL
d
b
p
q
c
e
h
a
f
r
Biểu diễn cây tìm
kiếm
START
GOAL
d
b
p
q
c
e
h

a
f
r
Biểu diễn cây tìm
kiếm
START
GOAL
d
b
p
q
c
e
h
a
f
r
Là đích, dừng
Biểu diễn cây tìm
kiếm
Tìm kiếm theo chiều sâu
Một thay thế cho BFS. Luôn mở từ node vừa mới
mở nhất, nếu nó có bất kỳ node con nào chưa thử.
Ngược lại quay lại node trước đó trên đường đi.
START
GOAL
d
b
p
q

c
e
h
a
f
r
2
9
9
81
1
2
3
5
34
4
15
1
5
5
2
DFS trên thực tế
START
START d
START d b
START d b a
START d c
START d c a
START d e
START d e r

START d e r f
START d e r f c
START d e r f c a
START d e r f
GOAL
START
GOAL
d
b
p
q
c
e
h
a
f
r
Duyệt cây tìm kiếm DFS
Thứ tự mà trong đó các node của cây tìm kiếm
được viếng?
Là đích, dừng
6/8/2010
Nguyễn Thị Thúy Loan 80
Bài tập
ABCDEFG
A0100002
B0040030
C0008030
D3000300
E00000012

F0001300
G0017050
S
G
ThS. Nguyễn Thị Thúy Loan
Chương II
CÁC THUẬT GIẢI
TÌM KIẾM HEURISTICS
Phần 2
6/8/2010
Nguyễn Thị Thúy Loan 82
Nội dung
 Tìm kiếm với tri thức bổ sung
o Tháp Hà nội
o Taci
o Đong sữa
 Bài toán người bán hàng (TSP – Traveling
Salesman Problem)
 Thuật giải min – max
6/8/2010
Nguyễn Thị Thúy Loan 83
Thuật giải tìm kiếm với tri
thức bổ sung
6/8/2010
Nguyễn Thị Thúy Loan 84
A
T
(Algorithm for Tree Search)
1. Mọi đỉnh n, mọi hàm g đều ẩn.
o Mở đỉnh S

0
o Gán g(S
0
) = 0
2. Chọn đỉnh mở với hàm g là nhỏ nhất và
gọi là đỉnh n.
o Nếu u là đích thì đường đi từ S
0
 u là
đường đi ngắn nhất.
6/8/2010
Nguyễn Thị Thúy Loan 85
o Nếu tồn tại nhiều hơn một đỉnh n có hàm g
là nhỏ nhất thì ta kiểm tra xem trong đócó
đỉnh nào là đích hay không, nếu có dừng.
Nếu không thì chọn ngẫu nhiên 1 đỉnh gọi
là đỉnh u.
o Nếu không tồn tại đỉnh mở tương ứng thì
cây biểu diễn vấn đề không có đường đi
ngắn nhất đến đích. Dừng lại.
AT (Algorithm for Tree Search)
6/8/2010
Nguyễn Thị Thúy Loan 86
3. Đóng n và mở mọi đỉnh sau n (có cùng
hướng từ u đến)
o  đỉnh S sau n:
o G(s) = g(u) + giá thành (u s)// cost(u,s)
4. Lặp lại bước 2.
AT (Algorithm for Tree Search)
6/8/2010

Nguyễn Thị Thúy Loan 87
Ví dụ
 Cho cây tìm kiếm sau:
A
B
C D
RJ
H
F
E
G I
S
L
2
1
3
3
2
4
1
5
6
331
 Tìm đường đi ngắn nhất từ A  đích
6/8/2010
Nguyễn Thị Thúy Loan 88
Thuật giải A
KT
B1: Mọi đỉnh n, mọi hàm g,h,f đều ẩn.
Mở đỉnh đầu tiên S

0
Gán g(S
0
) = 0
Sử dụng tri thức bổ sung ước lượng h(S
0
)
F(S
0
) = h(S
0
)
6/8/2010
Nguyễn Thị Thúy Loan 89
Thuật giải A
KT
B2: Chọn đỉnh mở tương ứng với hàm f là
nhỏ nhất và gọi đỉnh này là đỉnh n.
 Nếu n là đích thì đường đi từ S
0
 n là
đường đi ngắn nhất đến đích nên dừng
(thành công).
 Nếu không tồn tại đỉnh mở tương ứng nào
thì cây biểu diễn vấn đề không có đường
đi đến đích nên dừng (thất bại).
6/8/2010
Nguyễn Thị Thúy Loan 90
Thuật giải A
KT

 Nếu tồn tại nhiều hơn 1 đỉnh mở cùng
hàm f là nhỏ nhất thì kiểm tra xem trong
số này có đỉnh nào là đích hay không?
Nếu có thì dừng, nếu không thì chọn ngẫu
nhiên 1 đỉnh gọi là đỉnh n.
B3
: Đóng đỉnh n và mọi đỉnh sau n (đỉnh sau
n là đỉnh có cung hướng từ n đến)
6/8/2010
Nguyễn Thị Thúy Loan 91
Thuật giải A
KT
đỉnh S sau n:
 g(S) = g(n) + chi phí từ n đến S
 Sử dụng tri thức bổ sung ước lượng h(S)
 f(S) = g(S) + h(S)
B4
: Quay lại B2.
6/8/2010
Nguyễn Thị Thúy Loan 92
Ví dụ tháp hà nội
?
A B C
6/8/2010
Nguyễn Thị Thúy Loan 93
Với N = 3
Hàm h (heuristic) = Số lần ít nhất phải di chuyển đĩa để đạt trạng thái
đích (chỉ xét các tình trạng của cột đích)
01 233445
6/8/2010

Nguyễn Thị Thúy Loan 94
g = 0
h = 3
f = 3
g = 1
h = 3
f = 4
g = 1
h = 4
f = 5
g = 2
h = 4
f = 6
g = 2
h = 4
f = 6
X
Với N = 3
6/8/2010
Nguyễn Thị Thúy Loan 95
g = 0
h = 3
f = 3
g = 1
h = 3
f = 4
g = 1
h = 4
f = 5
g = 2, h = 4,f = 6

g = 2,h = 4,f = 6
g = 2,h = 3,f = 5
….
Với N = 3
X
6/8/2010
Nguyễn Thị Thúy Loan 96
Thuật giải A
*
B1: Mọi đỉnh n, mọi hàm g,h,f đều ẩn.
Mở đỉnh đầu tiên S
0
Gán g(S
0
) = 0
Sử dụng tri thức bổ sung ước lượng h(S
0
)
f(S
0
) = h(S
0
)
O = {S
0
}
6/8/2010
Nguyễn Thị Thúy Loan 97
Thuật giải A
*

B2: Chọn đỉnh trong O với hàm f là n hỏ
nhất và gọi là đỉnh n.
 Nếu n là đích thì đường đi từ S
0
 n là
đường đi ngắn nhất đến đích nên dừng
(thành công).
 Nếu không tồn tại đỉnh mở tương ứng nào
thì cây biểu diễn vấn đề không có đường
đi đến đích nên dừng (thất bại).
6/8/2010
Nguyễn Thị Thúy Loan 98
Thuật giải A
*
 Nếu tồn tại nhiều hơn 1 đỉnh mở cùng
hàm f là nhỏ nhất thì kiểm tra xem trong
số này có đỉnh nào là đích hay không?
Nếu có thì dừng, nếu không thì chọn ngẫu
nhiên 1 đỉnh gọi là đỉnh n.
 O = O – {n}
 C = C + {n}
6/8/2010
Nguyễn Thị Thúy Loan 99
Thuật giải A
*
B3:
đỉnh S sau n:
 g(S) = g(n) + chi phí từ n đến S
 Sử dụng tri thức bổ sung ước lượng h(S)
 f(S) = g(S) + h(S)

 Đặt vào trong O các đỉnh S không có trong
O lẫn trong C.
6/8/2010
Nguyễn Thị Thúy Loan 100
Thuật giải A
KT
 đỉnh S đã có trong O
f(S) = min (f

(S), f
mới
(S))
 đỉnh S đã có trong C
Nếu f
mới
(S) < f

(S) thì
O = O + {S}
C = C – {S}
B4: Quay lại B2.

×