You are on page 1of 35

TRÍ TUỆ NHÂN TẠO

Các nguyên lý Heuristics


Nội dung trình bày
2

 Bài toán thỏa mãn ràng buộc (Constraint


Satisfaction Problems)
 Bài toán tối ưu
 Tìm kiếm cụa bộ
 Thuật giải leo ñồi
 Luyện thép
 Thuật giải di truyền
Bài toán thỏa mãn ràng buộc
3

 Cho tập các biến V1, V2, …, Vn. Mỗi biến Vi có


thể nhận các giá trị từ miền Di
 Một cấu hình là một phép gán giá trị cho các
biến (V1=d1, V2=d2, …, Vn=dn), di thuộc Di
 Cho tập các ràng buộc C1, C2, …, Cm. Ràng
buộc là một yêu cầu trên cấu hình
 Cấu hình hợp lệ là cấu hình thỏa mãn các
ràng buộc
ðồ thị ràng buộc
4

Vi

Ci
Ví dụ - Bài toán n – Hậu
5
Ví dụ - Bài toán tô màu
6
Bài toán tối ưu hóa
7

 Mỗi cấu hình hợp lệ có hàm ñánh giá Eval(X)


 Tìm cấu hình hợp lệ tối ưu (Eval(X) nhỏ nhất
hoặc lớn nhất)
 Ta chỉ quan tâm ñến việc ñạt ñược một cấu
hình tối ưu mà không cần quan tâm ñến
ñường ñi
Ví dụ về bài toán tối ưu hoá
8

Thiết kế
Mạch ñiện

Có rất nhiều chip cố ñịnh Cùng số kết nối


nhưng tốn ít không
gian hơn
Ví dụ về bài toán tối ưu hoá (tt)
9
Thuật giải leo ñồi (Thuật giải tham
12
ăn)
Leo ñồi: Cố gắng tối ña hoá Eval(X) bằng cách di
chuyển ñến cấu hình cao nhất trong tập di
chuyển của mình – Leo ñồi dốc ñứng
ðặt S := trạng thái ban ñầu
Lặp
Tìm trạng thái con S’ của S với Eval(S’) cao nhất
Nếu Eval(S’) không cao hơn Eval(S) thì
return S
Ngược lại
S = S’
Các vấn ñề của tìm kiếm cụa bộ
11

Mắc kẹt ở một


cực trị ñịa
phương

Không thể di
chuyển ra khỏi
các vùng phẳng
Thuật giải leo ñồi (Thuật giải tham
12
ăn)
Leo ñồi: Cố gắng tối ña hoá Eval(X) bằng cách di
chuyển ñến cấu hình cao nhất trong tập di
chuyển của mình – Leo ñồi dốc ñứng
ðặt S := trạng thái ban ñầu
Lặp
Tìm trạng thái con S’ của S với Eval(S’) cao nhất
Nếu Eval(S’) không cao hơn Eval(S) thì
return S
Ngược lại
S = S’
Ví dụ
13

a GOAL
2 2
h=0
h=8 c
b 2
5
1 8 h=5 h=4
h=11
2 e
3 d
f
h=8 9 1 9
h=4
START
h
1 4 h=6 5
h=12
4 3
p 15 r
q
h=11 h=6
h=9
Các biến thể của leo ñồi
14

 Leo ñồi ngẫu nhiên

ðặt S := trạng thái ban ñầu


Lặp sau một MAX lần cố gắng nào ñó
Lấy một trạng thái con ngẫu nhiên S’ của S
Nếu Eval(S’) cao hơn Eval(S) thì
S= S’
Cuối lặp
Return S
Sau khi chạy vài
lần có thể ñưa ñến
trạng thái ñích
Các biến thể của leo ñồi (tt)
15

 Leo ñồi với khởi tạo ngẫu nhiên nhiều lần


 Local beam search:
 Theo dõi k trạng thái cùng một lúc
 Khởi tạo với k trạng thái phát sinh ngẫu nhiên

 Tại mỗi lần lặp, tất cả trạng thái con của k trạng
thái ñược phát sinh
 Nếu xuất hiện trạng thái ñích thì dừng lại; ngược
lại chọn k trạng thái con tốt nhất từ toàn bộ danh
sách và lặp lại
Luyện Thép
16

1. ðặt X := cấu hình ban ñầu


2. ðặt E := Eval(X)
3. ðặt i = di chuyển ngẫu nhiên từ
moveset
4. ðặt Ei := Eval(move(X,i))
5. Nếu E < Ei thì
X := move(X,i)
E := Ei
Ngược lại với xác suất nào ñó,
chấp nhận di chuyển ngay cả khi
mọi chuyện xấu hơn:
X := move(X,i)
E := Ei
6. Quay lại 3 ñến khi kết thúc.
Luyện Thép (tt)
17

1. ðặt X := cấu hình ban ñầu Chúng ta sẽ chọn xác


2. ðặt E := Eval(X) suất chấp nhận một di
3. ðặt i = di chuyển ngẫu nhiên từ chuyển tồi hơn như thế
moveset nào?
4. ðặt Ei := Eval(move(X,i)) • Xác suất = 0.1
5. Nếu E < Ei thì
• Xác suất giảm theo thời
X := move(X,i) gian
E := Ei
Ngược lại với xác suất nào ñó, • Xác suất
chấp nhận di chuyển ngay cả khi exp (-(E - Ei)/Ti): Ti là
tham số nghiệt ñộ
mọi chuyện xấu hơn:
X := move(X,i)
E := Ei Tương tự như quá
6. Quay lại 3 ñến khi kết thúc. trình làm lạnh trong
luyện thép vật lý
Thuật giải di truyền
18

 ðược giới thiệu bởi John Holland năm 1975,


cho phép thực hiện tìm kiếm ngẫu nhiên
 Mã hoá các lời giải tìm năng của bài toán bằng
các nhiễm sắc thể
 ðánh giá ñộ tốt của các lời giải qua ñộ thích
nghi của các nhiễm sắc thể
 Lưu trữ một quần thể các lời giải tiềm năng
 Thực hiện các phép toán di truyền ñể phát sinh
các cá thể mới ñồng thời áp dụng chọn lọc tự
nhiên trên các lời giải
Thuật giải di truyền (tt)
19

Phát sinh Xác ñịnh ñộ Thoả ñiều


quần thể ban thích nghi của kiện kết Kết thúc
ñầu quần thể thúc?

Bắt ñầu Chọn lọc Lai ghép

Xây dựng
quần thể mới

ðột biến

Xây dựng quần thể kế tiếp


Các toán tử cơ bản (tt)
26

 Toán tử ñột biến:


 Giúp lời giải có thể nhảy ra khỏi các cực trị ñịa
phương
 Với mỗi cá thể trong quần thể, thực hiện ñột biến
với xác suất pm tại một vị trí ngẫu nhiên (thông
thường pm << 0.1)

0010001

0011001
Các khái niệm cơ bản
21

 ðộ tốt của một cá thể


 Là giá trị của cá thể cho một vấn ñề bài toán cụ
thể.
Ví dụ: Trong bài toán tối ưu cực ñại một hàm f, nếu
chọn một cá thể là một nghiệm của bài toán thì một cá
thể càng tốt khi làm cho giá trị hàm càng lớn.

 ðể xác ñịnh ñược ñộ tốt của các cá thể ta cần


một hàm ñể làm việc này. Hàm này gọi là Hàm
mục tiêu .
Các khái niệm cơ bản (tt)
22

 Hàm mục tiêu


 Dùng ñể ñánh giá ñộ tốt của một lời giải hoặc cá
thể.
 Hàm mục tiêu nhận vào tham số là gen của một
cá thể và trả ra một số thực.
 Tùy theo giá trị của số thực này mà ta biết ñược
ñộ tốt của cá thể ñó .
Các khái niệm cơ bản (tt)
23

 ðộ thích nghi của các cá thể (fitness)


 Là khả năng cá thể ñó ñược chọn lọc vào thế hệ
sau hoặc là ñược chọn lọc cho việc lai ghép ñể
tạo ra cá thể con .
 Vì ñộ thích nghi là một xác suất ñể cá thể ñược
chọn nên người ta thường ánh xạ ñộ thích nghi
vào ñoạn [0,1 ] (ñộ thích nghi chuẩn)

F ( ai )
F ( ai ) = N
i = 1,2…N

j =1
F ( aj )
Các toán tử cơ bản
24

 Toán tử lai ghép:


 Các cá thể ñược chọn ñể lai ghép dựa vào dựa
vào ñộ thích nghi
 Dùng qui tắc bàn quay rollete:
 Vd: các ta có quần thể với ñộ thích nghi chuẩn sau

STT Cá thể ðTN chuẩn


1 0010001 0,4
2 0010101 0,3
3 0101000 0.05
4 1100011 0.25
Các toán tử cơ bản (tt)
25

 Toán tử lai ghép:


 Lấy giá trị ngẫu nhiên p∈ [0,1] ñể chọn cá thể lai
ghép, cá thể có ñộ thích nghi cao có xác xuất lựa
chọn nhiều hơn
 Sau khi lựa chọn một cặp cá thể cha mẹ, hoán vị
các nhiễm sắc thể tại vị trí ngẫu nhiên với xác
suất pc
 Toán tử lai ghép có xu hướng kéo quần thể về
phía các cá thể có ñộ thích nghi cao => cục bộ
ñịa phương
Các toán tử cơ bản (tt)
26

 Toán tử ñột biến:


 Giúp lời giải có thể nhảy ra khỏi các cực trị ñịa
phương
 Với mỗi cá thể trong quần thể, thực hiện ñột biến
với xác suất pm tại một vị trí ngẫu nhiên (thông
thường pm << 0.1)

0010001

0011001
Ví dụ: Giải phương trình bậc hai
27

• Xác ñịnh kích thước quần thể: n= 4


• Chọn phương pháp mã hóa nghiệm:
 Xác ñịnh nghiệm nguyên trong miền trị: [0, 31]
 Mã hoá theo chuỗi nhị phân: số bit mã hoá =5
• Lựa chọn hàm thích nghi
 Hàm thích nghi = 1000 – (X2 – 64), chọn
nghiệm có hệ số thích nghi ~ 1000
Ví dụ: Giải phương trình bậc hai
28
(tt)

• Xác ñịnh kích thước quần thể: n= 4


• Chọn phương pháp mã hóa nghiệm:
 Xác ñịnh nghiệm nguyên trong miền trị: [0, 64]
 Mã hoá theo chuỗi nhị phân: số bit mã hoá =5
• Lựa chọn hàm thích nghi
 Hàm thích nghi = 1000 – (X2 – 64), chọn
nghiệm có hệ số thích nghi ~ 1000
Ví dụ: Giải phương trình bậc hai (tt)
29

• Phát sinh tập quần thể ban ñầu

STT Nhị phân Nghiệm


1 00100 4
2 10101 21
3 01010 10
4 11000 24
Ví dụ: Giải phương trình bậc hai (tt)
30

• Tính hệ số thích nghi (Fitness) cho quần thể

STT Nhị phân Nghiệm X2 – 64 Hệ số thích nghi


1 00100 4 -48 1048
2 10101 21 377 623
3 01010 10 36 964
4 11000 24 512 488
Ví dụ: Giải phương trình bậc hai (tt)
31

• Chọn lọc nghiệm và lai ghép


Chn nghim 4 và 10 ñ tin hành lai ghép vi xác sut
pc và v trí pos= 2

4 00100
00100 01000
01000 8
10 01010
01010 00110
00110 6
Ví dụ: Giải phương trình bậc hai (tt)
32

• ðột biến một cá thể


Vi m%t xác sut pm ñ%t bin l'i gi(i th) 4 vi v trí
pos= 4

00110 6 01110 14
Ví dụ: Giải phương trình bậc hai (tt)
33

• Tính lại hệ số thích nghi cho nghiệm mới và tiến hành


chọn lọc
STT Nhị Nghiệm X2 – 64 Hệ số thích
phân nghi
1 00100 4 -48 1048
2 01010 10 36 964
3 01000 8 0 1000
4 01110 14 132 868
ðiều cần nắm
34

 Hiểu bài toán thỏa mãn ràng buộc, bài toán tối
ưu
 Hiểu ñược các thuật giải tìm kiếm cục bộ
 Hiểu ñược thuật giải leo ñồi, leo ñồi ngẫu
nhiên
 Nắm ñược các vấn ñề của leo ñồi
 Hiểu ñược các ý tưởng ñằng sau Luyện thép
 Hiểu và nắm ñược các bước thực hiện của
GA
Thắc mắc
35