1. Trang chủ
  2. » Luận Văn - Báo Cáo

Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất

143 750 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 143
Dung lượng 3,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 2

BỘ 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 3

LỜ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 4

Tô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 5

MỤ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 6

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

4.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 8

DANH 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 9

DANH 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 10

HCSIR 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 11

DANH 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 12

Bả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 13

DANH 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 14

Hì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 15

MỞ ĐẦ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 16

Bà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 17

thuậ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 18

BEE-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 19

Chươ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 20

Bà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 22

Thuậ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 23

Vò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 24

2 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 eE Từ đó suy ra:

Trang 25

Có 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 26

so 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 27

1.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 28

Thuậ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 29

4 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 31

Trong 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 32

từ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 n2 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 35

Thuậ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 37

chọ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 38

tố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 39

khá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 40

1 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

Ngày đăng: 12/06/2015, 16:32

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Ban Hà Bằng (2014). Các thuật toán gần đúng giải bài toán cực tiểu hóa độ trễ. Luận án tiến sĩ, Trường Đại học Bách Khoa Hà Nội Sách, tạp chí
Tiêu đề: Các thuật toán gần đúng giải bài toán cực tiểu hóa độ trễ
Tác giả: Ban Hà Bằng
Năm: 2014
2. Nguyễn Đức Nghĩa (2013). Cấu trúc dữ liệu và thuật toán. Nhà xuất bản Trường Đại học Bách Khoa Hà Nội.Tiếng Anh Sách, tạp chí
Tiêu đề: Cấu trúc dữ liệu và thuật toán
Tác giả: Nguyễn Đức Nghĩa
Nhà XB: Nhà xuất bản Trường Đại học Bách Khoa Hà Nội
Năm: 2013
3. Alan W. Johnson (1996). Generalized Hill Climbing Algorithms For Discrete Optimization Problems. Doctor Of Philosophy, Industrial And Systems Engineering, Blacksburg, Virginia, pp.1-119 Sách, tạp chí
Tiêu đề: Generalized Hill Climbing Algorithms For Discrete Optimization Problems
Tác giả: Alan W. Johnson
Nhà XB: Doctor Of Philosophy, Industrial And Systems Engineering, Blacksburg, Virginia
Năm: 1996
5. Alok Singh (2008). A new heuristic for the minimum routing cost spanning tree problem. International Conference on Information Technology-ICIT, IEEE, Bhubaneswar, India, pp.9-13 Sách, tạp chí
Tiêu đề: A new heuristic for the minimum routing cost spanning tree problem
Tác giả: Alok Singh
Năm: 2008
6. Alok Singh, Shyam Sundar (2011). An artificial bee colony algorithm for the minimum routing cost spanning tree problem. Soft Computing, volume 15 (12), Springer-Verlag, pp.2489-2499 Sách, tạp chí
Tiêu đề: An artificial bee colony algorithm for the minimum routing cost spanning tree problem
Tác giả: Alok Singh, Shyam Sundar
Năm: 2011
7. Arie M.C.A. Koster, Xavier Munoz (Edited) (2010). Graphs and Algorithms in Communication Networks. Springer, pp.1-177 Sách, tạp chí
Tiêu đề: Graphs and Algorithms in Communication Networks
Tác giả: Arie M.C.A. Koster, Xavier Munoz
Nhà XB: Springer
Năm: 2010
8. B.Y. Wu, G. Lancia, V. Bafna, K.-M. Chao, R. Ravi, and C.Y. Tang (2000). A polynomial time approximation scheme for minimum routing cost spanning trees. SIAM J. Comput., volume 29, pp.761–778 Sách, tạp chí
Tiêu đề: A polynomial time approximation scheme for minimum routing cost spanning trees
Tác giả: B.Y. Wu, G. Lancia, V. Bafna, K.-M. Chao, R. Ravi, and C.Y. Tang
Năm: 2000
9. Bang Ye Wu, Chuan Yi Tang, Kun-Mao Chao (2007). Optimum Communication Spanning Trees. Taylor &amp; Francis Group, LLC, pp.1-17 Sách, tạp chí
Tiêu đề: Optimum Communication Spanning Trees
Tác giả: Bang Ye Wu, Chuan Yi Tang, Kun-Mao Chao
Năm: 2007
10. Bang Ye Wu, Kun-Mao Chao (2004). Spanning trees and optimization problems. Chapman&amp;Hall/CRC, pp.13–139 Sách, tạp chí
Tiêu đề: Spanning trees and optimization problems
Tác giả: Bang Ye Wu, Kun-Mao Chao
Nhà XB: Chapman & Hall/CRC
Năm: 2004
11. Bryant A.Julstrom (2005). The Blob code is competitive with edgesets in genetic algorithms for the minimum routing cost spanning tree problem. Proceedings of the Genetic and Evolutionary Computation Conference (GECCO), ACM, pp. 585–590 Sách, tạp chí
Tiêu đề: The Blob code is competitive with edgesets in genetic algorithms for the minimum routing cost spanning tree problem
Tác giả: Bryant A.Julstrom
Năm: 2005
12. Ching-Lueh Chang, Lyuu Yuh-Dauh (2008). Parallelized approximation algorithms for minimum routing cost spanning trees. pp.1-20 (http://arxiv.org/pdf/0705.2125.pdf) Sách, tạp chí
Tiêu đề: Parallelized approximation algorithms for minimum routing cost spanning trees
Tác giả: Ching-Lueh Chang, Lyuu Yuh-Dauh
Năm: 2008
13. D.S. Johnson, J.K. Lenstra, A.H.G. Rinnooy Kan (1978). The complexity of the network design problem. Networks, John Wiley &amp; Sons, volume 8, pp.279-285 Sách, tạp chí
Tiêu đề: The complexity of the network design problem
Tác giả: D.S. Johnson, J.K. Lenstra, A.H.G. Rinnooy Kan
Năm: 1978
14. D.T. Pham, A. Ghanbarzadeh, E. Koc, S. Otri, S. Rahim, M. Zaidi (2006). The bees algorithm - A novel tool for complex optimisation problems. ELSEVIER, Proceedings of IPROMS 2006 Conference, Cardiff University, pp.454–461 Sách, tạp chí
Tiêu đề: The bees algorithm - A novel tool for complex optimisation problems
Tác giả: D.T. Pham, A. Ghanbarzadeh, E. Koc, S. Otri, S. Rahim, M. Zaidi
Năm: 2006
15. Demetres D. Kouvatsos (Edited) (2011). Network Performance Engineering. Springer- Verlag Berlin Heidelberg, pp.1-795 Sách, tạp chí
Tiêu đề: Network Performance Engineering
Tác giả: Demetres D. Kouvatsos (Edited)
Năm: 2011
16. Dervis Karaboga, Bahriye Basturk (2007). A powerful and efficient algorithm for numerical function optimization: artificial bee colony (ABC) algorithm. Springer, pp.459-471 Sách, tạp chí
Tiêu đề: A powerful and efficient algorithm for numerical function optimization: artificial bee colony (ABC) algorithm
Tác giả: Dervis Karaboga, Bahriye Basturk
Năm: 2007
17. Dervis Karaboga, Bahriye Basturk (2008). On the performance of artificial bee colony (ABC) algorithm. ELSEVIER, Applied Soft Computing 8, pp.687–697 Sách, tạp chí
Tiêu đề: On the performance of artificial bee colony (ABC) algorithm
Tác giả: Dervis Karaboga, Bahriye Basturk
Năm: 2008
18. Dusan Teodorovic (2010). Bee colony optimization (BCO). Belgrade, Serbia, pp.1-26 Sách, tạp chí
Tiêu đề: Bee colony optimization (BCO)
Tác giả: Dusan Teodorovic
Năm: 2010
19. Fred Glover, Manuel Laguna (1998). Tabu search. Kluwer Academic Publishers, Boston, pp.1-209 Sách, tạp chí
Tiêu đề: Tabu search
Tác giả: Fred Glover, Manuel Laguna
Năm: 1998
20. Huỳnh Thị Thanh Bình (2011). Genetic algorithms for solving bounded diameter minimum spanning tree problem. Luận án tiến sĩ, Trường Đại Học Bách Khoa Hà Nội Sách, tạp chí
Tiêu đề: Genetic algorithms for solving bounded diameter minimum spanning tree problem
Tác giả: Huỳnh Thị Thanh Bình
Năm: 2011
21. Jack J. Dongarra (2014). Performance of various computers using standard linear equations software. University of Manchester, pp.1-109.(http://netlib.org/benchmark/performance.pdf) Sách, tạp chí
Tiêu đề: Performance of various computers using standard linear equations software". University of Manchester, pp.1-109. (
Tác giả: Jack J. Dongarra
Năm: 2014

HÌNH ẢNH LIÊN QUAN

Sơ đồ xấp xỉ thời gian đa thức - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
Sơ đồ x ấp xỉ thời gian đa thức (Trang 9)
Bảng 1.2.a mô tả thông tin về các đồ thị đầy đủ Euclid trong BDMRCST: Cột thứ nhất ghi tên  tập tin trong BDMRCST nguyên gốc trên website tương ứng; cột thứ hai ghi số lượng đỉnh của  các đồ thị trong các bộ dữ liệu; cột thứ ba là tên (chỉ số) của các bộ  - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
Bảng 1.2.a mô tả thông tin về các đồ thị đầy đủ Euclid trong BDMRCST: Cột thứ nhất ghi tên tập tin trong BDMRCST nguyên gốc trên website tương ứng; cột thứ hai ghi số lượng đỉnh của các đồ thị trong các bộ dữ liệu; cột thứ ba là tên (chỉ số) của các bộ (Trang 44)
Đồ thị đầy đủ là đồ thị có cạnh nối giữa mọi cặp đỉnh. Đồ thị đầy đủ n đỉnh có tất cả n(n-1)/2 - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
th ị đầy đủ là đồ thị có cạnh nối giữa mọi cặp đỉnh. Đồ thị đầy đủ n đỉnh có tất cả n(n-1)/2 (Trang 44)
Bảng 1.2.c mô tả thông tin của các đồ thị thưa trong BDMRCST. - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
Bảng 1.2.c mô tả thông tin của các đồ thị thưa trong BDMRCST (Trang 45)
Bảng 1.3 ghi nhận cấu hình máy tính được sử dụng khi tiến hành thực nghiệm các thuật toán  giải bài toán MRCST hiện biết - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
Bảng 1.3 ghi nhận cấu hình máy tính được sử dụng khi tiến hành thực nghiệm các thuật toán giải bài toán MRCST hiện biết (Trang 46)
Đồ thị đầy đủ Euclid (21) - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
th ị đầy đủ Euclid (21) (Trang 64)
Từ các bảng 1.4.b, bảng 2.6, bảng 2.7 cho thấy thời gian tính của các thuật toán HCSRI, HCSIR  chậm hơn rất nhiều so với thời gian tính của các thuật toán WONG, ADD, CAMPOS - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
c ác bảng 1.4.b, bảng 2.6, bảng 2.7 cho thấy thời gian tính của các thuật toán HCSRI, HCSIR chậm hơn rất nhiều so với thời gian tính của các thuật toán WONG, ADD, CAMPOS (Trang 66)
Đồ thị đầy đủ Euclid (21) - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
th ị đầy đủ Euclid (21) (Trang 83)
Đồ thị đầy đủ Euclid (21) - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
th ị đầy đủ Euclid (21) (Trang 98)
Bảng 5.6 sau cho biết các bộ dữ liệu cụ thể mà thuật toán BST cho chất lượng lời giải tốt  hơn thuật toán ABC+LS - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
Bảng 5.6 sau cho biết các bộ dữ liệu cụ thể mà thuật toán BST cho chất lượng lời giải tốt hơn thuật toán ABC+LS (Trang 115)
Đồ thị đầy đủ Euclid (21) - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
th ị đầy đủ Euclid (21) (Trang 117)
Đồ thị đầy đủ ngẫu nhiên (14) - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
th ị đầy đủ ngẫu nhiên (14) (Trang 118)
Đồ thị đầy đủ Euclid (21) - Các thuật toán gần đúng giải bài toán cây khung với chi phí định tuyến nhỏ nhất
th ị đầy đủ Euclid (21) (Trang 118)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w