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
Trang 1Mẫu 1a MẪU BÌA LUẬN VĂN CÓ IN CHỮ NHŨ VÀNG Khổ 210 x 297 mm
Trang 3BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 4LỜ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
Trang 5LỜ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
Trang 6TÓ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
Trang 7quả 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ã
Trang 8hó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à
2
P nhỏ (P11,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 ( P11)
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
Trang 9 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
Trang 10MỤ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
Trang 112.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
Trang 123.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
Trang 134.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
Trang 14DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT
CV Characteristic Vector Encoding Mã hóa vectơ đặc trưng
LNB Link-Node Biased Encoding Mã hóa thiên kiến cạnh và
nút
MRCT Minimum Routing-Cost Spanning Tree Cây khung giá định tuyến
cực tiểu
NetKey Network Random Key Encoding Mã hóa khóa ngẫu nhiên
Cây khung truyền thông với hàm yêu cầu tích tối
ưu
SROCT
Sum-Requirement Communication Optimal Spanning Tree
Cây khung truyền thông với hàm yêu cầu tổng tối
ưu
Trang 15DANH 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
Trang 16củ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
Trang 17Hì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
Trang 18DANH 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
Trang 19PHẦ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
Trang 20vă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
Trang 21CHƯƠ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
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à
Trang 22các cạnh Hai cạnh e1 và e2 đượ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ị
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, … x n-1 , x n
trong đó u = x0, v = x n , (x i , 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
Trang 23Đườ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ị K n 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:
Trang 24W(T) =
T e e
w )(
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à !
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:
) 1 ( 2 ) deg(
i
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)
Trang 25Hì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 xD
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 );
D
x : lời giải khả thi;
)
(x
f : 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 xD 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
Trang 26Bài toán chỉ ra mối quan hệ giữa đầu vào và đầu ra, nhưng để đạt được đầu
ra từ đầu vào cho trước thì phải sử dụng các thuật toán để giải bài toán đó
Định nghĩa 1.8 Thuật toán giải bài toán đặt ra là một thủ tục xác định bao gồm
một dãy hữu hạn các bước cần thực hiện để thu được đầu ra cho một đầu vào cho trước của bài toán
Với mọi thuật toán, bên cạnh tính đúng đắn, thì độ phức tạp tính toán của thuật toán đó cũng là một yếu tố rất được quan tâm
Định nghĩa 1.9 Độ phức tạp tính toán của một thuật toán là lượng tài nguyên tính
toán mà thuật toán đó sử dụng để thực hiện công việc Có hai loại tài nguyên cần quan tâm khi đánh giá độ phức tạp tính toán của thuật toán là bộ nhớ và thời gian
Ngày nay, do sự phát triển của công nghệ chế tạo bộ nhớ, vấn đề tài nguyên
bộ nhớ cho thuật toán thường ít được tập trung hơn vấn đề về thời gian tính toán Thời gian chạy thực tế của một thuật toán phụ thuộc vào nhiều yếu tố: cấu hình máy, ngôn ngữ cài đặt và cách thức cài đặt thuật toán, trình biên dịch và dữ liệu vào, trong đó dữ liệu vào là yếu tố quan trọng và đặc trưng nhất, được dùng để so sánh hiệu quả của thuật toán Để tạo ra sự thống nhất trong cách đánh giá thời gian tính của thuật toán, chỉ xét đến yếu tố kích thước dữ liệu vào khi đánh giá
1.2.3 Các ký hiệu tiệm cận
Các kí hiệu tiệm cận thường hay sử dụng khi đánh giá độ phức tạp tính toán của thuật toán gồm có: Θ, Ο, Ω Phần này sẽ nhắc lại định nghĩa và một số tính chất của các tiệm cận
Định nghĩa 1.10 Cho các hàm f(n) và g(n) là các hàm số của số n nguyên dương,
Kí hiệu Θ(g(n)) biểu diễn tập các hàm
Θ(g(n)) = {f(n) : tồn tại các hằng số dương c1, c2 và n0 sao cho 0 ≤
c1g(n) ≤ f(n) ≤ c2g(n), với mọi n ≥ n0} g(n) được gọi là đánh giá tiệm cận đúng của f(n) hay f(n) có bậc là g(n)
Trang 27 Kí hiệu Ο(g(n)) biểu diễn tập các hàm
Ο(g(n)) = {f(n) : tồn tại các hằng số dương c và n0 sao cho f(n) ≤
cg(n), với mọi n ≥ n0} g(n) được gọi là là cận trên tiệm cận của f(n) hay f(n)
có bậc không quá g(n)
Kí hiệu Ω(g(n)) biểu diễn tập các hàm
Ω(g(n)) = {f(n) : tồn tại các hằng số dương c và n0 sao cho cg(n) ≤
f(n), với mọi n ≥ n0} g(n) được gọi là cận dưới tiệm cận của f(n) hay f(n) có bậc ít nhất là g(n)
Để sử dụng các kí hiệu tiệm cận ở trên trong việc đánh giá thời gian tính của các thuật toán, các quy ước sau được sử dụng:
Nếu thuật toán có thời gian tính trong tình huống nhanh nhất (tốt nhất) là
t(n) với kích thước dữ liệu đầu vào là n và t(n) = Ω(g(n)) thì thời gian tính
tốt nhất của thuật toán có bậc không nhỏ hơn g(n) hay thời gian tính tốt nhất của thuật toán là Ω(g(n))
Nếu thuật toán đòi hỏi thời gian tính trong tình huống chậm nhất (tồi
nhất) là t(n) với n là kích thước dữ liệu đầu vào và t(n) = O(g(n)) thì thời gian tính tồi nhất của thuật toán sẽ có bậc không quá g(n) hay thời gian tính tồi nhất của thuật toán là O(g(n))
Nếu thuật toán đòi hỏi thời gian tính trung bình là t(n) với n là kích thước
dữ liệu vào và t(n) = O(g(n)) thì thời gian tính trung bình của thuật toán
có bậc không quá g(n) hay thời gian tính trung bình của thuật toán là
O(g(n))
Thông thường khi nói thuật toán có thời gian tính là O(f(n)), thì hiểu là thời gian tính của thuật toán đánh giá trong tình huống tồi nhất là O(f(n)) Còn khi nói thuật toán có thời gian tính là Ω(f(n)), thì hiểu đánh giá thời gian tính của thuật toán trong tình huống tốt nhất là Ω(f(n))
Trang 281.2.4 Độ phức tạp tính toán của bài toán
Định nghĩa 1.11 Độ phức tạp tính toán của một bài toán là thời gian tính (ở đây
chỉ quan tâm đến đánh giá thời gian thực hiện, bỏ qua đánh giá về yêu cầu bộ nhớ) của thuật toán tốt nhất trong số tất cả các thuật toán giải bài toán đó
Với một bài toán chắc chắn sẽ còn những thuật toán chưa biết, vậy làm thế nào để biết được thời gian tính của thuật toán tốt nhất? Có 2 cách để giải quyết vấn
1.3 Các lớp bài toán tối ƣu
1.3.1 Một số khái niệm cơ bản
Định nghĩa 1.12 Thuật toán có thời gian tính đa thức là thuật toán mà độ phức tạp
thời gian của nó trong trường hợp xấu nhất được giới hạn trên bởi một hàm đa thức của kích thước dữ liệu đầu vào (kích thước dữ liệu đầu vào được tính bằng số bit
cần thiết để biểu diễn nó) Tức là nếu n là kích thước dữ liệu đầu vào, thì luôn tồn tại một đa thức p n sao cho
Trang 29Các thuật toán có độ phức tạp thời gian trong trường hợp xấu nhất sau không
có thời gian tính đa thức
O(f(n)) = 2n 20.01n 2 n n!
Định nghĩa 1.13 Bài toán quyết định là bài toán mà đầu ra của nó chỉ có thể là
“yes” hoặc “no” (0 hoặc 1, đúng hoặc sai, …)
Định nghĩa 1.14 Xét bài toán tối ưu hóa (P) max{f(x): x D} Ta gọi bài toán
dạng quyết định tương ứng với bài toán tối ưu (P) là bài toán quyết định sau:
(PD) “Cho giá trị K Hỏi có tìm được u D sao cho f(u) ≥ K hay không?”
Bài toán tối ưu và bài toán quyết định của nó có mối liên hệ được phát biểu trong định lý sau:
Định lý 1.1 Nếu bài toán quyết định tương ứng với một bài toán tối ưu có thể giải
được hiệu quả (chẳng hạn bằng thuật toán có thời gian tính đa thức) thì bài toán tối
ưu đó cũng giải được hiệu quả (bằng thuật toán thời gian tính đa thức)
Định nghĩa 1.15 Ta gọi bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời
“yes” cho bộ dữ liệu vào “yes” của bài toán là một bằng chứng có độ dài bị chặn bởi một đa thức bậc cố định của độ dài dữ liệu đầu vào của bài toán, và việc kiểm tra nó là bằng chứng xác nhận câu trả lời “yes” đối với đầu vào đã cho của bài toán có thể thực hiện xong sau thời gian đa thức
1.3.2 Lớp bài toán P, NP và co-NP
Dưới đây là phân loại các lớp của bài toán
Định nghĩa 1.16 P là lớp bài toán quyết định có thể được giải quyết trong thời
gian đa thức
Hay nói cách khác, P là lớp các bài toán có thể được giải một cách nhanh
chóng
Trang 30Định nghĩa 1.17 NP là lớp bài toán quyết định mà để xác nhận câu trả lời là
“yes” của nó, có thể đưa ra bằng chứng ngắn ngọn dễ kiểm tra
Hay có thể nói NP là lớp các bài toán mà có thể kiểm tra câu trả lời “yes”
một cách nhanh chóng trong thời gian đa thức nếu đã có được lời giải
Hiển nhiên ta có P NP, tuy nhiên xác định xem NP P hay không hiện
vẫn chưa có lời giải
Định nghĩa 1.18 co-NP là lớp bài toán mà để xác nhận câu trả lời “no” thì có thể
đưa ra bằng chứng ngắn gọn dế kiểm tra
Như vậy có thể thấy co-NP là lớp bài toán hoàn toàn ngược với lớp NP Có
thể miêu tả mối quan hệ giữa ba lớp bài toán trên như trong hình sau:
Hình 1.4 Các lớp bài toán P, NP và co-NP
1.3.3 Quy dẫn
Định nghĩa 1.19 Giả sử A và B là hai bài toán quyết định Ta nói bài toán A có thể
quy dẫn sau thời gian đa thức về bài toán B nếu tồn tại thuật toán thời gian đa thức
R cho phép biến đổi bộ dữ liệu vào x của A thành bộ dữ liệu vào R(x) của B sao cho
x là bộ dữ liệu “yes” của A khi và chỉ R(x) là bộ dữ liệu “yes” của B
P co-NP
NP
Trang 31Hình 1.5 Sơ đồ chứng minh quy dẫn
Ký hiệu A B được dùng để chỉ bài toán A có thể quy dẫn về bài toán B Phép quy dẫn thường dùng để so sánh độ khó của hai bài toán Nếu A quy dẫn được
về B thì A không khó hơn B Nếu A là khó (theo nghĩa chưa tìm được thuật toán thời gian tính đa thức để giải A) thì B cũng là khó, còn nếu B là dễ (nghĩa là đã có thuật toán thời gian tính đa thức giải B) thì A cũng là dễ
Ví dụ: Bài toán cir-SAT: Cho một mạch logic với đầu vào gồm n giá trị, hỏi
có tồn tại một đầu vào của mạch để đầu ra của mạch luôn là TRUE, hay mạch luôn đưa ra FALSE
Hình 1.6 Bài toán cir-SAT
Trên đây là một bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời 'yes' của bài toán Cho một dãy đầu vào mạch logic, ta có thể tinh được giá trị đầu ra sau thời gian tính đa thức bằng cách duyệt đồ thị
Trang 32Như vậy cir-SAT thuộc NP Ta có:
Mọi bài toán trong NP đều có thể tính được nhờ mạch logic
Mạch logic có số thành phần giới hạn bởi đa thức và vì thế cũng có thể giải quyết được trong thời gian đa thức
Trên đây, chỉ là tư tưởng để chứng minh rằng bài toán cir-SAT thuộc lớp
NP-đầy đủ Tuy nhiên, vào năm 1971, định lí này đã được Cook chứng minh
1.3.4 NP-đầy đủ và NP-khó
Định nghĩa 1.20 Một bài toán quyết định A được gọi là NP - đầy đủ nếu như A là
bài toán trong NP và mọi bài toán trong NP đều có thể quy dẫn về A
Định nghĩa 1.21 Một bài toán A được gọi là NP - khó nếu như sự tồn tại thuật toán
đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để giải mọi bài toán trong
NP
Nói cách khác, nếu có thể giải một bài toán NP-khó nào đó một cách nhanh
chóng, thì cũng có thể nhanh chóng giải quyết bất kỳ một bài toán nào khác Bài
toán NP-khó ít nhất là khó bằng bất cứ một bài toán nào trong NP NP-đầy đủ là những bài toán khó nhất trong NP Hình 1.7 biểu diễn cách phân lớp tạm thời các
Trang 331.4 Bài toán cây khung truyền thông tối ƣu
1.4.1 Phát biểu bài toán cây khung truyền thông tối ƣu
Bài toán cây khung truyền thông tối ƣu (Optimal Communication
Spanning Tree Problem - OCST) được phát biểu như sau:
Cho G (V,E,w) là đồ thị vô hướng với hàm trọng số w Bên cạnh đó là hàm
yêu cầu ( v u, ) cho mỗi cặp đỉnh Với mỗi cây khung T của G, giá truyền thông
giữa 2 đỉnh được tính bằng hàm yêu cầu nhân với độ dài đường đi giữa 2 đỉnh đó
trên cây T, và giá của cây khung T là tổng giá truyền thông của tất cả các cặp đỉnh
Mục đích của chúng ta là xây dựng cây khung với giá truyền thông là nhỏ nhất Tức
là chúng ta tìm cây khung T sao cho:
Hàm yêu cầu trong bài toán OCST có thể là hàm không âm bất kì Bằng cách
giới hạn hàm yêu cầu thì chúng ta có nhiều trường hợp của bài toán này Chúng ta định nghĩa thêm hàm r:V Z0 là hàm trọng số đỉnh cho trước và S V là tập bao gồm k đỉnh nguồn cho trước:
i (u,v) 1 với mọi u,vV: Đây là bài toán cây khung giá định tuyến cực tiểu
(Minimum Routing- Cost Spanning Tree - MRCT)
ii (u,v) r(u)r(v)với mọi u,vV : Đây là bài toán cây khung truyền thông với
hàm yêu cầu tích tối ưu (Optimal Product - Requirement Communication
Spanning Tree - PROCT )
iii (u,v) r(u) r(v)với mọi u,vV : Đây là bài toán cây khung truyền thông
với hàm yêu cầu tổng tối ưu ( Optimal Sum - Requirement Communication
Spanning Tree - SROCT)
iv (u,v) 0nếu uS : Đây là bài toán OCT p-source ( p - source OCT), hay
nói cách khác là ta đi tìm cây khung có
S
),(),(
d v u
Trang 34v (u,v) 1 nếu uS và (u,v) 0 nếu ngược lại Đây là bài toán p-source
MRCT ( p-source MRCT) Nói cách khác mục đích của chúng ta là tìm cây
khung cực tiểu
S
),(
d
Hình 1.8 Mối quan hệ giữa các bài toán OCT
Tuy nhiên, vì hàm yêu cầu ( v u, ) thường được cho dưới dạng ma trận )
T j i
r
, ,
, ) (trong đó d(p T,j) là tổng trọng số của các cạnh trên đường đi duy nhất từ i đến j và là dạng tổng quát của tất cả những bài toán OCT đã liệt kê ở trên
Trang 35Với đồ thị có 6 nút và ma trận trọng số và ma trận yêu cầu được cho như sau: (ma trận trọng số và ma trận yêu cầu thường có dạng ma trận tam giác trên)
và một cây khung của đồ thị này có dạng:
Hình 1.9 Cây khung minh họa cho việc tính giá
Giá của cây khung này sẽ là:
ij d
) , (
Trang 36Như đã nói ở trên, bài toán cây khung truyền thông tối ưu được Garey và
Johnson chỉ ra là thuộc lớp bài toán NP-khó (1979) sau đó được chứng minh là thuộc lớp MAXSNP-khó
Khi áp dụng giải thuật di truyền thì không gian kiểu hình chính là không gian cây khung và khoảng cách kiểu hình là khoảng cách giữa hai cây khung đó Khoảng
cách Hamming d h giữa hai cây chỉ ra chính xác số các cạnh khác nhau trên hai cây
đó
Như vậy, khoảng cách nhỏ nhất giữa hai cây là d h
=2
Để đơn giản, chúng ta định nghĩa khoảng cách d i,j = {0,1, n-1} giữa 2 cây
G i , G j là một nửa số lượng các đường liên kết khác nhau (d i,j = ½d h i,j), tức là:
v
j uv i uv V
v
j uv i
1.4.2 Ứng dụng của bài toán
Bài toán được ứng dụng trong một số bài toán thiết kế mạng đơn giản và một
số bài toán vận tải cụ thể
Bài toán thiết kế mạng đơn giản được phát biểu như sau:
Đầu vào:
Số nút mạng n,
Vị trí của các nút,
Yêu cầu truyền thông giữa n nút này,
Khả năng (lưu lượng) của liên kết
Giá của liên kết phụ thuộc vào khả năng và độ dài của đường liên kết đó
Yêu cầu xác định:
o Topology (cấu trúc) mạng,
o Định tuyến giao thông qua mạng
Trang 37Như vậy, chúng ta định nghĩa một mạng như là một đồ thị với n nút và có tối
đa n1) liên kết giữa các nút này Nếu mạng là kết nối đầy đủ thì nó có ít nhất
(n-1) liên kết Chúng ta giả sử rằng các liên kết này đều là vô hướng (tuy nhiên ta cũng
có thể áp dụng trong trường hợp có hướng) và mạng luôn là liên thông Như vậy, số
lượng tối đa các liên kết có thể có là n(n-1)/2 Khoảng cách giữa hai nút được tính
toán theo khoảng cách Euclid:
2 2
)(
)
trong đó x, y là các toạ độ trong hệ trục toạ độ Carter
Mục đích của mạng là để vận chuyển các đối tượng, như hàng hoá hay thông tin, từ nút này đến nút khác trong mạng Do đó, cần thiết phải có các luật để định tuyến giao thông qua mạng Các luật này phải dựa trên các thuật toán định tuyến
Nếu số lượng các liên kết trong mạng liên thông đầy đủ lớn hơn n-1, việc định
tuyến giao thông qua mạng có thể thay đổi tự động phụ thuộc vào tình trạng tải, độ
trễ, lỗi của các nút mạng hay một cài điều kiện khác Ngược lại, nếu chỉ có n-1
đường liên kết thì theo định lí DaisyChain, sẽ chỉ có một đường đi duy nhất từ nút này đến mỗi nút kia trong mạng và do đó việc định tuyến là không cần thiết
Dễ dàng thấy được lợi ích của việc sử dụng cây là:
Thể hiện cấu trúc mạng với số liên kết ít nhất mà vẫn đạt được đồ thị liên thông
Không cần định tuyến tự động vì chỉ có đường đi duy nhất giữa hai nút mạng
Kích thước không gian tìm kiếm n 2
Trang 38Các bài toán thiết kế mạng/vận tải trên thực tế:
Bài toán 1:
Giả sử rằng mỗi đỉnh v biểu diễn một thành phố và r(v) là số dân của thành
phố đó Đó là lí do vì sao mà ta giả sử rằng yêu cầu truyền thông/vận tải giữa các
cặp đỉnh tỉ lệ thuận với tích (tổng) của trọng số của hai đỉnh đó PROCT, SROCT là
cấu trúc cây với giá truyền thông cực tiểu
Bài toán 2:
Đối với mỗi nút trong mạng đều có một thông điệp riêng truyền đến các nút khác và tổng thông điệp nhận được sẽ tỉ lệ thuận với trọng lượng (khả năng nhận) của nút nhận Với giả sử này thì giá liên thông của cây sẽ là:
v
d v r
,
) , ( )
Trang 39CHƯƠNG 2 GIẢI THUẬT DI TRUYỀN
2.1 Giải thuật tiến hóa
2.1.1 Lịch sử phát triển
Tính toán tiến hóa (Evolutionary Computation) là các kỹ thuật tìm kiếm
theo xác suất có ý tưởng 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, và các kỹ thuật về gen Các kỹ thuật này được áp dụng cho một quần thể bao gồm các cá thể nhân tạo, chúng chiến đấu trong cuộc đấu tranh sinh tồn trong đó các cá thể thích nghi nhất sẽ sống sót và cho phép sản sinh ra các cá thể mới
Tính toán tiến hóa được giới thiệu vào đầu những năm 1960 trong “Các
chiến lược tiến hóa” của I Rechenberg Vào giữa những năm 1970, Holland cùng
các sinh viên và đồng sự đã đưa ra giải thuật di truyền (Genetic algorithms – GA) và giới thiệu nó trong cuốn sách “Sự thích nghi trong tự nhiên và trong các hệ thống
nhân tạo” Năm 1992, John Koza đã sử dụng giải thuật di truyền để giải quyết một
số bài toán và gọi phương pháp này là “Lập trình di truyền – Genetic
Programming”
Tính toán tiến hóa là ngẫu nhiên, nhưng không phải là ngẫu nhiên một cách đơn thuần Nó duyệt qua không gian tìm kiếm, sử dụng các thông tin đã có để đoán xem chỗ nào có thể sẽ có kết quả tốt hơn Các giải thuật tiến hóa rất thích hợp cho
các bài toán chưa có lời giải tối ưu Đặc biệt, đối với các bài toán NP-khó, giải thuật
di truyền là phương pháp giải quyết tốt nhất hiện tại được biết đến Theo thời gian, giải thuật di truyền đã được sử dụng để giải rất nhiều bài toán như là bài toán người
du lịch, sắp xếp thời khóa biểu,… Hình 2.1 cho ta thấy mối liên hệ giữa các kỹ thuật tìm kiếm
Trang 40Hình 2.1 Mối liên hệ giữa các kỹ thuật tìm kiếm
Chiến lược tiến hoá (Evolutionary Algorithm – EA) do T Baeck,
F.H.Hofmeister và H.P.Schwefel đề xuất Thuật toán này dựa trên một số chiến lược ban đầu, tiến hoá để tạo ra những chiến lược mới phù hợp với môi trường thực
tế một cách tốt nhất
Giải thuật di truyền (Genetic Algorithm – GA) do John Holland đưa ra và
được ông phát triển cùng với các đồng nghiệp và sinh viên vào những năm 1970
Cuốn sách "Sự thích nghi trong các hệ tự nhiên và nhân tạo” (Adaption in Natural
and Artificial Systems) xuất bản năm 1975 đã tổng hợp các kết quả của quá trình
nghiên cứu và phát triển đó
Năm 1992, John Koza đã dùng GA để xây dựng các chương trình giải quyết một số bài toán và gọi phương pháp này là "Lập trình di truyền" (Genetic
Programming)
2.1.2 Các phương pháp khác
Có 3 dạng cơ bản của bài toán tìm kiếm, đó là:
i Tìm kiếm trong dữ liệu đã được lưu trữ Ở đây, chúng ta cần thực hiện việc tìm kiếm sao cho có hiệu quả để lấy được thông tin từ một cơ sở dữ liệu lớn, được lưu trữ trong bộ nhớ máy tính chẳng hạn
Các kỹ thuật tìm kiếm
Dựa trên tính toán Ngẫu nhiên Đếm
Trực tiếp Gián tiếp
Fibonacci New ton Tham lam
Quy hoạch động Giải thuật tiến hóa
Giải thuật luyện thép
Chiến lược tiến hóa Lập trình tiến hóa Giải thuật di truyền (GA)
GA tuần tự
GA song song
Song song tự động (nhờ trình dịch)
Song song hạt thô Song song hạt tinh Song song toàn cục