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

Nghiên cứu giải thuật tối ưu hóa bày đàn để giải bài toán người du lịch

79 2 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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

Tiêu đề Nghiên Cứu Giải Thuật Tối Ưu Hóa Bầy Đàn Để Giải Bài Toán Người Du Lịch
Tác giả Nguyễn Thị Hồng Nhị
Người hướng dẫn TS. Nguyễn Hoàng Hà
Trường học Đại học Huế
Chuyên ngành Công Nghệ Thông Tin
Thể loại luận văn thạc sĩ
Năm xuất bản 2020
Thành phố Huế
Định dạng
Số trang 79
Dung lượng 30,58 MB

Nội dung

Trang 1

BO GIAO DUC VA DAO TAO DAI HOC HUE

TRUONG DAI HOC KHOA HOC

NGUYEN THI HONG NHI

NGHIEN CUU GIAI THUAT TOI UU HOA

BAY DAN DE GIAI BAI TOAN NGUOI DU LICH

LUAN VAN THAC SI KHOA HOC

CONG NGHE THONG TIN

Thira Thién Hué, 2020

Trang 2

BO GIAO DUC VA DAO TAO ĐẠI HỌC HUE

TRƯỜNG ĐẠI HỌC KHOA HỌC

NGUYEN THI HONG NHI

NGHIEN CUU GIAI THUAT TOI UU HOA

BAY DAN DE GIAI BAI TOAN NGUOI

DU LICH

CHUYEN NGANH: KHOA HOC MÁY TÍNH MA SO: 8.48.01.01

LUAN VAN THAC Si KHOA HOC

DINH HUONG NGHIEN CUU NGUOI HUONG DAN KHOA HOC

TS NGUYEN HOANG HA

Thira Thién Hué, 2020

Trang 3

LOI CAM DOAN

Tôi xin cam đoan luận văn tốt nghiệp: “Nghiên cứu giải thuật tối ưu hóa

bầy đàn để giải bài toán người du lịch” do tôi tự thực hiện dưới sự hướng dẫn của

thầy giáo Nguyễn Hoàng Hà Các kết quả và số liệu hoàn toàn trung thực

Ngoài các tài liệu tham khảo đã dẫn ra ở cuối luận văn tôi đảm bảo rằng không sao chép các công trình hay luận văn tốt nghiệp của người khác Nếu phát

hiện có sự sai phạm với điều cam đoan trên, tơi xin hồn toàn chịu trách nhiệm

Huế, ngày tháng năm 2020 Học viên

Trang 4

LOI CAM ON

Em xin chân thành cảm ơn Trường Đại Học Khoa Học Huế đã tạo điều kiện cho em thực hiện luận văn này

Em cũng xin chân thành cảm ơn tới tồn thê thầy cơ giáo ở Khoa CNTT,

Trường Đại Học Khoa Học, Đại học Huế đã tận tình giảng dạy và hướng dẫn, trang bị cho em những kiến thức cần thiết trong quá trình thực hiện luận văn được thành

công

Dựa trên sự chỉ bảo tận tình của TS Nguyễn Hoàng Hà dựa trên những kiến thức đã học và tìm hiểu được, em đã hoàn thành luận văn theo đúng thời gian quy định Tuy nhiên trong quá trình thiết kế và thực hiện luận văn không tránh khỏi sai sớt, do thời gian có hạn và khả năng còn hạn chế Em mong quý thầy cô và các bạn thông cảm và có những ý kiến quý báu nhằm hoàn thiện hơn cho sản phẩm

Em xin chân thành cảm ơn!

Huế, ngày tháng năm 2020

Học viên

Trang 5

bài toán khác nhau như: Tối ưu hóa không ràng buộc (Unconstrained Optimization), tối ưu hóa ràng buộc (Unconstrained Optimization), tối ưu hóa ràng buộc (Constrained Optimization), tối ưu đa mục tiêu (Multi Objective Optimization), tối ưu hóa động (Dynamic Optimization Problem), v.v

2.2.2 Định nghĩa

Trong PSO, vấn để bài toán được mô hình hóa như là không gian giải pháp n — chiều, quần thể sẽ tìm kiếm cá thể cho giải pháp tối ưu trong không gian Y —

chiều [12]

Dinh nghia 1: trong PSO, mdi cá thể P¿ mô phỏng như một cá thể của đàn

chim Ở mỗi thế hệ, cá thể P„ có một vài vị trí pos, trong khong gian tim kiém Y — chiéu va pos, biểu diễn vị trí của cá thé sau khi cập nhật tại thế hệ sau đó Mỗi cá

thê biểu diễn một lời giải của bài toán nhưng chưa phải là lời giải tối ưu Tùy từng

bài toán mà mỗi cá thể sẽ được biểu diễn ở các cách khác nhau như cây, chuỗi số,

mã nhị phân Mỗi lời giải trong bài toán có thể được coi như là một vị trí trong không gian đó Trong ngữ cảnh giải quyết bài toán, một cá thể với vị trí của nó biểu diễn một giải pháp tiềm năng Hình 2.3 bên dưới biểu diễn các cá thể trong không gian tìm kiếm 2 chiều

Hinh 2.3 Bay dan voi 10 cá thể trong không gian tìm kiếm 2 chiều

Trang 6

1.3.2 Mơ tả bài tốn TSPP S c2 nnnHHH HH HH Hee 21

1.3.3 Phân loại bài toán TSP -L Q12 1122111112211 1 1521111101111 11kg key 21

1.4 CÁC THUẬT TOÁN GIẢI BÀI TOÁN TSP -2-22222222221222122222e 23

I S00 6n 23

1.4.2 Thuật giải gần đúng heuristic - 5222222222 22122212211211212222 e6 24

1.5 KÉT CHƯƠNG -©22222122212212221211211221122222122222 2e 26 CHƯƠNG 2: THUẬT TOÁN TỎI ƯU BẢY ĐÀN PSO 27 2.1 GIỚI THIỆU MỘT SÓ THUẬT TOÁN BẢY ĐÀN 2cccccce 27 2.1.1 Giải thuật tối ưu hóa dan kién (Ant Colony Optimization — ACO) 27

2.1.2 Giải thuật tối ưu hóa bầy đàn (Particle Swarm Optimization — PSO) .28 2.1.3 Giải thuật tối ưu hóa đàn ong (Ariñcial BeColony- ABC) -2 - 29

2.1.4 So sánh giữa các giải thuật ACO, ABC, PSO à ào 29

2.2 PSO TRUYỀN THÓNG 222 52 2222211111211121111112111121122222122 xe 30

2.2.1 Giới thiệu ee cee 2212221222122112211221221222222222222 22a 30

V9) ng 0 :nầdaiiiiiiiii 31

2.2.3 Mơ tả thuật tốn -25- 222 2212221221221122112212212222222222 21a 35

2.3 CÁC CẢI TIỀN CỦA THUẬT TOÁN PSO 52222222222211211211 22C 38 2.3.1 Mở đầu 22 252221 2221222122112211221122122122222222222222222 are 38 2.3.2 Các cải tiến với các tham sỐ - ¿222222212 2221122212211221 211cc 39 2.3.3 Các cải tiến với hàm mục tiÊu: - 22-2222 2222221222122 22122 ctke 40 2.4 CÁC ỨNG DỤNG CỦA PS§O 52-222 22222112111211121112111211222222 xe 42 2.5 KẾT CHƯƠNG 222222222221122112111211111121121121222222 re 43 CHUONG 3: UNG DỤNG THUẬT TOÁN PSO ĐỂ GIẢI BÀI TỐN NGƯỜI

9805:0000 ƠỎ 44

3.1 PHÁT BIÊU BÀI TOÁN 2-2222 2222221222122112211221122122222 re 44 3.1.1 Mô tả chỉ tiết bài toán 22 222 222122112211221112111211211212 e6 44 3.1.2 Một số thuật toán dé giải bài toán người du lịch -52s22z-<2 46 3.2 THUAT TOAN PSO ooo coo coos eee eee eee eevee enter eeeee 55

3.2.1 Mô hình PSO áp dụng cho bai todn TSP ee eeeeeeneereneteeteeeeneens 55

Trang 7

3.3 KET QUA THUC NGHIEM CHUONG TRINH .cceccsccsscesesseessesesetesseees 58

3.3.1 Cai dat giai thuat PSO voi ng6n ngit C# oe eeceeeeeeereeeeteeteeeeeens 58

3.3.2 Thực hiện thuật toán PSO từ tập dữ liệu Pr76Dataset.xml 61

3.4 DANH GIA KET QUA oioceecceccecccsscsssecsessesssecsessessetsesesessessesaseseetitsssesseseseeseres 62

3.4.1 Két quả thực hiện của thuật toán PSO che 62

3.4.2 Đánh giá hiệu quả thuật toán PSO à 2 cc nhe 63

3.4.3 So sánh thuật toán PSO với thuật toán vét cạn và thuật toán nhánh cận 64

Trang 8

DANH MUC CAC BANG

Bang 3.1 Cấu hình tham số của thuật toán PSO 2252 2212221222222 xee 61

Bảng 3.2 Kết quả thực nghiệm cho bộ dữ liệu nguồn tu tập dữ liệu Pr76Dataset.xml

Trang 9

DANH MỤC CÁC HÌNH

Hình 1.1 Sơ đồ mạng máy tính đơn kênh thoại -2-©22222222222222225222522222e2 5 Hình 1.2 Sơ đồ mạng máy tính đa kênh thoại 22 222222 2522251223121112111212 22 6

Hình 1.3 Giả đỗ thị 222222222 tt thue 7

Hình 1.4 Đơn đỗ thị có hướng 22: 22 2222251222122112111211121112111211211121122 xe 7 Hình 1.5 Đa đỗ thị có hướng 22-222222222512211211121112112112111212222222 xe §

Hình 1.6 Đồ thị G và H 222226 chua 11

Hình 1.7 Mô hình đồ thi ctia bai todn TSP .cccccccccccscecssceseeescssessestesesvesesteesveseeveees 21

Hình 2.1 Mô tả kiến tìm đường 52222222122212221222122122222222 2e 27

Hình 22 Mô'1ã.chím fìm.đƯỜNcezisecesirrsetnitidttidittdtodgthGiStDV8SERAt0t8Giony(tRoszmual 28 Hình 2.3 Bầy đàn với 10 cá thể trong không gian tìm kiếm 2 chiểu 31 Hình 2.4 Quan hệ vị trí - vận tốc trong không gian 2 chiễu - 22 32

Hình 2.5 Một bay đàn toàn cục và lan cAn cuc bO woo eeccccccceeeeeeeeeseeeenseeeensees 33

Hình 2.6 Các topology lân cận đơn giản S2: 2S nhe 34 Hình 2.7 Lưu đồ của giải thuật PSO -2222222122212221211222222222ee 36 Hình 3.1 Thời gian chạy và độ lệch đường đi của thuật toán PSO khi thay đổi số lượng các cá thỂ 55 2S 2211221211211 ree 62 Hình 3.2 Kết quả của thuật toán PSO khi sử dụng 76 đỉnh - 2-5222 63 Hình 3.3 So sánh thời gian thực hiện chương trình của 3 thuật toán PSO, vét cạn và nhánh cận - 0 1222111122111 12511 1121111110111 1 111111101111 1kg 1kg kg x kg 1k1 1k kt 64

Trang 10

DANH MUC CAC CHU VIET TAT STT | Tw viet tắt Từ hoặc cụm từ

1 ABC Artificial Bee Colony

đối uu hoa dan ong )

2 ACO Ant Colony Optimization

(đối ưu hóa đàn kiến)

3 g-best global-best

4 l-best local-best

6 NP Lớp các bài toán quyết định

9 p-best particle-best

10 PSO Particle Swarm Optimization

(Tối ưu hóa bầy đàn)

11 TSP Travelling Salesman Problem (Bài toán người đu lịch)

Trang 11

MO DAU

1 LY DO CHON DE TAI

Bài toán Người du lich (Travelling Salesman Problem - TSP) là một trong những bài toán kinh điển và khó trong tin học [3] Bài toán có phát biểu rất đơn giản nhưng rất khó giải trong trường hợp tông quát với không gian tìm kiếm rộng lớn,

khó bởi các thuật toán hiệu quả nhất đã được biết đến có thời gian giải quyết bài

toán này tăng dần theo cấp số nhân, hay độ phức tạp thuật toán tăng theo hàm số mũ Có rất nhiều cách tiếp cận giải bài toán này ngay từ khi nó mới ra đời, như sử dụng quy hoạch tuyến tính [3], thuật toán vét cạn, thuật toán người láng giềng gần

nhất [5] kỹ thuật nhánh và cận, quy hoạch động [3] nhưng mới chỉ dừng lại ở các

bộ đữ liệu nhỏ Đối với bộ đữ liệu lớn thì đây là một thách thức rất lớn và đang

được các nhà nghiên cứu quan tâm tìm cách giải quyết

Năm 2017, Abid Hussain và các đồng nghiệp [3] đã nghiên cứu thuật toán tiến hóa di truyền (Genetic Algorithim) để giải bài toán TSP với số đỉnh M=30,

Chunhua Fu (2018) đã cải tiến thuật toán GA để giải quyết bài toán TSP Năm

2017, T Ramadhani và các đồng nghiệp đã sử dụng ACO để giải quyết bài toán TSP nhằm tăng số đỉnh của bài toán Năm 2012, M A H Akhand và các đồng nghiệp đã để xuất một phương pháp PSO đề giải quyết bài toán TSP

Thuật toán PSO dựa trên kinh nghiệm của bay dan được đề xuất bởi Eberhart

và Kennedy [9] Nó là một thuật toán thông minh dựa trên bầy đàn, mô phỏng lại hành vi xã hội của bầy chim hay đàn cá khi đi tìm kiếm nguồn thức ăn Ví đụ một đàn chim đi tìm thức ăn trong không gian tìm kiếm ba chiều của nó Ban đầu cả bầy xuất phát ngẫu nhiên theo một hướng nào đó, sau một khoảng thời gian một số cá

thể của đàn tìm kiếm được nơi chứa thức ăn Tuy theo số lượng thức ăn tìm được,

ca thé này truyền tín hiệu đến các cá thể khác đang tìm kiếm thức ăn ở vùng lân cận, sau đó tín hiệu này sẽ lan truyền đến toàn bộ các cá thể trong đàn

Một cá thể (particle) được thể hiện trong PSO tương tự như một con chim

Trang 12

của mỗi cá thê là sự kết hợp giữa vận tốc và hướng di chuyển Vị trí của mỗi cá thé

tại bất kỳ thời điểm nào cũng bị ảnh hưởng bởi vị trí tốt nhất của nó và vị trí tốt nhất của cả bay đàn Hiệu quả đạt được của một cá thể được xác định bởi một giả trị thích nghị, giá trị này được xác định phụ thuộc vào từng bài toán

PSO tương tự như giải thuật di truyền [4] nhưng PSO không có giai đoạn lai ghép giữa các cá thể trong quần thể Trong PSO, quần thể bao gồm các cá thé trong không gian của bài toán Các cá thê được khởi tạo một cách ngẫu nhiên Mỗi cá thê

sẽ có một giá trị thích nghĩ, giá trị này được xác định bởi một hàm thích nghi để tối ưu trong mỗi thế hệ Trong mỗi thế hệ, mỗi cá thể thay đổi vận tốc và thay đổi vị trí

của nó theo thời gian Dựa vào giá trị thích nghi, mỗi cá thể tìm ra giải pháp tối ưu

cục bộ Pres trong không gian tìm kiếm D chiều

PSO là khung thuật toán chung để giải quyết các bài toán tối ưu tổ hop, dé ap

dụng PSO vào bài toán cụ thể chúng ta phải xác định được vị trí, vận tốc, hàm thích nghi, vi tri tối ưu cục bộ của từng cá thể và vị trí tối ưu toàn cục của cả bay dan

[10]

Xuất phát từ việc tìm hiểu, nghiên cứu bài toán người du lịch và các thành phần của khung thuật toán chung PSO, tôi chọn đề tài “Nghiên cứu giải thuật tối ưu

hóa bầy đàn để giải bài toán người du lịch” 2 BÓ CỤC CỦA LUẬN VĂN

Luận văn gồm 3 chương với các nội dung như sau:

Chương 1: Cơ sở lý thuyết

Tìm hiểu nghiên cứu lý thuyết liên quan về đồ thị; lý thuyết về bài toán tối ưu tổ hợp; tìm hiểu nội đung bài toán người du lịch và các phương pháp giải bài toán người du lịch; thuật toán dùng phương pháp vét cạn, thuật toán dùng kĩ thuật

nhánh và cận

Chương 2: Thuật toán tối uu héa bay dan PSO

Trang 13

thay đổi vị trí và điều chỉnh tốc độ; thuật toán PSO: các phiên bản nâng cấp của

PSO; tính hội tụ và độ phức tạp của thuật toán

Chương 3: Ứng dụng thuật toán PSO đê giải bài toán người du lịch

Phát biểu bài tốn; mơ hình hóa bài toán người du lịch để áp dụng vào thuật

toán PSO: dựa vào thuật toán PSO đề xây dựng thuật toán giải bài toán người đu

lịch; phân tích và đánh giá hiệu quả của việc áp dụng thuật toán PSO so với thuật

toán sử dụng phương pháp vét cạn và thuật toán nhánh cận 3 MỤC TIỂU NGHIÊN CỨU

Nghiên cứu thuật toán tối ưu hóa bay dan (PSO) dé giai bai toán người đu lịch

4 NHIỆM VỤ CHÍNH CỦA ĐÈ TÀI

Tổng quan về bài toán người đu lịch

- Tim hiéu các thuật toán truyền thống cho bài toán người du lịch như thuật toán sử dụng phương pháp vét cạn, thuật toán sử dụng phương pháp qui

hoạch động

- _ Tìm hiểu thuật toán PSO

-_ Áp dụng thuật toán PSO vào bài toán người du lịch

- _ Xây dựng chương trình giải quyết bài toán người du lịch với số đỉnh lớn

- So sanh hiệu quả của thuật toán PSO so với thuật toán tuần tự và qui

hoạch động trong việc giải bài toán người du lịch

5 DOI TUONG VA PHAM VI NGHIEN CUU 5.1 Đối tượng nghiên cứu

Trang 14

- Lý thuyết về thuật toán dùng phương pháp vét cạn và thuật toán đùng phương pháp qui hoạch động để giải bài toán người du lịch

- Lý thuyết về thuật toán tối ưu hóa bầy đàn (PSO) 5.2 Phạm vi nghiên cứu Nghiên cứu thuật toán tối ưu hóa bầy đàn dé xây dựng ứng dụng giải bài toán người du lịch Đánh giá hiệu quả của thuật toán đề xuất với thuật toán dùng phương pháp vét cạn và qui hoạch động 6 PHƯƠNG PHÁP NGHIÊN CỨU 6.1 Phương pháp lý thuyết Tổng hợp và phân tích các tài liệu liên quan đến phương pháp giải bài toán người du lịch

-_ Nghiên cứu tìm hiểu các phương pháp giải bài toán người đu lịch - _ Nghiên cứu về thuật toán tối ưu hóa bầy đàn PSO áp dụng cho bài toán

người du lịch

- Co sé ly thuyết về thuật toán PSO

Cơ sở lý thuyết về thuật toán PSO áp dụng cho bài toán người du lịch 6.2 Phương pháp thực nghiệm

- _ Lựa chọn ngôn ngữ lập trình để cài đặt thuật toán - Thue nghiệm thuật toán trên bộ dữ liệu thử nghiệm

Trang 15

CHUONG 1 CO SO LY THUYET

Chương này tìm hiếu nghiên cứu lý thuyết liên quan về đồ thị; lý thuyết về bài tốn tối ưu tơ hợp, tìm hiểu nội dung bài toán người đu lịch và các phương pháp giải bài toán người du lịch: thuật toán vét cạn, thuật toán láng giêng gần

nhất, thuật toán tìm kiếm cục bộ, thuật toán nhánh cận và thuật toán đi truyền

1.1 CAC KHAI NIEM CO BAN VE DO THI 1.1.1 Dinh nghia dé thi

¢ Do thi la 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 + Phan biệt các loại đồ thị khác nhau bởi kiểu và số lượng cạnh nối hai đỉnh nào đó của đồ thị 1.1.2 Các loại đồ thị Đơn đồ thị

Đơn đồ thị vô hướng G = (V,E) bao gồm V là tập các đỉnh khác rỗng, và 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 Ví dụ như sơ đồ mạng máy tính đơn kênh thoại Hình 1.1 đưới đây:

Hi Tiy „ Thanh Hóa a Đông Nai „ AnGiang

Trang 16

Đa đồ thị

Đa đồ thị vô hướng G= (V, E) bao gồm V là tập các đỉnh khác rỗng, và 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 Hai cạnh el và e2 được gọi là cạnh lặp (bội hay song song) nếu chúng cùng tương ứng

với một cặp đỉnh

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

thị, vì trong đa dé thị có thể có hai (hoặc nhiều hơn) cạnh nỗi một cặp đỉnh nào đó

Ví dụ như sơ đồ mạng máy tính đa kênh thoại Hình 1.2 dưới đây: Hà tây ¬¬- Ane Thanh hóa TEIREU eae Long an Nam Định

Hué Khanh hoa

Hình 1.2 Sơ đồ mạng máy tính đa kênh thoại

Giả đồ thị

Giả đồ thị vô hướng G = (V, E) bao gồm V là tập các đỉnh khác rỗng và E là

tập các cặp không có thứ tự gồm hai phân tử (không nhất thiết phải khác nhau) của

V gọi là cạnh

Với v € V, nếu (v,v) €E thì ta nói có một khuyên tại đỉnh v Giả dé thi duoc

Trang 17

Hình 1.3 Giả đồ thị

Nhận xét: giả đồ thị là loại đồ thị vô hướng tông quát nhất vì nó có thể chứa

các khuyên và các cạnh lặp Đa dé thị là loại dé thi vô hướng có thể chứa cạnh bội

nhưng không thể có các khuyên, còn đơn đồ thị là loại đồ thị vô hướng không chứa

cạnh bội hoặc các khuyên

Đơn đồ thị có hướng

Đơn đồ thị có hướng G = (V, E) bao gồm V là tập các đỉnh khác rỗng và E là

tập các cặp có thứ tự gồm hai phần tử khác nhau của V gọi là các cung Don dé thi có hướng được minh họa ở Hình 1.4 dưới đây:

Hình 1.4 Đơn đồ thị có hướng

Đa đồ thị có hướng

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

tập các cặp có thứ tự gồm hai phần tử khác nhau của V gọi là các cung Hai cung el, e2 tương ứng với cùng một cặp đỉnh được gọi là cung lặp Đa đồ thị có hướng

Trang 18

Hinh 1.5 Da do thi có hướng

1.1.3 Bậc của đỉnh Định nghĩa 1

Hai đỉnh u va v trong dé thi (vô hướng) G=(V.E) được gọi là liền kề nếu

(u,v) EE Nếu e= (u,v) thi e gọi là cạnh liên thuộc với các đỉnh u và v Cạnh e cũng được gọi là cạnh nỗi các đỉnh u và v Các đỉnh u va v gọi là các điểm đầu mút của cạnh e

Định nghĩa 2

Bậc của đỉnh v trong dé thi G=(V,E), ky hiệu deg(v), là số các cạnh liên thuộc với nó, riêng khuyên tại một đỉnh được tính hai lần cho bậc của nó

Đỉnh v gọi là đỉnh treo nếu đeg(v)=1 và gọi là đỉnh cô lập nếu deg(v)=0

Xét ví dụ:

Trang 19

Đỉnh v4 là đỉnh cô lập và đỉnh v6 là đỉnh treo Dinh lý 1

Giả sử G = (V, E) là đồ thị vô hướng với m cạnh Khi đó tổng bậc của tất cả

các đỉnh bằng hai lần số cạnh

Chứng minh Rõ ràng mỗi cạnh e = (u, v) được tính một lần trong đeg(u) và một lần trong deg(v) Từ đó suy ra tổng tất cả các bậc của các đỉnh bằng hai lần số

cạnh

Hệ quả Trong để thị vô hướng, số đỉnh bậc lẻ (nghĩa là có bậc là số lẻ) là mot sé chin

Chứng minh Thực vậy, gọi O va U tuong ung 1a tap dinh bac lé va tap dinh

bac chin ctia dé thi Ta co:

2m = à, deg(v) + » deg(v)

veu veo

Do deg(v) là chan véi v là đỉnh trong U nên tổng thứ nhất ở trên là số chin ==> tông thứ hai (chính là tổng bậc của các đỉnh bậc lẻ) cũng phải là sé chin, do tat cả các số hạng của nó là số lẻ, nên tổng này phải gồm một số chẵn các số hạng Vì

vậy, số đỉnh bậc lẻ phải là s6 chin

Dinh nghia 3

Nếu e = (u, v) là cung của đồ thị có hướng G thì ta nói hai đỉnh u va v là kề nhau, và nói cung (u, v) nối đỉnh u với đỉnh v hoặc cũng nói cung này là đi ra khỏi

đỉnh u và vào đỉnh v Đỉnh u(v) sẽ được gị là đỉnh đầu (cuối) của cung (u,v) Định nghĩa 4

Trang 20

Định lý 2 Cho G =(V, E) là một đồ thị có hướng Khi đó: m= > deg* (v) = » deg” (v) veV veV Chứng minh: Kết quả có ngay là vì mỗi cung được tính một lần cho đỉnh đầu và một lần cho đỉnh cuối

1.1.4 Tính liên thông của đồ thị

Dinh nghia 1 (Duong di)

Đường đi độ dài n tir dinh u dén dinh v, trong đó n là số nguyên đương, trên

đỗ thị vô hướng G = (V, E) là dãy Xọ, Xị, , Xạ, Xạụ, trong đó u = Xo, V = Xụ, (Xị, Xui)€ E,1=0, 1,2, ,n-1

Đường ởi nói trên còn có thể biểu diễn dưới dang day các cạnh: (Xọ, XỊ), (Xị,

X2) (XI, Xa)

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

* Đườ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 Ví dụ 1

Trên đồ thị vô hướng cho trong hình:

Trang 21

“ d, e, c, a không là đường đi, do (c,e) không phải là cạnh của dé thi « Day b, c, f, e, b la chu trinh d6 dai 4

* Duong di a, b, e, d, a, b có độ dài là 5 không phải là đường đi đơn, do cạnh

(a, b) có mặt trong nó 2 lần

Định nghĩa 2 (Liên thông)

Đồ 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ó H2 | f 8 HD Hình 1.6 Đồ thị G va H Đồ thị G là liên thông, còn đồ thị H là không liên thông 1.1.5 Biểu diễn đồ thị trên máy tính

1.1.5.1 Ma trận kề, ma trận trọng số

Xét đơn đồ thị G=(V,E)

* Ma trận kẻ:

Ma trận A={a¡;: 1j=1, 2 n} với a¡¡=0, nếu (,j)£E và a¡,=1, nếu (¡j)CE, ¡,

j=l, 2 n goi la ma tran kể của đồ thị G * Tính chất của ma trận kề của đồ thị vô hướng:

* Tính đối xứng: a¡¡=a¡¡,LJ=1,2, n

* Tổng các phần từ trên dòng ¡ (cột j) bằng bậc của đỉnh ¡ (đỉnh j)

Trang 22

* Tinh chất của ma trận kể của đồ thị có hướng:

* Không có tính đối xứng

* Tổng các phần từ trên dòng i bang ban bậc ra của đỉnh ¡ (deg()) và tổng các phần từ trên cột j bằng bán bậc vào của đỉnh j (deg(j))

* Ma trận trọng SỐ:

Đồ thị có trọng số là đỗ thị mà mỗi cạnh (1]) có một giá trị c(1,J) gọi là trọng số của cạnh

Dé biểu diễn đồ thị ta sử dụng ma trận trọng số C= {€¡j, LJEI, 2, .,n}với

GijE Cij néu (ij) € E và c¡j=0 néu (i,j) ¢ E trong dé sé Ð có thể được đặt bằng một

trong các giá trị sau: 0, +œ, -œ,

Ưu điểm lớn nhất của phương pháp biểu diễn đồ thị bằng ma trận kề (hoặc

ma trận trọng số) là để trả lời câu hỏi: Hai đỉnh u,v có kể nhau trên đồ thị hay

không, chúng ta chỉ phải thực hiện một phép so sánh

Nhược điểm lớn nhất của phương pháp này là: không phụ thuộc vào số cạnh

của đỗ thị, ta luôn phải sử dụng nŸ đơn vị bộ nhớ đề lưu trữ ma trận kể của nó

1.1.5.2 Ma trận liên thuộc đỉnh-cạnh:

Xét G=(V, E) là đơn để thị có hướng Ma trận liên thuộc đỉnh - cạnh có

dang:

1,néu i là dinh dau cia cung e;

Aij = {_ —Lnếu í là đỉnh cuối của cung e;

0, nếu ¡ không là đầu mút của cung e;

Trang 23

Vi du: (1.2) (1.3) (2.3) (2.4) (3.5) (45) (46) (5,2) (5.6) l | 1 ụ 0 ụ ụ 0 ụ 0 Và «1 ũ | 1 0 0 ũ | 0 3 0 -l -1 0 1 0 0 ụ 0 A= 4 0 0 0 -l 0 | I ụ ũ $ Ũ 0 0 0 -l el 0 1 | 6 [0 0 0 0 0 0 -l oO -1 ) 1.1.5.3 Danh sách cạnh (cung)

* Trong trường hợp đề thị thưa (đồ thị có số cạnh m thoả mãn bất đẳng thức:

m<6n) biểu diễn đồ thị dưới đạng danh sách cạnh Lưu trữ danh sách tất cả các cạnh

(cung) của đồ thị

* Một cạnh (cung) e=(x,y) của đồ thị tương ứng với hai biến Dau[e], Cuoife]

* Để lưu trữ đồ thị ta cần sử dụng 2m đơn vị bộ nhớ

Nhược điểm: dé tìm các đỉnh kề với một đỉnh cho trước phải làm m phép so

sánh (khi duyệt qua danh sách tat cả các cạnh của đỗ thi)

Trang 25

Bài toán tìm đường đi qua tất cả các cầu, mỗi cầu chỉ qua một lần có thể được phát biểu lại bằng mô hình như sau:

e C6 t6n tai chu trình đơn trong da đỗ thị G chứa tất cả các cạnh?

* Đường đi qua mỗi cạnh của đỗ thị đúng một lần được gọi là đường đi Euler

* Chu trình qua mỗi cạnh của đồ thị đúng một lần được gọi là chu trình Euler * Để thị được gọi là đồ thị Euler nếu nó có chu trình Euler, và gọi là dé thi

nửa Euler nếu nó có đường đi Euler

“ Nhận xét: mọi đỗ thị Euler luôn là nửa Euler, nhưng điều ngược lại không

luôn đúng

1.1.6.2 Đồ thị HAMILTON

Trong mục này chúng ta xét bài toán tương tự như trong mục trước chỉ khác là ta quan tâm đến đường đi qua tất cả các đỉnh của đỗ thị, mỗi đỉnh đúng một lần Sự thay đổi tưởng chừng như là không đáng kể này trên thực tế đã dẫn đến sự phức tạp hoá vấn để cần giải quyết

Định nghĩa

Đường đi qua tất cả các đỉnh của đồ thị mỗi đỉnh đúng một lần được gọi là đường đi Hamilton

« Chu trình bắt đầu từ một đỉnh v nào đó qua tất cả các đỉnh còn lại mỗi

đỉnh đúng một lần rồi quay trở về v được gọi là chu trinh Hamilton

« Đồ thị G được gọi là đỗ thị Hamilton nếu nó chứa chu trình Hamilton và

gọi là đồ thị nửa Hamilton nếu nó có đường đi Hamilton

Nhận xét: Rõ ràng đồ thị Hamilton là nửa Hamilton, nhưng điều ngược lại

không còn đúng

Trang 26

1.2 BAI TOAN TOI UU TO HOP 1.2.1 Phát biểu bài toán tổng quát

Bài toán tối ưu hóa tổ hợp là bài toán hấp dẫn và thú vị bởi vì phần lớn

chúng đều dễ để hình dung nhưng khó mà tìm ra lời giải cho chúng Nhiều bài tốn tối ưu tơ hợp là các bài toán NP-khó và chúng không thể giải được trong thời gian đa thức Trên thực tế người †a thường giải quyết các bài toán này bằng các phương pháp xấp xỉ, chúng có nghiệm gần tối ưu và thời gian chạy khá ngắn Các thuật toán

thuộc lại này tạm gọi là các thuật toan heuristic, ching duoc str ung để giải quyết

các bài toán cụ thể Mở rộng của chúng là các thuật toán mefaheurisfic có thê giải quyết được cả một lớp các bài toán rộng lớn PSO là một phương pháp theo hướng tiếp cận như thế

Bài toán tối ưu hóa tổ hợp được định nghĩa như sau: Cho một tập C = {e1, c2, .cn}

Một tập con Š của C là một phương án để giải quyết bài toán

Tap F 2” là tập tất cả các phương án có thể, vì thế S là một phương án khả

thi nếu Š e F

Một hàm giá trị z xác định như sau, z : 2“ —> R, mục tiêu là tìm phương án

khả thi S* có giá trị nhỏ nhất: $* e Ƒ và 2(S*) <z(S), VS € F

Nhiều bài toán tối ưu quan trọng trong lý thuyết và thực tế là các bài toán

thuộc loại tối ưu hóa tổ hợp Ví dụ, bài toán tìm đường đi ngắn nhất, cũng như

nhiều bài toán có ý nghĩa quan trọng khác trên thực tế như bài toán người chào hàng, bài toán phân cơng lao động, bài tốn định tuyến mạng, bài toán lập lịch cơng việc, bài tốn lập lịch bay cho các hãng hàng không, và nhiều bài toán khác nữa

Một bài toán tối ưu hóa tổ hợp hoặc thuộc loại tìm giá trị nhỏ nhất hoặc là

thuộc loại bài toán tìm giá trị lớn nhất Các phương pháp giải loại bài toán này phần

Trang 27

lớn là các phương pháp tìm kiếm heuristic (cac thuat toán mefaheurisfie) Sau day là

các thuật toán đã được sử dụng:

« Thuật tốn tìm kiếm cục bộ (Local search)

« Thuật tốn mơ phỏng luyén kim (Simulated annealing)

« Thuật toán GRASP (Greedy Randomized Adaptive Search Procedure) « Thuật tốn bay dan (Swarm intelligence)

« Thuật toán tim kiém theo bang (Tabu search) ¢ Thuat toan di truyén (Genetic algorithms)

« Thuật toán tối wu héa dan kién (Ant colony optimization) Metaheuristic

Metaheuristic la mot tap cac ly thuyét thuat toan duoc ding để xác định các

phương pháp hewrisfie sao cho nó phù hợp với một lớp bài toán rộng lớn Nói cách khác mefaheuristic có thể được xem như là một phương pháp heurisfie có tính tổng quát, nó được thiết kế để hướng dẫn các heuristic trong các bài toán cơ bản hướng về những miền hứa hẹn trong không gian tìm kiếm các phương án tối ưu Một mefaheuristic là khung thuật tốn tơng qt có thể áp đụng cho nhiễu loại bài toán tối ưu khác nhau tất nhiên là cùng với những điều chỉnh nho nhỏ để làm cho chúng trở nên phù hợp ví các bài toán cụ thé

1.2.2 Phân loại bài toán tối ưu

Dựa trên mô hình tổng quát, người ta thường phân loại lớp các bài toán tối

ưu như sau:

e Qui hoạch tuyến tính: là những bài toán mà hàm mục tiêu ƒ(Y ) và tất cả

các hàm ràng buộc g; (X), g(X), gx(X) là tuyến tính

« - Qui hoạch phi tuyến: là những bài toán một trong hàm mục tiêu #4) hoặc các hàm ràng buộc 2,(X), ø/J), sx() là phi tuyến

e Qui hoạch lồi: Là các bài toán qui hoạch mà các hàm mục tiêu f(x) la lỗi

trên tập các ràng buộc D lỗi

Trang 28

e Qui hoạch lõm: Là các bài toán qui hoạch mà các hàm mục tiêu Z#) là

lõm trên tập các ràng buộc D lõm

e Qui hoạch rời rạc: Bài toán tối ưu được gọi là qui hoạch rời rạc nếu mién

ràng buộc D là tập hợp rời rạc Trong trường hợp riêng khi các biến chỉ nhận giá trị nguyên thì ta có qui hoạch nguyên

e Qui hoach da muc tiêu: Néu trén cùng một miễn ràng buộc ta xét đồng thời các hàm mục tiêu khác nhau

Trong các lĩnh vực kinh tế kỹ thuật thì qui hoạch phi tuyến, qui hoạch tuyến tính là những bài toán thường gặp

1.2.3 Các ví dụ

Trong đời sống và trong các hệ thông tin, ta thường gặp nhiễu bài toán tối ưu tổ hợp quan trọng Chẳng hạn như: tìm đường đi ngắn nhất nối hai điểm trên một đồ

thị đã cho, lập kế hoạch phân phối nguồn hàng tới nơi tiêu thụ với chi phí cực tiểu, lập thời khóa biểu cho giáo viên và học sinh thuận lợi nhất, định tuyến cho các gói

đữ liệu trong Internet hay các bài toán trong lĩnh vực tin sinh học

1.2.4 Các cách tiếp cận giải bài toán tối ưu tổ hợp

Với các bài toán tối ưu tổ hợp WP-khó có cỡ nhỏ, người ta có thể tìm lời giải tối ưu nhờ tìm kiếm vét cạn Tuy nhiên, với các bài toán cỡ lớn thì đến nay chưa thể có thuật toán tìm lời giải đúng với thời gian đa thức nên chỉ có thé tim lời giải gần

đúng hay đủ tốt (Một bài toán A4 được gọi là NP-khó (NP-hard) nếu như sự tổn tại thuật toán đa thức để giải nó kéo theo sự ton tại thuật toán đa thức để giải một bài

toan trong NP)

Theo cách tiếp cận truyền thống hay là tiếp cận cứng, các thuật toán gần

đúng phải được chứng minh tính hội tụ hoặc ước lượng được tỷ lệ tối ưu Với việc đòi hỏi khắt khe về toán học như vậy làm hạn chế số lượng các thuật tốn cơng bố,

khơng đáp ứng được nhu cầu ngày càng phong phú và đa dạng trong nghiên cứu và ứng dụng Để khắc phục tình trạng này, người ta dùng tiếp cận đủ Zố để xây dựng

các thuật toán fồi wu mém

Trang 29

1.3 BAI TOAN NGUOI DU LICH

1.3.1 Lich sw bai toan

Bài toán người du lịch (tiếng Anh: travelling salesman problem - TSP) la mét bài toán NP-Hard thuộc thê loại tối ưu tổ hợp được nghiên cứu trong lý thuyết khoa học máy tính Nội dung bài toán có thể hiểu khái quát như sau : Cho trước một danh sách các thành phố và khoảng cách giữa chúng, tìm chu trình ngắn nhất đi qua tất cả các thành phố đúng một lần

Bài toán được nêu ra lần đầu tiên năm 1930 và là một trong những bài toán được nghiên cứu sâu nhất trong tối ưu hóa Nó thường được dùng làm thước đo cho nhiều phương pháp tối ưu hóa Mặc dù bài toán rất khó giải trong trường hợp tổng quát, có nhiều phương pháp giải chính xác cũng như heuristic đã được tìm ra để giải quyết một số trường hợp có tới hàng chục nghìn thành phố

Ngay trong hình thức phát biêu đơn giản nhất, bài toán TSP đã có nhiều ứng

dụng trong lập kế hoạch, hậu cần, cũng như thiết kế vi mạch,

Nguồn gốc của bài toán người bán hàng vẫn chưa được biết rõ Một cuốn số tay đành cho người bán hàng xuất bản năm 1832 có đề cập đến bài toán này và có ví dụ cho chu trình trong nước Đức và Thụy Sĩ, nhưng không chứa bất kì nội dung

toán học nào

Bài toán người bán hàng được định nghĩa trong thế kỉ 19 bởi nhà toán học Ireland William Rowan Hamilton va nha toán học Anh Thomas Kirkman Trường hợp tổng quát của TSP có thể được nghiên cứu lần đầu tiên bởi các nhà toán học ở Vienna và Harvard trong những năm 1930 Hassler Whitney ở đại học Princeton

đưa ra tên bài toán người bán hàng ngay sau đó

Trong những năm 1950 và 1960, bài toán trở nên phổ biến trong giới nghiên cứu khoa học ở Châu Âu và My George Dantzig, Delbert Ray Fulkerson va Selmer M Johnson 6 céng ty RAND tai Santa Monica d& co dong gop quan trong cho bai toán này, biểu diễn bài toán dưới dạng quy hoạch nguyên và đưa ra phương pháp

Trang 30

mặt phẳng cắt dé tim ra lời giải Với phương pháp mới này, họ đã giải được tối ưu một trường hợp có 49 thành phố bằng cách xây dựng một chu trình và chứng minh rằng không có chu trình nào ngắn hơn Trong những thập niên tiếp theo, bài toán

được nghiên cứu bởi nhiều nhà nghiên cứu trong các lĩnh vực toán học, khoa học máy tính, hóa học, vật lý, và các ngành khác

Năm 1972, Richard M Karp chứng minh rằng bài toán chu trình Hamilton là

NP-đầy đủ, kéo theo bài toán TSP cũng là NP-đầy đủ Đây là một lý giải toán học

cho sự khó khăn trong việc tìm kiếm chu trình ngắn nhất

Một bước tiến lớn được thực hiện cuối thập niên 1970 và 1980 khi Grotschel,

Padberg, Rinaldi và cộng sự đã giải được những trường hợp lên tới 2392 thành phố, sử đụng phương pháp mặt phẳng cắt và nhánh cận

Trong những năm 1990 Applegate, Bixby, Chvatal, va Cook da phat triển chương trình Coneorde mà đã được sử dụng nhiễu trong việc giải các bài toán TSP

cho đến nay Gerhard Reinelt đã công bố thư viện TSPLIB vào năm 1991, đó là một tập các thể hiện của bài toán TSP với nhiều độ khó khác nhau, và đã được sử dụng

bởi nhiều nhóm nghiên cứu khác nhau để so sánh kết quả Năm 2005, Cook và

những người khác đã tính được độ dài tối ưu cho chu trình với thể hiện của bài toán

TSP lên tới 33,810 thành phố, được lấy ra từ bài toán xây dựng layout cho microchip, cho téi nay van là thê hiện lớn nhất trong các thể hiện ở TSPLIB Nhiều thê hiện khác với hàng triệu thành phó, lời giải tìm được có thê chứng minh nằm sai

khác 1% so với lời giải tối ưu

Trang 31

1.3.2 M6 ta bai toan TSP

Hình 1.7 Mô hình đồ thị của bài toán TSP

TSP có thể được mô hình như một đỗ thị, các đỉnh của đồ thị tương ứng với

các thành phố và các cạnh thì tương ứng với đường nối giữa các thành phố, chiều dài của một cạnh tương ứng với khoảng cách giữa 2 thành phố Một đường đi trong

bài toán TSP là một chu trình Hamilton trên đổ thị và một lời giải tối ưu của bài

toán là chu trình Hamilton ngắn nhất

Thường thi dé thị là dé thị đầy đủ, vì vậy mọi cặp cạnh đều được nối bởi các

cạnh Đây là bước đơn giản hóa bài toán vì việc tìm chu trình Hamilton trong một

đồ thị đầy đủ là dễ Các bài tốn mà khơng phải 2 thành phố nào cũng được nối với

nhau có thê được chuyển đổi thành đồ thị đầy đủ bằng cách thêm những cạnh có độ dài lớn giữa cách thành phố này, những cạnh sẽ không xuất hiện trong chu trình tối ưu

1.3.3 Phân loại bài toán TSP > Đối xứng và bất đối xứng

Trong bài toán đối xứng khoảng cách giữa các thành phố là như nhau theo 2 hướng, vì vậy dé thị biểu diễn là đồ thị vô hướng Sự đối xứng này làm giảm 1 nửa

số lời giải có thể

Trong bài toán bất đối xứng, khoảng cách từ thành phố này đến thành phố

Trang 32

khác không nhất thiết phải bằng khoảng cách theo hướng ngược lại, thậm chí có thé không có kết nối theo chiều ngược lại Vì vậy graph biểu diễn bài toán bất đối xứng là đồ thị có hướng Lấy ví dụ mô hình đường một chiều trong giao thông chẳng hạn

> Với khoảng cách là metric

Trong bài toán zøefric TSP khoảng cách giữa các thành phố phải thỏa mãn điều kiện của bất đẳng thức tam giác Điều này có thể phát biêu bằng đường nối trực tiếp từ A đến B không bao giờ dài hơn đường đi từ A tới B mà qua C trung gian

Cy < Cx + Cy

Những chiều dài cạnh này định nghĩa một metric trong tập các đỉnh Khi các thành phố được xem như những điểm trên tấm hình, nhiều hàm khoảng cách tự

nhiên là các metric ví dụ như :

« _ Trong bài tốn Euclidian TSP khoảng cách giữa 2 thành phố là khoảng cách Euclide giữa hai điểm tương ứng

« Trong bài tốn Rectilinear TSP khoảng cách giữa 2 thành phố là tổng hai tọa độ x và y của chúng Metric này thường được gọi là khoảng cách Manhattan hay city-block metric

« Trong maximum metric, khoang cách giữa 2 thành phố là max của độ

chênh lệch tọa độ x và y của chúng

> Với khoảng cách không là metric

Khoảng cách không thỏa mãn bất đắng thức tam giác phát sinh trong nhiều

bài toán định tuyến Ví dụ trong một kiểu vận tải, như du lịch bằng máy bay có thể

nhanh hơn mặc dù khoảng cách di chuyển là xa hơn

Trang 33

1.4 CÁC THUẬT TOÁN GIẢI BÀI TOÁN TSP

1.4.1 Thuật giải chính xác

Lời giải trực tiếp nhất có thể là thử tất cả các hoán vị và xem hoán vị nào là

tốt nhất (đùng brute-force) Thời gian chạy cho cách tiếp cận này là O(n!), vì vậy cách tiếp cận này thậm chí không thể thực hiện với chỉ 20 thành phố Một trong số những ứng dụng mới đây nhất của quy hoạch động là giải thuật có độ phức tạp

ÓŒˆ2”) và yêu cầu không gian bộ nhớ là hàm mũ

Cải thiện tốc độ cho cách giải thuật trên là hầu như không thể Ví dụ, thậm

chí là rất khó tìm một giải thuật chính xác cho bài toán TSP chạy trong độ phức tạp O(1.9999”)

Những cách tiếp cận khác bao gồm:

« _ Rất nhiều giải thuật branch-and-bound, có thê sử dụng đề giải các bài

toán TSP với khoảng 40-60 thành phố

« Các giải thuật cải thiện dần dần sử dụng kỹ thuật ghi nhớ lại của

linear programming Có thể làm việc tốt cho khoảng 200 thành phó

« - Thực hiện branch-and-bound và áp dụng cho các bài toán cu thể, đây

là phương thức sử dụng để giải quyết các bài toán với số lượng lớn thành phố Cách tiếp cận này đang giữ kỷ lục hiện tại giải quyết được

bài toán TSP với 85,900 thành phố

Lời giải chính xác cho bài toán với 15,112 thành phố ở đức từ TSPLIB đã được tìm ra năm 2001 sử dụng phương thức lát cắt dé xuất bởi George Dantzig, Ray Fulkerson, va Selmer Johnson vao nim 1954, dựa trên linear programming Qua

trình tính toán đã được thực hiện trong mạng máy tính gồm 110 bộ vi xử lý tại đại

học Rice University và Princeton University Tổng thời gian tính toán tương đương với 22.6 năm trong một máy đơn vi xử lý tốc độ 500 MHz Vào tháng 5-2004, bài toán người đu lịch thăm tất cả 24,978 thành phố ở thụy điển đã được giải quyết: đoạn đường ngắn nhất vào khoảng 72,500 kilomet đã được tìm thấy và đã được chứng minh rằng không có đường đi nào ngắn hơn

Trang 34

Vao thang 3- 2005, bài toán người du lịch với 33,810 điểm trong 1 mach in

đã được giải quyết sử dung công cụ Coneorde TSP Solver: đoạn đường tối ưu dài

66,048,945 don vi da duoc tim thay và đã được chứng minh không có đường di nao

ngắn hơn tổng khối lượng tính toán mất khoảng 15.7 năm CPU (Cook et al 2006)

Vào tháng 4 năm 2006 một bài toán với 85,900 điểm cũng đã được giải quyết bởi

Concorde TSP Solver, va mat khoang 136 nam CPU

1.4.2 Thuật giải gần đúng heuristic

Khi bài toán có kích thước n đỉnh nhỏ thì các thuật giải chính xác được áp dụng cho kết quả nhanh chóng và duy nhất Nhưng khi số đỉnh của bài toán tăng lên dang ké thì độ phức tạp của thuật toán do đó cũng tăng lên Trong trường hợp này, chất lượng của giải pháp không phải là vấn đề quan tâm nhất mà hiệu suất tính toán

và sự đơn giản về khái niệm được ưu tiên hơn, khi đó thuật toán heuristic được sử

dụng để đưa ra một giải pháp không phải là tối ưu nhất nhưng chấp nhận được do sai số so với giải pháp tối ưu nhất không nhiều Trong luận văn này giới thiệu bốn thuật toán nỗi tiếng nhất là: thuật toán láng giềng gần nhất, thuật toán tìm kiếm cục

bộ, thuật toán nhánh cận và thuật toán di truyền Trong đó thuật toán cục bộ thường được sử dụng kết hợp với thuật toán đàn kiến ACO để tăng hiệu suất tìm kiếm giải

pháp

1.4.2.1 Thuật toán láng giềng gần nhất

Thuật giải vét cạn ở trên cho ta một đáp án tối ưu, tuy nhiên độ phức tạp của

nó là quá cao (O(n!)) Do đó trong thực tế, người ta chấp nhận các thuật giải cho kết quả tốt (nhưng không phải lúc nào cũng tốt) bởi sự đơn giản, nhanh chóng và cài đặt dễ dàng Một trong các 9 thuật giải đó là thuật toán láng giềng gần nhất hay còn

được gọi là thuật toán tham lam [5]

1.4.2.2 Thuật toán fìm kiếm cục bộ

Thuật toán tìm kiếm cục bộ [5] là giải pháp metaheuristic cho việc giải các bài toán tính toán tối ưu khó trong máy tính Thuật toán này có thể được áp đụng cho các bài toán tìm kiếm lời giải gần đúng tối ưu trong một loạt các lời giải ứng

Trang 35

viên Phương pháp tìm kiếm sé duyét qua các lời giải trong không gian tìm kiếm cho đến khi lời tìm ra lời giải được cho là tối ưu hoặc vượt quá thời gian tìm kiếm cho phép Thuật toán tìm kiếm cục bộ sẽ bắt đầu từ một ứng viên lời giải (chưa tối ưu), kiểm tra và cải thiện dần bằng cách chỉ quan tâm tới giải pháp hiện thời rồi xem xét chuyển sang ứng viên lời giải láng giềng của lời giải hiện thời đến khi dừng thuật toán Tuy nhiên mỗi ứng viên lời giải đều có thể có hơn một lời giải láng giềng, nên mỗi cách lựa chọn lời giải láng giềng trong danh sách láng giềng để

thành bước duyệt kế tiếp có thể trở thành một thuật toán khác

1.4.2.3 Thuật toán nhánh cận

Thuật toán nhánh cận [5] là phương pháp chủ yếu để giải các bài toán tối ưu tổ hợp Tư tưởng cơ bản của thuật toán là trong quá trình tìm kiếm lời giải, sẽ phân hoạch tập các phương án của bài toán thành hai hay nhiều tập con biểu diễn như một nút của một cây tìm kiếm và cố gắng bằng cách đánh giá cận các nút, tìm cách loại bỏ những nhánh cây (những tập con 10 các phương án của bài toán) mà biết chắc chắn không phải phương án tối ưu Mặc đù trong trường hợp tồi nhất, thuật toán sẽ trở thành duyệt toàn bộ, nhưng trong những trường hợp cụ thể nó có thé rút ngắn đáng kể thời gian tìm kiếm

1.4.2.4 Thuật toán di truyền

Thuật toán di truyền [4] là thuật toán metaheuristic, mefaheuristic là một

cách gọi chung cho các thuật toán heuristic trong việc giải quyết các bài toán tổ hợp

khó Hầu hết các thuật toán metaheuristic đều lấy cảm hứng từ tự nhiên như: thuật toán luyện thép (SA), thuật toán di truyền (GA), thuật toán đàn kiến (ACO), Thuật toán dan kiến là metaheuristic dùng chiến lược của kiến trong thế

giới thực để giải bài toán tối ưu SA xuất phát từ phương thức xác suất và kỹ thuật

luyện bao gồm việc nung và điều khiển àm nguội các kim loại để đạt được trạng

thái năng lượng nhỏ nhất Trong khi đó thuật toán di truyền dựa trên ý tưởng từ cơ chế đi truyền trong sinh học và tiến trình tiến hóa trong cộng đồng các cá thể của

một loài

Trang 36

1.4.2.5 Thuật toán tối ưu hóa nhóm bầy (PSO)

Tối ưu hóa theo nhóm bây là một kỹ thuật tối ưu hóa ngẫu nhiên dựa trên một quân thể được phát triển bởi Eberhart và Kennedy, phỏng theo hành vi của các bẩy chim hay các đàn cá Cũng giống như GA, PSO tìm kiếm giải pháp tối ưu bằng việc cập nhật các thế hệ Tuy nhiên, không giống như GA, PSO không có các thao tác tiến hóa như là lai ghép hay đột biến Năm 1987, quan sát quá trình chuyển động của các theo bầy đàn (bầy chim, đàn ca), Reynolds [8] dua ra nhan ra ba quy luật: Tách biệt: Sắp hàng và Liên kết Từ nghiên cứu của Renolds, Eberhart và Kennedy [9] đưa thêm giả thuyết về quá trình tìm về tổ của bầy đàn theo các quy luật: (1) Tất cả các phần tử trong bầy đàn đều có xu hướng chuyển động về tổ (2) Mỗi phần tử đều ghi nhớ vị trí gần tô nhất nó đã đạt tới

1.5 KET CHUONG

Chương này trình bày tổng quan các lý thuyết liên quan về đồ thị, bài toán người đu lịch, các phương pháp giải bài toán người du lịch Trong số các phương pháp đã giới thiệu ở chương 1, cách giải bài toán người du lịch bằng thuật toán PSO

được lựa chọn làm thuật toán chính để trình bay trong luận văn này Nội dung chi

tiết thuật toán PSO sẽ được trình bày ở chương 2

Trang 37

CHU ONG 2: THUAT TOAN TOI UU BAY DAN PSO

Chương này tìm hiểu về nội dung thuật toán PSO; giải pháp tối tru cục bộ và

toàn cục; thay đồi vị trí và điểu chỉnh tốc độ; thuật toán PSO; các cải tiến của thuật toán PSO; tính hội tụ và độ phức tạp của thuật toán

2.1 GIỚI THIỆU MỌT SÓ THUẬT TOÁN BẢY ĐÀN

Một bẩy đàn là một nhóm các sinh vật có tương tác với nhau Thuật ngữ bầy đàn thông minh (SI) được sử dụng lần đầu tiên trong hệ thống robot di động của Beni và Wang trong những năm 1980 Sau đó, đầu những năm 1990, các nghiên cứu bầy đàn thông minh được lấy cảm hứng từ xã hội của các lồi cơn trùng, các

lồi chim, cá và nhận thức của con người Hình ảnh đàn chim, đàn các tim kiếm

thức ăn, nguồn nước, đàn kiếm tìm kiếm thức ăn và đổi hướng tránh kẻ thù .Nó được gọi là kiêu quan hệ bầy đàn Trong những năm gần đây, các nhà khoa học đã tập trung nghiên cứu mô hình bẩy đàn như là một giải pháp chiến lược trong việc giải quyết cả hai loại bài toán tối ưu ràng buộc và không có ràng buộc Họ ứng dụng những nghiên cứu để giải quyết các bài toán tối ưu như thiết kế mạng viễn thông, nghiên cứu robot, ứng dụng trong quân sự

2.1.1 Giải thuật tối ưu hóa đàn kién (Ant Colony Optimization — ACO)

Lấy ý tưởng từ cách đàn kiến tìm đường từ tổ tới nguồn thức ăn, cách chúng xây đựng đường đi bằng dấu vết sinh học [14]

Hình 2.1 Mô tả kiến tìm đường

Trang 38

Hinh 2.1 mé ta cách thức tìm kiếm thức ăn của bầy kiến

1: Kiến đầu tiên sẽ tìm thấy thực phẩm (F) thông qua bất kỳ cách nào đó, sau đó trở về làm tổ (N), đề lại đằng sau dấu vết pheromone trên đoạn đường đã qua

2: Đàn kiến đi ngẫu nhiên theo bốn cách có thể, dấu vết pheromone trên các đoạn đường càng nhiều, càng hấp dẫn đàn kiến lựa chọn như là đoạn đường ngắn

nhất

3: Đàn kiến đi theo đoạn đường ngắn nhất, các đoạn đường không đi đến sẽ dần dần mất đi dấu vết pheromone

Hinh 2.2 M6 ta chim tim đường

2.1.2 Giải thuật tối ưu hóa bầy dan (Particle Swarm Optimization — PSO)

Lấy ý tưởng từ cách đàn chim tìm thức ăn, nguồn nước Theo giả thuyết của bài toán, các cá thể ban đầu được dựng lên trong không gian đó Mỗi cá thể có một

vận tốc ban đầu, và giữa các cá thể cũng có kênh liên lạc Các cá thể sau đó di

chuyển trong không gian lời giải, mỗi cá thể sẽ được đánh giá bằng một hay nhiều tiêu chuân thích nghi, dần dần các cá thể này sẽ đi chuyển về phía những cá thể tốt hơn trong phạm vị của chúng

Trang 39

2.1.3 Giai thuat téi wu hoa dan ong (Artificial Bee Colony - ABC)

Thuật toán đàn ong nhan tao (ABC-Artificial Bee Colony), duoc để xuất bởi

Karaboga để tối ưu hóa các vấn đề số trong [16] mô phỏng hành vi tìm kiếm thông minh của bầy ong mật, là một hướng tương đối mới trong tri thức bầy đàn Sử dụng hành vi của các nhóm ong trong quá trình đi lấy mật bao gồm: Ong thợ, Ong trinh

sát, ong thất nghiệp, hành vi của đàn ong mật sử dụng một số kĩ thuật như nhảy lúc

lắc để xác định nguồn thức ăn tốt nhất và tìm các nguồn mới Việc này khiến chúng trở thành phương án tốt cho việc phát triển thuật toán tìm kiếm thông minh mới 2.1.4 So sánh giữa các giải thuật ACO, ABC, PSO

Phương pháp tối ưu bầy đàn là một đạng của các thuật toán tiến hóa quân thê đã được biết đến trước đây như thuật toán đàn ong nhân tạo (Artificial Bee Colony - ABC), Thuật toán đàn kiến (Ant Colony Optimization - ACO) Tuy vậy PSO khác với ABC va ACO ở chỗ nó thiên về sử dụng sự tương tác giữa các cá thê trong một quân thể để khám phá không gian tìm kiếm PSO là kết quả của sự mô hình hóa việc đàn chim bay đi tìm kiếm thức ăn cho nên nó thường được xếp vào các loại thuật toán có sử đụng trí tuệ bầy đàn

Đề hiểu rõ thuật toán PSO hãy xem một ví dụ đơn giản về quá trình tìm kiếm thức ăn của một đàn chim Không gian tìm kiếm thức ăn lúc này là tồn bộ khơng gian ba chiều mà chúng ta đang sinh sống Tại thời điểm bắt đầu tìm kiếm cả đàn bay theo một hướng nào đó, có thê là rất ngẫu nhiên Tuy nhiên sau một thời gian tìm kiếm một số cá thể trong đàn bắt đầu tìm ra được nơi có chứa thức ăn Tùy theo số lượng thức ăn vừa tìm kiếm, mà cá thể gửi tín hiệu đến các các cá thể khác đang tìm kiếm ở vùng lân cận Tín hiệu này lan truyền trên toàn quần thể Dựa vào thông tin nhận được mỗi cá thể sẽ điều chỉnh hướng bay và vận tốc theo hướng về nơi có nhiều thức ăn nhất Cơ chế truyền tin như vậy thường được xem như là một kiểu hình của trí tuệ bầy đàn Cơ chế này giúp cả đàn chim tìm ra nơi có nhiều thức ăn nhất trên không gian tìm kiếm vô cùng rộng lớn

Trang 40

Như vậy đàn chim đã dùng trí tuệ, kiến thức và kinh nghiệm của cả đàn để

nhanh chóng tìm ra nơi chứa thức ăn Bây giờ chúng ta tìm hiểu làm cách nào mà một mô hình trong sinh học như vậy có thê áp dụng trong tính toán và sinh ra thuật toán PSO mà ta từng nhắc đến Việc mô hình hóa này thường được gọi là quá trình phỏng sinh học (bioinspired) mà chúng ta thường thấy trong các ngành khoa

học khác Một thuật toán được xây dựng dựa trên việc mô hình hóa các quá trình

trong sinh học được gọi là thuật toán phỏng sinh học (bioinspired algorithm§)

2.2 PSO TRUYEN THONG

2.2.1 Giới thiệu

Tối ưu hóa bầy đàn (Particle Swarm Optimization — PSO) [9] là kỹ thuật giải quyết các vấn để phổ biến nhất thuộc mô hình quần thê thông minh hay bay dan thông minh (Swarm Intelligence — SI) PSO được giới thiệu lần đầu tiên bởi Kennedy va Eberhat vao nam 1995 Họ phát triển các phương pháp đơn giản nhưng hiệu quả trong tối ưu hóa các hàm toán học phi tuyến liên tục, áp dụng thành cơng để giải nhiều bài tốn cực trị hàm số và một số bài toán tối ưu khác Các ý tưởng xuất phát từ việc quan sát các quân thê sinh học trong tự nhiên, dựa trên các quan

hệ, các ứng xử của các cá thể trong bay đàn, cách thức tổ chức và hoạt động của

quan thể PSO mô phỏng bầy đàn như đàn chim, đàn cá tìm kiếm thức ăn [12] PSO nam trong tính tiến hóa (Evolution Computfation — EC) nhưng nó cũng có một

vài điểm khác [12] Giống như nhiều kỹ thuật tiến hóa khác, PSO khởi tạo quần thé

bởi các giải pháp phân bố ngẫu nhiên Tuy nhiên, PSO khác ở chỗ, nó đánh giá và tiến hóa các giải pháp dựa trên kinh nghiệm cá nhân và kinh nghiệm của bẩy đàn, tốt hơn so với việc sử đụng các hoạt động tiến hóa (phép lai ghép và đột biến trong giải thuật đi truyền .) Nó giả định xã hội chia sẻ thông tin giúp tiến hóa quân thé,

nói cách khác, quan thé cap nhat cac thế hệ và tìm kiếm tối ưu với thông tin được

chia sẻ Kế từ khi ra đời, PSO đã được phát triển nhanh chóng và có rất nhiều hướng nghiên cứu trong việc cải tiến các tham số, các nghiên cứu đã chỉ ra nhiều kết quả chứng minh trong các hàm kiểm tra nỗi tiếng như các hàm Shaffer, Sphere, Rosenbrock, Rastrigin, Griewank [12] PSO đã được ứng dụng vào đề giải nhiều lớp

Ngày đăng: 11/01/2024, 22:43

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

TÀI LIỆU LIÊN QUAN

w