1. Trang chủ
  2. » Công Nghệ Thông Tin

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

119 520 1

Đ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 119
Dung lượng 2,87 MB

Nội dung

Nội dung tóm tắt: a Lý do chọn đề tài Bài toán cây khung truyền thông tối ưu Optimal Communication Spanning Tree - OCST là một bài toán có nhiều ứng dụng trong thực tế như trong thiết

Trang 1

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

Trang 3

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

Trang 4

LỜI CÁM ƠN

Đầu tiên, em xin cảm ơn toàn thể các thầy cô giáo trong trường Đại học Bách Khoa Hà Nội nói chung cũng như các thầy cô trong Viện Công nghệ thông tin và truyền thông, Khoa học máy tính nói riêng Trong suốt quá trình học và hoàn thành luận văn cao học, em đã được thầy cô chỉ dạy và cung cấp những kiến thức quý báu

cả về chuyên môn và đạo đức

Đặc biệt, em xin chân thành cảm ơn thầy, PGS.TS Nguyễn Đức Nghĩa, người

đã trực tiếp hướng dẫn, cung cấp tài liệu và định hướng, chỉ bảo tận tình trong suốt quá trình em làm luận văn tốt nghiệp Trong quá trình được thầy giảng dạy và hoàn thành luận văn dưới sự hướng dẫn của thầy, em đã học được cách tiếp cận vấn đề, tinh thần làm việc nghiêm túc, trung thực và cách nghiên cứu khoa học hiệu quả

Đó sẽ là hành trang, là định hướng trong quá trình làm việc của em sau này

Cuối cùng, tôi xin được gửi lời cảm ơn chân thành tới gia đình, công ty và bạn

bè Những người đã là chỗ dựa tinh thần, động viên, khuyến khích, giúp đỡ tôi trong suốt quá trình học tập và nghiên cứu để hoàn thành luận văn tốt nghiệp

Hà Nội, ngày 24 tháng 5 năm 2011

Nguyễn Ngọc Quang Lớp Cao học Công nghệ thông tin – Khóa 2009

Đại học Bách Khoa Hà Nội

Trang 5

LỜI CAM ĐOAN

Tôi là Nguyễn Ngọc Quang - Học viên lớp cao học Công Nghệ Thông Tin - Khóa 2009 – trường Đại Học Bách Khoa Hà Nội

Mã số học viên: CB091341

Tôi cam đoan luận văn tốt nghiệp là kết quả nghiên cứu của bản thân tôi dưới

sự hướng dẫn của PGS TS Nguyễn Đức Nghĩa Các số liệu, kết quả trong luận văn tốt nghiệp là trung thực, không phải sao chép toàn văn của bất kì công trình nào khác

Học viên

Nguyễn Ngọc Quang

Trang 6

TÓM TẮT LUẬN VĂN THẠC SĨ

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

Tác giả luận văn: Nguyễn Ngọc Quang Khóa: 2009

Người hướng dẫn: PGS TS Nguyễn Đức Nghĩa

Nội dung tóm tắt:

a) Lý do chọn đề tài

Bài toán cây khung truyền thông tối ưu (Optimal Communication Spanning Tree -

OCST) là một bài toán có nhiều ứng dụng trong thực tế như trong thiết kế mạng đơn giản,

thiết kế mạng/vận tải … Tuy nhiên, OCST là một bài toán thuộc lớp NP-khó nên chưa có

một thuật toán chính xác nào có thể tìm được lời giải tối ưu

Ngay từ khi mới được đưa ra vào năm 1974 bởi HU cho đến nay, đã có rất nhiều phương pháp được đề xuất với bài toán này: phương pháp tìm kiếm có hoặc không có heuristic, thuật toán leo đồi… Một trong các hướng tiếp cận đang được quan tâm là sử

dụng thuật toán di truyền (Genetic Algorithm – GA) để tìm lời giải xấp xỉ

Ý tưởng của thuật toán di truyền xuất phát từ nguyên lý “chọn lọc tự nhiên” trong học thuyết về sự tiến hóa của Darwin Thuật toán này đã được áp dụng cho các bài toán tối ưu tổ hợp và tối ưu số như: bài toán người du lịch, bài toán cái túi, bài toán vận tải,… Thuật toán di truyền thường mang lại những lời giải tốt trong thời gian chấp nhận được

Thuật toán này cho kết quả khá khả quan, và đối với bài toán OCST, thuật toán này cũng

cho lời giải tương đối tốt so với một số phương pháp khác

Do đó, tôi lựa chọn luận văn với đề tài: Thuật toán di truyền giải bài toán cây

khung truyền thông tối ưu

b) Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu

Luận văn tập trung nghiên cứu mô hình thuật toán di truyền và áp dụng thuật toán

di truyền giải bài toán OCST Bên cạnh đó, luận văn trình bày một sồ phương pháp mã hóa cá thể cụ thể của giải thuật di truyền khi áp dụng cho bài toán OCST Thông qua kết

Trang 7

quả thực nghiệm, luận văn đưa ra đánh giá về việc áp dụng thuật toán di truyền giải bài

toán OCST và hiệu quả của các phương pháp mã hóa cá thể

c) Tóm tắt cô đọng các nội dung chính và đóng góp mới của tác giả

Với mục đích tìm hiểu về thuật toán di truyền nói chung và thuật toán di truyền áp

dụng cho bài toán OCST nói riêng, luận văn được chia làm 4 phần: phần đầu nói đến các

khái niệm liên quan như đồ thị, cây khung, bài toán tối ưu và phát biểu bài toán; phần hai, nêu về thuật toán di truyền: từ tổng quan một thuật toán di truyền đến các thao tác, chiến thuật lựa chọn, các thông số cho thuật toán di truyền; phần ba, nêu các phương pháp mã hoá cây khung để áp dụng thuật toán di truyền: đó là phương pháp mã hoá Prufer, mã hóa vectơ đặc trưng, mã hóa thiên kiến cạnh, mã hóa thiên kiến nút, mã hóa thiên kiến cạnh và

nút, mã hóa NetKey, mã hóa tập cạnh Mỗi phương pháp đều có nhận xét về ưu, nhược

điểm của cách mã hoá đó; phần bốn, là phần cài đặt thực nghiệm Trên cơ sở lý thuyết và kết quả thực nghiệm, luận văn đã chỉ ra sự ảnh hưởng của các phương pháp mã hóa đối với sự hội tụ, đa dạng và thiên kiến của thuật toán di truyền

d) Phương pháp nghiên cứu

Luận văn sử dụng phương pháp nghiên cứu: tìm hiểu lý thuyết, phân tích, xây dựng thực nghiệm và rút ra đánh giá Trong quá trình nghiên cứu lý thuyết và phân tích, luận văn thực hiện phân tích diễn dịch: tìm hiểu thuật toán di truyền nói chung, tìm hiểu

bài toán OCST và áp dụng thuật toán di truyền giải bài toán OCST

e) Kết luận

Luận văn đã trình bày về bài toán cây khung truyền thông tối ưu; các hướng tiếp cận giải quyết bài toán và đi sâu nghiên cứu sử dụng thuật toán di truyền để giải quyết bài toán cây khung truyền thông tối ưu Trong các toán tử di truyền, phương pháp mã hóa cá thể ảnh hưởng tính hiệu quả của thuật toán di truyền Nó quyết định không gian của thuật toán di truyền, ảnh hưởng tính cục bộ và tính đa dạng của quần thể

Luận văn đã trình bày hai phương pháp mã hóa cây: biểu diễn trực tiếp cây và biểu diễn gián tiếp cây Các phương pháp biểu diễn gián tiếp cây trong luận văn bao gồm: mã hóa vectơ đặc trưng, mã hóa số Prufer, mã hóa thiên kiến cạnh, mã hóa thiên kiến nút, mã

Trang 8

hóa thiên kiến cạnh và nút và mã hóa NetKey; phương pháp mã hóa tập cạnh là phương

pháp biểu diễn trực tiếp tập cạnh của cây khung Các phương pháp mã hóa gián tiếp cây khung sử dụng hai không gian: không gian kiểu gen (không gian cá thể mã hóa), không gian kiểu hình (không gian cây khung) và cách ánh xạ giữa hai không gian này Trong trường hợp không gian kiểu gen lớn hơn không gian kiểu hình thì đó là các phương pháp

mã hóa dư thừa (mã hóa CV, mã hóa LB, mã hóa LNB, mã hóa NetKey); nếu không gian

kiểu gen bằng kiểu hình thì sẽ không tạo ra sự dư thừa như mã hóa Prufer Phương pháp

mã hóa trực tiếp chỉ có một không gian cây khung nên không cần sự ánh xạ và không tạo

ra sự dư thừa trong mã hóa

Thông qua lý thuyết và kết quả thực nghiệm cho thấy tính chất của các phương pháp mã hóa cá thể như sau:

Giải thuật di truyền giải bài toán OCST với các mã hóa cá thể: mã hóa CV,

mã hóa Prufer, mã hóa NB, mã hóa LB, mã hóa LNB, mã hóa NetKey cho kết quả tương đối tốt so với phương pháp khác giải bài toán OCST

GA sử dụng mã hóa Prufer không dư thừa nhưng có tính hội tụ thấp

 Phương pháp mã hóa véctơ đặc trưng là mã hóa dư thừa và thiên kiến nên

không đảm bảo tính hội tụ của GA

Phương pháp mã hóa LNB phụ thuộc vào giá trị P1 và P2 Nếu giá trị P1 và

2

P nhỏ (P11,P2 1 thì cây thiên kiến trở thành cây khung nhỏ nhất MST)

Phương pháp mã hóa LB là mã hóa dư thừa đồng nhất và thiên kiến ( P11)

nên cây thiên kiến trở thành cây khung nhỏ nhất MST

Phương pháp Mã hóa NB là mã hóa dư thừa đồng nhất và thiên kiến Mặt

khác, mã hóa NB không thể biểu diễn tất cả các cây khung mà chỉ biểu diễn một phần nhỏ của không gian lời giải và có thiên kiến trở thành cây hình

sao hoặc cây khung nhỏ nhất MST

Trang 9

Phương pháp mã hóa NetKey là mã hóa dư thừa đồng nhất, không thiên kiến nên các cá thể của GA sử dụng mã hóa NetKey không phụ thuộc vào cấu

trúc của cây khung tối ưu

Phương pháp mã hóa EgdeSet không heuristic là mã hóa không dư thừa,

không thiên kiến và có tính cục bộ cao nên các thao tác di truyền có xu hướng tạo ra các cá thể giống nhau hoặc gần giống nhau

Đối với các bộ dữ liệu thực nghiệm được đề cập trong luận văn thì GA sử dụng mã hóa NetKey và mã hóa LNB cho kết quả khá tốt so với các các phương pháp mã hóa còn

lại

Trang 10

MỤC LỤC

MỤC LỤC 1

DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT 5

DANH MỤC HÌNH 6

DANH MỤC BẢNG 9

PHẦN MỞ ĐẦU 10

CHƯƠNG 1 PHÁT BIỂU BÀI TOÁN 12

1.1 Một số khái niệm cơ sở 12

1.1.1 Định nghĩa đồ thị 12

1.1.2 Đường đi và tính liên thông 13

1.1.3 Cây và cây khung của đồ thị 14

1.2 Bài toán tối ưu 16

1.2.1 Phát biểu bài toán tối ưu 16

1.2.2 Một số khái niệm cơ bản 16

1.2.3 Các ký hiệu tiệm cận 17

1.2.4 Độ phức tạp tính toán của bài toán 19

1.3 Các lớp bài toán tối ưu 19

1.3.1 Một số khái niệm cơ bản 19

1.3.2 Lớp bài toán P, NP và co-NP 20

1.3.3 Quy dẫn 21

1.3.4 NP-đầy đủ và NP-khó 23

1.4 Bài toán cây khung truyền thông tối ưu 24

1.4.1 Phát biểu bài toán cây khung truyền thông tối ưu 24

1.4.2 Ứng dụng của bài toán 27

CHƯƠNG 2 GIẢI THUẬT DI TRUYỀN 30

2.1 Giải thuật tiến hóa 30

2.1.1 Lịch sử phát triển 30

2.1.2 Các phương pháp khác 31

2.2 Các thành phần chính trong giải thuật di truyền 34

Trang 11

2.2.1 Nhiễm sắc thể 34

2.2.2 Quần thể, thế hệ, tiến hóa 34

2.2.3 Hàm thích nghi 35

2.2.4 Các toán tử di truyền 35

2.2.5 Các thông số khác của giải thuật di truyền 36

2.2.6 Giải thuật di truyền đơn giản 38

2.2.7 Không gian tìm kiếm của giải thuật di truyền 38

2.2.8 Đặc điểm của giải thuật di truyền 39

2.2.9 Ứng dụng của giải thuật di truyền 40

2.3 Các cách biểu diễn NST 40

2.3.1 Biểu diễn nhị phân 40

2.3.2 Biểu diễn số nguyên 41

2.3.3 Biểu diễn giá trị thực và kí tự 42

2.3.4 Biểu diễn cây 42

2.3.5 Khởi tạo quần thể 43

2.4 Các chiến lược lựa chọn 43

2.4.1 Lựa chọn theo cơ chế quay bánh xe Roulette 44

2.4.2 Lựa chọn xếp hạng 45

2.4.3 Lựa chọn theo vòng đấu 46

2.5 Các phương pháp lai ghép NST 46

2.5.1 Lai ghép cho NST mã hóa nhị phân 47

2.5.2 Lai ghép NST theo mã hóa hoán vị 48

2.6 Các phương pháp đột biến NST 49

2.6.1 Đột biến theo NST mã hóa nhị phân 49

2.6.2 Đột biến theo NST mã hóa hoán vị 50

2.7 Các chiến lược nạp lại quần thể 50

2.7.1 Chiến lược nạp lại hoàn toàn 50

2.7.2 Chiến lược nạp lại ngẫu nhiên 51

2.7.3 Chiến lược nạp lại theo mô hình cá thể ưu tú 52

CHƯƠNG 3 THUẬT TOÁN DI TRUYỀN GIẢI 53

BÀI TOÁN CÂY KHUNG 53

TRUYỀN THÔNG TỐI ƯU 53

3.1 Các phương pháp mã hóa cây 53

3.1.1 Phương pháp mã hoá Prufer 54

3.1.2 Phương pháp mã hoá vectơ đặc trưng (Characteristic Vector Encoding – CV) 62

Trang 12

3.1.3 Phương pháp mã hoá thiên kiến cạnh và nút (Link and Node Biased

- LNB) 64

3.1.4 Phương pháp mã hoá NetKey (Network Random Key Encoding – NetKey) 70

3.1.5 Phương pháp mã hoá tập cạnh 74

3.2 Giải thuật di truyền sử dụng mã hóa số Prufer 79

3.2.1 Khởi tạo quần thể 79

3.2.2 Lai ghép cá thể 79

3.2.3 Toán tử đột biến 80

3.2.4 Mô tả giải thuật di truyền theo phương pháp mã hóa số Prufer 80

3.3 Giải thuật di truyền sử dụng mã hóa vectơ đặc trưng 81

3.3.1 Khởi tạo quần thể 81

3.3.2 Lai ghép cá thể 81

3.3.3 Toán tử đột biến 81

3.3.4 Mô tả giải thuật di truyền theo phương pháp mã hóa vectơ đặc trưng 82

3.4 Giải thuật di truyền sử dụng mã hóa thiên kiến cạnh và nút 82

3.4.1 Khởi tạo quần thể 82

3.4.2 Lai ghép cá thể 83

3.4.3 Đột biến cá thể 83

3.4.4 Mô tả giải thuật di truyền theo mã hóa thiên kiến cạnh và nút 83

3.5 Giải thuật di truyền sử dụng mã hóa NetKey 84

3.5.1 Khởi tạo quần thể 84

3.5.2 Lai ghép cá thể 84

3.5.3 Đột biến cá thể 84

3.5.4 Mô tả giải thuật di truyền theo mã hóa NetKey 84

3.6 Giải thuật di truyền sử dụng mã hóa tập cạnh 85

3.6.1 Khởi tạo quần thể 85

3.6.2 Lai ghép cá thể 85

3.6.3 Đột biến cá thể 85

3.6.4 Mô tả giải thuật di truyền theo mã hóa tập cạnh 86

3.7 So sánh các phương pháp mã hóa cá thể 86

CHƯƠNG 4 KẾT QUẢ THỰC NGHIỆM 91

4.1 Môi trường thực nghiệm 91

4.1.1 Dữ liệu thực nghiệm 91

4.1.2 Thông số thực nghiệm 92

4.1.3 Lựa chọn thông số của các thuật toán 93

Trang 13

4.1.4 Chương trình thực nghiệm 94

4.2 Kết quả thực nghiệm 99

4.2.1 Bảng kết quả thực nghiệm 99

4.4.2 Nhận xét kết quả thực nghiệm 105

KẾT LUẬN 106

TÀI LIỆU THAM KHẢO 109

Trang 14

DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT

CV Characteristic Vector Encoding Mã hóa vectơ đặc trưng

LNB Link-Node Biased Encoding Mã hóa thiên kiến cạnh và

nút

MRCT Minimum Routing-Cost Spanning Tree Cây khung giá định tuyến

cực tiểu

NetKey Network Random Key Encoding Mã hóa khóa ngẫu nhiên

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

ưu

SROCT

Sum-Requirement Communication Optimal Spanning Tree

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

ưu

Trang 15

DANH MỤC HÌNH

Hình 1.1 Đơn đồ thị vô hướng (a) và đa đồ thị vô hướng (b) 13

Hình 1.2 Đồ thị có trọng số và một cây khung tương ứng 15

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

Hình 1.4 Các lớp bài toán P, NP và co-NP 21

Hình 1.5 Sơ đồ chứng minh quy dẫn 22

Hình 1.6 Bài toán cir-SAT 22

Hình 1.7 Phân lớp tạm thời các bài toán 23

Hình 1.8 Mối quan hệ giữa các bài toán OCT 25

Hình 1.9 Cây khung minh họa cho việc tính giá 26

Hình 2.1 Mối liên hệ giữa các kỹ thuật tìm kiếm 31

Hình 2.2 Cây mã hóa biểu thức a * ((b – 9) / c) 43

Hình 2.3 Xác suất của mỗi NST theo kiểu lựa chọn Roulet 44

Hình 2.4 Lựa chọn xếp hạng 46

Hình 2.5 Lai ghép một điểm cắt mã hóa nhị phân 47

Hình 2.6 Lai ghép hai điểm cắt mã hóa nhị phân 47

Hình 2.7 Lai ghép đồng nhất mã hóa nhị phân 48

Hình 2.8 Lai ghép số học mã hóa nhị phân 48

Hình 2.9 Chiến lược nạp lại hoàn toàn 51

Hình 2.10 Chiến lược nạp lại ngẫu nhiên 51

Hình 2.11 Chiến lược nạp lại theo mô hình cá thể ưu tú 52

Hình 3.1 Cây khung được mã hoá theo số Prufer=2565 55

Hình 3.2 Minh họa tính cục bộ thấp của mã hóa Prufer 57

Hình 3.3 Cây khung, mã hóa Prufer, mã hóa nhị phân tương ứng 58

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

Trang 16

của cây khung có 16 và 32 đỉnh 59

Hình 3.5 Tỷ lệ xác suất khoảng cách thay đổi giữa cá thể cha mẹ và cá thể con được mã hóa Prufer khi thực hiện thay đổi một cạnh bất kỳ 59

của cây khung có 16 và 32 đỉnh 59

Hình 3.6 Tỷ lệ xác suất khoảng cách thay đổi giữa cá thể cha mẹ và cá thể con khi thực hiện thay đổi một thành phần bất kỳ trong mã hóa nhị phân 60

với cây khung có 16 và 32 đỉnh 60

Hình 3.7 Tỷ lệ xác suất khoảng cách thay đổi giữa cá thể cha mẹ và cá thể con khi thực hiện thay đổi một thành phần bất kỳ trong mã hóa số Prufer 60

với cây khung có 16 và 32 đỉnh 60

Hình 3.8 Cây khung với 5 đỉnh 62

Hình 3.9 Mã hóa vectơ đặc trưng của cây khung trong hình 3.8 63

Hình 3.10 Cây khung tìm thấy trong trường hợp mã hóa thiên kiến cạnh 66

Hình 3.11 Cây khung với các cạnh được đánh thứ tự tương ứng trong mã hóa thiên kiến cạnh 67

Hình 3.12 Cây khung thu được theo mã hoá LNB 69

Hình 3.13 Khóa ngẫu nhiên r 73

Hình 3.14 Cây thu được theo mã hoá NetKey trong hình 3.13 73

Hình 3.15 Minh họa lai ghép cá thể của phương pháp mã hóa tập cạnh 76

Hình 3.16.Minh họa đột biến sử dụng mã hóa tập cạnh 76

Hình 3.17 Lai ghép một điểm cắt cho mã hoá Prufer 79

Hình 3.18 Lai ghép đồng nhất trong mã hoá Prufer với mặt nạ 10110001 80

Hình 4.1 Giao diện chương trình thực nghiệm 99

Hình 4.2 Biểu đồ giá trị tốt nhất đạt được của các phương pháp mã hóa 103

đối với các bộ dữ liệu 103

Hình 4.3 Biểu đồ giá trị trung bình đạt được của các phương pháp mã hóa 103

đối với các bộ dữ liệu 103

Hình 4.4 Biểu đồ giá trị GAP qua các thế hệ của các phương pháp mã hóa 104

đối với các bộ dữ liệu 104

Trang 17

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

Trang 18

DANH MỤC BẢNG

Bảng 2.1 Mã hóa nhị phân độ dài 20 bit 41

Bảng 2.2 Biểu diễn số nguyên của NST có chiều dài 8 41

Bảng 2.3 Biểu diễn số nguyên của NST có chiều dài 8 42

Bảng 2.4 Mặt nạ lai ghép đồng nhất 48

Bảng 2.5 Lai ghép một điểm cắt mã hóa hoán vị 49

Bảng 2.6 Phép đảo bit mã hóa nhị phân 50

Bảng 2.7 Hoán vị thứ tự mã hóa hoán vị 50

Bảng 3.1 Bảng đánh giá về tính dư thừa trong các cách mã hoá 88

Bảng 4.1 Đặc điểm của các phương án tối ưu 92

Bảng 4.2 Kích thước quần thể sử dụng đối với các bộ dữ liệu 93

Bảng 4.3 Bảng tổng hợp kết quả thực nghiệm 102

Trang 19

PHẦN MỞ ĐẦU

Bài toán cây khung truyền thông tối ưu (Optimal Communication Spanning

Tree - OCST) là một bài toán có nhiều ứng dụng trong thực tế như trong thiết kế

mạng đơn giản, thiết kế mạng/vận tải …

Ngay từ khi mới được đưa ra vào năm 1974 bởi HU cho đến nay, đã có rất nhiều phương pháp được đề xuất với bài toán này: phương pháp tìm kiếm có hoặc không có heuristic, giải thuật leo đồi… Một trong các hướng tiếp cận đang được

quan tâm là sử dụng giải thuật di truyền (Genetic Algorithm – GA) để tìm lời giải

xấp xỉ

Ý tưởng của giải thuật di truyền xuất phát từ nguyên lý “chọn lọc tự nhiên” trong học thuyết về sự tiến hóa của Darwin Giải thuật này đã được áp dụng cho các bài toán tối ưu tổ hợp và tối ưu số như: bài toán người du lịch, bài toán cái túi, bài toán vận tải,… Giải thuật di truyền thường mang lại những lời giải tốt trong thời gian chấp nhận được Giải thuật này cho kết quả khá khả quan, và đối với bài toán

OCST, giải thuật này cũng cho lời giải tương đối tốt so với một số phương pháp

khác

Với mục đích tìm hiểu về giải thuật di truyền nói chung và giải thuật di

truyền áp dụng cho bài toán OCST nói riêng, luận văn được chia làm 4 phần: phần

đầu nói đến các khái niệm liên quan như đồ thị, cây khung, bài toán tối ưu và phát biểu bài toán; phần hai, nêu về giải thuật di truyền: từ tổng quan một giải thuật di truyền đến các thao tác, chiến thuật lựa chọn, các thông số cho giải thuật di truyền; phần ba, nêu các phương pháp mã hoá cây khung để áp dụng giải thuật di truyền: đó

là phương pháp mã hoá Prufer, mã hóa vectơ đặc trưng, mã hóa thiên kiến cạnh, mã

hóa thiên kiến nút, mã hóa thiên kiến cạnh và nút, mã hóa NetKey, mã hóa tập cạnh

Mỗi phương pháp đều có nhận xét về ưu, nhược điểm của cách mã hoá đó; phần bốn, là phần cài đặt thực nghiệm Trên cơ sở lý thuyết và kết quả thực nghiệm, luận

Trang 20

văn đã chỉ ra sự ảnh hưởng của các phương pháp mã hóa đối với sự hội tụ, đa dạng

và thiên kiến của giải thuật di truyền

Trang 21

CHƯƠNG 1 PHÁT BIỂU BÀI TOÁN

1.1 Một số khái niệm cơ sở

Những ý tưởng cơ bản về đồ thị được nhà toán học Leonhard Euler từ thế kỷ thứ XVIII Mặc dù lý thuyết đồ thị đã được phát triển từ rất lâu nhưng lại có nhiều ứng dụng thực tế và hiện đại Đặc biệt trong khoảng vài chục năm trở lại đây, với sự

ra đời máy tính điện tử và sự phát triển nhanh chóng của tin học, lý thuyết đồ thị ngày càng được quan tâm đến nhiều hơn

1.1.1 Định nghĩa đồ thị

Đồ thị là một cấu trúc rời rạc bao gồm các đỉnh và các cạnh nối các đỉnh này

Đồ thị được mô tả hình thức dưới dạng

Nếu (u, v) E thì u và v được gọi là hai đỉnh kề nhau

Các loại đồ thị khác nhau được phân biệt bởi kiểu và số lượng cạnh nối hai đỉnh của đồ thị

Định nghĩa 1.1 Đơn đồ thị vô hướng G = (V, E) bao gồm V là tập khác rỗng chứa

các đỉnh, E là tập các cặp không có thứ tự gồm hai phần tử khác nhau của V gọi là các cạnh

Định nghĩa 1.2 Đa đồ thị vô hướng G = (V, E) bao gồm V là tập khác rỗng chứa

các đỉnh, E là họ các cặp không có thứ tự gồm hai phần tử khác nhau của V gọi là

Trang 22

các cạnh Hai cạnh e1 và e2 được gọi là cạnh lặp nếu chúng cùng tương ứng với một cặp đỉnh

Mỗi đơn đồ thị đều là đa đồ thị, nhưng không phải đa đồ thị nào cũng là đơn

đồ thị

Hình 1.1 Đơn đồ thị vô hướng (a) và đa đồ thị vô hướng (b)

Ngoài ra, để mô hình hóa được nhiều bài toán trong thực tế, còn có các loại

đồ thị khác, bao gồm: đơn (đa) đồ thị có hướng, giả đồ thị Đồ thị được gọi là có

hướng nếu các cạnh trong E được định hướng (gọi là các cung) Trong đồ thị có hướng, có thể có cung nối từ đỉnh u đến đỉnh v nhưng chưa chắc đã có cung nối từ đỉnh v đến đỉnh u Khi đó, tập E là tập (họ) các cặp có thứ tự gồm hai phần tử khác nhau của V Đối với giả đồ thị, tập cạnh là tập các cặp đỉnh không nhất thiết phải

khác nhau, cạnh có hai đầu mút là cùng một đỉnh được gọi là khuyên

1.1.2 Đường đi và tính liên thông

Định nghĩa 1.3 Đường đi độ dài n từ đỉnh u đến đỉnh v, trong đó n là số nguyên

dương, trên đồ thị vô hướng G = (V, E) là dãy:

x0, x1, … x n-1 , x n

trong đó u = x0, v = x n , (x i , x i+1)  E, i = 0, 1, 2, …, n – 1 Đỉnh u được gọi là đỉnh

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

Trang 23

Đường đi có đỉnh đầu trùng với đỉnh cuối (tức là u = v) được gọi là chu trình Đường đi hay chu trình được gọi là đơn nếu như không có cạnh nào bị lặp lại

Đường đi đơn là đường đi mà các đỉnh trên nó là khác nhau từng đôi một

Đường đi cơ bản là đường đi mà các đỉnh trên nó là khác nhau từng đôi

một

Chu trình là đường đi cơ bản có đỉnh đầu trùng với đỉnh cuối

Để xác định xem có luôn tồn tại đường đi giữa hai đỉnh bất kỳ của đồ thị vô hướng hay không, người ta đưa ra khái niệm đồ thị vô hướng liên thông

Định nghĩa 1.4 Đồ thị vô hướng G = (V, E) được gọi là liên thông nếu luôn tìm

được đường đi giữa hai đỉnh bất kỳ của nó

1.1.3 Cây và cây khung của đồ thị

Định nghĩa 1.5 Cây là đồ thị vô hướng, liên thông và không chứa chu trình

Đồ thị vô hướng, không chứa chu trình, không liên thông được gọi là rừng (hợp của nhiều cây) Khi đó mỗi thành phần liên thông của đồ thị này là một cây

Đường kính của cây: là độ dài đường đi đơn dài nhất giữa hai đỉnh bất kỳ

trên cây

Định nghĩa 1.6 Cho G = (V, E) là một đồ thị vô hướng liên thông với |V| = n đỉnh

và |E| = m cạnh Cây T = (V, F) với F E được gọi là cây khung của đồ thị G

Dễ thấy rằng một đồ thị vô hướng liên thông bất kỳ có thể có nhiều hơn một

cây khung Người ta đã chứng minh được rằng đồ thị K n có số cây khung là n n-2

Trọng số của cây khung: nếu mỗi cạnh e E của đồ thị G được gán một số thực w(e), gọi là trọng số của cạnh, thì trọng số của cây khung T là giá trị được tính

bởi công thức:

Trang 24

W(T) = 

T e e

w )(

Hình 1.2 Đồ thị có trọng số và một cây khung tương ứng

Cây hình sao là cây mà một nút sẽ có đường liên kết tới tất cả các nút còn

lại Nút đó được gọi là nút trung tâm hay nút gốc, có bậc là n-1, các nút còn lại được

gọi là các nút lá có bậc là 1

Cây dạng danh sách có hai nút bậc 1 (nút lá), các nút còn lại đều là bậc 2

Số lượng cây danh sách có thể có là !

2

Bậc của một nút trên cây bất kỳ có thể là số trong khoảng từ 1 đến n-1

Trong mọi trường hợp, đối với bậc của các nút trên cây ta có đẳng thức:

) 1 ( 2 ) deg(

i

Cây khung nhỏ nhất (MST- Minimum Spanning Tree): cây khung nhỏ

nhất của G là cây khung T có W(T) nhỏ nhất

(a) (b)

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

Trang 25

Hình 1.3b biểu diễn một cây khung của đồ thị trong hình 1.3a Cây khung này

có đường kính là 4 (là độ dài đường đi từ đỉnh 1 đến đỉnh 5) và có trọng số là 7

1.2 Bài toán tối ƣu

1.2.1 Phát biểu bài toán tối ƣu

Bài toán tối ưu cực đại có dạng như sau:

} :

) ( max{f x xD

trong đó:

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

không gian Euclide, và là tập các ràng buộc );

D

x : lời giải khả thi;

)

(x

f : hàm mục tiêu hay hàm chi phí

Bài toán tối ưu cũng còn được phát biểu dưới dạng bài toán cực tiểu hoá:

} :

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

max f(x) = - min g(x) = -min (-f(x))

1.2.2 Một số khái niệm cơ bản

Các vấn đề kỹ thuật thường được khái quát dưới dạng bài toán tính toán để tiện cho việc nghiên cứu và giải quyết Bài toán tính toán là mối quan hệ giữa đầu vào (những yếu tố cho trước của bài toán) và đầu ra (những kết quả tính toán cần đạt được) của bài toán

Định nghĩa 1.7 Bài toán tính toán F là ánh xạ từ các xâu nhị phân độ dài hữu hạn

vào tập các xâu nhị phân độ dài hữu hạn: F: {0,1}* → {0,1}*

Ở đây, các yếu tố dữ liệu là đầu vào và đầu ra của bài toán được biểu diễn bằng xâu nhị phân Mọi dạng dữ liệu (số, kí tự, xâu, mảng, tập hợp…) đều có thể

mã hóa được bằng xâu nhị phân

Trang 26

Bài toán chỉ ra mối quan hệ giữa đầu vào và đầu ra, nhưng để đạt được đầu

ra từ đầu vào cho trước thì phải sử dụng các thuật toán để giải bài toán đó

Định nghĩa 1.8 Thuật toán giải bài toán đặt ra là một thủ tục xác định bao gồm

một dãy hữu hạn các bước cần thực hiện để thu được đầu ra cho một đầu vào cho trước của bài toán

Với mọi thuật toán, bên cạnh tính đúng đắn, thì độ phức tạp tính toán của thuật toán đó cũng là một yếu tố rất được quan tâm

Định nghĩa 1.9 Độ phức tạp tính toán của một thuật toán là lượng tài nguyên tính

toán mà thuật toán đó sử dụng để thực hiện công việc Có hai loại tài nguyên cần quan tâm khi đánh giá độ phức tạp tính toán của thuật toán là bộ nhớ và thời gian

Ngày nay, do sự phát triển của công nghệ chế tạo bộ nhớ, vấn đề tài nguyên

bộ nhớ cho thuật toán thường ít được tập trung hơn vấn đề về thời gian tính toán Thời gian chạy thực tế của một thuật toán phụ thuộc vào nhiều yếu tố: cấu hình máy, ngôn ngữ cài đặt và cách thức cài đặt thuật toán, trình biên dịch và dữ liệu vào, trong đó dữ liệu vào là yếu tố quan trọng và đặc trưng nhất, được dùng để so sánh hiệu quả của thuật toán Để tạo ra sự thống nhất trong cách đánh giá thời gian tính của thuật toán, chỉ xét đến yếu tố kích thước dữ liệu vào khi đánh giá

1.2.3 Các ký hiệu tiệm cận

Các kí hiệu tiệm cận thường hay sử dụng khi đánh giá độ phức tạp tính toán của thuật toán gồm có: Θ, Ο, Ω Phần này sẽ nhắc lại định nghĩa và một số tính chất của các tiệm cận

Định nghĩa 1.10 Cho các hàm f(n) và g(n) là các hàm số của số n nguyên dương,

Kí hiệu Θ(g(n)) biểu diễn tập các hàm

Θ(g(n)) = {f(n) : tồn tại các hằng số dương c1, c2 và n0 sao cho 0 ≤

c1g(n) ≤ f(n) ≤ c2g(n), với mọi n ≥ n0} g(n) được gọi là đánh giá tiệm cận đúng của f(n) hay f(n) có bậc là g(n)

Trang 27

Kí hiệu Ο(g(n)) biểu diễn tập các hàm

Ο(g(n)) = {f(n) : tồn tại các hằng số dương c và n0 sao cho f(n) ≤

cg(n), với mọi n ≥ n0} g(n) được gọi là là cận trên tiệm cận của f(n) hay f(n)

có bậc không quá g(n)

Kí hiệu Ω(g(n)) biểu diễn tập các hàm

Ω(g(n)) = {f(n) : tồn tại các hằng số dương c và n0 sao cho cg(n) ≤

f(n), với mọi n ≥ n0} g(n) được gọi là cận dưới tiệm cận của f(n) hay f(n) có bậc ít nhất là g(n)

Để sử dụng các kí hiệu tiệm cận ở trên trong việc đánh giá thời gian tính của các thuật toán, các quy ước sau được sử dụng:

 Nếu thuật toán có thời gian tính trong tình huống nhanh nhất (tốt nhất) là

t(n) với kích thước dữ liệu đầu vào là n và t(n) = Ω(g(n)) thì thời gian tính

tốt nhất của thuật toán có bậc không nhỏ hơn g(n) hay thời gian tính tốt nhất của thuật toán là Ω(g(n))

 Nếu thuật toán đòi hỏi thời gian tính trong tình huống chậm nhất (tồi

nhất) là t(n) với n là kích thước dữ liệu đầu vào và t(n) = O(g(n)) thì thời gian tính tồi nhất của thuật toán sẽ có bậc không quá g(n) hay thời gian tính tồi nhất của thuật toán là O(g(n))

Nếu thuật toán đòi hỏi thời gian tính trung bình là t(n) với n là kích thước

dữ liệu vào và t(n) = O(g(n)) thì thời gian tính trung bình của thuật toán

có bậc không quá g(n) hay thời gian tính trung bình của thuật toán là

O(g(n))

Thông thường khi nói thuật toán có thời gian tính là O(f(n)), thì hiểu là thời gian tính của thuật toán đánh giá trong tình huống tồi nhất là O(f(n)) Còn khi nói thuật toán có thời gian tính là Ω(f(n)), thì hiểu đánh giá thời gian tính của thuật toán trong tình huống tốt nhất là Ω(f(n))

Trang 28

1.2.4 Độ phức tạp tính toán của bài toán

Định nghĩa 1.11 Độ phức tạp tính toán của một bài toán là thời gian tính (ở đây

chỉ quan tâm đến đánh giá thời gian thực hiện, bỏ qua đánh giá về yêu cầu bộ nhớ) của thuật toán tốt nhất trong số tất cả các thuật toán giải bài toán đó

Với một bài toán chắc chắn sẽ còn những thuật toán chưa biết, vậy làm thế nào để biết được thời gian tính của thuật toán tốt nhất? Có 2 cách để giải quyết vấn

1.3 Các lớp bài toán tối ƣu

1.3.1 Một số khái niệm cơ bản

Định nghĩa 1.12 Thuật toán có thời gian tính đa thức là thuật toán mà độ phức tạp

thời gian của nó trong trường hợp xấu nhất được giới hạn trên bởi một hàm đa thức của kích thước dữ liệu đầu vào (kích thước dữ liệu đầu vào được tính bằng số bit

cần thiết để biểu diễn nó) Tức là nếu n là kích thước dữ liệu đầu vào, thì luôn tồn tại một đa thức p n sao cho

Trang 29

Các thuật toán có độ phức tạp thời gian trong trường hợp xấu nhất sau không

có thời gian tính đa thức

O(f(n)) = 2n 20.01n 2 n n!

Định nghĩa 1.13 Bài toán quyết định là bài toán mà đầu ra của nó chỉ có thể là

“yes” hoặc “no” (0 hoặc 1, đúng hoặc sai, …)

Định nghĩa 1.14 Xét bài toán tối ưu hóa (P) max{f(x): x D} Ta gọi bài toán

dạng quyết định tương ứng với bài toán tối ưu (P) là bài toán quyết định sau:

(PD) “Cho giá trị K Hỏi có tìm được u  D sao cho f(u) ≥ K hay không?”

Bài toán tối ưu và bài toán quyết định của nó có mối liên hệ được phát biểu trong định lý sau:

Định lý 1.1 Nếu bài toán quyết định tương ứng với một bài toán tối ưu có thể giải

được hiệu quả (chẳng hạn bằng thuật toán có thời gian tính đa thức) thì bài toán tối

ưu đó cũng giải được hiệu quả (bằng thuật toán thời gian tính đa thức)

Định nghĩa 1.15 Ta gọi bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời

“yes” cho bộ dữ liệu vào “yes” của bài toán là một bằng chứng có độ dài bị chặn bởi một đa thức bậc cố định của độ dài dữ liệu đầu vào của bài toán, và việc kiểm tra nó là bằng chứng xác nhận câu trả lời “yes” đối với đầu vào đã cho của bài toán có thể thực hiện xong sau thời gian đa thức

1.3.2 Lớp bài toán P, NP và co-NP

Dưới đây là phân loại các lớp của bài toán

Định nghĩa 1.16 P là lớp bài toán quyết định có thể được giải quyết trong thời

gian đa thức

Hay nói cách khác, P là lớp các bài toán có thể được giải một cách nhanh

chóng

Trang 30

Định nghĩa 1.17 NP là lớp bài toán quyết định mà để xác nhận câu trả lời là

“yes” của nó, có thể đưa ra bằng chứng ngắn ngọn dễ kiểm tra

Hay có thể nói NP là lớp các bài toán mà có thể kiểm tra câu trả lời “yes”

một cách nhanh chóng trong thời gian đa thức nếu đã có được lời giải

Hiển nhiên ta có P NP, tuy nhiên xác định xem NP P hay không hiện

vẫn chưa có lời giải

Định nghĩa 1.18 co-NP là lớp bài toán mà để xác nhận câu trả lời “no” thì có thể

đưa ra bằng chứng ngắn gọn dế kiểm tra

Như vậy có thể thấy co-NP là lớp bài toán hoàn toàn ngược với lớp NP Có

thể miêu tả mối quan hệ giữa ba lớp bài toán trên như trong hình sau:

Hình 1.4 Các lớp bài toán P, NP và co-NP

1.3.3 Quy dẫn

Định nghĩa 1.19 Giả sử A và B là hai bài toán quyết định Ta nói bài toán A có thể

quy dẫn sau thời gian đa thức về bài toán B nếu tồn tại thuật toán thời gian đa thức

R cho phép biến đổi bộ dữ liệu vào x của A thành bộ dữ liệu vào R(x) của B sao cho

x là bộ dữ liệu “yes” của A khi và chỉ R(x) là bộ dữ liệu “yes” của B

P co-NP

NP

Trang 31

Hình 1.5 Sơ đồ chứng minh quy dẫn

Ký hiệu A B được dùng để chỉ bài toán A có thể quy dẫn về bài toán B Phép quy dẫn thường dùng để so sánh độ khó của hai bài toán Nếu A quy dẫn được

về B thì A không khó hơn B Nếu A là khó (theo nghĩa chưa tìm được thuật toán thời gian tính đa thức để giải A) thì B cũng là khó, còn nếu B là dễ (nghĩa là đã có thuật toán thời gian tính đa thức giải B) thì A cũng là dễ

Ví dụ: Bài toán cir-SAT: Cho một mạch logic với đầu vào gồm n giá trị, hỏi

có tồn tại một đầu vào của mạch để đầu ra của mạch luôn là TRUE, hay mạch luôn đưa ra FALSE

Hình 1.6 Bài toán cir-SAT

Trên đây là một bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời 'yes' của bài toán Cho một dãy đầu vào mạch logic, ta có thể tinh được giá trị đầu ra sau thời gian tính đa thức bằng cách duyệt đồ thị

Trang 32

Như vậy cir-SAT thuộc NP Ta có:

Mọi bài toán trong NP đều có thể tính được nhờ mạch logic

 Mạch logic có số thành phần giới hạn bởi đa thức và vì thế cũng có thể giải quyết được trong thời gian đa thức

Trên đây, chỉ là tư tưởng để chứng minh rằng bài toán cir-SAT thuộc lớp

NP-đầy đủ Tuy nhiên, vào năm 1971, định lí này đã được Cook chứng minh

1.3.4 NP-đầy đủ và NP-khó

Định nghĩa 1.20 Một bài toán quyết định A được gọi là NP - đầy đủ nếu như A là

bài toán trong NP và mọi bài toán trong NP đều có thể quy dẫn về A

Định nghĩa 1.21 Một bài toán A được gọi là NP - khó nếu như sự tồn tại thuật toán

đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để giải mọi bài toán trong

NP

Nói cách khác, nếu có thể giải một bài toán NP-khó nào đó một cách nhanh

chóng, thì cũng có thể nhanh chóng giải quyết bất kỳ một bài toán nào khác Bài

toán NP-khó ít nhất là khó bằng bất cứ một bài toán nào trong NP NP-đầy đủ là những bài toán khó nhất trong NP Hình 1.7 biểu diễn cách phân lớp tạm thời các

Trang 33

1.4 Bài toán cây khung truyền thông tối ƣu

1.4.1 Phát biểu bài toán cây khung truyền thông tối ƣu

Bài toán cây khung truyền thông tối ƣu (Optimal Communication

Spanning Tree Problem - OCST) được phát biểu như sau:

Cho G (V,E,w) là đồ thị vô hướng với hàm trọng số w Bên cạnh đó là hàm

yêu cầu ( v u, ) cho mỗi cặp đỉnh Với mỗi cây khung T của G, giá truyền thông

giữa 2 đỉnh được tính bằng hàm yêu cầu nhân với độ dài đường đi giữa 2 đỉnh đó

trên cây T, và giá của cây khung T là tổng giá truyền thông của tất cả các cặp đỉnh

Mục đích của chúng ta là xây dựng cây khung với giá truyền thông là nhỏ nhất Tức

là chúng ta tìm cây khung T sao cho:

Hàm yêu cầu trong bài toán OCST có thể là hàm không âm bất kì Bằng cách

giới hạn hàm yêu cầu thì chúng ta có nhiều trường hợp của bài toán này Chúng ta định nghĩa thêm hàm r:VZ0 là hàm trọng số đỉnh cho trước và SV là tập bao gồm k đỉnh nguồn cho trước:

i (u,v)  1 với mọi u,vV: Đây là bài toán cây khung giá định tuyến cực tiểu

(Minimum Routing- Cost Spanning Tree - MRCT)

ii (u,v) r(u)r(v)với mọi u,vV : Đây là bài toán cây khung truyền thông với

hàm yêu cầu tích tối ưu (Optimal Product - Requirement Communication

Spanning Tree - PROCT )

iii (u,v) r(u) r(v)với mọi u,vV : Đây là bài toán cây khung truyền thông

với hàm yêu cầu tổng tối ưu ( Optimal Sum - Requirement Communication

Spanning Tree - SROCT)

iv (u,v)  0nếu uS : Đây là bài toán OCT p-source ( p - source OCT), hay

nói cách khác là ta đi tìm cây khung có 

  S

),(),(

d v u

Trang 34

v (u,v)  1 nếu uS và (u,v)  0 nếu ngược lại Đây là bài toán p-source

MRCT ( p-source MRCT) Nói cách khác mục đích của chúng ta là tìm cây

khung cực tiểu



 S 

),(

d

Hình 1.8 Mối quan hệ giữa các bài toán OCT

Tuy nhiên, vì hàm yêu cầu ( v u, ) thường được cho dưới dạng ma trận )

T j i

r

, ,

, ) (trong đó d(p T,j) là tổng trọng số của các cạnh trên đường đi duy nhất từ i đến j và là dạng tổng quát của tất cả những bài toán OCT đã liệt kê ở trên

Trang 35

Với đồ thị có 6 nút và ma trận trọng số và ma trận yêu cầu được cho như sau: (ma trận trọng số và ma trận yêu cầu thường có dạng ma trận tam giác trên)

và một cây khung của đồ thị này có dạng:

Hình 1.9 Cây khung minh họa cho việc tính giá

Giá của cây khung này sẽ là:

ij d

) , (

Trang 36

Như đã nói ở trên, bài toán cây khung truyền thông tối ưu được Garey và

Johnson chỉ ra là thuộc lớp bài toán NP-khó (1979) sau đó được chứng minh là thuộc lớp MAXSNP-khó

Khi áp dụng giải thuật di truyền thì không gian kiểu hình chính là không gian cây khung và khoảng cách kiểu hình là khoảng cách giữa hai cây khung đó Khoảng

cách Hamming d h giữa hai cây chỉ ra chính xác số các cạnh khác nhau trên hai cây

đó

Như vậy, khoảng cách nhỏ nhất giữa hai cây là d h

=2

Để đơn giản, chúng ta định nghĩa khoảng cách d i,j = {0,1, n-1} giữa 2 cây

G i , G j là một nửa số lượng các đường liên kết khác nhau (d i,j = ½d h i,j), tức là:

v

j uv i uv V

v

j uv i

1.4.2 Ứng dụng của bài toán

Bài toán được ứng dụng trong một số bài toán thiết kế mạng đơn giản và một

số bài toán vận tải cụ thể

Bài toán thiết kế mạng đơn giản được phát biểu như sau:

Đầu vào:

Số nút mạng n,

Vị trí của các nút,

Yêu cầu truyền thông giữa n nút này,

Khả năng (lưu lượng) của liên kết

Giá của liên kết phụ thuộc vào khả năng và độ dài của đường liên kết đó

Yêu cầu xác định:

o Topology (cấu trúc) mạng,

o Định tuyến giao thông qua mạng

Trang 37

Như vậy, chúng ta định nghĩa một mạng như là một đồ thị với n nút và có tối

đa n1) liên kết giữa các nút này Nếu mạng là kết nối đầy đủ thì nó có ít nhất

(n-1) liên kết Chúng ta giả sử rằng các liên kết này đều là vô hướng (tuy nhiên ta cũng

có thể áp dụng trong trường hợp có hướng) và mạng luôn là liên thông Như vậy, số

lượng tối đa các liên kết có thể có là n(n-1)/2 Khoảng cách giữa hai nút được tính

toán theo khoảng cách Euclid:

2 2

)(

)

trong đó x, y là các toạ độ trong hệ trục toạ độ Carter

Mục đích của mạng là để vận chuyển các đối tượng, như hàng hoá hay thông tin, từ nút này đến nút khác trong mạng Do đó, cần thiết phải có các luật để định tuyến giao thông qua mạng Các luật này phải dựa trên các thuật toán định tuyến

Nếu số lượng các liên kết trong mạng liên thông đầy đủ lớn hơn n-1, việc định

tuyến giao thông qua mạng có thể thay đổi tự động phụ thuộc vào tình trạng tải, độ

trễ, lỗi của các nút mạng hay một cài điều kiện khác Ngược lại, nếu chỉ có n-1

đường liên kết thì theo định lí DaisyChain, sẽ chỉ có một đường đi duy nhất từ nút này đến mỗi nút kia trong mạng và do đó việc định tuyến là không cần thiết

Dễ dàng thấy được lợi ích của việc sử dụng cây là:

 Thể hiện cấu trúc mạng với số liên kết ít nhất mà vẫn đạt được đồ thị liên thông

 Không cần định tuyến tự động vì chỉ có đường đi duy nhất giữa hai nút mạng

 Kích thước không gian tìm kiếm  n 2

Trang 38

Các bài toán thiết kế mạng/vận tải trên thực tế:

Bài toán 1:

Giả sử rằng mỗi đỉnh v biểu diễn một thành phố và r(v) là số dân của thành

phố đó Đó là lí do vì sao mà ta giả sử rằng yêu cầu truyền thông/vận tải giữa các

cặp đỉnh tỉ lệ thuận với tích (tổng) của trọng số của hai đỉnh đó PROCT, SROCT là

cấu trúc cây với giá truyền thông cực tiểu

Bài toán 2:

Đối với mỗi nút trong mạng đều có một thông điệp riêng truyền đến các nút khác và tổng thông điệp nhận được sẽ tỉ lệ thuận với trọng lượng (khả năng nhận) của nút nhận Với giả sử này thì giá liên thông của cây sẽ là:

v

d v r

,

) , ( )

Trang 39

CHƯƠNG 2 GIẢI THUẬT DI TRUYỀN

2.1 Giải thuật tiến hóa

2.1.1 Lịch sử phát triển

Tính toán tiến hóa (Evolutionary Computation) là các kỹ thuật tìm kiếm

theo xác suất có ý tưởng xuất phát từ nguyên lý “chọn lọc tự nhiên” trong học thuyết về sự tiến hóa của Darwin, và các kỹ thuật về gen Các kỹ thuật này được áp dụng cho một quần thể bao gồm các cá thể nhân tạo, chúng chiến đấu trong cuộc đấu tranh sinh tồn trong đó các cá thể thích nghi nhất sẽ sống sót và cho phép sản sinh ra các cá thể mới

Tính toán tiến hóa được giới thiệu vào đầu những năm 1960 trong “Các

chiến lược tiến hóa” của I Rechenberg Vào giữa những năm 1970, Holland cùng

các sinh viên và đồng sự đã đưa ra giải thuật di truyền (Genetic algorithms – GA) và giới thiệu nó trong cuốn sách “Sự thích nghi trong tự nhiên và trong các hệ thống

nhân tạo” Năm 1992, John Koza đã sử dụng giải thuật di truyền để giải quyết một

số bài toán và gọi phương pháp này là “Lập trình di truyền – Genetic

Programming”

Tính toán tiến hóa là ngẫu nhiên, nhưng không phải là ngẫu nhiên một cách đơn thuần Nó duyệt qua không gian tìm kiếm, sử dụng các thông tin đã có để đoán xem chỗ nào có thể sẽ có kết quả tốt hơn Các giải thuật tiến hóa rất thích hợp cho

các bài toán chưa có lời giải tối ưu Đặc biệt, đối với các bài toán NP-khó, giải thuật

di truyền là phương pháp giải quyết tốt nhất hiện tại được biết đến Theo thời gian, giải thuật di truyền đã được sử dụng để giải rất nhiều bài toán như là bài toán người

du lịch, sắp xếp thời khóa biểu,… Hình 2.1 cho ta thấy mối liên hệ giữa các kỹ thuật tìm kiếm

Trang 40

Hình 2.1 Mối liên hệ giữa các kỹ thuật tìm kiếm

Chiến lược tiến hoá (Evolutionary Algorithm – EA) do T Baeck,

F.H.Hofmeister và H.P.Schwefel đề xuất Thuật toán này dựa trên một số chiến lược ban đầu, tiến hoá để tạo ra những chiến lược mới phù hợp với môi trường thực

tế một cách tốt nhất

Giải thuật di truyền (Genetic Algorithm – GA) do John Holland đưa ra và

được ông phát triển cùng với các đồng nghiệp và sinh viên vào những năm 1970

Cuốn sách "Sự thích nghi trong các hệ tự nhiên và nhân tạo” (Adaption in Natural

and Artificial Systems) xuất bản năm 1975 đã tổng hợp các kết quả của quá trình

nghiên cứu và phát triển đó

Năm 1992, John Koza đã dùng GA để xây dựng các chương trình giải quyết một số bài toán và gọi phương pháp này là "Lập trình di truyền" (Genetic

Programming)

2.1.2 Các phương pháp khác

Có 3 dạng cơ bản của bài toán tìm kiếm, đó là:

i Tìm kiếm trong dữ liệu đã được lưu trữ Ở đây, chúng ta cần thực hiện việc tìm kiếm sao cho có hiệu quả để lấy được thông tin từ một cơ sở dữ liệu lớn, được lưu trữ trong bộ nhớ máy tính chẳng hạn

Các kỹ thuật tìm kiếm

Dựa trên tính toán Ngẫu nhiên Đếm

Trực tiếp Gián tiếp

Fibonacci New ton Tham lam

Quy hoạch động Giải thuật tiến hóa

Giải thuật luyện thép

Chiến lược tiến hóa Lập trình tiến hóa Giải thuật di truyền (GA)

GA tuần tự

GA song song

Song song tự động (nhờ trình dịch)

Song song hạt thô Song song hạt tinh Song song toàn cục

Ngày đăng: 27/07/2017, 20:34

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. A. Bookstein and S. T. Klein (1996), “Compression of Correlated Bit-Vectors”, Information Systems, 16 (4), pp. 387-400 Sách, tạp chí
Tiêu đề: Compression of Correlated Bit-Vectors”, "Information Systems
Tác giả: A. Bookstein and S. T. Klein
Năm: 1996
2. Bang Ye Wu and Kun-Mao Chao (2004), Spanning Trees and Optimization Problems, CRC Press, London Sách, tạp chí
Tiêu đề: Spanning Trees and Optimization Problems
Tác giả: Bang Ye Wu and Kun-Mao Chao
Năm: 2004
3. C.C. Palmer (1994), An Approach to a problem in network design using genetic algorithms, unpublished PhD thesis, Polytechnic University, Troy, NewYork Sách, tạp chí
Tiêu đề: An Approach to a problem in network design using genetic algorithms
Tác giả: C.C. Palmer
Năm: 1994
4. C.C. Palmer and A. Kershenbaum (27-29 June 1994), “Representing trees in genetic algorithms”, Proceedings of the First IEEE Conference on Evolutionary Computation, pp. 379-384 Sách, tạp chí
Tiêu đề: Representing trees in genetic algorithms”, "Proceedings of the First IEEE Conference on Evolutionary Computation
5. E. Reshef (1999), Approximating minimum communication cost spanning trees and related problems, Master’s thesis, Feinberg Graduate School of the Weizmann Institute of Science, Rehovot 76100, Israel Sách, tạp chí
Tiêu đề: Approximating minimum communication cost spanning trees and related problems
Tác giả: E. Reshef
Năm: 1999
6. K. Bala, K. Petropoulos, and T. E. Stern (1993), “Multicasting in a linear Lightwave Network”, in Proceedings of IEEE INFOCOM’93, pp. 1350–1358 Sách, tạp chí
Tiêu đề: Multicasting in a linear Lightwave Network”, in "Proceedings of IEEE INFOCOM’93
Tác giả: K. Bala, K. Petropoulos, and T. E. Stern
Năm: 1993
7. Michael Affenzeller, Stefan Wagner, Stephan Winkler and Andreas Beham (2009), Genetic Algorithms and Genetic Programming – Modern Concepts and Practical Applications, CRC Press, Boca Raton, London, NewYork Sách, tạp chí
Tiêu đề: Genetic Algorithms and Genetic Programming – Modern Concepts and Practical Applications
Tác giả: Michael Affenzeller, Stefan Wagner, Stephan Winkler and Andreas Beham
Năm: 2009
8. M.R. Garey and D.S.Johnson (1979), Computers and Intractability: A Guide to the Theory of NP-Completeness, W.H.Freeman, New York Sách, tạp chí
Tiêu đề: Computers and Intractability: A Guide to the Theory of NP-Completeness
Tác giả: M.R. Garey and D.S.Johnson
Năm: 1979
9. James C. Bean (1994), “Genetics and Random Keys for Sequencing and Optimization”, ORSA Journal on Computing, pp. 154-160 Sách, tạp chí
Tiêu đề: Genetics and Random Keys for Sequencing and Optimization”, "ORSA Journal on Computing
Tác giả: James C. Bean
Năm: 1994
10. J. Gottlieb, B.A. Julstrom, F. Rothlauf, and G.R. Raidl (2001), “Prufer Numbers: A Poor Representation of Spanning Trees for Evolutionary Search”, in Proceedings of the Genetic and Evolutionary Computation Conference (GECCO’2001), pp.343-350 Sách, tạp chí
Tiêu đề: Prufer Numbers: A Poor Representation of Spanning Trees for Evolutionary Search”, in "Proceedings of the Genetic and Evolutionary Computation Conference (GECCO’2001
Tác giả: J. Gottlieb, B.A. Julstrom, F. Rothlauf, and G.R. Raidl
Năm: 2001
11. F. Rothlauf (2009), On optimal solutions for the optimal communications spanning tree problem, Operations research, vol 57, no.2, pp. 413-425 Sách, tạp chí
Tiêu đề: On optimal solutions for the optimal communications spanning tree problem, Operations research
Tác giả: F. Rothlauf
Năm: 2009
12. F. Rothlauf (2006), Representations for Genetic and Evolutionary Algorithms, Springer Verlag Sách, tạp chí
Tiêu đề: F. Rothlauf (2006), "Representations for Genetic and Evolutionary Algorithms
Tác giả: F. Rothlauf
Năm: 2006
13. G. Kortsarz and D. Peleg, Approximating Shallow-light Trees, in Proceedings of the 8 th Symposium on Discrete Algorithms, 1997, pp. 103-110 Sách, tạp chí
Tiêu đề: Proceedings of the 8"th" Symposium on Discrete Algorithms
14. G. Kortsarz and D. Peleg, Approximating the Weight of Shallow Steiner Trees, Discrete Application Mathematics, 93, 1999, pp. 265-285 Sách, tạp chí
Tiêu đề: Discrete Application Mathematics
15. C.C. Palmer and A. Kershenbaum, Representing Trees in Genetic Algorithms, in Proceedings of The First IEEE Conference on Evolutionary Computation, 1994, pp.379-384 Sách, tạp chí
Tiêu đề: Proceedings of The First IEEE Conference on Evolutionary Computation
16. G.R. Raidl and B.A. Julstrom, “A weighted coding in a genetic algorithm for the degree-constrained minimum spanning tree problem”, Proceedings of the 2000 ACM Symposium on Applied Computing, Ianice Carroll, Ernesto Damiani, Hisham Haddad and Dave Oppenheim, Eds. 2000, pp. 440-445, ACM Press Sách, tạp chí
Tiêu đề: A weighted coding in a genetic algorithm for the degree-constrained minimum spanning tree problem”, "Proceedings of the 2000 ACM Symposium on Applied Computing, Ianice Carroll, Ernesto Damiani, Hisham Haddad and Dave Oppenheim
17. G.R. Raidl and B.A. Julstrom, “Edge-sets: An Effective Evolutionary Coding of Spanning Trees”, IEEE Transactions on Evolutionary Computation, 7, 2003, pp.225- 239 Sách, tạp chí
Tiêu đề: Edge-sets: An Effective Evolutionary Coding of Spanning Trees”, "IEEE Transactions on Evolutionary Computation
18. Nguyễn Đức Nghĩa (2008), Bài giảng Phân tích và thiết kế giải thuật, NXB ĐHBK Hà Nội Sách, tạp chí
Tiêu đề: Nguyễn Đức Nghĩa (2008), "Bài giảng Phân tích và thiết kế giải thuật
Tác giả: Nguyễn Đức Nghĩa
Nhà XB: NXB ĐHBK Hà Nội
Năm: 2008
19. Nguyễn Đình Thức (2000), Trí tuệ nhân tạo và lập trình tiến hóa, NXB Giáo dục Sách, tạp chí
Tiêu đề: Trí tuệ nhân tạo và lập trình tiến hóa
Tác giả: Nguyễn Đình Thức
Nhà XB: NXB Giáo dục
Năm: 2000
20. R.L. Graham and Pavol Hell (1985), “On the History of the Minimum Spanning Tree Problem”, Ann. History Computing. 7, pp. 43-57 Sách, tạp chí
Tiêu đề: On the History of the Minimum Spanning Tree Problem”, "Ann. History Computing. 7
Tác giả: R.L. Graham and Pavol Hell
Năm: 1985

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

w