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

Thuật toán di truyền giải bài toán cây khung truyền thông tối ưu

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 (2.87 MB, 119 trang )

Mẫu 1a
MẪU BÌA LUẬN VĂN CÓ IN CHỮ NHŨ VÀNG Khổ 210 x 297 mm

HỌ VÀ TÊN TÁC GIẢ LUẬN VĂN

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

NGUYỄN NGỌC QUANG

CHUYÊN NGÀNH

THUẬT TOÁN DI TRUYỀN GIẢI BÀI TOÁN
CÂY KHUNG TRUYỀN THÔNG TỐI ƯU

LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN

KHOÁ

Hà Nội – Năm 2011



BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------NGUYỄN NGỌC QUANG

THUẬT TOÁN DI TRUYỀN GIẢI BÀI TOÁN
CÂY KHUNG TRUYỀN THÔNG TỐI ƯU



Chuyên ngành : Công nghệ thông tin

LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC :
1. PGS. TS. Nguyễn Đức Nghĩa
Hà Nội – Năm 2011


LỜI CÁM ƠN
Đầu tiên, em xin cảm ơn toàn thể các thầy cô giáo trong trường Đại học Bách
Khoa Hà Nội nói chung cũng như các thầy cô trong Viện Công nghệ thông tin và
truyền thông, Khoa học máy tính nói riêng. Trong suốt quá trình học và hoàn thành
luận văn cao học, em đã được thầy cô chỉ dạy và cung cấp những kiến thức quý báu
cả về chuyên môn và đạo đức.
Đặc biệt, em xin chân thành cảm ơn thầy, PGS.TS. Nguyễn Đức Nghĩa, người
đã trực tiếp hướng dẫn, cung cấp tài liệu và định hướng, chỉ bảo tận tình trong suốt
quá trình em làm luận văn tốt nghiệp. Trong quá trình được thầy giảng dạy và hoàn
thành luận văn dưới sự hướng dẫn của thầy, em đã học được cách tiếp cận vấn đề,
tinh thần làm việc nghiêm túc, trung thực và cách nghiên cứu khoa học hiệu quả.
Đó sẽ là hành trang, là định hướng trong quá trình làm việc của em sau này.
Cuối cùng, tôi xin được gửi lời cảm ơn chân thành tới gia đình, công ty và bạn
bè. Những người đã là chỗ dựa tinh thần, động viên, khuyến khích, giúp đỡ tôi
trong suốt quá trình học tập và nghiên cứu để hoàn thành luận văn tốt nghiệp.
Hà Nội, ngày 24 tháng 5 năm 2011.
Nguyễn Ngọc Quang.
Lớp Cao học Công nghệ thông tin – Khóa 2009.
Đại học Bách Khoa Hà Nội.



LỜI CAM ĐOAN
Tôi là Nguyễn Ngọc Quang - Học viên lớp cao học Công Nghệ Thông Tin Khóa 2009 – trường Đại Học Bách Khoa Hà Nội.
Mã số học viên: CB091341.
Tôi cam đoan luận văn tốt nghiệp là kết quả nghiên cứu của bản thân tôi dưới
sự hướng dẫn của PGS. TS. Nguyễn Đức Nghĩa. Các số liệu, kết quả trong luận văn
tốt nghiệp là trung thực, không phải sao chép toàn văn của bất kì công trình nào
khác.

Học viên

Nguyễn Ngọc Quang


TÓM TẮT LUẬN VĂN THẠC SĨ
Đề tài: Thuật toán di truyền giải bài toán cây khung truyền thông tối ưu.
Tác giả luận văn: Nguyễn Ngọc Quang. Khóa: 2009.
Người hướng dẫn: PGS. TS Nguyễn Đức Nghĩa.

Nội dung tóm tắt:
a) Lý do chọn đề tài
Bài toán cây khung truyền thông tối ưu (Optimal Communication Spanning Tree OCST) là một bài toán có nhiều ứng dụng trong thực tế như trong thiết kế mạng đơn giản,
thiết kế mạng/vận tải … Tuy nhiên, OCST là một bài toán thuộc lớp NP-khó nên chưa có
một thuật toán chính xác nào có thể tìm được lời giải tối ưu.
Ngay từ khi mới được đưa ra vào năm 1974 bởi HU cho đến nay, đã có rất nhiều
phương pháp được đề xuất với bài toán này: phương pháp tìm kiếm có hoặc không có
heuristic, thuật toán leo đồi… Một trong các hướng tiếp cận đang được quan tâm là sử
dụng thuật toán di truyền (Genetic Algorithm – GA) để tìm lời giải xấp xỉ.
Ý tưởng của thuật toán di truyền xuất phát từ nguyên lý “chọn lọc tự nhiên” trong

học thuyết về sự tiến hóa của Darwin. Thuật toán này đã được áp dụng cho các bài toán
tối ưu tổ hợp và tối ưu số như: bài toán người du lịch, bài toán cái túi, bài toán vận tải,…
Thuật toán di truyền thường mang lại những lời giải tốt trong thời gian chấp nhận được.
Thuật toán này cho kết quả khá khả quan, và đối với bài toán OCST, thuật toán này cũng
cho lời giải tương đối tốt so với một số phương pháp khác.
Do đó, tôi lựa chọn luận văn với đề tài: Thuật toán di truyền giải bài toán cây
khung truyền thông tối ưu.
b) Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu.
Luận văn tập trung nghiên cứu mô hình thuật toán di truyền và áp dụng thuật toán
di truyền giải bài toán OCST. Bên cạnh đó, luận văn trình bày một sồ phương pháp mã
hóa cá thể cụ thể của giải thuật di truyền khi áp dụng cho bài toán OCST. Thông qua kết

1


quả thực nghiệm, luận văn đưa ra đánh giá về việc áp dụng thuật toán di truyền giải bài
toán OCST và hiệu quả của các phương pháp mã hóa cá thể.
c) Tóm tắt cô đọng các nội dung chính và đóng góp mới của tác giả
Với mục đích tìm hiểu về thuật toán di truyền nói chung và thuật toán di truyền áp
dụng cho bài toán OCST nói riêng, luận văn được chia làm 4 phần: phần đầu nói đến các
khái niệm liên quan như đồ thị, cây khung, bài toán tối ưu và phát biểu bài toán; phần hai,
nêu về thuật toán di truyền: từ tổng quan một thuật toán di truyền đến các thao tác, chiến
thuật lựa chọn, các thông số cho thuật toán di truyền; phần ba, nêu các phương pháp mã
hoá cây khung để áp dụng thuật toán di truyền: đó là phương pháp mã hoá Prufer, mã hóa
vectơ đặc trưng, mã hóa thiên kiến cạnh, mã hóa thiên kiến nút, mã hóa thiên kiến cạnh và
nút, mã hóa NetKey, mã hóa tập cạnh. Mỗi phương pháp đều có nhận xét về ưu, nhược
điểm của cách mã hoá đó; phần bốn, là phần cài đặt thực nghiệm. Trên cơ sở lý thuyết và
kết quả thực nghiệm, luận văn đã chỉ ra sự ảnh hưởng của các phương pháp mã hóa đối
với sự hội tụ, đa dạng và thiên kiến của thuật toán di truyền.
d) Phương pháp nghiên cứu.

Luận văn sử dụng phương pháp nghiên cứu: tìm hiểu lý thuyết, phân tích, xây
dựng thực nghiệm và rút ra đánh giá. Trong quá trình nghiên cứu lý thuyết và phân tích,
luận văn thực hiện phân tích diễn dịch: tìm hiểu thuật toán di truyền nói chung, tìm hiểu
bài toán OCST và áp dụng thuật toán di truyền giải bài toán OCST.
e) Kết luận
Luận văn đã trình bày về bài toán cây khung truyền thông tối ưu; các hướng tiếp
cận giải quyết bài toán và đi sâu nghiên cứu sử dụng thuật toán di truyền để giải quyết bài
toán cây khung truyền thông tối ưu. Trong các toán tử di truyền, phương pháp mã hóa cá
thể ảnh hưởng tính hiệu quả của thuật toán di truyền. Nó quyết định không gian của thuật
toán di truyền, ảnh hưởng tính cục bộ và tính đa dạng của quần thể.
Luận văn đã trình bày hai phương pháp mã hóa cây: biểu diễn trực tiếp cây và biểu
diễn gián tiếp cây. Các phương pháp biểu diễn gián tiếp cây trong luận văn bao gồm: mã
hóa vectơ đặc trưng, mã hóa số Prufer, mã hóa thiên kiến cạnh, mã hóa thiên kiến nút, mã

2


hóa thiên kiến cạnh và nút và mã hóa NetKey; phương pháp mã hóa tập cạnh là phương
pháp biểu diễn trực tiếp tập cạnh của cây khung. Các phương pháp mã hóa gián tiếp cây
khung sử dụng hai không gian: không gian kiểu gen (không gian cá thể mã hóa), không
gian kiểu hình (không gian cây khung) và cách ánh xạ giữa hai không gian này. Trong
trường hợp không gian kiểu gen lớn hơn không gian kiểu hình thì đó là các phương pháp
mã hóa dư thừa (mã hóa CV, mã hóa LB, mã hóa LNB, mã hóa NetKey); nếu không gian
kiểu gen bằng kiểu hình thì sẽ không tạo ra sự dư thừa như mã hóa Prufer. Phương pháp
mã hóa trực tiếp chỉ có một không gian cây khung nên không cần sự ánh xạ và không tạo
ra sự dư thừa trong mã hóa.
Thông qua lý thuyết và kết quả thực nghiệm cho thấy tính chất của các phương
pháp mã hóa cá thể như sau:
 Giải thuật di truyền giải bài toán OCST với các mã hóa cá thể: mã hóa CV,
mã hóa Prufer, mã hóa NB, mã hóa LB, mã hóa LNB, mã hóa NetKey cho

kết quả tương đối tốt so với phương pháp khác giải bài toán OCST.
 GA sử dụng mã hóa Prufer không dư thừa nhưng có tính hội tụ thấp.
 Phương pháp mã hóa véctơ đặc trưng là mã hóa dư thừa và thiên kiến nên
không đảm bảo tính hội tụ của GA.
 Phương pháp mã hóa LNB phụ thuộc vào giá trị P1 và P2 . Nếu giá trị P1 và
P2 nhỏ ( P1  1, P2  1 thì cây thiên kiến trở thành cây khung nhỏ nhất MST).

 Phương pháp mã hóa LB là mã hóa dư thừa đồng nhất và thiên kiến ( P1  1 )
nên cây thiên kiến trở thành cây khung nhỏ nhất MST.
 Phương pháp Mã hóa NB là mã hóa dư thừa đồng nhất và thiên kiến. Mặt
khác, mã hóa NB không thể biểu diễn tất cả các cây khung mà chỉ biểu diễn
một phần nhỏ của không gian lời giải và có thiên kiến trở thành cây hình
sao hoặc cây khung nhỏ nhất MST.

3


 Phương pháp mã hóa NetKey là mã hóa dư thừa đồng nhất, không thiên kiến
nên các cá thể của GA sử dụng mã hóa NetKey không phụ thuộc vào cấu
trúc của cây khung tối ưu.
 Phương pháp mã hóa EgdeSet không heuristic là mã hóa không dư thừa,
không thiên kiến và có tính cục bộ cao nên các thao tác di truyền có xu
hướng tạo ra các cá thể giống nhau hoặc gần giống nhau.
Đối với các bộ dữ liệu thực nghiệm được đề cập trong luận văn thì GA sử dụng mã
hóa NetKey và mã hóa LNB cho kết quả khá tốt so với các các phương pháp mã hóa còn
lại.

4



MỤC LỤC
MỤC LỤC ................................................................................................ 1
DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT..................................... 5
DANH MỤC HÌNH .................................................................................. 6
DANH MỤC BẢNG.................................................................................. 9
PHẦN MỞ ĐẦU ..................................................................................... 10
CHƢƠNG 1. PHÁT BIỂU BÀI TOÁN................................................... 12
1.1 Một số khái niệm cơ sở ................................................................................... 12
1.1.1 Định nghĩa đồ thị ................................................................................. 12
1.1.2. Đường đi và tính liên thông............................................................... 13
1.1.3. Cây và cây khung của đồ thị ............................................................. 14
1.2 Bài toán tối ưu .................................................................................................. 16
1.2.1 Phát biểu bài toán tối ưu ..................................................................... 16
1.2.2 Một số khái niệm cơ bản..................................................................... 16
1.2.3. Các ký hiệu tiệm cận .......................................................................... 17
1.2.4. Độ phức tạp tính toán của bài toán ................................................... 19
1.3. Các lớp bài toán tối ưu ................................................................................... 19
1.3.1. Một số khái niệm cơ bản.................................................................... 19
1.3.2. Lớp bài toán P, NP và co-NP .............................................................. 20
1.3.3. Quy dẫn ................................................................................................ 21
1.3.4. NP-đầy đủ và NP-khó ......................................................................... 23
1.4. Bài toán cây khung truyền thông tối ưu ....................................................... 24
1.4.1 Phát biểu bài toán cây khung truyền thông tối ưu ........................... 24
1.4.2 Ứng dụng của bài toán ........................................................................ 27

CHƢƠNG 2. GIẢI THUẬT DI TRUYỀN .............................................. 30
2.1 Giải thuật tiến hóa............................................................................................ 30
2.1.1 Lịch sử phát triển ................................................................................. 30
2.1.2 Các phương pháp khác ........................................................................ 31
2.2 Các thành phần chính trong giải thuật di truyền .......................................... 34

1


2.2.1 Nhiễm sắc thể ....................................................................................... 34
2.2.2 Quần thể, thế hệ, tiến hóa ................................................................... 34
2.2.3 Hàm thích nghi ..................................................................................... 35
2.2.4 Các toán tử di truyền ........................................................................... 35
2.2.5 Các thông số khác của giải thuật di truyền ....................................... 36
2.2.6 Giải thuật di truyền đơn giản.............................................................. 38
2.2.7 Không gian tìm kiếm của giải thuật di truyền .................................. 38
2.2.8 Đặc điểm của giải thuật di truyền ...................................................... 39
2.2.9 Ứng dụng của giải thuật di truyền ..................................................... 40
2.3 Các cách biểu diễn NST .................................................................................. 40
2.3.1 Biểu diễn nhị phân ............................................................................... 40
2.3.2 Biểu diễn số nguyên ............................................................................ 41
2.3.3 Biểu diễn giá trị thực và kí tự ............................................................. 42
2.3.4 Biểu diễn cây ........................................................................................ 42
2.3.5 Khởi tạo quần thể ................................................................................. 43
2.4 Các chiến lược lựa chọn.................................................................................. 43
2.4.1 Lựa chọn theo cơ chế quay bánh xe Roulette .................................. 44
2.4.2 Lựa chọn xếp hạng............................................................................... 45
2.4.3 Lựa chọn theo vòng đấu ...................................................................... 46
2.5 Các phương pháp lai ghép NST...................................................................... 46
2.5.1 Lai ghép cho NST mã hóa nhị phân ................................................... 47
2.5.2 Lai ghép NST theo mã hóa hoán vị .................................................... 48
2.6 Các phương pháp đột biến NST ..................................................................... 49
2.6.1 Đột biến theo NST mã hóa nhị phân .................................................. 49
2.6.2 Đột biến theo NST mã hóa hoán vị .................................................... 50
2.7 Các chiến lược nạp lại quần thể ..................................................................... 50
2.7.1 Chiến lược nạp lại hoàn toàn .............................................................. 50

2.7.2 Chiến lược nạp lại ngẫu nhiên............................................................ 51
2.7.3 Chiến lược nạp lại theo mô hình cá thể ưu tú................................... 52

CHƢƠNG 3. THUẬT TOÁN DI TRUYỀN GIẢI .................................. 53
BÀI TOÁN CÂY KHUNG ...................................................................... 53
TRUYỀN THÔNG TỐI ƢU ................................................................... 53
3.1 Các phương pháp mã hóa cây ........................................................................ 53
3.1.1 Phương pháp mã hoá Prufer ............................................................... 54
3.1.2 Phương pháp mã hoá vectơ đặc trưng (Characteristic Vector
Encoding – CV).............................................................................................. 62

2


3.1.3 Phương pháp mã hoá thiên kiến cạnh và nút (Link and Node Biased
- LNB).............................................................................................................. 64
3.1.4 Phương pháp mã hoá NetKey (Network Random Key Encoding –
NetKey)........................................................................................................... 70
3.1.5 Phương pháp mã hoá tập cạnh ........................................................... 74
3.2 Giải thuật di truyền sử dụng mã hóa số Prufer............................................. 79
3.2.1. Khởi tạo quần thể ................................................................................ 79
3.2.2 Lai ghép cá thể ..................................................................................... 79
3.2.3 Toán tử đột biến ................................................................................... 80
3.2.4 Mô tả giải thuật di truyền theo phương pháp mã hóa số Prufer..... 80
3.3 Giải thuật di truyền sử dụng mã hóa vectơ đặc trưng ................................. 81
3.3.1 Khởi tạo quần thể ................................................................................. 81
3.3.2 Lai ghép cá thể ..................................................................................... 81
3.3.3 Toán tử đột biến ................................................................................... 81
3.3.4 Mô tả giải thuật di truyền theo phương pháp mã hóa vectơ đặc
trưng ................................................................................................................ 82

3.4 Giải thuật di truyền sử dụng mã hóa thiên kiến cạnh và nút ...................... 82
3.4.1 Khởi tạo quần thể ................................................................................. 82
3.4.2 Lai ghép cá thể ..................................................................................... 83
3.4.3 Đột biến cá thể ..................................................................................... 83
3.4.4 Mô tả giải thuật di truyền theo mã hóa thiên kiến cạnh và nút ...... 83
3.5 Giải thuật di truyền sử dụng mã hóa NetKey ............................................... 84
3.5.1 Khởi tạo quần thể ................................................................................. 84
3.5.2 Lai ghép cá thể ..................................................................................... 84
3.5.3 Đột biến cá thể ..................................................................................... 84
3.5.4 Mô tả giải thuật di truyền theo mã hóa NetKey ............................... 84
3.6 Giải thuật di truyền sử dụng mã hóa tập cạnh .............................................. 85
3.6.1 Khởi tạo quần thể ................................................................................. 85
3.6.2 Lai ghép cá thể ..................................................................................... 85
3.6.3 Đột biến cá thể ..................................................................................... 85
3.6.4 Mô tả giải thuật di truyền theo mã hóa tập cạnh.............................. 86
3.7 So sánh các phương pháp mã hóa cá thể ...................................................... 86

CHƢƠNG 4. KẾT QUẢ THỰC NGHIỆM ............................................ 91
4.1 Môi trường thực nghiệm ................................................................................. 91
4.1.1 Dữ liệu thực nghiệm ............................................................................ 91
4.1.2 Thông số thực nghiệm ......................................................................... 92
4.1.3 Lựa chọn thông số của các thuật toán ............................................... 93
3


4.1.4 Chương trình thực nghiệm ............................................................... 94
4.2 Kết quả thực nghiệm ....................................................................................... 99
4.2.1 Bảng kết quả thực nghiệm .................................................................. 99
4.4.2 Nhận xét kết quả thực nghiệm.......................................................... 105


KẾT LUẬN ........................................................................................... 106
TÀI LIỆU THAM KHẢO..................................................................... 109

4


DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Chữ viết tắt
CV
EA
EC
GA
LB
LNB
MRCT
NB
NetKey
NST
OCST

Viết đầy đủ
Characteristic Vector Encoding
Evolutionary Algorithm
Evolutionary Computation
Genetic Algorithm
Link-Biased Encoding
Link-Node Biased Encoding
Minimum Routing-Cost Spanning Tree
Node-Biased Encoding
Network Random Key Encoding

Nhiễm Sắc Thể
Optimal Communication Spanning Tree

PROCT

Product-Requirement Optimal
Communication Spanning Tree

SROCT

Sum-Requirement Communication
Optimal Spanning Tree

5

Ý nghĩa
Mã hóa vectơ đặc trưng
Giải thuật tiến hóa
Tính toán tiến hóa
Giải thuật di truyền
Mã hóa thiên kiến cạnh
Mã hóa thiên kiến cạnh và
nút
Cây khung giá định tuyến
cực tiểu
Mã hóa thiên kiến nút
Mã hóa khóa ngẫu nhiên
Cây khung truyền thông
tối ưu
Cây khung truyền thông

với hàm yêu cầu tích tối
ưu
Cây khung truyền thông
với hàm yêu cầu tổng tối
ưu


DANH MỤC HÌNH
Hình 1.1. Đơn đồ thị vô hướng (a) và đa đồ thị vô hướng (b) ........................................ 13
Hình 1.2. Đồ thị có trọng số và một cây khung tương ứng ............................................. 15
Hình 1.3. Đồ thị vô hướng (a) và cây khung tương ứng (b) ........................................... 15
Hình 1.4. Các lớp bài toán P, NP và co-NP ....................................................................... 21
Hình 1.5. Sơ đồ chứng minh quy dẫn ................................................................................ 22
Hình 1.6. Bài toán cir-SAT ................................................................................................. 22
Hình 1.7. Phân lớp tạm thời các bài toán........................................................................... 23
Hình 1.8. Mối quan hệ giữa các bài toán OCT ................................................................. 25
Hình 1.9. Cây khung minh họa cho việc tính giá ............................................................. 26
Hình 2.1. Mối liên hệ giữa các kỹ thuật tìm kiếm ............................................................ 31
Hình 2.2. Cây mã hóa biểu thức a * ((b – 9) / c) ............................................................. 43
Hình 2.3. Xác suất của mỗi NST theo kiểu lựa chọn Roulet. ........................................ 44
Hình 2.4. Lựa chọn xếp hạng .............................................................................................. 46
Hình 2.5. Lai ghép một điểm cắt mã hóa nhị phân ......................................................... 47
Hình 2.6. Lai ghép hai điểm cắt mã hóa nhị phân ............................................................ 47
Hình 2.7. Lai ghép đồng nhất mã hóa nhị phân ................................................................ 48
Hình 2.8. Lai ghép số học mã hóa nhị phân ...................................................................... 48
Hình 2.9. Chiến lược nạp lại hoàn toàn ............................................................................ 51
Hình 2.10. Chiến lược nạp lại ngẫu nhiên ........................................................................ 51
Hình 2.11. Chiến lược nạp lại theo mô hình cá thể ưu tú ................................................ 52
Hình 3.1. Cây khung được mã hoá theo số Prufer=2565 ................................................ 55
Hình 3.2. Minh họa tính cục bộ thấp của mã hóa Prufer ................................................. 57

Hình 3.3. Cây khung, mã hóa Prufer, mã hóa nhị phân tương ứng................................ 58
Hình 3.4. Tỷ lệ xác suất khoảng cách thay đổi giữa cá thể cha mẹ và cá thể con
được mã hóa nhị phân khi thực hiện thay đổi một cạnh bất kỳ ...................................... 59

6


của cây khung có 16 và 32 đỉnh. ........................................................................................ 59
Hình 3.5. Tỷ lệ xác suất khoảng cách thay đổi giữa cá thể cha mẹ và cá thể con
được mã hóa Prufer khi thực hiện thay đổi một cạnh bất kỳ .......................................... 59
của cây khung có 16 và 32 đỉnh. ........................................................................................ 59
Hình 3.6. Tỷ lệ xác suất khoảng cách thay đổi giữa cá thể cha mẹ và cá thể con khi
thực hiện thay đổi một thành phần bất kỳ trong mã hóa nhị phân ................................. 60
với cây khung có 16 và 32 đỉnh. ......................................................................................... 60
Hình 3.7. Tỷ lệ xác suất khoảng cách thay đổi giữa cá thể cha mẹ và cá thể con khi
thực hiện thay đổi một thành phần bất kỳ trong mã hóa số Prufer................................. 60
với cây khung có 16 và 32 đỉnh. ......................................................................................... 60
Hình 3.8. Cây khung với 5 đỉnh.......................................................................................... 62
Hình 3.9. Mã hóa vectơ đặc trưng của cây khung trong hình 3.8 .................................. 63
Hình 3.10. Cây khung tìm thấy trong trường hợp mã hóa thiên kiến cạnh ................... 66
Hình 3.11. Cây khung với các cạnh được đánh thứ tự tương ứng trong mã hóa thiên
kiến cạnh ................................................................................................................................ 67
Hình 3.12. Cây khung thu được theo mã hoá LNB.......................................................... 69
Hình 3.13. Khóa ngẫu nhiên r ............................................................................................. 73
Hình 3.14. Cây thu được theo mã hoá NetKey trong hình 3.13 ..................................... 73
Hình 3.15. Minh họa lai ghép cá thể của phương pháp mã hóa tập cạnh...................... 76
Hình 3.16.Minh họa đột biến sử dụng mã hóa tập cạnh .................................................. 76
Hình 3.17. Lai ghép một điểm cắt cho mã hoá Prufer ..................................................... 79
Hình 3.18. Lai ghép đồng nhất trong mã hoá Prufer với mặt nạ 10110001.................. 80
Hình 4.1. Giao diện chương trình thực nghiệm ................................................................ 99

Hình 4.2. Biểu đồ giá trị tốt nhất đạt được của các phương pháp mã hóa .................. 103
đối với các bộ dữ liệu ......................................................................................................... 103
Hình 4.3. Biểu đồ giá trị trung bình đạt được của các phương pháp mã hóa ............. 103
đối với các bộ dữ liệu ......................................................................................................... 103
Hình 4.4. Biểu đồ giá trị GAP qua các thế hệ của các phương pháp mã hóa ............. 104
đối với các bộ dữ liệu ......................................................................................................... 104

7


Hình 4.5. Biểu đồ thế hệ qua các thế hệ của các phương pháp mã hóa....................... 104
đối với các bộ dữ liệu ......................................................................................................... 104

8


DANH MỤC BẢNG
Bảng 2.1. Mã hóa nhị phân độ dài 20 bit ....................................................................... 41
Bảng 2.2. Biểu diễn số nguyên của NST có chiều dài 8.............................................. 41
Bảng 2.3. Biểu diễn số nguyên của NST có chiều dài 8.............................................. 42
Bảng 2.4. Mặt nạ lai ghép đồng nhất ............................................................................. 48
Bảng 2.5. Lai ghép một điểm cắt mã hóa hoán vị ........................................................ 49
Bảng 2.6. Phép đảo bit mã hóa nhị phân ....................................................................... 50
Bảng 2.7. Hoán vị thứ tự mã hóa hoán vị ...................................................................... 50
Bảng 3.1. Bảng đánh giá về tính dư thừa trong các cách mã hoá............................... 88
Bảng 4.1. Đặc điểm của các phương án tối ưu ............................................................. 92
Bảng 4.2. Kích thước quần thể sử dụng đối với các bộ dữ liệu.................................. 93
Bảng 4.3. Bảng tổng hợp kết quả thực nghiệm. ......................................................... 102

9



PHẦN MỞ ĐẦU
Bài toán cây khung truyền thông tối ưu (Optimal Communication Spanning
Tree - OCST) là một bài toán có nhiều ứng dụng trong thực tế như trong thiết kế
mạng đơn giản, thiết kế mạng/vận tải …
Ngay từ khi mới được đưa ra vào năm 1974 bởi HU cho đến nay, đã có rất
nhiều phương pháp được đề xuất với bài toán này: phương pháp tìm kiếm có hoặc
không có heuristic, giải thuật leo đồi… Một trong các hướng tiếp cận đang được
quan tâm là sử dụng giải thuật di truyền (Genetic Algorithm – GA) để tìm lời giải
xấp xỉ.
Ý tưởng của giải thuật di truyền xuất phát từ nguyên lý “chọn lọc tự nhiên”
trong học thuyết về sự tiến hóa của Darwin. Giải thuật này đã được áp dụng cho các
bài toán tối ưu tổ hợp và tối ưu số như: bài toán người du lịch, bài toán cái túi, bài
toán vận tải,… Giải thuật di truyền thường mang lại những lời giải tốt trong thời
gian chấp nhận được. Giải thuật này cho kết quả khá khả quan, và đối với bài toán
OCST, giải thuật này cũng cho lời giải tương đối tốt so với một số phương pháp
khác.
Với mục đích tìm hiểu về giải thuật di truyền nói chung và giải thuật di
truyền áp dụng cho bài toán OCST nói riêng, luận văn được chia làm 4 phần: phần
đầu nói đến các khái niệm liên quan như đồ thị, cây khung, bài toán tối ưu và phát
biểu bài toán; phần hai, nêu về giải thuật di truyền: từ tổng quan một giải thuật di
truyền đến các thao tác, chiến thuật lựa chọn, các thông số cho giải thuật di truyền;
phần ba, nêu các phương pháp mã hoá cây khung để áp dụng giải thuật di truyền: đó
là phương pháp mã hoá Prufer, mã hóa vectơ đặc trưng, mã hóa thiên kiến cạnh, mã
hóa thiên kiến nút, mã hóa thiên kiến cạnh và nút, mã hóa NetKey, mã hóa tập cạnh.
Mỗi phương pháp đều có nhận xét về ưu, nhược điểm của cách mã hoá đó; phần
bốn, là phần cài đặt thực nghiệm. Trên cơ sở lý thuyết và kết quả thực nghiệm, luận

10



văn đã chỉ ra sự ảnh hưởng của các phương pháp mã hóa đối với sự hội tụ, đa dạng
và thiên kiến của giải thuật di truyền.

11


CHƢƠNG 1. PHÁT BIỂU BÀI TOÁN
1.1 Một số khái niệm cơ sở
Những ý tưởng cơ bản về đồ thị được nhà toán học Leonhard Euler từ thế kỷ
thứ XVIII. Mặc dù lý thuyết đồ thị đã được phát triển từ rất lâu nhưng lại có nhiều
ứng dụng thực tế và hiện đại. Đặc biệt trong khoảng vài chục năm trở lại đây, với sự
ra đời máy tính điện tử và sự phát triển nhanh chóng của tin học, lý thuyết đồ thị
ngày càng được quan tâm đến nhiều hơn.

1.1.1 Định nghĩa đồ thị
Đồ thị là một cấu trúc rời rạc bao gồm các đỉnh và các cạnh nối các đỉnh này.
Đồ thị được mô tả hình thức dưới dạng
G = (V, E)
 V gọi là tập các đỉnh.
 E là tập các cạnh. Có thể coi E là tập các cặp (u, v) với u và v là các đỉnh
thuộc V.
 Mỗi cạnh e  E của đồ thị G được gán một số thực w(e), gọi là độ dài hay
trọng số của cạnh.
 Nếu (u, v)  E thì u và v được gọi là hai đỉnh kề nhau.
Các loại đồ thị khác nhau được phân biệt bởi kiểu và số lượng cạnh nối hai
đỉnh của đồ thị.
Định nghĩa 1.1. Đơn đồ thị vô hướng G = (V, E) bao gồm V là tập khác rỗng chứa
các đỉnh, E là tập các cặp không có thứ tự gồm hai phần tử khác nhau của V gọi là

các cạnh.
Định nghĩa 1.2. Đa đồ thị vô hướng G = (V, E) bao gồm V là tập khác rỗng chứa
các đỉnh, E là họ các cặp không có thứ tự gồm hai phần tử khác nhau của V gọi là

12


các cạnh. Hai cạnh e 1 và e 2 được gọi là cạnh lặp nếu chúng cùng tương ứng với
một cặp đỉnh.
Mỗi đơn đồ thị đều là đa đồ thị, nhưng không phải đa đồ thị nào cũng là đơn
đồ thị.

(b)

(a)

Hình 1.1. Đơn đồ thị vô hướng (a) và đa đồ thị vô hướng (b)
Ngoài ra, để mô hình hóa được nhiều bài toán trong thực tế, còn có các loại
đồ thị khác, bao gồm: đơn (đa) đồ thị có hướng, giả đồ thị. Đồ thị được gọi là có
hướng nếu các cạnh trong E được định hướng (gọi là các cung). Trong đồ thị có
hướng, có thể có cung nối từ đỉnh u đến đỉnh v nhưng chưa chắc đã có cung nối từ
đỉnh v đến đỉnh u. Khi đó, tập E là tập (họ) các cặp có thứ tự gồm hai phần tử khác
nhau của V. Đối với giả đồ thị, tập cạnh là tập các cặp đỉnh không nhất thiết phải
khác nhau, cạnh có hai đầu mút là cùng một đỉnh được gọi là khuyên.

1.1.2. Đƣờng đi và tính liên thông
Định nghĩa 1.3. Đường đi độ dài n từ đỉnh u đến đỉnh v, trong đó n là số nguyên
dương, trên đồ thị vô hướng G = (V, E) là dãy:
x0 , x1, … xn-1, xn
trong đó u = x 0, v = x n, (xi, x i+1 )  E, i = 0, 1, 2, …, n – 1. Đỉnh u được gọi là đỉnh

đầu, còn đỉnh v gọi là đỉnh cuối của đường đi.

13


Đường đi có đỉnh đầu trùng với đỉnh cuối (tức là u = v) được gọi là chu
trình. Đường đi hay chu trình được gọi là đơn nếu như không có cạnh nào bị lặp
lại.
Đƣờng đi đơn là đường đi mà các đỉnh trên nó là khác nhau từng đôi một.
Đƣờng đi cơ bản là đường đi mà các đỉnh trên nó là khác nhau từng đôi
một.
Chu trình là đường đi cơ bản có đỉnh đầu trùng với đỉnh cuối.
Để xác định xem có luôn tồn tại đường đi giữa hai đỉnh bất kỳ của đồ thị vô
hướng hay không, người ta đưa ra khái niệm đồ thị vô hướng liên thông.
Định nghĩa 1.4. Đồ thị vô hướng G = (V, E) được gọi là liên thông nếu luôn tìm
được đường đi giữa hai đỉnh bất kỳ của nó.

1.1.3. Cây và cây khung của đồ thị
Định nghĩa 1.5. Cây là đồ thị vô hướng, liên thông và không chứa chu trình.
Đồ thị vô hướng, không chứa chu trình, không liên thông được gọi là rừng
(hợp của nhiều cây). Khi đó mỗi thành phần liên thông của đồ thị này là một cây.
Đƣờng kính của cây: là độ dài đường đi đơn dài nhất giữa hai đỉnh bất kỳ
trên cây.
Định nghĩa 1.6. Cho G = (V, E) là một đồ thị vô hướng liên thông với |V| = n đỉnh
và |E| = m cạnh. Cây T = (V, F) với F  E được gọi là cây khung của đồ thị G.
Dễ thấy rằng một đồ thị vô hướng liên thông bất kỳ có thể có nhiều hơn một
cây khung. Người ta đã chứng minh được rằng đồ thị Kn có số cây khung là n n-2.
Trọng số của cây khung: nếu mỗi cạnh e  E của đồ thị G được gán một số
thực w(e), gọi là trọng số của cạnh, thì trọng số của cây khung T là giá trị được tính
bởi công thức:

14


W(T) =

 w(e)
eT

Hình 1.2. Đồ thị có trọng số và một cây khung tương ứng
Cây hình sao là cây mà một nút sẽ có đường liên kết tới tất cả các nút còn
lại. Nút đó được gọi là nút trung tâm hay nút gốc, có bậc là n-1, các nút còn lại được
gọi là các nút lá có bậc là 1.
Cây dạng danh sách có hai nút bậc 1 (nút lá), các nút còn lại đều là bậc 2.
Số lượng cây danh sách có thể có là

1 n!
2

Bậc của một nút trên cây bất kỳ có thể là số trong khoảng từ 1 đến n-1.
Trong mọi trường hợp, đối với bậc của các nút trên cây ta có đẳng thức:
n

 deg( i)  2(n  1)
i 1

Cây khung nhỏ nhất (MST- Minimum Spanning Tree): cây khung nhỏ
nhất của G là cây khung T có W(T) nhỏ nhất.

(a)


(b)

Hình 1.3. Đồ thị vô hướng (a) và cây khung tương ứng (b)

15


Hình 1.3b biểu diễn một cây khung của đồ thị trong hình 1.3a. Cây khung này
có đường kính là 4 (là độ dài đường đi từ đỉnh 1 đến đỉnh 5) và có trọng số là 7.

1.2 Bài toán tối ƣu
1.2.1 Phát biểu bài toán tối ƣu
Bài toán tối ưu cực đại có dạng như sau:
max{ f ( x) : x  D}

trong đó:
D

: là không gian tìm kiếm (thông thường là không gian con của

không gian Euclide, và là tập các ràng buộc );
x  D : lời giải khả thi;
f (x) : hàm mục tiêu hay hàm chi phí.

Bài toán tối ưu cũng còn được phát biểu dưới dạng bài toán cực tiểu hoá:
min{ f ( x) : x  D} .

Trên thực tế, việc tìm cực đại của hàm f là tương đương với việc tìm cực
tiểu của hàm g=-f. Ta có đẳng thức sau
max f(x) = - min g(x) = -min (-f(x)).


1.2.2 Một số khái niệm cơ bản
Các vấn đề kỹ thuật thường được khái quát dưới dạng bài toán tính toán để
tiện cho việc nghiên cứu và giải quyết. Bài toán tính toán là mối quan hệ giữa đầu
vào (những yếu tố cho trước của bài toán) và đầu ra (những kết quả tính toán cần
đạt được) của bài toán.
Định nghĩa 1.7. Bài toán tính toán F là ánh xạ từ các xâu nhị phân độ dài hữu hạn
vào tập các xâu nhị phân độ dài hữu hạn: F: {0,1}* → {0,1}*.
Ở đây, các yếu tố dữ liệu là đầu vào và đầu ra của bài toán được biểu diễn
bằng xâu nhị phân. Mọi dạng dữ liệu (số, kí tự, xâu, mảng, tập hợp…) đều có thể
mã hóa được bằng xâu nhị phân.
16


×