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
Logic và suy diễn
Biểu diễn tri thức
Biểu diễn tri thức không chắc chắn
Họcmáy
Học
máy
2
Trí tuệ nhân tạo
Ràn
g
bu
ộ
c
g ộ
Một ràng buộc (constraint) là một quan hệ trên một tập các biến
Mỗi biến có
(g
ắn với
)
một tậ
p
các
g
iá trị có thể nhận
–
g
ọi là miền
(g ) pg
g
giá trị (domain)
Trong môn học này, chúng ta chỉ xét các miền hữu hạn các giá trị
rời rạc
Một ràng buộc có thể được biểu diễn bằng
Một biểu thức (toán học / logic)
Mộtbảng liệt kê các phép gán giá trị phù hợpchocácbiến
Một
bảng
liệt
kê
các
phép
gán
giá
trị
phù
hợp
cho
các
biến
Ví dụ về ràng buộc
Tổng các góc trong một tam giác là 180
o
Đ
ộ dài của từ W là 10 ký tự
X nhỏ hơn Y
Tuấn có thể tham dự buổi seminar vào thứ 4 sau 14h
…
3
Trí tuệ nhân tạo
Bài toán thỏa mãn ràn
g
bu
ộ
c
g ộ
Một bài toán thỏa mãn ràng
buộc (Constraint Satisfaction
ồ
Problem
–
CSP) bao g
ồ
m:
Một tập hữu hạn các biến X
Miền giá trị (một tập hữu hạn các
giá trị) cho mỗi biến D
Một tập hữu hạn các ràng buộc C
Mộtlờigiải (solution) của bài toán
Ví
dụ:
Một
lời
giải
(solution)
của
bài
toán
thỏa mãn ràng buộc là một phép
gán đầy đủ các giá trị của các
biến sao cho thỏa mãn tất cả các
Ví
dụ:
Các biến x1,…,x6.
Miềngiátrị {0,1}.
Các
ràng
buộc
:
ràng buộc
Một bài toán thỏa mãn ràng buộc
thườn
g
được biểu diễn bằn
g
một
Các
ràng
buộc
:
•x
1
+x
2
+x
6
=1
•X
1
-x
3
+x
4
=1
•x
4
+x
5
-x
6
>0
g g
đồ thị (graph)
4
Trí tuệ nhân tạo
•x
2
+x
5
-x
6
=0
Ví dụ: Bài toán tô màu bản đồ (1)
Các biến: WA, NT, Q, NSW,
V, SA, T
V,
SA,
T
Các miềngiátrị: D
i
= {red,
green, blue}
Các
ràng
buộc
:Các
vùng
liền
Các
ràng
buộc
:
Các
vùng
liền
kề nhau phải có màu khác
nhau
Ví
dụ:
Ví
dụ:
WA ≠ NT
(WA,NT) = {(red,green),
(red,blue),
(
green red
)
(
green
,
red
)
,
(green,blue),
(blue,red),
(blue,green)}
5
Trí tuệ nhân tạo
Ví dụ: Bài toán tô màu bản đồ (2)
Các lời giải là các phép
gán
đầy đủ
và
chính xác
gán
đầy
đủ
và
chính
xác
(thỏa mãn tất cả các ràng
buộc)
Ví dụ: WA=red,
NT=green, Q=red,
S
N
S
W=green, V=red,
SA=blue, T=green
Đồ thị các ràn
g
buộc
g
Đ
ối với bài toán thỏa mãn
ràng buộc nhị phân (binary
CSP): Mỗi ràng buộc chỉ
liên quan đến2biến
liên
quan
đến
2
biến
Đồ thị các ràng buộc
(constraint graph)
(constraint
graph)
Các nút biểu diễn các biến
Các cạnh biểu diễn các ràng
ộ
bu
ộ
c
7
Trí tuệ nhân tạo
Các kiểu bài toán thỏa mãn ràn
g
buộc
g
Các biến rời rạc
Các miền giá trị hữu hạn
Với n biến và kích thước miền giá trị d, thì số lượng các phép gán
đầy đủ giá trị cần xét là O(d
n
)
Ví dụ: Các bài toán thỏa mãn ràng buộc nhị phân (Boolean CSPs)
Các miềngiátrị vô hạn
Các
miền
giá
trị
vô
hạn
Miền giá trị các số nguyên, các chuỗi,
Ví dụ: Trong bài toán xếp lịch công việc, các biến là các ngày bắt
đầu và kết thúc đối với mỗi côn
g
vi
ệ
c
g ệ
Cần một ngôn ngữ biểu diễn ràng buộc (constraint language), ví dụ:
StartJob
1
+ 5 ≤ StartJob
3
Các biến liên tục
Ví dụ: Các mốc thời gian bắt đầu và kết thúc đối với các quan
sát bằng kính viễn vọng không gian Hubble
Bài toán các ràng buộc tuyến tính có thể giải quyết được ở mức
ằ ế
chi phí thời gian đa thức b
ằ
ng phương pháp lập trình tuy
ế
n tính
8
Trí tuệ nhân tạo
Các kiểu ràn
g
buộc
g
Ràng buộc đơn (unary constraint) chỉ liên quan đến 1
biến
biến
Ví dụ: SA ≠ green
Ràng buộcnhị phân
(binary constraint) liên quan đến2
Ràng
buộc
nhị
phân
(binary
constraint)
liên
quan
đến
2
biến
Ví dụ: SA ≠ WA
Ràng buộc bậc cao (higher-order constraint) liên quan
đến nhiều hơn 2 biến
ố
Ví dụ: Các ràng buộc trong bài toán mật mã s
ố
học (trình bày ở
slide tiếp theo)
9
Trí tuệ nhân tạo
Ví dụ: Bài toán mật mã số học
Các biến: F T U W R O X
1
X
2
X
3
(các nhớ của các phép +)
Miền giá trị: {0,1,2,3,4,5,6,7,8,9}
ế
Các ràng buộc: Giá trị của các bi
ế
n (F,T,U,W,R,O) khác nhau
O + O = R + 10 * X
1
X
1
+ W + W = U + 10 * X
2
X
TT
O10
*
X
X
2
+
T
+
T
=
O
+
10
*
X
3
X
3
= F
T ≠ 0
F
≠
0
F
≠
0
10
Trí tuệ nhân tạo
Các bài toán CSP tron
g
thực
t
ế
g
Các bài toán giao nhiệm vụ
Ví
dụ
:
G
i
áo
vi
ê
n n
ào
dạy
l
ớp
n
ào
?
dụ Gáo ê àodạy ớpào
Các bài toán lập thời khóa (gian) biểu
Ví dụ: Lớp học nào được dạy vào thời gian nào và ở đâu?
Các bài toán lập lịch vận tải (giao hàng) của các
công ty
Các bài toán lập lịch sản xuất của các nhà máy
Lưuý: Nhiều bài toán thựctế liên quan đếncác
Lưu
ý:
Nhiều
bài
toán
thực
tế
liên
quan
đến
các
biến có giá trị thực (liên tục)
11
Trí tuệ nhân tạo
Tìm kiếm bằn
g
kiểm thử
(
1
)
g ()
Là phương pháp giải quyếtvấn đề tổng quát nhất
Phương pháp giải quyếtbằng kiểmthử (Generate and
Test)
Sinh
ra
một
khả
năng
(candidate)
của
lời
giải
Sinh
ra
một
khả
năng
(candidate)
của
lời
giải
Kiểmtraxemkhả năng này có thựcsự là mộtlời giải
Á
d
h
há
kiể
thử
đối
ới
bài
tá
CSP
Á
p
d
ụng p
h
ương p
há
p
kiể
m
thử
đối
v
ới
bài
t
o
á
n
CSP
Bước 1. Gán các giá trị cho tấtcả các biến
Bước 2. Kiểmtraxemtấtcả các ràn
g
bu
ộ
c đư
ợ
cthỏa mãn ha
y
g
ộ
ợ
y
không
Lặp lại2 bước này cho đến khi tìm đượcmột phép gán thỏamãn
12
Trí tuệ nhân tạo
Tìm kiếm bằn
g
kiểm thử
(
2
)
g ()
Điểm yếu nghiêm trọng của phương pháp tìm kiếm bằng
kiểmthử là việcphảixét
quá nhiềucáckhả năng gán
kiểm
thử
là
việc
phải
xét
quá
nhiều
các
khả
năng
gán
(hiển nhiên) không thỏa mãn các ràng buộc
Ví dụ
Ví
dụ
Các biến X,Y,Z lấy các giá trị {1,2}
Các ràng b ộcXYX
ZY>Z
Các
ràng
b
u
ộc
:
X
=
Y
,
X
≠
Z
,
Y>Z
Các phép (khả năng) gán: (1,1,1); (1,1,2); (1,2,1);
(122);(211);(212);
(221)
(1
,
2
,
2);
(2
,
1
,
1);
(2
,
1
,
2);
(2
,
2
,
1)
13
Trí tuệ nhân tạo
Tìm kiếm bằn
g
kiểm thử
(
3
)
g ()
Làm thế nào để cải thiện phương pháp kiểm thử?
Si h á khả ă (á hé á iátị) ộtáh
Si
n
h
ra c
á
c
khả
n
ă
ng
(
c
á
c p
hé
p g
á
n g
iá
t
r
ị)
m
ột
c
á
c
h
thông minh hơn
Không theo thứ tự tuầntự
Không
theo
thứ
tự
tuần
tự
Sử dụng các kết quả (thông tin) thu được từ bước
kiểm tra (bước 2)
Phát hiện sớm (từ trước) các mâu thuẫn
Các ràng buộc được kiểm tra ngay sau khi mỗi biến
được gán giá trị (chứ không phải đợi đến khi tất cả
các biến được gán giá trị)
14
Trí tuệ nhân tạo
Tìm kiếm
q
ua
y
lui
(
1
)
qy ()
Tìm kiếm quay lui (backtracking) là giải thuật tìm kiếm
đượcsử dụng phổ biếnnhất trong CSP
được
sử
dụng
phổ
biến
nhất
trong
CSP
Dựa trên giải thuật tìm kiếm theo chiều sâu (depth-first search)
Mỗi lần gán, chỉ làm việc (gán giá trị) cho một biến
(Tì kiế bằ kiể thử ỗilầ ááđị há iátị h
tất
(Tì
m
kiế
m
bằ
ng
kiể
m
thử
: m
ỗi
lầ
n g
á
n x
á
c
đị
n
h
c
á
c g
iá
t
r
ị
c
h
o
tất
cả các biến)
Phương pháp tìm kiếm quay lui đốivới bài toán CSP
Phương
pháp
tìm
kiếm
quay
lui
đối
với
bài
toán
CSP
Gán giá trị lần lượt cho các biến – Việc gán giá trị của biến này
chỉ được làm sau khi đã hoàn thành việc gán giá trị của biến khác
S ỗ éá á ộ ế à ó ể áà
S
au m
ỗ
i ph
é
p g
á
n gi
á
trị cho m
ộ
t bi
ế
n n
à
o đ
ó
, ki
ể
m tra c
á
c r
à
ng
buộc có được thỏa mãn bởi tất cả các biến đã được gán giá trị
cho đến thời điểm hiện tại – Quay lui (backtrack) nếu có lỗi
(không thỏa mãn các ràng buộc)
(không
thỏa
mãn
các
ràng
buộc)
15
Trí tuệ nhân tạo
Tìm kiếm
q
ua
y
lui
(
2
)
qy ()
Các yếutốảnh hưởng đếnphương pháp tìm kiếm quay
lui
lui
Thứ tựđượcxétcủa các biến?
Ưu
tiên
các
biến
quan trọng
hơn
(
được
định
nghĩa
tùy
vào
bài
Ưu
tiên
các
biến
quan
trọng
hơn
(
được
định
nghĩa
tùy
vào
bài
toán cụ thể)
Ưutiênxéttrước các biến có ít giá trị (miềngiátrị nhỏ)
Ưu
tiên
xét
trước
các
biến
tham
gia
vào
nhiều
ràng
buộc
Ưu
tiên
xét
trước
các
biến
tham
gia
vào
nhiều
ràng
buộc
Vớimỗibiến, thứ tựđượcxétcủa các giá trị?
Th
ứ
tự
ưu
t
i
ê
n
của
các
g
i
á
t
r
ị
v
ớ
im
ỗ
i
b
i
ế
n
được
đị
nh n
g
hĩ
a
tùy
ứ
tự
ưu
tê
của
các
gá
t ị
ớ
ỗ
b ế
được
đị
g a
tùy
thuộc vào bài toán cụ thể
16
Trí tuệ nhân tạo
Giải thuật tìm kiếm
q
uay lui
q
17
Trí tuệ nhân tạo
T
ìm kiếm
q
uay lui
–
Ví dụ (1)
q
18
Trí tuệ nhân tạo
T
ìm kiếm
q
uay lui
–
Ví dụ (2)
q
19
Trí tuệ nhân tạo
T
ìm kiếm
q
uay lui
–
Ví dụ (3)
q
20
Trí tuệ nhân tạo
T
ìm kiếm
q
uay lui
–
Ví dụ (4)
q
21
Trí tuệ nhân tạo
Tìm kiếm quay lui – Các vấn đề (1)
Lặp đi lặp lại lỗi
Lý d Bỏ (khô kh i thá ) lý d ủ âthẫ
Lý
d
o:
Bỏ
qua
(khô
ng
kh
a
i
thá
c
)
lý
d
o c
ủ
a m
â
u
th
u
ẫ
n
Ví dụ:
Cá biế ABCDElấ áiátị tiề 110
Cá
c
biế
n
A
,
B
,
C
,
D
,
E
lấ
y c
á
c g
iá
t
r
ị
t
rong m
iề
n
1
10
Ràng buộc: A>E
Phương pháp tìm kiếm quay lui thử tấtcả các khả
Phương
pháp
tìm
kiếm
quay
lui
thử
tất
cả
các
khả
năng gán giá trị cho các biến B,C,D cho đến khi
phát hiện ra rằng A≠1
Giải pháp: Phương pháp Backjumping (chuyển đến
xét từ chỗ sinh ra lỗi)
22
Trí tuệ nhân tạo
Tìm kiếm quay lui – Các vấn đề (2)
Các thao tác (kiểm tra) không cần thiết
Lặp lại các kiểm tra ràng buộc không cần thiết
Ví dụ:
ế ấ ề
Các bi
ế
n A,B,C,D,E l
ấ
y các giá trị trong mi
ề
n 1 10
Các ràng buộc: B+8<D; C=5*E
Khi gán giá trị cho các biếnCE thìcácgiátrị 19
Khi
gán
giá
trị
cho
các
biến
C
,
E
,
thì
các
giá
trị
1
9
được kiểm tra (lặp đi lặp lại) đối với biến D
Giải pháp: Phương pháp Backchecking (lưugiữ / ghi
Giải
pháp:
Phương
pháp
Backchecking
(lưu
giữ
/
ghi
nhớ các phép gán tốt và không tốt)
23
Trí tuệ nhân tạo
Tìm kiếm quay lui – Các vấn đề (3)
Phát hiện muộn các mâu thuẫn (vi phạm ràng buộc)
Các vi phạm ràng buộc chỉ được phát hiện sau khi các
giá trị được gán
Ví d
Ví
d
ụ:
Các biến A,B,C,D,E lấy các giá trị trong miền 1 10
Ràng buộc: A=3
*
E
Ràng
buộc:
A=3 E
Chỉ đến khi gán giá trị cho biến E thì mới phát hiện
ra rằng A>2
Giải pháp: Phương pháp Forward checking (kiểm tra
trước các ràng buộc)
24
Trí tuệ nhân tạo
Tìm kiếm quay lui – Cải thiện
Hiệu quả của phương pháp tìm kiếm quay lui trong CSP
có thể đượccảithiệnbằng
có
thể
được
cải
thiện
bằng
Thứ tự xét các biến (để gán giá trị)
Thứ t ét ( á ) á iá t ị đối ới ỗibiế
Thứ
t
ự x
ét
(
g
á
n
)
c
á
c g
iá
t
r
ị
đối
v
ới
m
ỗi
biế
n
Phát hiện sớm các lỗi (vi phạm ràng buộc) sẽ xảy ra
25
Trí tuệ nhân tạo