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

slike bài giảng trí tuệ nhân tạo - nguyễn nhật quang chương 5 ràng buộc

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 (566.9 KB, 43 trang )

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



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

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

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


dụ:


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 đủ

chính xác

gán

đầy

đủ


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ị



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

kiể
thử
đối
ới
bài

CSP

Á
p

d
ụng p
h
ương p

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ử



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ụ



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


p g
á
n g


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


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

a
tùy

tự
ưu

của
các

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ẫ



d
o:
Bỏ
qua
(khô
ng
kh
a
i

thá
c
)




d
o c

a m
â
u
th
u

n
 Ví dụ:
Cá biế ABCDElấ áiátị tiề 110


c
biế
n
A
,
B
,
C
,
D
,
E

lấ

y c
á
c g


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



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



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


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

×