Trí Tuệ Nhân Tạo
Nguyễn Nhật Quang
Trường Đại học Bách Khoa Hà Nội
Viện Công nghệ Thông tin và Truyền thông
Năm học 2012-2013
Nội dung môn học:
Giới thiệu về Trí tuệ nhân tạo
Tác tử
Giải quyết vấn đề: Tìm kiếm, Thỏa mãn ràng buộc
Tìm kiếm với tri thức bổ sung (Informed search)
Logic và suy diễn
Biểu diễn tri thức
Biểu diễn tri thức khôn
g
chắc chắn
g
Học máy
2
Trí tuệ nhân tạo
Nhắc lại: Tìm kiếm theo cấu trúc cây
M
ộ
t chiến lư
ợ
c
(p
hươn
g
p
há
p)
tìm kiếm = M
ộ
t cách xác đ
ị
nh
ộ ợ (p gp p) ộ ị
thứ tự xét các nút của cây
3
Trí tuệ nhân tạo
Tìm kiếm với tri thức bổ sun
g
g
Các chiến lược tìm kiếm cơ bản (uninformed search
strategies) chỉ sử dụng các thông tin chứa trong định nghĩa
strategies)
chỉ
sử
dụng
các
thông
tin
chứa
trong
định
nghĩa
của bài toán
Không phù hợp với nhiều bài toán thực tế (do đòi hỏi chi phí quá
cao về thờigianvàbộ nhớ)
cao
về
thời
gian
và
bộ
nhớ)
Các chiến lược tìm kiếm với tri thức bổ sung (informed search
strategies) sử dụng
các tri thứccụ thể của bài toán
→
Quá
strategies)
sử
dụng
các
tri
thức
cụ
thể
của
bài
toán
→
Quá
trình tìm kiếm hiệu quả hơn
Các giải thuật tìm kiếm best-first (Greedy best-first, A*)
Cá ả ậ ì ế ộ (
S
Cá
c gi
ả
i thu
ậ
t t
ì
m ki
ế
m cục b
ộ
(
Hill-climbing,
S
imulated annealing,
Local beam, Genetic algorithms)
Các giải thuật tìm kiếm đối kháng (MiniMax, Alpha-beta pruning)
4
Trí tuệ nhân tạo
Bes
t
-first search
Ý tưởng: Sử dụng một hàm đánh giá f(n) cho mỗi nút của
cây
tìm
kiếm
cây
tìm
kiếm
Để đánh giá mức độ “phù hợp” của nút đó
Æ Trong quá trình tìm kiếm, ưu tiên xét các nút có mức độ phù hợp
cao
nhất
cao
nhất
Cài đặtgiảithuật
Sắpthứ tự các nút trong cấu trúc fringe theo trậttự giảmdầnvề
mức độ phù hợp
Các trường hợp đặcbiệtcủagiảithuật Best-first search
Greedy
best
first search
Greedy
best
-
first
search
A
*
search
5
Trí tuệ nhân tạo
Greedy bes
t
-first search
Hàm đánh giá f(n) là hàm heuristic h(n)
Hàm heuristic h(n) đánh giá chi phí để đi từ nút hiện tại n
đến nút đích (mục tiêu)
Ví dụ: Trong bài toán tìm đường đi từ Arad đến
Bucharest, sử dụng: h
SLD
(n) = Ước lượng khoảng cách
đường thẳng (
“
chim bay
”
)từ thành phố hiệntại
n
đến
đường
thẳng
(chim
bay )
từ
thành
phố
hiện
tại
n
đến
Bucharest
Phương pháp tìm kiếm Greedy best
-
first search sẽ xét
Phương
pháp
tìm
kiếm
Greedy
best
first
search
sẽ
xét
(phát triển) nút “có vẻ” gần với nút đích (mục tiêu) nhất
6
Trí tuệ nhân tạo
Greed
y
bes
t
-first search
–
Ví dụ
(
1
)
y
()
7
Trí tuệ nhân tạo
Greedy bes
t
-first search
–
Ví dụ (2)
8
Trí tuệ nhân tạo
Greedy bes
t
-first search
–
Ví dụ (3)
9
Trí tuệ nhân tạo
Greedy bes
t
-first search
–
Ví dụ (4)
10
Trí tuệ nhân tạo
Greedy bes
t
-first search
–
Ví dụ (5)
11
Trí tuệ nhân tạo
Greedy best-first search – Các đặc điểm
Tính hoàn chỉnh?
Không
Vì
có
thể
ớng
(
chết
tắc
)
trong
các
òng
lặp
kiể
nh
Không
–
Vì
có
thể
vư
ớng
(
chết
tắc
)
trong
các
v
òng
lặp
kiể
u
nh
ư:
Iasi Æ Neamt Æ Iasi Æ Neamt Æ…
Độ
phức
tạp
về
thời
gian
?
Độ
phức
tạp
về
thời
gian
?
O(b
m
)
Một hàm heuristic tốtcóthể mang lạicảithiệnlớn
Độ phứctạpvề bộ nhớ?
O(b
m
) –Lưugiữ tấtcả các nút trong bộ nhớ
Tính tối ưu?
Khôn
g
g
12
Trí tuệ nhân tạo
A
*
search
Ý tưởng: Tránh việc xét (phát triển) các nhánh tìm kiếm
đãáđị h( h đế thời điể hiệ t i) là ó hi hí
đã
x
á
c
đị
n
h
(
c
h
o
đế
n
thời
điể
m
hiệ
n
t
ạ
i)
là
c
ó
c
hi
p
hí
cao
Sử dụng hàm đánh giá f(n) = g(n) ⊕ h(n)
g(n) = chi phí từ nút gốc cho đến nút hiện tại n
h
(
n
)
= chi
p
hí ước lư
ợ
n
g
từ nút hi
ệ
n t
ạ
i n tới đích
()
p ợ g ệ ạ
f(n) = chi phí tổng thể ước lượng của đường đi qua nút hiện tại n
đến đích
13
Trí tuệ nhân tạo
A
*
search
–
Ví dụ (1)
14
Trí tuệ nhân tạo
A
*
search
–
Ví dụ (2)
15
Trí tuệ nhân tạo
A
*
search
–
Ví dụ (3)
16
Trí tuệ nhân tạo
A
*
search
–
Ví dụ (4)
17
Trí tuệ nhân tạo
A
*
search
–
Ví dụ (5)
18
Trí tuệ nhân tạo
A
*
search
–
Ví dụ (6)
19
Trí tuệ nhân tạo
A* search – Các đ
ặ
c điểm
ặ
Nếu không gian các trạng thái là hữu hạn và có giải
pháp để tránh việcxét(lặp) lạicáctrạng thái
thì giải
pháp
để
tránh
việc
xét
(lặp)
lại
các
trạng
thái
,
thì
giải
thuật A* là hoàn chỉnh (tìm được lời giải) – nhưng không
đảm bảo là tối ưu
Nếu không gian các trạng thái là hữu hạn và không có
giải pháp để tránh việc xét (lặp) lại các trạng thái, thì giải
* ỉ ( ả ả
thuật A
*
là không hoàn ch
ỉ
nh
(
không đ
ả
m b
ả
o tìm được
lời giải)
Nế
khô i á t thái là ô h
thì iảith ậtA*
Nế
u
khô
ng g
i
an c
á
c
t
rạng
thái
là
v
ô
h
ạn,
thì
g
iải
th
u
ật
A*
là không hoàn chỉnh (không đảm bảo tìm được lời giải)
20
Trí tuệ nhân tạo
Các ước lượn
g
chấ
p
nhận được
g
p
Một ướclượng (heuristic) h(n) đượcxemlàchấpnhận
được
nếu
đối
với
mọi
nút
n
:0
≤
h(n
)
≤
h
*
(n)
trong
đó
được
nếu
đối
với
mọi
nút
n
:
0
≤
h(n
)
≤
h
(n)
,
trong
đó
h
*
(n) là chi phí thật(thựctế) để đitừ nút n đến đích
Một ướclượng chấpnhận được không bao giờđánh giá
ố
ể
quá cao (overestimate) đ
ố
ivới chi phí đ
ể
đitới đích
Thựcchất, ướclượng chấpnhận đượccóxuhướng đánh giá
“lạc quan”
Ví dụ: Ướclượng h
SLD
(n) đánh giá thấphơnkhoảng
cách đường đithựctế
Định lý: Nếu h(n) là đánh giá chấpnhận được, thì
phương pháp tìm kiếmA
*
sử dụng giảithuật TREE-
SEARCH
là
tối
ưu
SEARCH
là
tối
ưu
21
Trí tuệ nhân tạo
T
ính
t
ối ưu của A
*
-Chứn
g
minh (1)
g
Giả sử có một đích không tối ưu (suboptimal goal) G
2
đượcsinhra
và
lưu
trong
cấu
trúc
fringe
.
Gọi
n
là
một
nút
chưa
xét
trong
cấu
trúc
và
lưu
trong
cấu
trúc
fringe
.
Gọi
n
là
một
nút
chưa
xét
trong
cấu
trúc
fringe sao cho n nằmtrênmột đường đingắnnhất đếnmột đích tối
ưu (optimal goal) G
Ta có: 1) f(G
2
) = g(G
2
)vìh(G
2
) = 0
Ta có: 2) g(G
2
) > g(G) vì G
2
là đích không tối ưu
Ta có: 3) f(G) = g(G) vì h(G) = 0
Từ 1
)
+2
)
+3
)
su
y
ra: 4
)
f
(
G
2
)
> f
(
G
)
)))
y
)(
2
)
(
)
22
Trí tuệ nhân tạo
T
ính
t
ối ưu của A
*
-Chứn
g
minh (2)
g
Ta có: 5) h(n) ≤ h
*
(n) vì h là ước lượng chấp nhận được
Từ 5) suy ra: 6) g(n) + h(n) ≤ g(n) + h
*
(n)
Từ
5)
suy
ra:
6)
g(n)
+
h(n)
≤
g(n)
+
h
(n)
Ta có: 7) g(n) + h
*
(n) = f(G) vì n nằm trên đường đi tới G
Từ 6)+7) suy ra: 8) f(n) ≤ f(G)
Từ 4)+8) suy ra: f(G
2
) > f(n). Tức là, giải thuật A* không bao giờ xét G
2
23
Trí tuệ nhân tạo
Các ước lượn
g
chấ
p
nhận được (1)
g
p
Ví dụđốivớitròchơiô chữ 8 số:
h
1
(n) = số các ô chữ nằm ở sai vị trí (so vớivị trí củaô chữđấy ở
trạng thái đích)
h
2
(n) = khoảng cách dịch chuyển(←,→,↑,↓) ngắnnhất để dịch
h ể
á
ô
hữ
ằ
i
ị
tí
ề
ị
tí
đú
c
h
uy
ể
nc
á
c
ô
c
hữ
n
ằ
msa
i
v
ị
t
r
í
v
ề
v
ị
t
r
í
đú
ng
h
(S) = ?
h
1
(S)
=
?
h
2
(S) = ?
24
Trí tuệ nhân tạo
Các ước lượn
g
chấ
p
nhận được (2)
g
p
Ví dụđốivớitròchơiô chữ 8 số:
h
1
(n) = số các ô chữ nằm ở sai vị trí (so vớivị trí củaô chữđấy ở
trạng thái đích)
h
2
(n) = khoảng cách dịch chuyển(←,→,↑,↓) ngắnnhất để dịch
h ể
á
ô
hữ
ằ
i
ị
tí
ề
ị
tí
đú
c
h
uy
ể
nc
á
c
ô
c
hữ
n
ằ
msa
i
v
ị
t
r
í
v
ề
v
ị
t
r
í
đú
ng
h
(S) =
8
h
1
(S)
=
8
h
2
(S) = 3+1+
2+2+
2+2+
2+3+
3+2 = 18
25
Trí tuệ nhân tạo