Việc đề xuất thuật toán dạng metaheuristic giải bài toán MRCST có ý nghĩa quan trọng, một mặt, nhằm giải quyết những bài toán ứng dụng thực tiễn vừa nêu; mặt khác, còn là cơ sở để giải
Trang 1
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS Nguyễn Đức Nghĩa
Hà Nội –2015
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nghiên cứu
được trình bày trong luận án là hoàn toàn trung thực và chưa từng được ai công bố trong bất kỳ
công trình nào khác
Trang 4Tôi xin trân trọng cảm ơn các thầy cô ở Bộ môn Khoa học máy tính Viện Công nghệ Thông tin
và Truyền thông trường Đại học Bách khoa Hà Nội đã giúp đỡ tôi trong hơn 5 năm làm nghiên cứu sinh tại Bộ môn Các thầy cô đã nhiệt tình hướng dẫn tôi thực hiện các học phần tiến sĩ, các chuyên đề tiến sĩ, tiểu luận tổng quan; tham dự các buổi seminar định kỳ, các buổi bảo vệ luận
án tiến sĩ các cấp và có những góp ý quý báu để tôi hoàn thiện luận án này
Tôi xin trân trọng cảm ơn các thầy cô trong và ngoài trường đã tham gia đọc và nhận xét luận
án ở các cấp Bộ môn, cấp Cơ sở, cấp phản biện độc lập, cấp Trường; đã cho tôi những ý kiến quý báu để tôi hoàn thiện luận án này
Trân trọng cảm ơn Ban Giám hiệu trường Đại học Sài Gòn, các đồng nghiệp tại khoa Công nghệ Thông tin trường Đại học Sài Gòn và gia đình đã tạo điều kiện và giúp đỡ tôi trong thời gian tôi làm nghiên cứu sinh
Hà Nội, tháng 5-2015 Tác giả luận án
Phan Tấn Quốc
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT vii
DANH MỤC CÁC BẢNG ix
DANH MỤC CÁC HÌNH VẼ xi
MỞ ĐẦU 1
Chương 1 TỔNG QUAN 5
1.1.BÀI TOÁN MRCST 5
1.1.1.Một số định nghĩa 5
1.1.2.Thuật toán tính chi phí định tuyến của cây khung 7
1.1.3.Đánh giá chi phí định tuyến của cây khung 9
1.2.ỨNG DỤNG 11
1.2.1.Ứng dụng của bài toán MRCST trong lĩnh vực thiết kế mạng 11
1.2.2.Ứng dụng của bài toán MRCST trong lĩnh vực tin sinh học 11
1.3.CÁC NGHIÊN CỨU LIÊN QUAN BÀI TOÁN MRCST 12
1.3.1.Thuật toán giải đúng 12
1.3.2.Thuật toán gần đúng cận tỉ lệ 13
1.3.3.Thuật toán heuristic 16
1.3.4.Thuật toán metaheuristic 18
1.3.5.Danh sách các thuật toán giải bài toán MRCST hiện biết 25
1.4.TIÊU CHÍ ĐÁNH GIÁ THUẬT TOÁN 26
1.5.HỆ THỐNG DỮ LIỆU THỰC NGHIỆM CHUẨN 29
1.5.1.Đồ thị đầy đủ Euclid 30
1.5.2.Đồ thị đầy đủ ngẫu nhiên 30
1.5.1.Đồ thị thưa 31
1.6.KHẢO SÁT THỰC NGHIỆM CÁC THUẬT TOÁN GIẢI BÀI TOÁN MRCST 32
1.6.1.Cấu hình máy tính thực nghiệm các thuật toán 32
1.6.2.Chất lượng lời giải 32
1.6.3.Thời gian tính 34
1.6.4.Hình vẽ minh họa so sánh chất lượng của các thuật toán hiện biết 36
Trang 61.7.KẾT LUẬN CHƯƠNG 1 37
Chương 2 THUẬT TOÁN TÌM KIẾM LEO ĐỒI 39
2.1.CÂY KHUNG LÂN CẬN 39
2.2.THUẬT TOÁN HCSRI 40
2.2.1.Ý tưởng thuật toán HCSRI 40
2.2.2.Sơ đồ thuật toán HCSRI 41
2.2.3.Độ phức tạp của thuật toán HCSRI 42
2.3.THUẬT TOÁN HCSIR 42
2.3.1.Ý tưởng thuật toán HCSIR 42
2.3.2.Sơ đồ thuật toán HCSIR 43
2.3.3.Độ phức tạp của thuật toán HCSIR 44
2.4.THỰC NGHIỆM VÀ ĐÁNH GIÁ 45
2.4.1.Môi trường thực nghiệm 45
2.4.2.Tham số thực nghiệm 45
2.4.3.Chất lượng lời giải 45
2.4.4.Thời gian tính 51
2.4.5.Hình vẽ minh họa chất lượng HCSRI, HCSIR với các thuật toán khác 53
2.5.KẾT LUẬN CHƯƠNG 2 55
Chương 3 THUẬT TOÁN DI TRUYỀN 56
3.1.THUẬT TOÁN GST 56
3.1.1.Tạo quần thể ban đầu 56
3.1.2.Phép lai 57
3.1.3.Phép đột biến 60
3.1.4.Phép chọn lọc 62
3.1.5.Sơ đồ thuật toán GST 63
3.1.6.Độ phức tạp của thuật toán GST 64
3.2.THỰC NGHIỆM VÀ ĐÁNH GIÁ 64
3.2.1.Môi trường thực nghiệm 64
3.2.2.Tham số thực nghiệm 65
3.2.3.Chất lượng lời giải 65
3.2.4.Thời gian tính 69
3.2.5.Hình vẽ minh họa chất lượng thuật toán GST với các thuật toán khác 70
3.3.KẾT LUẬN CHƯƠNG 3 73
Chương 4 THUẬT TOÁN TÌM KIẾM TABU 74
Trang 74.1.THUẬT TOÁN TST 74
4.1.1.Ý tưởng và một số khái niệm của thuật toán tìm kiếm Tabu 74
4.1.2.Thuật toán TST tìm bước chuyển tốt nhất 75
4.1.3.Thuật toán TST cập nhật danh sách Tabu 76
4.1.4.Chiến lược đa dạng hóa lời giải của thuật toán TST 76
4.1.5.Sơ đồ của thuật toán TST 77
4.1.6.Độ phức tạp của thuật toán TST 79
4.2.THỰC NGHIỆM VÀ ĐÁNH GIÁ 79
4.2.1.Môi trường thực nghiệm 79
4.2.2.Tham số thực nghiệm 79
4.2.3.Chất lượng lời giải 80
4.2.4.Thời gian tính 84
4.2.5.Hình vẽ minh họa chất lượng thuật toán TST với các thuật toán khác 86
4.3.KẾT LUẬN CHƯƠNG 4 88
Chương 5 THUẬT TOÁN BẦY ONG 89
5.1.THUẬT TOÁN BẦY ONG CƠ BẢN 89
5.2.THUẬT TOÁN BST 91
5.2.1.Tạo quần thể ban đầu 91
5.2.2.Phân nhóm các cá thể 92
5.2.3.Tìm cây khung lân cận 93
5.2.4.Chiến lược đa dạng hóa lời giải 95
5.2.5.Sơ đồ của thuật toán BST 96
5.2.6.Độ phức tạp của thuật toán BST 98
5.3.THỰC NGHIỆM VÀ ĐÁNH GIÁ 98
5.3.1.Môi trường thực nghiệm 98
5.3.2.Tham số thực nghiệm 98
5.3.3.Chất lượng lời giải 99
5.3.4.Thời gian tính 104
5.3.5.Hình vẽ minh họa chất lượng thuật toán BST với các thuật toán khác 106
5.3.6.Hình vẽ minh họa độ lệch chuẩn của các thuật toán 109
5.4.KẾT LUẬN CHƯƠNG 5 111
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 112
KẾT LUẬN 112
HƯỚNG PHÁT TRIỂN 113
Trang 8DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN 114
TÀI LIỆU THAM KHẢO 115
PHỤ LỤC KẾT QUẢ THỰC NGHIỆM TỪ CÁC CÔNG TRÌNH LIÊN QUAN 119
PL1 KẾT QUẢ THỰC NGHIỆM CÁC THUẬT TOÁN WONG, ADD, CAMPOS 119
PL2 KẾT QUẢ THỰC NGHIỆM CÁC THUẬT TOÁN ESCGA, BCGA 122
PL3 KẾT QUẢ THỰC NGHIỆM CÁC THUẬT TOÁN SHC, PBLS 123
PL4 KẾT QUẢ THỰC NGHIỆM CÁC THUẬT TOÁN PABC, ABC+LS 126
PL5 SO SÁNH CHI PHÍ ĐỊNH TUYẾN CỦA CÁC THUẬT TOÁN 128
Trang 9DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Từ viết tắt Tiếng Anh Tiếng Việt
MRCST Minimum Routing Cost Spanning
Tree
Cây khung chi phí định tuyến nhỏ nhất
Spanning Tree
Cây khung truyền thông tối ưu
BDMRCST Benchmark Data For MRCST Bộ dữ liệu chuẩn cho bài toán MRCST
SHC Stochastic Hill Climber Search
Algorithm
Thuật toán tìm kiếm leo đồi ngẫu nhiên
LS Local Search Algorithm Thuật toán tìm kiếm địa phương
TABU Tabu Search Algorithm Thuật toán tìm kiếm Tabu
PABC Artificial Bee Colony Algorithm Thuật toán bầy ong nhân tạo
ABC+LS Artificial Bee Colony Algorithm +
Local Search
Thuật toán bầy ong nhân tạo kết hợp với thuật toán tìm kiếm địa phương
Branch and Bound Algorithm Thuật toán nhánh cận Column Generation Method Phương pháp sinh cột
PTAS Polynomial Time Approximation
Scheme
Sơ đồ xấp xỉ thời gian đa thức
α -Approximation Algorithm Thuật toán gần đúng cận tỉ lệ α
MSA Multiple Sequence Alignments So sánh đa trình tự
HCSRI HCSRI-MRCST Thuật toán tìm kiếm leo đồi dạng loại
trước-chèn sau giải bài toán MRCST
Trang 10HCSIR HCSIR-MRCST Thuật toán tìm kiếm leo đồi dạng chèn
trước-loại sau giải bài toán MRCST
Trang 11DANH MỤC CÁC BẢNG
Bảng 1.1 Danh sách các thuật toán điển hình giải bài toán MRCST 26
Bảng 1.2.a Thông tin các đồ thị đầy đủ Euclid trong BDMRCST 30
Bảng 1.2.b Thông tin các đồ thị đầy đủ ngẫu nhiên trong BDMRCST 31
Bảng 1.2.c Thông tin các đồ thị thưa trong BDMRCST 31
Bảng 1.3 Cấu hình máy tính thực nghiệm các thuật toán 32
Bảng 1.4.a Thời gian tính các thuật toán trước khi quy đổi 35
Bảng 1.4.b Thời gian tính các thuật toán sau khi quy đổi 35
Bảng 2.1 Kết quả thực nghiệm thuật toán HCSRI, HCSIR trên đồ thị đầy đủ Euclid 48
Bảng 2.2 Kết quả thực nghiệm HCSRI, HCSIR trên đồ thị đầy đủ ngẫu nhiên 49
Bảng 2.3 Kết quả thực nghiệm các thuật toán HCSRI, HCSIR trên đồ thị thưa 49
Bảng 2.4 So sánh chi phí định tuyến thuật toán HCSRI với các thuật toán khác 50
Bảng 2.5 So sánh chi phí định tuyến thuật toán HCSIR với các thuật toán khác 51
Bảng 2.6 So sánh thời gian tính thuật toán HCSRI với các thuật toán khác 52
Bảng 2.7 So sánh thời gian tính thuật toán HCSIR với các thuật toán khác 53
Bảng 3.1 Kết quả thực nghiệm thuật toán GST trên đồ thị đầy đủ Euclid 67
Bảng 3.2 Kết quả thực nghiệm thuật toán GST trên đồ thị đầy đủ ngẫu nhiên 68
Bảng 3.3 Kết quả thực nghiệm thuật toán GST trên đồ thị thưa 68
Bảng 3.4 So sánh chi phí định tuyến thuật toán GST với các thuật toán khác 69
Bảng 3.5 So sánh thời gian tính thuật toán GST với các thuật toán khác 70
Bảng 4.1 Kết quả thực nghiệm thuật toán TST trên đồ thị đầy đủ Euclid 82
Bảng 4.2 Kết quả thực nghiệm TST trên đồ thị đầy đủ ngẫu nhiên 83
Bảng 4.3 Kết quả thực nghiệm thuật toán TST trên đồ thưa 83
Bảng 4.4 So sánh chi phí định tuyến thuật toán TST với các thuật toán khác 84
Bảng 4.5.a So sánh thời gian tính của thuật toán TST với các thuật toán dạng cá thể 85
Bảng 4.5.b So sánh thời gian tính của thuật toán TST với các thuật toán dạng quần thể 85
Bảng 5.1 Kết quả thực nghiệm thuật toán BST trên đồ thị đầy đủ Euclid 101
Bảng 5.2 Kết quả thực nghiệm thuật toán BST trên đồ thị đầy đủ ngẫu nhiên 102
Bảng 5.3 Kết quả thực nghiệm thuật toán BST trên đồ thị thưa 102
Bảng 5.4 So sánh thực nghiệm của thuật toán BST với các thuật toán đơn lời giải 103
Bảng 5.5 So sánh thực nghiệm của thuật toán BST với các thuật toán đa lời giải 104
Bảng 5.6 Các bộ dữ liệu BST cho lời giải chất lượng tốt hơn thuật toán ABC+LS 104
Trang 12Bảng 5.7 So sánh thời gian tính thuật toán BST với các thuật toán đơn lời giải 106
Bảng 5.8 So sánh thời gian tính thuật toán BST với các thuật toán đa lời giải 106
PL1.a Thực nghiệm WONG, ADD, CAMPOS trên đồ thị đầy đủ Euclid 120
PL1.b Thực nghiệm WONG, ADD, CAMPOS trên đồ thị đầy đủ ngẫu nhiên 121
PL1.c Thực nghiệm thuật toán WONG, ADD, CAMPOS trên đồ thị thưa 121
PL2.a Thực nghiệm thuật toán ESCGA, BCGA trên đồ thị đầy đủ Euclid 122
PL2.b Kết quả thực nghiệm ESCGA, BCGA trên đồ thị đầy đủ ngẫu nhiên 123
PL3.a Kết quả thực nghiệm thuật toán SHC, PBLS trên đồ thị đầy đủ Euclid 124
PL3.b Kết quả thực nghiệm thuật toán SHC, PBLS trên đồ thị đầy đủ ngẫu nhiên 125 PL3.c Kết quả thực nghiệm các thuật toán SHC, PBLS trên đồ thị thưa 125
PL4.a Kết quả thực nghiệm thuật toán PABC, ABC+LS trên đồ thị đầy đủ Euclid 126 PL4.b Kết quả thực nghiệm PABC, ABC+LS trên đồ thị đầy đủ ngẫu nhiên 127
PL4.c Kết quả thực nghiệm thuật toán ABC+LS trên đồ thị thưa 127
PL5 So sánh chi phí định tuyến cho tất cả các thuật toán 129
Trang 13DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Minh họa cách tính chi phí định tuyến của một cây theo định nghĩa 6
Hình 1.2 Minh họa cho thuật toán tìm chi phí định tuyến của một cây khung 8
Hình 1.3 Đồ thị vô hướng liên thông có trọng số 14
Hình 1.4 Cây đường đi ngắn nhất xuất phát từ v1 15
Hình 1.5 Minh họa chất lượng của các thuật toán qua bộ dữ liệu e50-01 36
Hình 1.6 Minh họa chất lượng của các thuật toán qua bộ dữ liệu e100-01 36
Hình 1.7 Minh họa chất lượng của các thuật toán qua bộ dữ liệu e250-01 36
Hình 1.8 Minh họa chất lượng của các thuật toán qua bộ dữ liệu rand100-01 37
Hình 1.9 Minh họa chất lượng của các thuật toán qua bộ dữ liệu rand300-01 37
Hình 2.1 Minh họa chất lượng HCSRI, HCSIR và các thuật toán khác qua e50-01 53
Hình 2.2 Minh họa chất lượng HCSRI, HCSIR và các thuật toán khác qua e100-01 53
Hình 2.3 Minh họa chất lượng HCSRI, HCSIR và các thuật toán khác qua e250-01 54
Hình 2.4 Minh họa chất lượng HCSRI, HCSIR và các thuật toán khác qua rand100-01 54
Hình 2.5 Minh họa chất lượng HCSRI, HCSIR và các thuật toán khác qua rand300-01 54
Hình 2.6 Minh họa chất lượng HCSRI, HCSIR và các thuật toán khác qua steinc-01 55
Hình 2.7 Minh họa chất lượng HCSRI, HCSIR và các thuật toán khác qua steind-01 55
Hình 3.1 Minh họa chất lượng GST và các thuật toán khác qua bộ dữ liệu e50-01 70
Hình 3.2 Minh họa chất lượng GST và các thuật toán khác qua bộ dữ liệu e100-01 71
Hình 3.3 Minh họa chất lượng GST và các thuật toán khác qua bộ dữ liệu e250-01 71
Hình 3.4 Minh họa chất lượng GST và các thuật toán khác qua bộ dữ liệu rand100-01 71
Hình 3.5 Minh họa chất lượng GST và các thuật toán khác qua bộ dữ liệu rand300-01 72
Hình 3.6 Minh họa chất lượng GST và các thuật toán khác qua bộ dữ liệu steinc-01 72
Hình 3.7 Minh họa chất lượng GST và các thuật toán khác qua bộ dữ liệu steind-01 72
Hình 4.1 Minh họa chất lượng TST và các thuật toán khác qua bộ dữ liệu e50-01 86
Hình 4.2 Minh họa chất lượng TST và các thuật toán khác qua bộ dữ liệu e100-01 86
Hình 4.3 Minh họa chất lượng TST và các thuật toán khác qua bộ dữ liệu e250-01 86
Hình 4.4 Minh họa chất lượng TST và các thuật toán khác qua bộ dữ liệu rand100-01 87
Hình 4.5 Minh họa chất lượng TST và các thuật toán khác qua bộ dữ liệu rand300-01 87
Hình 4.6 Minh họa chất lượng TST và các thuật toán khác qua bộ dữ liệu steinc-01 87
Hình 4.7 Minh họa chất lượng TST và các thuật toán khác qua bộ dữ liệu steind-01 88
Hình 5.1 Minh họa chất lượng BST và các thuật toán khác qua bộ dữ liệu e50-01 106
Trang 14Hình 5.2 Minh họa chất lượng BST và các thuật toán khác qua bộ dữ liệu e100-01 107
Hình 5.3 Minh họa chất lượng BST và các thuật toán khác qua bộ dữ liệu e250-01 107
Hình 5.4 Minh họa chất lượng BST và các thuật toán khác qua bộ dữ liệu rand100-01 107 Hình 5.5 Minh họa chất lượng BST và các thuật toán khác qua bộ dữ liệu rand300-01 108 Hình 5.6 Minh họa chất lượng BST và các thuật toán khác qua bộ dữ liệu steinc-01 108
Hình 5.7 Minh họa chất lượng BST và các thuật toán khác qua bộ dữ liệu steind-01 108
Hình 5.8 Minh họa độ lệch chuẩn của các thuật toán qua bộ dữ liệu e50-01 109
Hình 5.9 Minh họa độ lệch chuẩn của các thuật toán qua bộ dữ liệu e100-01 109
Hình 5.10 Minh họa độ lệch chuẩn của các thuật toán qua bộ dữ liệu e250-01 109
Hình 5.11 Minh họa độ lệch chuẩn của các thuật toán qua bộ dữ liệu rand100-01 110
Hình 5.12 Minh họa độ lệch chuẩn của các thuật toán qua bộ dữ liệu rand300-01 110
Hình 5.13 Minh họa độ lệch chuẩn của các thuật toán qua bộ dữ liệu steinc-01 110
Hình 5.14 Minh họa độ lệch chuẩn của các thuật toán qua bộ dữ liệu steind-01 111
Trang 15MỞ ĐẦU
Tối ưu hóa mạng liên quan đến nhiều lĩnh vực như toán ứng dụng, khoa học máy tính, vận trù học, kỹ thuật, mạng truyền thông,… Nhiều bài toán thực tế trong lĩnh vực mạng truyền thông, chẳng hạn như bài toán cây khung truyền thông tối ưu (Optimal Communication Spanning
Trees - OCST), bài toán cây Steiner nhỏ nhất (Steiner Minimal Trees - SMT), bài toán cây khung nhỏ nhất với đường kính bị chặn (Bounded Diameter Minimum Spanning Trees - BDMST) [20],
bài toán cây khung với chi phí định tuyến nhỏ nhất (Minimum Routing Cost Spanning Trees -
MRCST) đã được chứng minh thuộc lớp bài toán NP-khó hoặc NP-đầy đủ
MRCST là một bài toán tối ưu đồ thị nổi tiếng; bài toán này lần đầu tiên được giới thiệu bởi T
C Hu vào năm 1974 qua bài báo “Optimum communication spanning trees” [37] Bài toán MRCST được xem là một trường hợp đặc biệt của bài toán cây khung truyền thông tối ưu khi
mà lượng cầu truyền thông giữa tất cả mọi cặp đỉnh của bài toán OCST đều bằng nhau [9,10,37]
Mô hình toán học của bài toán MRCST có thể phát biểu như sau: Cho G là một đồ thị vô hướng liên thông có chi phí định tuyến không âm trên cạnh Giả sử T là một cây khung của G Chi phí định tuyến cho mỗi cặp đỉnh trên T được định nghĩa là tổng các chi phí định tuyến trên các cạnh của đường đi đơn nối chúng trên T và chi phí định tuyến của T được định nghĩa là tổng của tất
cả các chi phí định tuyến giữa mọi cặp đỉnh của T Bài toán MRCST đặt ra là tìm một cây khung
có chi phí định tuyến nhỏ nhất trong số tất cả các cây khung của G [10] Bài toán MRCST đã được chứng minh thuộc lớp bài toán NP-khó [10,13,37]
Bài toán MRCST có nhiều ứng dụng trong lĩnh vực thiết kế mạng truyền thông
[7,10,15,27,31,33], chẳng hạn bài toán xây dựng các hệ thống mạng nhằm tối ưu chi phí đường
đi trung bình giữa các nút mạng; đặc biệt là ở các mạng ngang hàng – khi mà các nút có xác
suất truyền tin và độ ưu tiên là như nhau Bài toán MRCST cũng tìm được những ứng dụng quan
trọng trong lĩnh vực tin sinh học [10,41]
Việc đề xuất thuật toán dạng metaheuristic giải bài toán MRCST có ý nghĩa quan trọng, một
mặt, nhằm giải quyết những bài toán ứng dụng thực tiễn vừa nêu; mặt khác, còn là cơ sở để giải
quyết những bài toán cây khung tối ưu dạng NP-khó khác trên đồ thị
Trang 16Bài toán MRCST đã thu hút được sự quan tâm nghiên cứu của nhiều nhà khoa học trong hơn bốn mươi năm qua Hiện nay đã có hàng loạt thuật toán giải bài toán MRCST được đề xuất và có thể chia chúng làm các hướng tiếp cận sau: Hướng thứ nhất là các thuật toán tìm lời giải đúng
Hướng tiếp cận giải đúng phát triển trên thuật toán nhánh cận được đề xuất bởi R Dionne và M Florian vào năm 1979 [30], thuật toán nhánh cận kết hợp với phương pháp sinh cột được đề xuất bởi Matteo Fischetti, Giuseppe Lancia, Paolo Serafini vào năm 2002 [24] Các thuật toán giải
đúng chỉ có thể giải được bài toán MRCST đối với đồ thị có không quá 40 đỉnh và do đó tính ứng dụng thực tiễn của nó không cao [1,24,30] Hướng thứ hai là các thuật toán tìm lời giải gần đúng cận tỉ lệ, như thuật toán WONG được đề xuất bởi Richard T Wong vào năm 1980 [31], thuật toán GENERAL STAR được đề xuất bởi Bang Ye Wu và Kun-Mao Chao vào năm 1999 [8], sơ đồ xấp xỉ thời gian đa thức – PTAS được đề xuất bởi Bang Ye Wu và Kun-Mao Chao
vào năm 2004 [10], thuật toán xấp xỉ xử lý song song được đề xuất bởi Ching-Lueh Chang và Yuh-Dauh Lyuu vào năm 2008 [12], thuật toán gần đúng cận tỉ lệ được đề xuất bởi Alexandra Hochuli, Stephan Holzer, Roger Wattenhofer năm 2014 [4] Ưu điểm của các thuật toán này là
có sự đảm bảo về mặt toán học theo nghĩa lời giải tìm được gần đúng một cận tỉ lệ α nào đó so
với lời giải tối ưu Hướng thứ ba là các thuật toán heuristic, bao gồm thuật toán ADD được đề xuất bởi Vic Grout vào năm 2005 [41], thuật toán CAMPOS được đề xuất bởi Rui Campos và Manuel Ricardo vào năm 2008 [33] Các thuật toán ADD, CAMPOS có độ phức tạp thời gian tính tốt nhất trong số tất cả các thuật toán giải bài toán MRCST hiện biết Thuật toán CAMPOS tìm được lời giải với chất lượng tốt hơn so với các thuật toán WONG ở một số loại đồ thị cụ thể Hướng thứ tư là các thuật toán metaheuristic Hướng tiếp cận metaheuristic phát triển trên các
thuật toán di truyền, thuật toán tìm kiếm địa phương và thuật toán bầy ong Hướng tiếp cận này
bao gồm thuật toán di truyền mã hóa dạng cạnh – ESCGA được đề xuất bởi Bryant A Julstrom vào năm 2005 [11], thuật toán di truyền mã hóa dạng dãy số Prüfer – BCGA được đề xuất bởi Bryant A Julstrom vào năm 2005 [11], thuật toán tìm kiếm leo đồi ngẫu nhiên – SHC được đề
xuất bởi Bryant A Julstrom vào năm 2005 [11], thuật toán tìm kiếm địa phương có sử dụng
chiến lược đa dạng hóa lời giải – PBLS được đề xuất bởi Alok Singh vào năm 2008 [5], thuật toán tìm kiếm địa phương– CYCLELS được đề xuất bởi Steffen Wolf và Peter Merz vào năm
2010 [36], thuật toán bầy ong (Artificial Bee Colony - PABC) [6] và thuật toán bầy ong kết hợp với thuật toán tìm kiếm địa phương (ABC+LS) cùng được đề xuất bởi Alok Singh vào năm 2011
[6] – hai thuật toán này được phát triển dựa vào sơ đồ của thuật toán Artificial Bee Colony (ABC) [16,17] Các thuật toán metaheuristic này cho lời giải với chất lượng tốt hơn các thuật toán giải gần đúng còn lại Tuy nhiên, hiệu quả của các thuật toán metaheuristic chủ yếu được đánh giá thông qua thực nghiệm mà chưa chứng minh được về mặt toán học Thời gian tính các
Trang 17thuật toán metaheuristic là chậm hơn rất nhiều so với các thuật toán WONG [10,31], ADD [41], CAMPOS [33]
Mục đích của luận án là phát triển một số thuật toán gần đúng dạng metaheuristic giải bài toán
MRCST cho chất lượng lời giải tốt hơn so với các thuật toán có cùng cỡ thời gian tính hoặc đòi hỏi thời gian tính ít hơn khi so sánh với các thuật toán có chất lượng lời giải tương đương hoặc đưa ra lời giải tốt nhất mới cho một số bộ dữ liệu thực nghiệm chuẩn
Các kết quả nghiên cứu của luận án đã được công bố ở 4 bài báo tạp chí và 2 bài báo hội nghị chuyên ngành Các kết quả chính đạt được của luận án là:
Thứ nhất, đề xuất hai thuật toán dạng tìm kiếm leo đồi giải bài toán MRCST là thuật toán HCSRI-MRCST (viết tắt là HCSRI) và thuật toán HCSIR-MRCST (viết tắt là HCSIR); các đề xuất này nhằm giải quyết hiệu quả bài toán MRCST ứng với các loại đồ thị thưa và đồ thị đầy đủ ngẫu nhiên Các thuật toán HCSRI, HCSIR cho chất lượng lời giải tương đương với các thuật toán
metaheuristic mới nhất nhưng với thời gian tính nhanh hơn; xét trên toàn bộ hệ thống dữ liệu
thực nghiệm chuẩn; các thuật toán HCSRI, HCSIR cho chất lượng lời giải luôn tốt hơn các thuật toán trước đó WONG, ADD, CAMPOS, ESCGA, BCGA
Thứ hai, đề xuất một thuật toán dạng thuật toán di truyền giải bài toán MRCST là MRCST (viết tắt là GST) Thuật toán GST đề xuất phép lai và phép đột biến mới, có định hướng
GA-cao đến chi phí định tuyến; các phép lai và phép đột biến này có tính đa dạng và tính tăng cường
cao hơn so với các thuật toán di truyền đã được công bố trước đó như ESCGA, BCGA Thuật toán GST cho lời giải với chất lượng tốt hơn và thời gian tính nhanh hơn các thuật toán di truyền ESCGA, BCGA; thuật toán GST cho lời giải với chất lượng tốt hơn các thuật toán WONG, ADD, CAMPOS, SHC
Thứ ba, đề xuất một thuật toán dạng tìm kiếm Tabu giải bài toán MRCST là TABU-MRCST (viết tắt là TST); đây là vận dụng đầu tiên của tìm kiếm Tabu vào việc giải bài toán MRSCT Thuật toán TST thừa kế được những ưu điểm của thuật toán tìm kiếm Tabu trong việc giải bài toán tối ưu, thuật toán TST đề xuất một chiến lược đa dạng mới Thuật toán TST cho chất lượng lời giải tốt hơn các thuật toán đã được công bố trước đó như WONG, ADD, CAMPOS, SHC, PBLS, ESCGA, BCGA trên mọi bộ dữ liệu; thuật toán TST cho lời giải chất lượng tương đương thuật toán PBLS trên các đồ thị đầy đủ Euclid nhưng với thời gian tính nhanh hơn
Thứ tư, đề xuất một thuật toán dạng thuật toán bầy ong giải bài toán MRCST là MRCST (viết tắt là BST) Thuật toán BST đề xuất mới các chiến lược tăng cường hóa và đa dạng hóa; thuật toán BST là vận dụng đầu tiên của thuật toán bầy ong cơ bản [14] vào việc giải bài
Trang 18BEE-toán MRCST Thuật BEE-toán BST cho chất lượng lời giải tốt hơn và thời gian tính nhanh hơn các thuật toán metaheuristic đã công bố như ESCGA, BCGA, PABC, ABC+LS trên hệ thống dữ liệu thực nghiệm chuẩn
Luận án được trình bày trong 5 chương
Chương 1 trình bày tổng quan về bài toán MRCST, các ứng dụng của bài toán MRCST,
khảo sát các công trình nghiên cứu liên quan và hệ thống dữ liệu thực nghiệm chuẩn cho bài
toán MRCST
Chương 2 đề xuất các thuật toán dạng tìm kiếm leo đồi HCSRI, HCSIR giải bài toán MRCST
Chương 3 đề xuất thuật toán di truyền GST giải bài toán MRCST
Chương 4 đề xuất thuật toán tìm kiếm Tabu TST giải bài toán MRCST
Chương 5 đề xuất thuật toán bầy ong BST giải bài toán MRCST
Luận án cũng phân tích ưu nhược điểm của từng thuật toán đối với từng loại dữ liệu thực nghiệm
cụ thể và qua đó định hướng phạm vi áp dụng cho từng thuật toán đề xuất Phụ lục của luận án ghi nhận kết quả thực nghiệm của các công trình nghiên cứu liên quan cho đến thời điểm hiện tại
Trang 19Chương 1 TỔNG QUAN
Chương này giới thiệu tổng quan về bài toán cây khung với chi phí định tuyến nhỏ nhất
(Minimum Routing Cost Spanning Tree – MRCST), các ứng dụng của bài toán MRCST, khảo sát các thuật toán giải bài toán MRCST, các tiêu chí đánh giá chất lượng một thuật toán giải gần đúng và hệ thống dữ liệu thực nghiệm chuẩn được sử dụng cho bài toán MRCST.
1.1.BÀI TOÁN MRCST
1.1.1.Một số định nghĩa
Cho G = (V(G), E(G)) là một đồ thị vô hướng, liên thông, có trọng số không âm trên cạnh; trong
đó V(G) là tập gồm n đỉnh, E(G) là tập gồm m cạnh, w(e) là trọng số của cạnh e, e E(G) Trong suốt luận án này, nếu G là đồ thị, thì ký hiệu V(G) sẽ được sử dụng để chỉ tập đỉnh, còn E(G) sẽ được sử dụng để chỉ tập cạnh của đồ thị G
Định nghĩa 1.1 [10] (Chi phí định tuyến giữa một cặp đỉnh) Cho T = (V(T), E(T)) là một cây
khung của G, trọng số trên cạnh e được hiểu là chi phí định tuyến của cạnh e, ta gọi chi phí định tuyến (routing cost) của một cặp đỉnh (u,v) trên T, ký hiệu là d T (u,v), là tổng chi phí định tuyến của các cạnh trên đường đi đơn (duy nhất) nối đỉnh u với đỉnh v trên cây T
Định nghĩa 1.2 [10] (Chi phí định tuyến của một cây khung) Cho T = (V(T), E(T)) là một cây
khung của G, chi phí định tuyến của T, ký hiệu là C(T), là tổng chi phí định tuyến giữa mọi cặp đỉnh thuộc cây T, tức là:
Bài toán MRCST: Cho đồ thị G được định nghĩa như trên, bài toán đặt ra là trong số tất cả các
cây khung của đồ thị G cần tìm một cây khung có chi phí định tuyến nhỏ nhất
Trang 20Bài toán này được đặt tên là bài toán cây khung với chi phí định tuyến nhỏ nhất (Minimum Routing Cost Spanning Tree-MRCST) [10] Bài toán MRCST đã được chứng minh thuộc lớp bài toán NP-khó, nghĩa là ngoại trừ P = NP, không tồn tại thuật toán đa thức để giải nó
Việc tính chi phí định tuyến của một cây khung trực tiếp theo công thức (1-1) đòi hỏi thời gian
tính O(n2) theo cấu trúc dữ liệu ma trận trọng số Tuy nhiên, trên cơ sở đưa ra khái niệm tải
định tuyến (routing load), công trình [10] đã chỉ ra cách tính chi phí định tuyến của một cây khung với độ phức tạp tuyến tính theo cấu trúc dữ liệu cây có gốc
Định nghĩa 1.3 [10] (Tải định tuyến một cạnh của cây khung) Cho T = (V(T), E(T)) là một cây
khung của đồ thị G Nếu loại khỏi cây T một cạnh e thì T sẽ được tách ra thành hai cây con T1
và T2 với hai tập đỉnh tương ứng là V(T1) và V(T2) Ta gọi tải định tuyến của cạnh e, ký hiệu là l(T,e), là giá trị 2×V(T1)×V(T2)
Từ định nghĩa, dễ thấy rằng tải định tuyến của cạnh e chính bằng số lượng đường đi trên cây T
có chứa cạnh e
Trang 21Định lý 1.1 sau cho ta cách tính chi phí định tuyến của cây khung thông qua tải định tuyến của các cạnh
Định lý 1.1 [10] Cho T là một cây khung của G, ta có:
) (
)(),()
(
T E e
e w e T l T
và chi phí định tuyến của cây khung T có thể tính được trong thời gian O(n)
Chứng minh Định lý này đã được chứng minh trong [10] Ở đây chúng tôi trình bày một cách
chứng minh dựa trên ý nghĩa của tải định tuyến
) , ( )
(
T V v u
T u v d T
) ( ) , ( )
(
T E e
e w e T l T
C
Công thức (1-2) cho thấy việc tính chi phí định tuyến của cây khung T đòi hỏi thời gian O(n)
nếu ta có tải định tuyến của các cạnh Việc tính tải định tuyến của các cạnh có thể thực hiện với
thời gian O(n) bằng cách chọn một đỉnh nào đó của T làm gốc và tiến hành duyệt cây T theo
thứ tự sau [5,10] Thuật toán tính chi phí định tuyến của cây khung được trình bày chi tiết trong mục tiếp theo
1.1.2.Thuật toán tính chi phí định tuyến của cây khung
Việc tính chi phí định tuyến của cây khung T dựa theo công thức (1-2) với độ phức tạp tuyến
tính đã được đề cập ở các công trình [5,6,10,33] Ở đây, chúng tôi trình bày thuật toán tính chi phí định tuyến của cây khung một cách chi tiết hơn các công trình kể trên ở góc độ kỹ thuật
Trang 22Thuật toán 1.1 dưới đây cho phép tính chi phí định tuyến của một cây khung
Algorithm 1.1 Thuật toán tính chi phí định tuyến của một cây khung
RoutingCost(T)
Đầu vào: Cây khung T được biểu diễn là cây có gốc tại v1
Đầu ra: Chi phí định tuyến của cây khung T
1 if (T = ) return +; // Qui ước cây rỗng có chi phí +
2 Thực hiện duyệt cây T theo chiều sâu (Depth First Search) bắt đầu từ đỉnh v1 ta thu được
biểu diễn của T dưới dạng cây có gốc tại đỉnh v1 Gọi n u là số lượng đỉnh của cây con có
gốc là u Với mỗi đỉnh u của cây T, u v1, ký hiệu e u = (p(u) , u); trong đó p(u) là cha của u trong cây T
Ví dụ 1.2 Tính chi phí định tuyến của cây khung T ở hình 1.1 theo thuật toán 1.1
Duyệt cây T theo chiều sâu bắt đầu từ đỉnh v1, thông tin thu được cho mỗi đỉnh u là cặp (n u,
p(u)) được ghi bên cạnh mỗi đỉnh như chỉ ra trong hình 1.2 sau đây:
2 Hình 1.2 Minh họa cho thuật toán tìm chi phí định tuyến của một cây khung
Trang 23Vòng lặp for trong thuật toán sẽ thực hiện bước lặp lần lượt với u {v2, v3, v4, v5, v6} như sau:
Từ đó, thuật toán trả lại chi phí định tuyến của cây khung là C = 234
RoutingCost là thủ tục quan trọng được sử dụng trong tất cả các thuật toán giải bài toán MRCST Các thuật toán giải bài toán MRCST thường xuyên thực hiện thao tác loại một cạnh của cây
khung và sau đó thêm một cạnh khác sao cho kết quả thu được là một cây khung có chất lượng tốt hơn hoặc là thêm một cạnh vào cây khung và sau đó loại một cạnh trong chu trình vừa mới hình thành sao cho kết quả thu được là một cây khung có chất lượng tốt hơn Các thao tác này mặc dù chỉ đem lại sự thay đổi nhỏ về mặt cấu trúc cây, nhưng để tính chi phí định tuyến của
cây khung thu được sau mỗi thao tác trên vẫn đòi hỏi độ phức tạp O(n)
1.1.3.Đánh giá chi phí định tuyến của cây khung
Mục này trình bày định lý 1.2 cho phép đánh giá cận dưới và cận trên của tải định tuyến một cạnh của cây khung (cận trên đã được nêu trong công trình [10] - chúng tôi đề xuất cách chứng minh về cận trên; cận dưới là đề xuất mới của chúng tôi)
Định lý 1.2 Giả sử T là một cây khung của đồ thị G Khi đó với mọi cạnh e E(T) ta có:
2
Chứng minh Khi loại cạnh e, cây T sẽ được tách ra thành hai cây con T1 và T2 với hai tập đỉnh
tương ứng là V(T1) và V(T2) Ký hiệu δ = |V(T1)|/ |V(T)| Do 1 ≤ |V(T1)| ≤ n−1, nên 1/n ≤ δ ≤ (n−1)/n
Trang 242 2
Vậy định lý 1.2 đã được chứng minh
Từ định lý 1.1 và định lý 1.2 trên, chúng tôi đề xuất các hệ quả sau:
Hệ quả 1.1 Chi phí định tuyến của cây khung T bất kỳ thỏa mãn bất đẳng thức sau:
)(),()
(
T E e
e w e T l T
Hệ quả 1.2 Đối với đồ thị đầy đủ G với trọng số trên các cạnh đều là w0, ta có chi phí định
Chứng minh Thực vậy, xét cây khung Tmin mà tất cả các cạnh của nó có chung đỉnh, ta có
l(Tmin, e) = 2(n−1), với mọi eE Từ đó suy ra:
Trang 25Có thể tìm thấy các ứng dụng của bài toán MRCST trong các bài toán mạng thiết kế mạng và
trong tin sinh học như đã được chỉ ra ở các công trình [7,10,27,31,33,41]
1.2.1.Ứng dụng của bài toán MRCST trong lĩnh vực thiết kế mạng
Một ứng dụng rõ nhất của bài toán MRCST là trong lĩnh vực thiết kế mạng truyền thông Chiều dài của mỗi cạnh biểu diễn chi phí định tuyến dọc theo cạnh đó Xây dựng MRCST tương đương
với việc xây dựng cây khung sao cho độ dài trung bình giữa mọi cặp đỉnh là nhỏ nhất [10] Đối
với bài toán thiết kế mạng thì chất lượng của các thuật toán giải bài toán MRCST là quan trọng; đối với các bài toán vận hành mạng thì thời gian tính của các thuật toán giải bài toán MRCST
là rất cần được xem xét khi đối sánh chất lượng của các thuật toán
1.2.2.Ứng dụng của bài toán MRCST trong lĩnh vực tin sinh học
Ứng dụng điển hình của bài toán MRCST trong tin sinh học (Bioinformatics) là bài toán so sánh
đa trình tự (multiple sequence alignments-MSA) MSA đóng vai trò quan trọng trong tin sinh học nói chung và trong lĩnh vực tìm kiếm gene nói riêng [27] Trong lĩnh vực nghiên cứu phân tích cấu trúc và chức năng của gene và protein, phân tích trình tự (chuỗi DNA, protein) đóng vai trò quan trọng Để đơn giản cho việc nghiên cứu, trình tự DNA và protein sẽ được tuần tự hóa và nghiên cứu dưới dạng chuỗi các ký tự Thông thường khi một gene được phát hiện, một trong những yêu cầu quan trọng là làm thế nào xác định được chức năng của gene này, yêu cầu tương tự cũng được đặt ra khi phát hiện ra protein mới Một phương pháp tiếp cận phổ biến đó
là chúng ta sẽ so sánh, đánh giá sự giống nhau của chuỗi DNA, protein này với những chuỗi DNA, protein đã biết; từ đó có thể đưa ra dự đoán về chức năng cũng như cấu trúc của những gene mới phát hiện Do đó việc nhận định sự giống nhau của các đoạn gene là một vấn đề lớn của tin sinh học Vấn đề được đặt ra trong phân tích trình tự đó là làm thế nào để có được phép
Trang 26so sánh tốt cho các trình tự DNA, khi mà số lượng tế bào trong cơ thể là lớn và mỗi tế bào mang
một số lượng lớn các ký tự trong đoạn DNA của chúng MSA thuộc lớp bài toán NP-khó [10]
1.3.CÁC NGHIÊN CỨU LIÊN QUAN BÀI TOÁN MRCST
Đối với bài toán thuộc lớp NP-khó như bài toán MRCST thì khó hy vọng tìm được một thuật
toán vượt trội cả về chất lượng lời giải lẫn thời gian tính trên mọi bộ dữ liệu thực nghiệm Do
đó đã có nhiều thuật toán giải bài toán MRCST được đề xuất Mỗi thuật toán giải bài toán MRCST, tại thời điểm công bố có một đóng góp nhất định, hoặc là cải thiện chất lượng lời giải,
hoặc là cải thiện thời gian tính, hoặc là đề xuất một cách tiếp cận mới cho chất lượng lời giải
tương đương Mục này khảo sát các thuật toán giải bài toán MRCST theo các nhóm: Các thuật
toán giải đúng, các thuật toán gần đúng cận tỉ lệ, các thuật toán heuristic và các thuật toán metaheuristic
1.3.1.Thuật toán giải đúng
Theo các định lý Cayley [10], Kirchhoff [23], ta biết số lượng cây khung của một đồ thị tăng với tốc độ hàm mũ theo số đỉnh của đồ thị
Năm 1979, nhóm tác giả R Dionne và M Florian là người đầu tiên sử dụng thuật toán nhánh
cận để giải quyết bài toán MRCST ứng dụng trong thiết kế mạng tối ưu [30]
Năm 2002, Matteo Fischetti, Giuseppe Lancia và Paolo Serafini trong công trình [24] trên cơ
sở xây dựng mô hình toán học cho bài toán MRCST dưới dạng bài toán quy hoạch nguyên đã
đề xuất thuật toán nhánh cận kết hợp với phương pháp sinh cột (column generation) để giải bài
toán Theo các tác giả, thuật toán này có thể giải được bài toán MRCST với đồ thị có cỡ 30-40
đỉnh Theo hiểu biết của tác giả luận án, cho đến nay đây là thuật toán giải đúng tốt nhất được
công bố để giải bài toán MRCST
Các thuật toán giải đúng (đảm bảo tìm được lời giải tối ưu) chỉ có thể áp dụng để giải các bài
toán MRCST có kích thước dữ liệu đầu vào nhỏ, chưa đáp ứng được yêu cầu về việc giải bài
toán này trong thực tiễn ứng dụng Vì thế, trong thời gian gần đây, các công trình nghiên cứu
về bài toán MRCST chỉ tập trung theo hướng phát triển các thuật toán giải gần đúng
Trang 271.3.2.Thuật toán gần đúng cận tỉ lệ
Thuật toán gần đúng cận tỉ lệ thường được phát triển cho các bài toán chưa có thuật toán đa thức để giải, hoặc các bài toán đã có thuật toán đa thức để giải nhưng thời gian tính quá lớn Một thuật toán được gọi là thuật toán gần đúng cận tỉ lệ α nếu nó đảm bảo tìm được lời giải với giá trị hàm mục tiêu không lớn hơn α lần giá trị tối ưu Hiện tại, có ba thuật toán gần đúng cận
tỉ lệ điển hình cho bài toán MRCST, đó là các thuật toán WONG [10,31], GENERAL STAR [8,10] và PTAS [8,10]
1.3.2.1.Thuật toán WONG
Thuật toán WONG có cận tỉ lệ xấp xỉ 2; thuật toán này được đề xuất bởi Richard T.Wong vào
năm 1980 [10,31] Trước hết luận án trình bày khái niệm cây đường đi ngắn nhất
Định nghĩa 1.4 [10] Cho G là đồ thị vô hướng liên thông có trọng số trên cạnh Cây đường đi
ngắn nhất (Shortest Path Tree - SPT) có gốc tại đỉnh s là cây khung của G với tập cạnh là các cạnh trên các đường đi ngắn nhất xuất phát từ đỉnh s đến các đỉnh còn lại của G
Cây đường đi ngắn nhất có gốc tại đỉnh s của đồ thị G có thể tìm được nhờ áp dụng thuật toán Dijkstra [32] để tìm đường đi ngắn nhất từ đỉnh s đến tất cả các đỉnh còn lại
Thuật toán 1.2 dưới đây cho phép tìm cây đường đi ngắn nhất có gốc tại đỉnh s của đồ thị G
Algorithm 1.2 Thuật toán tìm một cây đường đi ngắn nhất
Đầu vào: Đồ thị G=(V(G), E(G)), s V(G)
Đầu ra: Cây đường đi ngắn nhất xuất phát từ đỉnh s trên G
1 Dijkstra(V,E,s); //Thực hiện thuật toán Dijkstra tìm đường đi ngắn nhất từ đỉnh s đến các đỉnh còn lại, ta thu được p(v) - đỉnh đi trước đỉnh v trong đường đi ngắn nhất từ s đến v
2 Đặt E(T) = {(v, p(v)) : v V(G) – {s}}; V(T) = V(G);
3 return cây khung T = (V(T), E(T));
Tiến hành sử dụng thuật toán tìm SPT trên để tìm các cây đường đi ngắn nhất có gốc lần lượt tại tất cả các đỉnh của đồ thị, sau đó chọn ra trong số chúng cây SPT có chi phí định tuyến nhỏ
nhất
Trang 28Thuật toán 1.3 dưới đây cho phép tìm cây đường đi ngắn nhất có chi phí định tuyến nhỏ nhất
bằng thuật toán WONG
Algorithm 1.3 Thuật toán WONG
Đầu vào: Đồ thị G = (V(G), E(G)), V(G) = {1, 2, …, n}
Đầu ra: Cây đường đi ngắn nhất có chi phí định tuyến nhỏ nhất trên G
3 Hình 1.3 Đồ thị vô hướng liên thông có trọng số
Đồ thị G ở hình 1.3 có 6 cây đường đi ngắn nhất có gốc lần lượt tại các đỉnh v1, v2,…, v6 với
chi phí định tuyến lần lượt là 234, 234, 248, 298, 248, 354 Khi đó, theo thuật toán WONG ta tìm được cây đường đi ngắn nhất có chi phí định tuyến nhỏ nhất có gốc tại đỉnh v1 như hình 1.4
Trang 294 Hình 1.4 Cây đường đi ngắn nhất xuất phát từ v 1
Định lý 1.3 dưới đây cho phép đánh giá cận tỷ lệ và độ phức tạp của thuật toán WONG:
Định lý 1.3 [10] Thuật toán WONG có cận tỉ lệ 2 và có độ phức tạp O(nm + n2 log n)
Mặc dù không phải là thuật toán có chất lượng lời giải tốt, nhưng thuật toán WONG có thời
gian tính nhanh và ổn định trên mọi loại đồ thị Đây là thuật toán được sử dụng trong các ứng dụng định tuyến mạng thực tế [33]
Độ phức tạp của một thuật toán, ngoài việc phụ thuộc vào kích thước dữ liệu đầu vào, nó còn phụ thuộc vào cấu trúc dữ liệu chọn cài đặt thuật toán Thuật toán Dijkstra tìm đường đi ngắn
nhất giữa hai đỉnh có độ phức tạp lần lượt là O(n2), O(m + nlog n), O((n + m) log n) tùy thuộc
vào việc thuật toán Dijkstra sử dụng các cấu trúc dữ liệu ma trận trọng số, đống Fibonacci
(fibonacci heap) hay đống nhị phân (binary heap) Do đó, để cài đặt thuật toán WONG hiệu quả
về mặt thời gian tính thì cần tuân thủ quy tắc: Nếu là đồ thị đầy đủ ta dùng cấu trúc dữ liệu ma trận trọng số, còn đối với các đồ thị thưa nên dùng cấu trúc đống Fibonacci hoặc đống nhị phân Tất cả các thuật toán đề xuất trong luận án sử dụng các cấu trúc dữ liệu ma trận trọng số, danh sách kề và danh sách cạnh Mỗi loại cấu trúc dữ liệu này giữ một vai trò nhất định trong các giai đoạn của thuật toán – mục đích là làm cho thuật toán đang xét có thời gian tính tốt nhất có thể [2,25,29]
Với các đồ thị đầy đủ Euclid, thuật toán WONG có độ phức tạp O(n2) và các cạnh của cây khung tìm được có chung một đỉnh
1.3.2.2.Thuật toán GENERAL STAR
Thuật toán GENERAL STAR được đề xuất bởi Bang Ye Wu và Kun-Mao Chao vào năm 1999 [8,10] Thuật toán GENERAL STAR có cận tỉ lệ tốt hơn so với cận tỉ lệ 2 của thuật toán WONG
Cụ thể, thuật toán GENERAL STAR tìm được lời giải có cận tỉ lệ là 15/8 với độ phức tạp O(n3)
Trang 30[10], cận tỉ lệ là 3/2 với độ phức tạp O(n4) [10] Tuy vậy, cận tỉ lệ tìm được này là tồi hơn rất nhiều so với chất lượng lời giải tìm được bởi nhiều thuật toán gần đúng khác dựa trên thực nghiệm
1.3.2.3.Sơ đồ PTAS
Sơ đồ PTAS giải bài toán MRCST được các tác giả Bang Ye Wu và Kun-Mao Chao trình bày trong nhiều công trình [8,10] Một bài toán được xem là có sơ đồ xấp xỉ thời gian đa thức (Polynomial Time Approximation Scheme - PTAS) để giải nếu như có thể xây dựng một thuật toán gần đúng thời gian tính đa thức với cận tỷ lệ bị chặn bởi α = 1 + , với > 0 Thời gian tính của các thuật toán PTAS phụ thuộc vào cả kích thước dữ liệu đầu vào và Khi ta có PTAS
để giải một bài toán, ta có thể điều chỉnh sự đảm bảo chất lượng lời giải cho phù hợp với chi
phí thời gian phải trả Các công trình [8,10] đã chứng minh rằng việc giải bài toán MRCST trên
đồ thị có trọng số không âm tổng quát tương đương với việc giải bài toán MRCST trên đồ thị đầy đủ dạng metric – tức là đồ thị đầy đủ mà trọng số của các cạnh thỏa mãn bất đẳng thức tam
giác Cụ thể, ta có kết quả sau:
Định lý 1.4 [10] Bài toán MRCST có sơ đồ PTAS để giải với cận tỉ lệ α = 1 + , với > 0 và
Để sử dụng PTAS, trước hết ta cần biến đổi đồ thị ban đầu về đồ thị metric (nội dung của phép
biến đổi này là dùng thuật toán Floyd tìm ma trận đường đi ngắn nhất giữa mọi cặp đỉnh), sau
khi tìm được lời giải bằng PTAS, ta sẽ biến đổi đồ thị trở lại đồ thị ban đầu Dễ thấy là để đạt lời giải với chất lượng cao, PTAS sẽ đòi hỏi thời gian rất lớn Chẳng hạn, với =0.1, n = 10, PTAS sẽ đòi hỏi thời gian
1.3.3.Thuật toán heuristic
Heuristic chỉ những kinh nghiệm riêng biệt để tìm kiếm lời giải cho một bài toán cụ thể nào đó Heuristic thường tìm được lời giải có chất lượng tốt trong thời gian cho phép nhưng không chắc
đó là lời giải tốt nhất
Trang 31Trong mục này chúng tôi sẽ trình bày hai thuật toán heuristic giải MRCST gần đây là thuật toán
ADD và thuật toán CAMPOS Thuật toán ADD chỉ dựa vào thông tin về bậc các đỉnh đồ thị, còn thuật toán CAMPOS thì khai thác thông tin về bậc của các đỉnh và thông tin về trọng số
trên các cạnh của đồ thị
1.3.3.1.Thuật toán ADD
Thuật toán ADD được đề xuất bởi tác giả Vic Grout vào năm 2005 [41], thuật toán ADD có độ phức tạp O(n log n) Thuật toán ADD bỏ qua yếu tố trọng số trên các cạnh mà chỉ lấy thông tin
về bậc các đỉnh làm điều kiện tiên quyết để xây dựng cây khung cần tìm Ý tưởng này dựa trên giả định rằng cây khung càng có nhiều nút lá thì sẽ có chi phí định tuyến càng nhỏ
Thuật toán ADD bắt đầu gán cây T bằng một đỉnh u có bậc lớn nhất, sau đó đưa dần các cạnh (u,v) với v chưa thuộc cây T vào cây T Thuật toán lặp lại các bước sau: Tìm đỉnh u sao cho (d[u] - δ[u]) là lớn nhất với d[u], δ[u] lần lượt là bậc của đỉnh u trong đồ thị G và bậc của đỉnh
u trong cây T Đưa dần các đỉnh kề với u vào T Thuật toán dừng khi T có n-1 cạnh
Để cải thiện chất lượng lời giải của thuật toán ADD, thay vì ở mỗi bước lặp luôn chọn ra đỉnh
có bậc lớn nhất, trong luận án chúng tôi đã chọn đỉnh ngẫu nhiên có bậc nằm trong một khoảng
lớn nhất µ nào đó và cho thực hiện thuật toán ADD n lần để chọn ra cây khung có chi phí định tuyến nhỏ nhất (nghĩa là thay vì tìm đỉnh u có bậc lớn nhất là max tại thời điểm đó, ta tìm ngẫu nhiên một đỉnh v sao cho |max-d[v]| < µ với µ là một số nguyên dương nhỏ nào đó, d[v] là bậc của đỉnh v) Độ phức tạp của thuật toán ADD khi đó sẽ là O(n2 log n)
Với đồ thị đầy đủ Euclid, thuật toán ADD có độ phức tạp O(n), khi đó các cạnh của cây khung
tìm được có chung một đỉnh
Đóng góp chính của thuật toán ADD là đưa ra một lời giải gần đúng có thời gian tính tốt nhất
trên loại đồ thị đồng nhất có số đỉnh không lớn (đồ thị có kích thước càng lớn thì thuật toán
ADD cho kết quả càng tồi hơn) Thuật toán ADD cho chất lượng lời giải tốt hơn các thuật toán Prim, Kruskal khi giải bài toán MRCST [33] So với các thuật toán khác được khảo sát trong luận án, thuật toán ADD cho chất lượng lời giải tồi nhất hầu như trên toàn bộ dữ liệu thực
nghiệm chuẩn
1.3.3.2.Thuật toán CAMPOS
Thuật toán CAMPOS được đề xuất bởi nhóm tác giả Rui Campos và Manuel Ricardo vào năm
2008 [33], thuật toán CAMPOS có độ phức tạp O(m + n log n) Thuật toán CAMPOS chọn dần
Trang 32từng cạnh của đồ thị để xây dựng cây khung cần tìm bằng cách kết hợp ý tưởng của các thuật
toán ADD, Dijkstra và Prim - trong đó lấy thuật toán Prim làm cơ sở [33]
Thuật toán CAMPOS cho chất lượng lời giải tốt hơn so với thuật toán WONG ở loại đồ thị đầy
đủ Euclid – đây là đóng góp quan trọng nhất của thuật toán CAMPOS trong lịch sử giải quyết bài toán MRCST Chi phí định tuyến tìm được từ thuật toán CAMPOS chỉ bằng khoảng 79%
so với chi phí định tuyến của thuật toán định tuyến chuẩn IEEE 802.1D [33] Việc thuật toán
CAMPOS tốt hơn thuật toán WONG ở loại đồ thị đầy đủ Euclid có ý nghĩa quan trọng, đặc biệt
là trong các mạng viễn thông di động, nơi mà cấu trúc của các mạng thường xuyên thay đổi và
cần phải có một cơ chế hiệu quả để tìm MRCST mới trong thời gian nhanh nhất mặc dù có thể
chấp nhận một mức chi phí nhiều hơn
Các thuật toán tìm cây khung nhỏ nhất như Prim, Kruskal cho chất lượng lời giải tồi hơn so với các thuật toán CAMPOS và ADD trong việc giải bài toán MRCST [33]; do đó luận án không đề cập đến các thuật toán Prim, Kruskal trong việc giải bài toán MRCST
Các thuật toán WONG, ADD, CAMPOS với độ phức tạp lần lượt là O(nm + n2 log n), O(n log n), O(m + n log n); đây được xem là các thuật toán nhanh nhất trong tất các thuật toán hiện biết giải bài toán MRCST
1.3.4.Thuật toán metaheuristic
Thuật toán metaheuristic chỉ những sơ đồ chung; những chiến lược tìm kiếm có kết hợp các kỹ thuật phụ trợ nhằm khai phá hiệu quả không gian tìm kiếm [43,44]
Các thuật toán metaheuristic có thể được phân làm hai nhóm: Các thuật toán metaheuristic dạng
cá thể, chẳng hạn như các thuật toán Hill Climber Search Algorithm, Simulated Annealing Algorithm, Tabu Search Algorithm,… và các thuật toán metaheuristic dạng quần thể, chẳng hạn như Genetic Algorithm, Bee Algorithm, Particle Swarm Optimization Algorithm, Ant Algorithm,…
Các thuật toán metaheuristic có hai thành phần quan trọng đó là tính tăng cường hóa (intensification) và tính đa dạng hóa (diversification)
Tăng cường hóa nhằm mục đích khai thác sát sâu hơn các vùng không gian lời giải tiềm năng
để hy vọng tìm được lời giải có chất lượng tốt hơn; tăng cường hóa thể hiện qua việc sử dụng chiến lược tìm kiếm địa phương Nếu tính tăng cường quá cao, nó có thể nảy sinh vấn đề hội tụ sớm; các lời giải tối ưu cục bộ tìm được có độ lệch cao hoặc vô nghĩa Ngược lại, nếu tính tăng cường quá thấp, quá trình hội tụ sẽ chậm
Trang 33Đa dạng hóa nhằm khai phá những vùng không gian tìm kiếm mới để tránh việc tìm kiếm rơi vào ngỏ cụt; đa dạng hóa thể hiện qua việc sử dụng tính ngẫu nhiên và có thể kết hợp với một
số heuristic đặc thù cho từng bài toán Nếu tính đa dạng quá cao thì sẽ có nhiều vùng trong không gian lời giải được khai phá ngẫu nhiên, theo đó sẽ làm chậm quá trình hội tụ của thuật toán Nếu tính đa dạng quá thấp thì không gian lời giải được khai phá bị giới hạn, các lời giải tìm được có khuynh hướng hội tụ cục bộ hoặc vô nghĩa Thời điểm để sử dụng chiến lược đa
dạng hóa cũng là yếu tố quan trọng: thứ nhất, được sử dụng khi khởi tạo quần thể ban đầu – cho
dù đó là thuật toán dạng duy trì một cá thể hay dạng duy trì một quần thể (được khởi tạo ngẫu
nhiên); thứ hai, được sử dụng khi chiến lược tăng cường hóa đã không còn tác dụng nữa (nghĩa
là sau một số lần lặp, chiến lược tăng cường hóa không cải thiện được lời giải); thứ ba, được sử
dụng trong quá trình tìm kiếm lời giải thông qua việc sử dụng tính ngẫu nhiên (khác với hai trường hợp trên)
Hiệu quả của các thuật toán metaheuristic phụ thuộc vào cách thức sử dụng hai chiến lược tăng cường hóa và đa dạng hóa trong từng thuật toán cụ thể; hai chiến lược này thường được sử dụng đan xen nhau Việc tận dụng tốt tổ hợp giữa chúng chính là chìa khóa thành công cho mọi thuật toán metaheuristic (nếu một thuật toán metaheuristic là đơn giản thì metaheuristic đó cũng có thể được xem là một heuristic)
1.3.4.1.Một số nghiên cứu liên quan đến bài toán MRCST
Mục này trình bày vấn đề mã hóa cây khung, cách thức tạo lời giải ban đầu, điều kiện dừng của các thuật toán metaheuristic, sơ đồ thuật toán tìm kiếm địa phương
Mã hóa cây khung
Cách thức mã hóa cây khung có ảnh hưởng lớn đến chất lượng của thuật toán tương ứng giải
bài toán MRCST Một phương pháp mã hóa cây khung được xem là hiệu quả nếu nó thỏa mãn
được các tiêu chí: tận dụng được những tính chất đặc trưng của cây khung, quá trình mã hóa và giải mã cây khung có thể thực hiện hiệu quả, thời gian để xử lý các phép toán liên quan trên cây khung cũng như không gian để lưu trữ các cây khung là hợp lý [22,26,35]
Hiện có ba phương pháp mã hoá cây khung thường được sử dụng: mã hóa dạng chuỗi số Prüfer (Prüfer encoding), mã hóa dạng đỉnh (node-based encoding) và mã hóa dạng cạnh (edge-based encoding)
Trang 34 Mã hóa Prüfer
Prüfer xây dựng cách biểu diễn một cây khung có n đỉnh bằng một dãy Prüfer là một chỉnh hợp lặp chập n2 từ các số 1, 2, , n Mã hóa và giải mã Prüfer là hai phép toán đảo ngược nhau, nghĩa là có một tương ứng một - một giữa một cây có nhãn gồm n đỉnh với một dãy Prüfer độ dài n–2 [10]
Mã hóa dạng đỉnh
Cho cây khung T với các đỉnh được đánh số bởi 1, 2, …, n Ta mã hóa cây khung bởi dãy (p2,
p3, …, p n ) gồm n 1 số nguyên trong phạm vi từ 1 đến n, trong đó p k là chỉ số của đỉnh được
Tạo lời giải ban đầu
Mục này trình bày các cách thức tạo lời giải ban đầu
Tạo lời giải ban đầu bằng thuật toán tìm cây đường đi ngắn nhất (SPT)
Mỗi cá thể cây khung là một cây đường đi ngắn nhất có gốc xuất phát tại một đỉnh nào đó của
đồ thị (Algorithm 1.2) Thuật toán này cho phép tạo ra các cá thể cây khung với chi phí tương
đối tốt ở mọi loại đồ thị, tuy nhiên khi đó số lượng cây khung được tạo không vượt quá số đỉnh
của đồ thị Với các thuật toán metaheuristic giải bài toán MRCST mà chỉ cần một lần chạy hoặc một số ít lần chạy thì lời giải ban đầu nên được khởi tạo bằng thuật toán SPT
Tạo lời giải ban đầu bằng thuật toán tựa Prim
Mỗi cá thể cây khung được tạo theo dựa thuật toán Prim [2,32] như sau: Bắt đầu từ cây chỉ gồm một đỉnh nào đó của đồ thị, tiếp theo, thuật toán sẽ thực hiện n-1 bước lặp Ở mỗi bước lặp,
trong số các đỉnh chưa được chọn để tham gia vào cây, ta chọn một đỉnh kề với ít nhất một đỉnh nằm trong cây đang được xây dựng mà không quan tâm đến trọng số của cạnh Đỉnh được chọn
và cạnh nối nó với đỉnh của cây đang được xây dựng sẽ được bổ sung vào cây Thuật toán này
được đặt tên là LikePrim
Trang 35Thuật toán 1.4 dưới đây cho phép tạo một cá thể cây khung bằng thuật toán LikePrim
Algorithm 1.4 Thuật toán tạo một cây khung ngẫu nhiên
LikePrim (V,E)
Đầu vào: Đồ thị G=(V(G),E(G))
Đầu ra: Trả lại cây khung ngẫu nhiên T=(V(T),E(T))
9 return cây khung T;
Thuật toán LikePrim được sử dụng đối với bước khởi tạo cá thể/quần thể ban đầu cho các thuật toán heuristic, metaheuristic giải bài toán MRCST Ưu điểm của thuật toán LikePrim so với thuật toán SPT trong việc tạo lời giải ban đầu là sự đa dạng của các cạnh trong các cây khung được hình thành Chất lượng quần thể ban đầu được tạo bởi thuật toán LikePrim dù không tốt bằng của thuật toán SPT, tuy nhiên sau quá trình tiến hóa, quần thể ban đầu được khởi tạo bằng thuật toán LikePrim thường sẽ cho chất lượng lời giải tốt hơn
Điều kiện dừng của các thuật toán metaheuristic
Các thuật toán metaheuristic thường sử dụng các điều kiện dừng sau:
Lời giải tốt nhất tìm được (kỷ lục) của bài toán không được cải thiện qua một số lần lặp định trước (thường là một hàm theo kích cỡ của dữ liệu đầu vào)
Số lần lặp của thuật toán đạt đến một giá trị định trước (thường được xác định từ thực nghiệm) Đây là điều kiện dừng mà chúng tôi sử dụng cho các thuật toán đề xuất trong các chương 3,4,5 của luận án
Thuật toán chạy hết một lượng thời gian định trước
Trang 36 Lời giải tốt nhất tìm được đã đạt ngưỡng chấp nhận định trước
Tiếp theo luận án sẽ trình bày các thuật toán metaheuristic gần đây giải bài toán MRCST theo
thứ tự: các thuật toán di truyền, các thuật toán tìm kiếm địa phương, các thuật toán bầy ong
1.3.4.2.Thuật toán di truyền ESCGA
Thuật toán di truyền mã hóa cây khung bằng danh sách cạnh ESCGA của tác giả Bryant A Julstrom được đề xuất vào năm 2005 [11] ESCGA khởi tạo quần thể ban đầu bằng các cây
khung ngẫu nhiên
Trong thuật toán ESCGA, phép lai được thực hiện dựa theo ý tưởng của thuật toán Kruskal:
Đầu tiên đưa các cạnh (gen) có xuất hiện ở cả hai cây khung (nhiễm sắc thể) cha mẹ để tạo thành một cá thể con, khi đó cá thể con gồm một hoặc nhiều thành phần liên thông Tiếp theo đưa dần từng cạnh từ các cá thể cha mẹ vào cá thể con này sao cho cạnh mới đưa vào không tạo thành chu trình với các cạnh đã được chọn trước đó cho đến khi cá thể con đang xây dựng
có đủ n-1 cạnh Để thực hiện hiệu quả phép lai, ESCGA tìm kiếm cạnh chung của cha mẹ bằng
cách sắp xếp tập cạnh trong các cá thể cha mẹ và kiểm tra việc tạo chu trình trong cá thể con
bằng việc sử dụng kỹ thuật union-find Phép lai hai cá thể của ESCGA có độ phức tạp O(n log n) Phép đột biến được thực hiện bằng cách thay thế một số gen của cá thể cha mẹ bằng một số gen khác Phép đột biến một gen của ESCGA có độ phức tạp O(n) Phép chọn được thực hiện theo kiểu chọn tournament với k=2 (chọn ngẫu nhiên từng cặp cá thể và chọn cá thể có độ thích
nghi cao hơn)
Thuật toán ESCGA ấn định các tham số: Kích thước quần thể N là 40 n , Số thế hệ là 250 n
-1 (tương ứng có khoảng -10000n cá thể sẽ được đánh giá ở tất cả các thế hệ), xác suất lai p c=
0.80, xác suất đột biến p m =2/n Vậy ESCGA đòi hỏi thời gian tính cỡ 10000n × n log n = 10000n2
log n đối với mỗi bộ dữ liệu
1.3.4.3.Thuật toán di truyền BCGA
Thuật toán di truyền mã hóa cây khung bằng dãy số Prüfer BCGA của tác giả Bryant A Julstrom được đề xuất vào năm 2005 [11] BCGA cũng khởi tạo quần thể ban đầu bằng các cây khung
Trang 37chọn và ấn định các giá trị tham số thực nghiệm như thuật toán ESCGA; riêng xác suất lai, thuật toán BCGA chọn là p c = 0.60 Vậy BCGA đòi hỏi thời gian tính cỡ 10000n × n = 10000n2 đối với mỗi bộ dữ liệu
1.3.4.4.Thuật toán Stochastic Hill Climber (SHC)
Trước khi trình bày về các thuật toán SHC, PBLS giải bài toán MRCST; luận án trình bày về sơ
đồ của thuật toán tìm kiếm địa phương; đây là thủ tục quan trọng trong sơ đồ của các thuật toán
metaheuristic giải bài toán MRCST Thuật toán tìm kiếm địa phương lặp thực hiện việc di chuyển từ một lời giải S đến một lời giải mới S’ trong một cấu trúc lân cận xác định trước Sơ
đồ tổng quát của thủ tục tìm kiếm lân cận được mô tả như sau [3,42]:
Bước 1: Khởi tạo Chọn lời giải xuất phát S, tính giá trị hàm mục tiêu F(S)
Bước 2 Sinh lân cận Chọn tập lân cận N(S) và tìm lời giải S’ trong tập lân cận này với giá trị hàm mục tiêu F(S’)
Bước 3.Test chấp nhận Kiểm tra xem có chấp nhận di chuyển từ S sang S’ Nếu chấp nhận thì thay S bằng S’; trái lại giữ nguyên S là lời giải hiện tại
Bước 4 Test điều kiện dừng Nếu điều kiện dừng thỏa mãn thì kết thúc thuật toán và đưa ra lời
giải tốt nhất tìm được; trái lại quay lại bước 2
Thuật toán tìm kiếm leo đồi ngẫu nhiên (Stochastic Hill Climber-SHC) giải bài toán MRCST
do tác giả Bryant A Julstrom đề xuất vào năm 2005 [11] SHC trước hết khởi tạo một cây khung lời giải ngẫu nhiên; sau đó từng bước cải thiện dần chất lượng lời giải Ở mỗi bước lặp, SHC
sinh ra một hoặc một số lời giải lân cận và sau đó chọn một lời giải tốt nhất trong số đó để làm lời giải hiện tại cho bước lặp kế tiếp
Việc tìm kiếm lân cận T’ của cây khung T được thực hiện như sau: Loại khỏi T ngẫu nhiên một cạnh e, sau đó tìm cạnh e’ tốt nhất từ tập cạnh E(G) – E(T) để thay thế cho e (SHC thực nghiệm
trong công trình [11] sử dụng chỉ một lân cận cho mỗi bước lặp) Một lần lặp của thuật toán
SHC đòi hỏi thời gian tính O(mn) Thuật toán SHC ấn định số bước lặp là 10000n Vậy SHC đòi hỏi thời gian tính cỡ 10000n × mn = 10000mn2 đối với mỗi bộ dữ liệu
1.3.4.5.Thuật toán Perturbation Based Local Search (PBLS)
Thuật toán PBLS giải bài toán MRCST do tác giả Alok Singh đề xuất vào năm 2008 [5] PBLS trước hết khởi tạo một cây khung lời giải T ngẫu nhiên, sau đó từng bước cải thiện dần chất lượng của lời giải Ở mỗi bước lặp, thuật toán PBLS tìm một lời giải lân cận T’ của T Nếu T’
Trang 38tốt hơn T thì T’ sẽ trở thành lời giải hiện tại Nếu lời giải tốt nhất hiện tại không được cải thiện
sau một số bước lặp cố định nào đó thì thực hiện việc đa dạng hóa lời giải (xáo trộn lời giải)
Thuật toán PBLS thực hiện việc tìm cây khung lân cận giống như thuật toán SHC [11] Điểm khác biệt duy nhất của thuật toán PBLS so với thuật toán SHC là PBLS có sử dụng chiến lược
đa dạng hóa lời giải - theo nghĩa là thay một số cạnh của cây khung bằng một số cạnh ngẫu nhiên khác (không quan tâm đến chi phí định tuyến trên cạnh) miễn sao kết quả vẫn là một cây
khung Thuật toán PBLS ấn định số bước lặp là 50000 và khi chất lượng lời giải không được cải thiện sau 2n bước lặp thì tiến hành đa dạng hóa lời giải theo ý tưởng trên Một lần lặp của thuật toán PBLS đòi hỏi thời gian tính O(mn) Vậy PBLS đòi hỏi thời gian tính cỡ 50000 × mn
= 50000mn đối với mỗi bộ dữ liệu
1.3.4.6.Thuật toán PABC
Thuật toán PABC giải bài toán MRCST do tác giả Alok Singh đề xuất vào năm 2011 [6] dựa theo thuật toán Artificial Bee Colony [16,17] PABC trước hết chọn ne lời giải ngẫu nhiên E1,
Bước 1, với mỗi i (i = 1 n e ), gọi E’ là một lân cận của E i (lân cận này được tìm như mô
tả sau đây) Nếu E’ = thì E i được thay bằng một lời giải ngẫu nhiên nào đó Nếu E’ ≠ thì xét các trường hợp sau: Nếu E’ tốt hơn E i thì E i = E’; ngược lại, nếu E i không thay đổi qua
itnoimp lần lặp thì E i cũng sẽ được thay thế bởi một lời giải ngẫu nhiên nào đó Nếu Ei tốt hơn
best_sol thì best_sol = E i
Bước 2, với mỗi i (i = 1 n o ), gọi P i là một số ngẫu nhiên trong tập chỉ số {1, 2,…,n e} Gọi
S i là lời giải lân cận của
i P
E Nếu S i = thì S i được gán bằng một lời giải tùy ý có chi phí tồi hơn chi phí của
i P
E Nếu S i tốt hơn best_sol thì đặt best_sol = S i
Bước 3, với mỗi i (i = 1 n o ), nếu S i tốt hơn
i P
E thì đặt
i P
E = S i
Việc tìm lời giải lân cận của thuật toán PABC là có sự khác biệt so với những thuật toán trước
đó như ESCGA, BCGA, SHC, PBLS Cụ thể, PABC sử dụng cách tìm kiếm cây khung lân cận như sau: Cho cây khung T, loại một cạnh e T Gọi T’ là một cây khung nào đó khác T Gọi F
là tập các cạnh e’ T’ mà có thể thay thế e để T – {e} {e’} là một cây khung Tìm một cạnh e’ F sao cho T – {e} {e’} là cây khung có chi phí định tuyến nhỏ nhất Nếu tìm thấy thì đặt T = T – {e} {e’}, nếu không tìm thấy cạnh e’ F thỏa thì bỏ qua, và tiếp tục loại cạnh e
Trang 39khác ở trong T Nếu sau t k lần lặp liên tiếp mà không tìm được cạnh e’ để thay thế thì xem như
T không thay đổi
Trong thuật toán PABC, bước 1 có độ phức tạp O(n e n2), bước 2 có độ phức tạp O(n o n2),
bước 3 có độ phức tạp O(n o n) Do đó, một lần lặp của thuật toán PABC đòi hỏi thời gian tính O(n o n2)
Thuật toán PABC ấn định giá trị các tham số n e =50, n o =150, itnoimp = 5n, t k =5 Sau 20n lần lặp mà chất lượng lời giải không thay đổi thì thuật toán kết thúc Vậy PABC đòi hỏi thời gian tính cỡ 20n × n o n2 = 3000n3 đối với mỗi bộ dữ liệu
1.3.4.7.Thuật toán ABC+LS
Thuật toán ABC+LS giải bài toán MRCST do tác giả Alok Singh đề xuất vào năm 2011 [6] ABC+LS cho thực hiện thuật toán tìm kiếm địa phương trên lời giải tốt nhất tìm được từ thuật toán PABC Kết quả thực nghiệm từ công trình [6] cho thấy ABC+LS là thuật toán cho chất
lượng lời giải tốt nhất cho đến thời điểm được công bố
1.3.5.Danh sách các thuật toán giải bài toán MRCST hiện biết
Bảng 1.1 liệt kê danh sách các thuật toán giải MRCST hiện biết Các cột của bảng lần lượt ghi
các thông tin: số thứ tự, tên thuật toán, kiểu của thuật toán và năm đề xuất
Trang 401 Bảng 1.1 Danh sách các thuật toán điển hình giải bài toán MRCST
Thứ tự
Tên gọi thuật toán Kiểu thuật toán Năm đề
xuất
Local Search)
metaheuristic
2011
1.4.TIÊU CHÍ ĐÁNH GIÁ THUẬT TOÁN
Chất lượng của một thuật toán được đánh giá qua chất lượng lời giải và thời gian tính
Đánh giá độ phức tạp của thuật toán, nói đơn giản, là đánh giá lượng tài nguyên các loại mà thuật toán đòi hỏi sử dụng Có hai loại tài nguyên quan trọng nhất là bộ nhớ và thời gian, mà hiện nay, khi giải quyết nhiều vấn đề ứng dụng thực tiễn quan trọng người sử dụng quan tâm nhiều hơn đến yếu tố thời gian
Đối với các thuật toán gần đúng để giải các bài toán NP-khó trong tối ưu hóa, vì chúng không
đảm bảo đưa ra được lời giải tối ưu cần tìm, nên một tiêu chí không kém phần quan trọng để đánh giá thuật toán gần đúng đó là chất lượng lời giải mà thuật toán đảm bảo
Đối với lớp những thuật toán gần đúng cận tỷ lệ, có thể đánh giá đóng góp mới thông qua cận
tỷ lệ của thuật toán Tuy nhiên, đối với phần lớn các thuật toán gần đúng hiện nay, việc đánh giá tiên nghiệm chất lượng của lời giải mà chúng đưa ra là không thể thực hiện được Trong tình huống này, các nhà khoa học chấp nhận giải pháp là đánh giá qua thực nghiệm