Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 1
CHƯƠ NG
NG 1. CÁC PHƯƠ NG
NG PHÁP TÌM KIẾM
Nguyên lý Heuristic
Thuật giải tham lam
Vớ i những bài tốn mà khơng gian tr ạng thái có thể phát sinh c ực lớ n thì việc dùng
phươ ng
ng pháp vét cạn là điều không thể. Nguyên lý tham lam l ấy tiêu chuẩn tối ưu toàn cục
để làm tiêu chu ẩn ch ọn l ựa hành động trong phạm vi cục b ộ. M ột s ố ví d ụ có th ể áp d ụng
ngun lý này như các bài tốn có mơ hình tốn h ọc là bài toán ng ườ i bán hàng, bài tốn tơ
màu đồ tthh ị,… Hơ n nữa nếu có một chiến lượ c tham lam hợ p lý, thì phươ ng
ng pháp này sẽ
tìm đượ c lờ i giải tối ưu; chẳng hạn thuật tốn Kruskal, thuật toán Prim.
Lượ c đồ của phươ ng
ng pháp tham lam
void Greedy(A,S)
{ A là tậ p các ứng cử viên, S là t ậ p nghiệm}
{
S=φ
while (A ≠ φ)
{
x=select(A); { chọn phần tử t ốt nhất trong A}
A=A - {x}
if (S ∪ {x} ch ấ p nhận đượ cc))
S= S ∪ {x}
}
}
Bài tốn hành trình ngườ i bán hàng
Có n thành phố ( đượ c đánh số t ừ 1 đến n), một ngườ i bán hàng xuất phát từ m ột
thành phố, muốn đi qua các thành phố khác, m ỗi thành phố m ột l ần r ồi quay về thành ph ố
xuất phát. Giả thi
thi ết biết đượ c chi phí đi t ừ thành ph ố i đến thành phố j là c[i,j]. Hãy tìm
một hành trình cho ngườ i bán hàng sao cho tổng chi phí theo hành trình này là thấ p nhất.
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 2
Thuật giải GTS1 (Greedy Traveling Saleman)
Input:
số thành ph ố là n, đỉnh xuất phát u và ma tr ận chi phí c
Output:
tour (thứ t ự các thành ph ố đi qua),
cost – chí phí ứng vớ i tour tìm đượ c
v=u;
tour={u};
cost=0;
for i=1 to n
{
đặt w là thành phố k ề sau thành ph ố v.
tour=tour + {w};
cost=cost+c[v,w]
v=w;
}
tour=tour + {u};
cost=cost+c[v,u]
Ví dụ 1.1:
Cho đồ th ị có ma tr ận chi phí như sau:
∞
20
42
31
6
24
10
∞
17
6
35
18
25
5
∞
27
14
9
12
9
24
∞
30
12
14
7
21
15
∞
38
40 15 16 5 20 ∞
Sử d ụng giải thuật GTS1 để tìm hành trình b ắt đầu tại các đỉnh v1=1; v2=3; v3=4; v4=5
Hướ ng
ng dẫn giải:
GTS1(v1)
= 1 → 5 → 2 → 4 → 6 → 3 → 1
Cost(v1)
= 6 + 7 + 6 + 12 +16 + 25 = 72.
Tươ ng
ng tự tính đượ c:
c:
GTS1(v2)
=3 → 2 → 4 → 1 → 5 → 6 → 3
Cost (v2)
=5 + 6 + 12 + 6 +38 + 16 = 83.
GTS1(v3)
=4 → 2 → 1 → 5 → 3 → 6 → 4
Cost (v3)
=9 + 10 + 6 + 21 +9 + 5 = 60.
GTS1(v4)
=5 → 2 → 4 → 1 → 6 → 3 → 5
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Cost (v4)
Trang 3
=7 + 6 + 12 + 24 +16 + 14 = 79.
Thuật giải GTS2 (Greedy Traveling Saleman)
n, c, p,vi ( i = 1..p)// v i là các thành ph ố cho tr ướ c hoặc cũng có thể đượ c
Input
chọn ngẫu nhiên trong t ậ p 1..p
Output:
besttour, bestcost
bestcost=0
besttour={}
for i=1 to p
{
GTS1(vk );
); // suy ra đượ c tour(vk ) và cost(vk )
If cost(vk )
)
{
bestcost=cost(vk )
besttour=tour(vk )
}
}
Ví dụ 1.2.
Cho đồ th ị có ma tr ận chi phí như sau:
∞
20
42
31
6
24
10
∞
17
6
35
18
25
5
∞
27
14
9
12
9
24
∞
30
12
14
7
21
15
∞
38
40
15
16
5
20
∞
Sử d ụng giải thuật GTS2 để tìm hành trình t ốt nhất vớ i p=4 (v1=2; v2=3; v3=5; v4=6)
Hướ ng
ng dẫn giải:
Áp dụng giải thuật GTS1 như trên để tính
GTS1(v1)
= 2 → 4 → 1 → 5 → 3 → 6 → 2
Cost(v1)
=.6+12+6+21+9+15=69
GTS1(v2)
=3 → 2 → 4 → 1 → 5 → 6 → 3
Cost (v2)
=5 + 6 + 12 + 6 +38 + 16 = 83.
GTS1(v3)
=5 → 2 → 4 → 1 → 6 → 3 → 5
Cost (v3)
=7 + 6 + 12 + 24 +16 + 14 = 79.
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
GTS1(v4)
=6 → 4 → 2 → 1 → 5 → 3 → 6
Cost (v4)
=5 + 9 + 10 + 6 +21 + 9 = 60.
K ết luận:
Hành trình tốt nhất có chi phí là 60 vớ i chi tiết tour như sau:
Trang 4
6 → 4 → 2 → 1 → 5 → 3 → 6
NGUYÊN LÝ THỨ T
TỰ
Thực hi ện hành động dựa trên một c ấu trúc thứ t ự h ợ p lý của khơng gian cần khảo
sát để nhanh chóng tìm đượ c lờ i giải tốt. Nguyên lý này đượ c sử d ụng nhiều trong việc giải
quyết các bài toán lậ p lịch.
Sau đây là một bài tốn điển hình cho ngun lý thứ t ự
Ví dụ
Giả s ử có m máy nh ư nhau đượ c ký hiệu t ừ P 1,…,Pm. Có n cơng vi ệc J 1,…,Jn c ần
đượ c th ực hi ện. Các công việc có thể đượ c th ực hi ện đồng thờ i và bất k ỳ cơng vi ệc nào
cũng có thể ch ạy trên một máy nào đó. Mỗi lần máy đượ c cho thực hiện một cơng việc nó
sẽ làm cho t ớ i khi hồn chỉnh. Cơng việc Ji có th ờ i gian thực hiện là Ti
Mục đích của chúng ta là tổ ch ức cách phân cơng các cơng vi ệc đượ c hồn thành
trong thờ i gian sớ m nhất.
THUẬT GIẢI 1:
Lậ p một thứ t ự L các công vi ệc cần đượ c thực hiện
Lặ p lại các công việc sau cho đến khi nào các công việc đều đượ c phân cơng:
Nếu có máy nào rãnh thì nạ p cơng việc k ế ti ế p trong danh sách L vào (nếu có 2 hay nhiều
máy cùng rãnh tại một thờ i điểm thì máy vớ i chỉ s ố th ấ p sẽ đượ c phân cho công vi ệc).
Giả s ử có 3 máy P1,P2,P3 và 6 cơng vi ệc J1,J2,J3,J4,J5 J6 Vớ i
Ti=(2,5,8,1,5,1)
L= (J2,J5,J1,J4,J6,J3)
Thì phân cơng the
theoo phươ ng
ng án này sẽk hơng t ối ưu (thờ i gian hồn thành các công việc là
12)
THUẬT GIẢI 2:
Ta hãy quan tâm đến một heuristic đơ n giản như sau:
L* là phươ ng
ng án mà các công vi ệc đượ c s ắ p theo thứ t ự th ờ i gian giảm dần. Ap dụng như
thuật giải 1 và lúc này thờ i gian hồn thành là 8.
Tuy nhiên heuristic này khơng ch ắc đã có một phươ ng
ng án tối ưu.
Ví dụ:
Cho 2 máy P1,P2 và 5 công việc J1,J2,j3,j4,j5. thờ i gian thực hiện các cơng việc là
3,2,2,3,2. Thì
Thì cách phân cơng công việc là:
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 5
P1: 3 2 2
P2: 3 2
Thờ i gian hoàn thành là 7. Trong khi thờ i gian hồn thành tối ưu là 6:
33
222
BÀI TỐN GIA CƠNG TRÊN HAI MÁY VÀ THU ẬT TỐN JOHNSON
Có n chi tiế t máy D1, D2,..., Dn cần phải đượ c l ần l ượ
ượ t gia công trên 2 máy A, B. Th ờ i
gian gia công chi tiế t Di trên máy A là a ,i trên máy B là bi (i =1, 2,..., n). Hãy tìm l ịch
(trình t ự
ự gia
gia công) các chi tiế t trên hai máy sao cho việc hồn thành gia cơng t ấ
ấ t cả các
chi tiế t là sớ m nhấ t có thể đượ c.
c. Giả thiế t r ằ
ng, trình t ự
gia cơng các chi tiế t trên hai máy
ằ ng,
ự gia
là như nhau
nhau và các chi tiế t đượ c làm trên máy A r ồi đế n máy B.
Một thuật toán hết sức nổi tiếng để gi ải bài tốn trên đó là thuật toán Johnson. Thuật toán
gồm các bướ c như sau:
+ Chia các chi ti ết thành 2 nhóm: Nhóm N1 g ồm các chi tiết Di tho ả mãn a i < b i và nhóm
N2 g ồm các chi tiết Di tho ả mãn a i > b i. Các chi tiết Di tho ả mãn a i = b i x ế p vào nhóm nào
cũng đượ cc..
+ Sắ p xế p các chi tiết trong N1t heo chi ều tăng của các ai và s ắ p xế p các chi tiết trong N2
theo chiều giảm của các bi.
+ Nối N2v ào đuôi N1. Dãy thu đượ c (đọc từ trái sang ph ải) sẽ là l ịch gia công tối ưu.
Bài tập
BT1-1.a.Cho đồ th ị có ma tr ận chi phí như sau:
∞
28
36
34
10
29
16
∞
20
11
37
23
17
9
∞
32
18
13
16
13
28
∞
35
19
18
14
25
19
∞
49
40
19
20
11
91
∞
Sử d ụng giải thuật GTS2 để tìm hành trình t ốt nhất vớ i p=4 (v1=2; v2=3; v3=5; v4=6)
b.Cho đồ th ị có ma tr ận chi phí như sau:
∞
19
27 25
1
20
7
∞
11
2
28
14
8
4
∞
23
9
4
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 6
7
4
19
∞
26
10
9
5
16
10
∞
40
31
10
11
2
82
∞
Hãy sử d ụng giải thuật GTS2 để tìm hành trình t ốt nhất vớ i p=4 (tại các đỉnh 1, 3, 4, 5).
BT1-2.a.Cho đồ th ị có ma tr ận chi phí như sau:
∞
18
40
28
4
23
10
∞
14
5
31
17
21
3
∞
26
12
7
10
7
22
∞
29
13
12
5
19
13
∞
43
34
15
14
3
73
∞
Hãy sử d ụng giải thuật GTS2 để tìm hành trình t ốt nhất vớ i p=4
BT1-2.b.Cho đồ th ị có ma tr ận chi phí như sau:
∞
28
36
34
10
29
16
∞
20
11
37
23
17
9
∞
32
18
13
16
13
28
∞
35
19
18
14
25
19
∞
49
40
19
19
20
11 91
∞
Hãy sử d ụng giải thuật GTS2 để tìm hành trình t ốt nhất vớ i p=4
BT1-3.( bài tốn cái ba lơ)
Cho n món hàng (n ≤ 50). Món th ứ i có kh ối lượ ng
ng là A[i] (số nguyên). C ần chọn nh ững
món hàng nào để b ỏ vào m ột ba lô sao t ổng khối l ượ ng
ng c ủa các món hàng đã ch ọn là lớ n
nhất nhưng không vượ t quá khối lượ ng
ng W cho tr ướ
c. (W ≤ 100). M ỗi món chỉ ch ọn 1 hoặc
ướ c.
không chọn.
21
2678953
983
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 7
BT1-4.Tậ p văn bản NUM.INP chứa các số nguyên d ươ ng
ng có thể trùng nhau hãy ch ọn từ
ng sao cho mọi số trong t ậ p đã cho đều viết đượ c
đó ra một tậ p nhỏ nh ất các số nguyên d ươ ng
dướ i dạng tích của các số trong t ậ p đượ c chọn.
K ết quả hãy ghi vào t ậ p văn bản NUM.OUT.
Ví dụ v ớ i tậ p NUM.INP là:
15 60 5 2 200 3 2 40 15 1 24 5 3 14
Thì tậ p NUM.OUT là:
1 2 3 5 14
BT1-5.Giả s ử có m máy nh ưn hau đượ c ký hiệu từ P 1,…,Pm. Có n cơng việc J1,…,Jn c ần
đượ c thực hiện. Các cơng việc có thể đượ c thực hiện đồng thờ i và bất k ỳ công vi ệc nào
cũng có thể ch ạy trên một máy nào đó. Mỗi lần máy đượ c cho thực hiện một công việc nó
sẽ làm cho t ớ i khi hồn chỉnh. Cơng việc Ji có th ờ i gian thực hiện là Ti
Mục đích của chúng ta là tổ cchh ức cách phân công các công vi ệc đượ c hoàn thành
trong thờ i gian sớ m nhất.
a.Hãy nêu thuật giải giải quyết bài tốn trên.
b.Giả s ử có 3 máy P1, P2, P3 và 6 công vi ệc J1, J2, J3, J4, J5, J6 v ớ i Ti=(7, 10, 13,
6, 9, 6). Hãy tìm một phươ ng
ng án tốt để s ắ p các cơng việc vào các máy.
ng trình cho bài tốn lậ p lịch sau
BT1-6.Viết chươ ng
Có n chi tiết máy D1, D2,..., Dn c ần phải đượ c lần lượ t gia công trên 2 máy A, B. Thờ i gian
gia công chi tiết D i trên máy A là a i, trên máy B là bi (i =1, 2,..., n). Hãy tìm l ịch (trình tự
gia công) các chi ti ết trên hai máy sao cho việc hồn thành gia cơng t ất cả các chi ti ết là
sớ m nhất có thể đượ c.
c. Giả thi ết r ằng, trình tự gia cơng các chi ti ết trên hai máy là nh ư nhau
và các chi tiết đượ c làm trên máy A r ồi đến máy B.
Một thuật toán hết s ức n ổi ti ếng để gi ải bài tốn trên đó là thuật toán Johnson. Thuật toán
gồm các bướ c như sau:
+ Chia các chi tiết thành 2 nhóm: Nhóm N 1 g ồm các chi tiết D i tho ả mãn a i < b i và nhóm
N2 g ồm các chi tiết D i tho ả mãn a i > b i. Các chi tiết D i tho ả mãn a i = b i x ế p vào nhóm nào
cũng đượ cc..
+ S ắ p x ế p các chi ti ết trong N1 theo chi ều t ăng c ủa các ai và s ắ p x ế p các chi ti ết trong N2
theo chiều giảm của các bi.
+ Nối N2v ào đuôi N1. Dãy thu đượ c (đọc từ trái sang ph ải) sẽ là l ịch gia cơng tối ưu.
BT1-7.Có 12 chi tiết máy D1, D2,..., D12 pphh ải đượ c lần lượ t gia công trên 2 máy M1,M2.
Thờ i gian gia công chi ti ết D i trên máy M 1 là {14,6,7,3,9,12,4,5,7,1,13,8}, trên máy M 2 là
(5,7,3,9,12,6,19,2,44,17,8,4). Hãy tìm l ịch (trình tự gia cơng) các chi ti ết trên hai máy sao
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 8
cho việc hồn thành gia công tất cả các chi ti ết là sớ m nhất có thể đượ c.
c. Giả thi ết r ằng,
trình tự gia công các chi ti ết trên hai máy là như nhau và các chi ti ết đượ c làm trên máy M1
r ồi đến máy M2.
BT1-8. Một dịch v ụ in
in ấn luận văn tốt nghiệ p, có 3 nhân viên đánh máy và một quản lý.
Dịch vụ nh ận đượ c yêu cầu đánh máy luận văn của sinh viên tốt nghiệ p như sau:
Luận văn
Số Trang
Trang
L1
200
L2
140
L3 L4
70 100
L5 L6
60 120
L7 L8 L9
50 80 100
L10
150
L11
40
L12
60
Giả s ử trong m ột giờ thì m ột nhân viên đánh máy đượ c 10 trang
1.Phân chia các luận văn cho 03 nhân viên đánh máy sao cho thờ i gian hoàn thành việc
đánh máy luận văn là sớ m nhất.
2.Trong tr ườ
ng hợ p ngườ i quản lý cũng tham gia đánh máy, nhưng công suất của ngườ i
ườ ng
quản lý chỉ b ằng ½ cơng suất của một nhân viên.Tìm cách chia các luaaanj văn cho 3 nhân
viên và ngườ i quản lý, sao cho thờ i gian hoàn thành việc đánh máy luận văn là sớ m nhất.
BT1-9.Viết chươ ng
ng trình cho thuật tốn GTS1
ng trình cho thuật tốn GTS2
BT1-10.Viết chươ ng
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 9
Vấn đề 2
Thuật giải tơ màu
2.1.Bài tốn tơ màu
Cho n thành phố, hãy tơ màu các thành phố này sao cho khơng có b ất k ỳ hai thành
phố nào k ền hau đượ c tô cùng một màu và số màu đượ c tơ là ít nhất có thể.
Dữ li ệu vào đượ c lưu trên một tr ận vuông c[i,j]. Nếu c[i,j]=1 thì hai thành ph ố i,j là
k ề nhau, c[i,j]=0 thì hai thà
thành
nh ph ố i,j không k ền hau.
2.2.Thuật giải tô màu tham lam(Greedy)
Dùng màu thứ nh ất tô cho tất cả các đỉnh của đồ th ị mà có th ể tơ đượ c,
c, sau đó dùng
màu thứ hai tơ t ất cả các đỉnh của đồ th ị cịn l ại có thể tơ đượ c và cứ nh ư th ế cho đến khi tơ
hết tất cả các đỉnh của đồ th ị.
Lượ c đồ của thuật giải này như sau:
sau:
m=1;
số đỉnh đã đượ c tô = 0;
mọi đỉnh đều chưa đượ c tô
do
{
for i=1 to n
if (đỉnh i là chưa xét và có thể tơ đượ c bằng màu m)
{
tơ đỉnh i bằng màu m, đỉnh i tr ở
ở thành đỉnh đã xét.
tăng số đỉnh đã đượ c tô lên 1 đơ n vị
}
}
m++
while (số đỉnh đã đượ c tơ
Ví dụ: Ph ươ ng
ng án đặt sách lên k ệ sách
Tại một cửa hàng sách, mớ i nhậ p về 12 quy ển sách thuộc các loại sau:
Truyện cườ i:
i: A, C, D, G.
Âm nhạc:
B, H, K.
Lịch sử:
E, J, L.
Khoa học:
F, I.
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 10
Hãy sắ p x ế p nh ững quyển sách này vào k ệ sao cho s ố k k ệ s ử d ụng là ít nhất mà tuân theo
các yêu cầu sau:
-Các quyển sách cùng loại không đượ c để chung m ột k ệ.
-Quyển A không đượ c để chung v ớ i sách khoa học.
-Quyển L không đượ c đểc hung v ớ i sách âm nhạc.
Giải:
Bướ c 1: Lậ p ma tr ận k ề
A
C
D
G
A
0
1
1
1
C
1
0
1
1
D
1
1
0
1
G
1
1
1
0
B
H
K
E
J
L
B
0
1
1
1
H
1
0
1
1
K
1
1
0
1
E
0
1
1
J
1
0
1
1
1
0
L
1
1
1
F
I
1
1
F
1
0
1
I
1
1
0
L
F
Bướ c 2: Tô màu theo nguyên lý tham lam
Đỉnh
A
màu 1
1
màu 2
màu 3
màu 4
C
D
G
B
H
K
1
2
J
2
2
3
4
Bướ c 3: K ết luận 12 quyển sách trên đượ c xế p vào 4 k ệ
K ệ 1: G ồm các quyển sách: A, B, E
K ệ 2: G ồm các quyển sách: C, H, J, F
K ệ 3: G ồm các quyển sách: D, K. I
K ệ 4: G ồm các quyển sách: G, L
I
1
2
3
E
3
4
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 11
2.3.Nguyên lý sắp xếp theo thứ ttự k
k ết hợ p thuật giải tô màu tham lam
Bướ c 1:Sắ p xế p các đỉnh theo bậc giảm dần.
Bướ c 2:Dùng màu thứ nh ất tơ cho đỉnh có bậc cao nhất và các đỉnh khác có thể tơ
cịn lại.
Bướ c 3:Dùng màu thứ hai tơ cho đỉnh có bậc cao thứ nh ất (cịn lại) và các đỉnh
khác có thể tơ cịn l ại
Bướ c 4:Và cứ nh ư th ế… cho đến khi tất cả các đỉnh đượ c tô màu hết
Giải lại ví dụ Phươ ng
ng án đặt sách lên k ệ sách
Bướ c 1: Lậ p ma tr ận k ề
A
C
D
G
A
0
1
1
1
C
1
0
1
1
D
1
1
0
1
G
1
1
1
0
B
H
K
E
J
L
F
I
1
1
F
0
1
I
1
0
B
0
1
1
1
H
1
0
1
1
K
1
1
0
1
E
0
1
1
J
1
0
1
1
1
0
L
1
1
1
Bướ c 2: Tính bậc của từng đỉnh
Đỉnh
A
C
D
G
B
H
K
E
J
L
F
I
Bậc
5
3
3
3
3
3
3
2
2
5
2
2
Bướ c 3: Tô màu theo nguyên lý tham lam
Đỉnh
A
C
D
G
B
H K
E
J
L
F
I
màu 1
1
1
1
1
1
1
1
1
1
1
1
1
màu 2
màu 3
1
1
2
2
2
3
2
3
1
1
2
2
2
3
1
1
2
2
2
3
2
2
2
3
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
màu 4
1
2
3
Trang 12
4
1
2
3
1
2
4
2
3
(Có thể thay – i b ằng cách gạch một đườ ng
ng chéo qua i - ý nói ngăn cấm tơ màu i)
Bướ c 4: K ết luận 12 quyển sách trên đượ c xế p vào 4 k ệ
K ệ 1: G ồm các quyển sách: A, B, E
K ệ 2: G ồm các quyển sách: C, H, J, F
K ệ 3: G ồm các quyển sách: D, K. I
K ệ 4: G ồm các quyển sách: G, L
2.4.Thuật tốn tơ màu tối ư u
Lượ c đồ của thuật giải này như sau:
sau:
Tính bậc của tất cả các đỉnh
while (cịn đỉnh có bậc lớ n hơ n 0)
{
-Tìm đỉnh(chưa đượ c tơ) có bậc lớ n nhất. Chẳng hạn đó là đỉnh i0.
-Tìm màu để tơ đỉnh i0 là màu nhỏ nh ất trong danh sách các màu cịn lại có
thể tơ cho đỉnh i0. Chẳng hạn đó là màu j.
-Ngăn cấm việc tô màu j cho các đỉnh k ề v ớ i đỉnh i0.
-Tô màu đỉnh i0 là j.
-Gán bậc của đỉnh đượ c tô bằng 0, các đỉnh k ề v ớ i đỉnh đượ c tơ có bậc giảm
đi 1 đơ n vị.
}
Sau khi k ết thúc vịng lậ p trên có th ể cịn đỉnh chưa đượ c tô nhưng t ất c ả các đỉnh
lúc này đều đã có bậc bằng 0 – ngh ĩ a là khơng thể h ạ b ậc đượ c nữa. Khi đó màu
của các đỉnh chưa đượ c tơ chính là màu nhỏ nh ất h ợ p lệ trong danh sách màu c ủa
đỉnh đó.
Giải lại ví dụ Phươ ng
ng án đặt sách lên k ệ sách
Bướ c 1: Lậ p ma tr ận k ề
A
A
C
D
G
0
1
1
1
B
H
K
E
J
L
F
I
1
1
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
C
1
0
1
1
D
1
1
0
1
G
1
1
1
0
Trang 13
B
0
1
1
1
H
1
0
1
1
K
1
1
0
1
E
0
1
1
J
1
0
1
1
1
0
L
1
1
1
F
0
1
I
1
0
Bướ c 2: Tính bậc của từng đỉnh
Đỉnh
Bậc
A
C
D
G
B
H
K
E
J
L
F
I
5
3
3
3
3
3
3
2
2
5
2
2
Bướ c 3: Tơ màu bằng thuật tốn tơ màu tối ưu
Tơ các đỉnh cịn lại
1
2
3
4
2
3
4
2
3
1
Tơ màu lần 8
Tô màu lần 7
2
Tô màu lần 6
Tô màu lần 5
3
3
2
2
3
2
-2
-2
-3
-3
Tô màu lần 4
Tô màu lần 3
2
-2 -2
-2 -2
Tô màu lần 2
-1 -1 -1 -1 -1 1
Tô màu lần 1
1
-1 -1 -1
Đỉnh
A
C
D
G
B
H
K
E
J
L
F
I
Bậc
5
3
3
3
3
3
3
2
2
5
2
2
Hạ b ậc lần 1
Hạ b ậc lần 2
0
0
2
2
2
2
2
2
3
2
3
2
3
2
2
1
2
1
5
0
1
1
1
1
-1 -1
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 14
Hạ b ậc lần 3
0
0
1
1
2
2
2
1
1
0
1
1
Hạ b ậc lần 4
0
0
1
1
0
1
1
1
1
0
1
1
Hạ b ậc lần 5
0
0
0
0
0
1
1
1
1
0
1
1
Hạ b ậc lần 6
0
0
0
0
0
0
0
1
1
0
1
1
Hạ b ậc lần 7
0
0
0
0
0
0
0
0
0
0
1
1
Hạ b ậc lần 8
0
0
0
0
0
0
0
0
0
0
0
0
Bướ c 4: K ết luận: 12 quyển sách trên đượ c xế p vào bốn k ệ nh ư sau.
K ệ 1 g ồm các quyển: A, L
K ệ 2 g ồm các quyển: C, B, E, F
K ệ 3 g ồm các quyển: D, H, J, I
K ệ 4 g ồm các quyển: G, K
Bài tập
BT2-1.Tô màu cho các tỉnh của một bản đồ
Cho bản đồ các t ỉnh miền Bắc Việt Nam như sau. Hãy tô màu cho các t ỉnh này sao cho hai
tỉnh giáp ranh không đượ c tô cùng một màu.
2
7
3
8
1
41
6
9
5
Quy ướ cc::
1: Sơ n La
2: Lai Châu
3:Lào Cai
4:Yên Bái
5:V ĩ nh
nh Phúc
6:Tuyên Quang
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 15
7:Hà Giang
8:Cao Bằng
9:Bắc Thái
Hãy giúp các em hoàn thành bài tậ p trên vớ i số màu c ần dùng ít nhất.
BT2-2.Tơ màu bản đồ nướ c Mỹ
Tơ màu một phần bản đồ c ủa nướ c Mỹ g ồm 14 tiểu bang sao cho hai bang giáp ranh không
tô chung một màu và số màu c ần tơ là ít nh ất có thể.
BT2-3. Sắp lịch thi đấu cờ vua
vua
Tại vịng loại bảng B của một giải vô địch cờ vua g ồm 8 k ỳ th ủ. Các k ỳ th ủ thi đấu
vịng trịn để tính điểm. Biết r ằng hiện tại:
K ỳ th ủ 1 đã thi đấu vớ i k ỳ th ủ 3 & 4
K ỳ th ủ 4 đã thi đấu vớ i k ỳ th ủ 2, 3 & 8
K ỳ th ủ 5 đã thi đấu vớ i k ỳ th ủ 6 & 8
K ỳ th ủ 7 đã thi đấu vớ i k ỳ th ủ 1, 4 & 5
Trong một buổi thì mỗi k ỳ th ủ ch ỉ thi đấu một tr ận. Hãy lậ p lịch thi đấu cho các
tr ận còn lại sao cho số bu ổi cần thực hiện là ít nhất.
BT2-4.Sắp lịch hội thảo khoa học
Giả s ử có m ột hội thảo khoa học đượ c tổ ch ức vớ i 9 chủ đề khác nhau ký hi ệu là:
A,B,C,D,E,F,G,H,I. Mỗi chủ đề đượ c diễn ra trong một buổi, trong đó có các chủ đề sau
khơng đượ c diễn ra đồng thờ i trong cùng một buổi: AE, BC, C
D, ED, ABD, AHI, BHI, DFI, DHI, FGH.
Hãy bố trí các ch ủ đề trên vào các bu ổi sao cho số bu ổi diễn ra hội thảo là ít nhất có thể
BT2-5.Giả s ử có 06 cu ộc mitting A,B,C,D,E,F cần đượ c tổ ch ức. Mỗi cuộc mitting đượ c tổ
chức trong một buổi. Các cuộc mitting sau không đượ c diễn ra đồng thờ i:ABC,
i:ABC, ACD,
CDF, BE, EF. Hãy bổ trí các cu ộc mitting vào các buổi sao cho số bu ổi diễn ra là ít nhất.
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 16
BT2-6.Giả s ử có 10 cu ộc mitting A,B,C,D,E,F,G,H,K,L đượ c tổ ch
ch ức. Mỗi cuộc mitting
ng đượ c diễn ra đồng thờ i:AD,
i:AD, ABG,
đượ c tổ ch ức trong một buổi. Cc cuộc mitting sau khơ ng
BEG, EGH, HK, BCE, CFL, FKL. Hãy b ố trí các cu ộc mitting vào các buổi sao cho số
buổi diễn ra là ít nhất.
BT2-7.Cho đồ th ị g ồm 10 đỉnh như sau. Hãy tơ màu các đỉnh của đồ th ị sao cho khơng có
hai đỉnh no k ề nhau đượ c tô cùng màu và số mày c ần tơ là ít nhất có thể.
A
K
D
G
E
B
L
C
F
H
ng trình cho thuật tốn tơ màu tham lam.
BT2-8.Viết chươ ng
BT2-9.Viết chươ ng
ng trình cho thuật tốn tơ màu tham lam k ết hợ p sắ p thứ t ự.
ng trình cho thuật tốn tơ màu tối ưu.
BT2-10.Viết chươ ng
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 17
Vấn đề 3
Tìm kiếm ư u tiên tối ư u
(thuật giải AKT)
Tìm kiếm ưu tiên tối ưu có nhiều phiên bản, trong mục này chúng ta chỉ đề c ậ p đến thuật
KT
giải A .
3.1.Trình bày thuật giải
Bướ c 1: Khở i động
- Mọi đỉnh n là hàm f, g, h đều ẩn.
- Mở đỉnh đầu tiên So. Gán g(So)=0.
- Sử d ụng tri thức bổ sung ướ c tính h(So).
- Tính f(So) = g(So) + h(So).
Bướ c 2: Lượ ng
ng giá
- Chọn 1 đỉnh mở ứng vớ i hàm f là min và gọi là đỉnh N.
g(N)).
- Nếu N là đích → d ừng (đườ nngg đi từ đỉnh ban đầu đến đỉnh N là ngắn nhất và bằng
- Nếu khơng tồn tại N thì cây bi ểu diễn vấn đềk hơng có đườ ng
ng đi tớ i mục tiêu →
dừng (bài tốn khơng l ờ i giải).
- Nếu tồn tại nhiều hơ n 1 đỉnh N có cùng hàm f mminin thì ph ải kiểm tra xem trong số đó
có đỉnh nào là đích khơng.
+ Nếu có → d ừng.
+ Nếu khơng → ch ọn ngẫu nhiên 1 trong các đỉnh đó và gọi đó là đỉnh N.
Bướ c 3: Phát triển
- Đóng đỉnh N và mở m ọi đỉnh sau N.
- Mọi đỉnh S sau N, tính.
g(S) = g(N) + g(N – S).
- Dùng tri thức bổ sung để ướ c tính hàm h(S).
- Tính f(S) = g(S) + h(S).
Bướ c 4: Quay lui
- Quay lại bướ c 2.
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 18
Hỉnh ảnh của thuật giải AKT
So
S21
S11
S12
S22
S23
S31
S32
S13
S24
S33
S14
S1n
S2m
S34
S3p
3.2. Sử d
dụng thuật giải AKT giải bài toán TACI
Bài tốn TACI
Có n2-1 số mang các giá tr ị t ừ 1 t ớ i n2-1 đượ c sắ p xế p vào một lướ i các ô vng kích
thướ c n x n. Mỗi số đó đượ c gọi là một qn cờ và l ướ i ơ đó đượ c gọi là bàn cờ . Có một vị
trí của bàn cờ b ỏ tr ống. Mỗi lần di chuyển quân, ngườ i chơ i đượ c phép chuyển một qn ở
vị trí ơ ti ế p giáp cạnh vớ i ô tr ống vào ô tr ống.
Yêu cầu: Từ m ột tr ạng thái ban đầu (a) (sự s ắ p xế p ban đầu của các quân trên bàn
cờ ),
), hãy thực hiện các nướ c đi hợ p lệ để thu đượ c tr ạng thái k ết thúc (b) (tr ạng thái đích
cần đạt đượ c).
c).
Ví dụ:
Bắt đầu vớ i tr ạng thái (a), cho biết cách thay đổi (đẩy ô số) ít nhất để đượ c tr ạng
thái (b). Sử d ụng khoảng cách Mahattan làm hàm heuristic. Định ngh ĩ a khoảng cách
Mahattan là tổng khoảng cách theo chiều ngang và chiều dọc của các ơ số so v ớ i tr ạng thái
đích.
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
1
Trang 19
7
1
4
7
8
5
4
8
2
5
2
3
6
3
6
(a)
(b)
(có thể quy ướ c về th ứ t ự đẩy theo các hướ ng
ng như sau: trái- ph ải- trên –dướ i)
i)
Bướ c 1: Đẩy lần 1
1
7
5
4
8
2
3
6
g(So) = 0
h(So) = 5
f(So) = 5
(So)
1
7
1
7
5
4
8
5
4
2
3
S11
6
2
g(S11) = 1
h(S11) = 6
f(S11) = 7
1
8
5
3
6
S 12
g(S12) = 1
h(S12) = 6
f(S12) = 7
2
4
7
8
3
6
S 13
g(S13) = 1
h(S13) = 4
f(S13) = 5
Chọn đỉnh (S13) là đỉnh mở vì đỉnh này có f là nhỏ nh ất.
Bướ c 2: Đẩy lần 2
1
4
5
2
3
7
8
g(S13) = 1
h(S13) = 4
6
f(S13) = 5
(S13)
1
2
4
7
1
4
5
8
5
8
3
6
2
3
S21
g(S21) = 2
h(S21) = 3
7
6
S 22
g(S22) = 2
h(S22) = 5
f(S22) = 7
f(S21) = 5
Chọn đỉnh (S21) là đỉnh mở vì đỉnh này có f là nhỏ nh ất.
1
4
7
5
3
8
2
6
S 23
g(S23) = 2
h(S23) = 5
f(S23) = 7
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 20
Bướ c 3: Đẩy lần 3
1
2
4
7
5
8
3
6
g(S21) = 2
h(S21) = 3
f(S21) = 5
(S21)
4
7
1
4
7
1
5
8
2
5
8
2
3
6
3
6
S31
S 32
g(S32) = 3
h(S32) = 2
f(S32) = 5
g(S31) = 3
h(S31) = 4
f(S31) = 7
Chọn đỉnh (S32) là đỉnh mở vì đỉnh này có f là nhỏ nh ất.
Bướ c 4: Đẩy lần 4
1
2
4
7
5
8
3
6
(S32)
1
4
7
2
5
8
3
S41
6
g(S41) = 4
h(S41) = 1
f(S41) = 5
Chọn đỉnh (S41) là đỉnh mở
g(S32) = 3
h(S32) = 2
f(S32) = 5
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 21
Bướ c 5: Đẩy lần 5
1
4
7
2
5
8
3
g(S41) = 4
h(S41) = 1
f(S41) = 5
6
(S41)
1
4
7
1
2
5
8
2
3
6
3
S51
4
7
8
5
6
S 52
g(S52) = 5
h(S52) = 2
f(S52) = 7
g(S51) = 5
h(S51) = 0
f(S51) = 5
Chọn đỉnh (S51) là đỉnh mở vì đỉnh này có f là nhỏ nh ất.
Bướ c 6: K ết luận vớ i hàm heuristic đã cho, ta tìm đượ c đườ ng
ng đi tớ i tr ạng thái đích như
sau: (So) → (S 13) → (S 21) → (S 32) → (S 41) → (S 51)
Ví dụ : Bài tốn đặt qn hậu
Mơ t ả bài tốn:
Cho bàn cờ vua có kích th ướ c n x n. Hãy đặt tám qn hậu vào trong bàn cờ sao cho khơng
có quân hậu nào ăn quân hậu nào.
Heuristic đề ngh
nghị cho bài toán tám quân hậu:
Heuristic đề ngh ị: lần lượ t đặt các quân hậu vào các dịng trong bàn cờ và ch ọn ơ đặt quân
hậu tại vị trí mà khi đặt quân hậu tại đó số ơ kh ống chế thêm là ít nh ất.
Giải bài tốn 5 qn hậu
Cho bàn cờ vua kích th ướ c 5x5. Hãy đặt tám quân hậu vào trong bàn cờ sao cho khơng có
qn hậu nào ăn qn hậu nào.
1
1
2
3
4
5
2
3
4
5
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 22
Giải
Bướ c 1: Đặt quân hậu tại dòng 1
Lượ ng
ng giá:
1
1
2
3
4
5
12 12 12 12 12
2
3
4
5
Bướ c 2: Đặt qn hậu tại dịng 2
Lượ ng
ng giá
1
2
3
4
5
1
2
1
x
x
x
x
7
x
6
x
7
3
x
4
x
5
x
x
x
x
Chọn ơ (2,4) làm ơ đặt hậu
Bướ c 3: Đặt qn hậu tại dịng 3
Lượ ng
ng giá
Chọn ô (3,2) làm ô đặt hậu
1
2
3
4
5
1
1
x
x
x
x
2
x
x
x
2
x
3
x
2
x
x
x
4
x
x
5
x
x
x
x
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 23
Bướ c 4: Đặt qn hậu tại dịng 4
Lượ ng
ng giá
1
2
3
4
5
1
1
x
x
x
x
2
x
x
x
2
x
3
x
3
x
x
x
4
x
x
x
x
0
5
x
x
x
x
1
2
3
4
5
1
1
x
x
x
x
2
x
x
x
2
x
3
x
3
x
x
x
4
x
x
x
x
4
5
x
x
0
x
x
Chọn ơ (4,5) làm ơ đặt hậu
Bướ c 5: Đặt quân hậu tại dòng 5
Lượ ng
ng giá
Chọn ô (5,3) làm ô đặt hậu
Bướ c 6:K ết luận:
Vớ i Heuristic đã cho ta tìm đượ c phươ ng
ng án đặt hậu như hình v ẽ sau:
1
2
3
4
5
1
1
x
x
x
x
2
x
x
x
2
x
3
x
3
x
x
x
4
x
x
x
x
4
5
x
x
5
x
x
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 24
Bài tập
BT3-1.Hãy sử d ụng giải thuật AKT – tìm kiếm vớ i tri thức bổ sung (Algorithm
knowledgeable For Tree) để gi ải bài toán tháp Hà N ội trong tr ườ
ng hợ p n=3 biết:
ườ ng
A
B
C
A
B
Tr ạng thái bắt đầu
C
Tr ạng thi k ết thúc
Lưu ý thêm về các tr ườ ng
ng hợ p có thể ở c ột C và giá tr ị h t ươ ng
ng ứng:
1
2
2
1
3
3
3
3
0
1
2
3
1
4
1
2
2
5
6
7
2
3
BT3-2.Dùng thuật giải AKT gi ải bài toán TACI sau:
8
3
1
2
6
4
8
1
7
5
7
(a)
4
6
5
(b)
n 2 −1
δ
Vớ i độ ướ c lượ nngg H = ∑
(ai , bi ) Trong đó
i =1
δ ( ai , bi
) là số b ướ c dịch chuyển (theo
chiều ngang và chiều dọc) để đẩy ô ai v ề đúng vị trí
trí ô b i
BT3-3.D
BT3-3.
ùng thu ật giải AKT gi ải bài toán TACI sau:
2
1
8
3
1
6
4
8
7
5
7
(a)
2
3
4
6
(b)
5
Bài t ậ p cơ ssỏ trí tuệ nhân t ạo - SGU2009
Trang 25
n 2 −1
Vớ i độ ướ c lượ ng
ng H = ∑ δ (ai , bi ) Trong đó
δ ( ai , bi
i =1
) là số b ướ c dịch chuyển (theo
chiều ngang và chiều dọc) để đây ơ ai v ề đúng vịt rí ơ b i
BT3-4.Bài tốn Mã đi tuần
Cho bàn cờ vua kích th ướ c 8x8 (tổng quát là n x n). Đặt một con mã ở ví trí (h 0,c0). Hãy
liệt kê các nướ c đi của con mã sao cho con mã đi qua tất cả các ô trên bàn c ờ , mỗi ô chỉ
qua một lần duy nhất.
BT3-5.Trị chơ i Nim
Có 3 đống sỏi, mỗi đống sỏi có n1,n2 và n3 viên.ngườ i chơ i đến lượ t mình đượ c bốc từ
một đống bất k ỳ m ột s ố viên s ỏi b ất k ỳ (>0), ai khơng cịn gì đẻ b ốc là thua, hãy lậ p trình
trị chơ i trên.
BT3-6.Cho hai khối ứng vớ i tr ạng thái bắt đầu và tr ạng thái k ết thúc nhưs au:
BT3-6.Cho
A
H
H
G
G
F
F
E
E
D
D
C
C
B
B
A
Tr ạng thái bắt đầu
Tr ạng thái k ết thúc
Có hai thao tác để bi ến đổi là:
+Lấy một khối ở đỉnh của một cột bất k ỳ và
và đặt nó lên một chỗ ttr r ống tạo thành một cột
mớ i.i. Lưu ý là chỉ có th ể t ạo ra tối đa 2 cột mớ i
+Lấy một khối ở đỉnh một cột và đặt nó lên đỉnh một cột khác.
Hãy xác định số thao tác ít nh ất để bi ến đổi cột đã cho thành cột k ết quả.
BT3-7.Dùng thuật giải AKT gi ải bài toán TACI sau:
BT3-7.Dùng
8
3
1
2
6
4
8
1
7
5
7
(a)
2
3
4
6
(b)
5