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

bài tập trí tuệ nhân tạo

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 (1.55 MB, 44 trang )

 

 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.


7

3



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ể.




D

G
E





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


×