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 3LOI 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 4LOI 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 5bà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 61.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 73.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 8DANH 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 9DANH 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 10DANH 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 12củ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 13thay đổ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 15CHUONG 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 23Vi 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 25Bà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 261.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 27lớ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 28e 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 291.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 30mặ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 311.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 32khá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 331.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 34Vao 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 35viê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 361.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 37CHU 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 38Hinh 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 392.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 40Như 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