Thuật toán di truyền GA [22], là một loại EC, một cách tiếp cận tối ưu để giải quyết các bài toán NP-hard và không tuyến tính, và được sử dụng để tìm kiếm trên các không gian tìm kiếm rấ
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN ĐỨC DŨNG
KHAI THÁC TẬP MỤC LỢI ÍCH CAO
SỬ DỤNG PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS Hoàng Xuân Huấn
Hà Nội - 2019
Trang 22
LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành nhất tới PGS.TS Hoàng Xuân Huấn, người thầy đáng kính đã tận tình chỉ bảo, hướng dẫn tôi trong suốt quá trình tìm hiểu, nghiên cứu và hoàn thiện luận văn Với kiến thức sâu rộng, nhiều năm nghiên cứu trong lĩnh vực tối ưu hóa cũng như phương pháp tối ưu hệ kiến của thầy đã giúp tôi hiểu rõ, sâu sắc nhiều khó khăn gặp phải trong quá trình nghiên cứu Thầy cũng đưa
ra những góp ý chi tiết, tỉ mỉ hết sức quý báu giúp cho tôi có thể hoàn thành quyển luận văn này
Tôi cũng xin được bày tỏ lòng biết ơn tới các thầy cô trường Đại học Công nghệ
đã tham gia giảng dạy và chia sẻ những kinh nghiệm quý báu cho tập thể và cá nhân tôi nói riêng Tôi xin cảm ơn tới các thầy và các anh chị đã thường xuyên giúp đỡ, trao đổi, góp ý về những vấn đề khoa học liên quan tới luận văn.
Hà Nội, tháng 3 năm 2019
HỌC VIÊN
Nguyễn Đức Dũng
Trang 33
LỜI CAM ĐOAN
Tôi xin cam đoan rằng đây là công trình nghiên cứu của cá nhân tôi dưới sự hướng dẫn giúp đỡ của PGS.TS Hoàng Xuân Huấn Các kết quả được viết chung với các tác giả khác đều được sự đồng ý của tác giả trước khi đưa vào luận văn Trong toàn bộ nội dung nghiên cứu của luận văn, các vấn đề được trình bày đều là những tìm hiểu và nghiên cứu của chính cá nhân tôi hoặc là được trích dẫn từ các nguồn tài liệu có ghi tham khảo rõ ràng, hợp pháp
Trong luận văn, tôi có tham khảo đến một số tài liệu của một số tác giả được liệt kê tại mục tài liệu tham khảo
Hà Nội, tháng 3 năm 2019
HỌC VIÊN
Nguyễn Đức Dũng
Trang 44
MỤC LỤC
LỜI CẢM ƠN 2
LỜI CAM ĐOAN 3
DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT 6
DANH SÁCH CÁC BẢNG 7
DANH SÁCH HÌNH VẼ 8
MỞ ĐẦU 9
CHƯƠNG 1: TỐI ƯU TỔ HỢP VÀ BÀI TOÁN TỐI ƯU ĐÀN KIẾN 12
1.1 Giới thiệu bài toán tối ưu tổ hợp 12
1.2 Giới thiệu bài toán người chào hàng 13
1.3 Các cách tiếp cận giải quyết bài toán tối ưu tổ hợp 13
1.3.1 Heuristic cấu trúc 13
1.3.2 Tìm kiếm địa phương 14
1.3.3 Phương pháp meta-heuristic 15
1.3.4 Phương pháp memetic 15
1.4 Phương pháp tối ưu đàn kiến 16
1.4.1 Từ kiến tự nhiên đến kiến nhân tạo 16
1.4.1.1 Kiến tự nhiên 16
1.4.1.2 Kiến nhân tạo (Artificial Ant) 19
1.4.2 Phương pháp tối ưu đàn kiến 19
1.4.3 Mô tả thuật toán ACO tổng quát 20
1.4.4 Các hệ kiến 22
1.4.4.1 Hệ kiến AS 22
1.4.4.2 Hệ kiến ACS 23
1.4.4.3 Hệ kiến Max-Min 25
1.4.4.4 Hệ kiến Max-Min trơn 26
CHƯƠNG 2: KHAI THÁC TẬP MỤC CAO TIỆN ÍCH BẰNG PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN 27
2.1 Bài toán khai thác tập mục lợi ích cao 27
2.2 Một số phương pháp tiếp cận để giải bài toán 30
2.3 Thuật toán HUIM-ACS 31
Trang 55
2.3.1 Xây dựng đồ thị cấu trúc và khởi tạo vết mùi 31
2.3.2 Quy tắc cắt tỉa nút 35
2.3.3 Quy tắc cập nhật mùi 37
2.4 Thuật toán HUIM-SMMAS 39
CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM, SO SÁNH VÀ ĐÁNH GIÁ 41
3.1 Bộ dữ liệu chuẩn 41
3.2 Tiến hành chạy thực nghiệm 41
3.3 Kết quả thực nghiệm và đánh giá 42
KẾT LUẬN 44
TÀI LIỆU THAM KHẢO 45
Trang 66
DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT
1 ACO Ant Colony Optimization (Tối ưu hóa đàn kiến)
2 AS Ant System (Hệ kiến AS)
3 ACS Ant Colony System (Hệ kiến ACS)
4 MMAS Max-Min Ant System (Hệ kiến MMAS)
5 SMMAS Smooth-Max Min Ant System (Hệ kiến MMAS trơn)
6 TSP Travelling Salesman Problem (Bài toán người chào hàng)
7 TƯTH Tối ưu tổ hợp
8 HUI High-Utility Itemset
9 HUIM High-Utility Itemsets Mining
10 TWU Transaction-Weight Utility
11 FIM Frequence Itemset Mining
Trang 77
DANH SÁCH CÁC BẢNG
Bảng 2.1: Danh sách giao dịch và bảng lợi nhuận của từng sản phẩm 27Bảng 3.1: Bộ dữ liệu chạy thử nghiệm 41Bảng 3.2: Ngưỡng tiện ích thiết lập chạy thực nghiệm 41
Trang 88
DANH SÁCH HÌNH VẼ
Hình 1.1: Lời giải nhận được thông qua tìm kiếm địa phương 15
Hình 1.2: Thể hiện hành vi của mỗi con kiến trong tự nhiên 17
Hình 1.3: Thực nghiệm trên cây cầu đôi 18
Hình 1.4: Thí nghiệm bổ sung 19
Hình 1.5: Lựa chọn đỉnh đi tiếp theo 21
Hình 2.3.1: Đồ thị cấu trúc định tuyến với 3 items 32
Hình 2.3.2: Hàm heuristic trong trường hợp không có thông tin về TWU 33
Hình 2.3.3: Hàm heuristic giữ lại tất cả TWU 34
Hình 2.3.4: Hàm heuristic tính toán các TWU 35
Hình 2.3.5: Quy tắc cắt tỉa tích cực 36
Hình 3.3.1: So sánh số lượng HUI tìm được của 2 thuật toán 42
Hình 3.3.2: So sánh thời gian thực hiện của các thuật toán 43
Hình 3.3.3: So sánh tốc độ hội tụ của hai thuật toán 43
Trang 99
MỞ ĐẦU
Hiện nay, việc tính toán doanh số và tối ưu hóa lợi nhuận bán hàng là công việc cực kỳ quan trọng, nó ảnh hưởng trực tiếp đến doanh thu và chiến lược bán hàng của các công ty, siêu thị hay các đơn vị bán lẻ Đặc biệt, với số lượng hàng hóa lớn, giá cả khác nhau, nên việc tính toán lợi nhuận tối ưu từ bán hàng càng có quan trọng Trong khi số lượng giao dịch mỗi giờ có thể lên đến hàng chục nghìn giao dịch, việc tính toán xem mặt hàng nào đem lại doanh số cao, mặt hàng nào kinh doanh không hiệu quả dù bán với số lượng lớn càng trở nên khó khăn do dữ liệu quá lớn, liên tục
Bài toán khai thác tập mục lợi ích cao(High-Utility Itemsets Mining – HUIM)
đã được nhóm tác giả R.C Chan, Q Yang, Y.D Shen đề xuất vào năm 2003, để tìm
ra các HUI(High-Utility Itemsets), là các tổ hợp đem lại lợi nhuận cao nhất từ cơ sở
dữ liệu giao dịch được lưu lại Từ đó, các công ty, siêu thị bán lẻ sẽ đưa ra các chiến lược kinh doanh cho phù hợp, nhằm tối đa hóa lợi nhuận
Trong các phương pháp đề xuất trước đó, hầu hết các nghiên cứu tập trung vào việc khai thác tần suất xuất hiện của các tập mục (FIM) và khai thác quy tắc liên kết (ARM) Các thuật toán này đã được phát triển để khai thác tập hợp các tập mục
có tần suất xuất hiện không nhỏ hơn ngưỡng tối thiểu và để tìm ra các quy tắc liên kết mà độ tin cậy không thấp hơn ngưỡng tối thiểu[1, 2] Vì chỉ có các tần suất xuất hiện của các tập mục được phát hiện trong FIM hoặc ARM, nó không đủ để xác định các tập dữ liệu có lợi nhuận cao, đặc biệt là khi các tập mục hiếm khi xuất hiện nhưng có các giá trị lợi nhuận cao Ví dụ, một cửa hàng bách hóa có thể bán ít đồ trang sức hơn hầu hết các hàng hoá khác trong một tháng, nhưng đồ trang sức thường
có thể có được lợi nhuận cao hơn các hàng hoá khác mua nhiều hơn trong cùng thời
kỳ
Trên thực tế, thông tin cho các tập mục lợi ích cao (HUIs) có giá trị hơn các tập phổ biến Khác với FIM hoặc ARM, vấn đề khai thác các tập mục lợi ích cao (HUIM) [3-6] đã được đề xuất để khám phá ra các tập “có ích” và “có lợi nhuận” từ một cơ sở dữ liệu định lượng Một ngưỡng lợi ích tối thiểu cho người dùng cụ thể được sử dụng để ước tính liệu một tập thuộc tính là một tập mục lợi ích cao hay không (HUI) Tập dữ liệu là một HUI nếu giá trị lợi nhuận của tập này cao hơn ngưỡng Trong thực tế, không chỉ “lợi nhuận” có thể được áp dụng như là giá trị tiện ích để khai thác các tập mục có ích, “trọng lượng”, “chi phí” và các yếu tố khác cũng
có thể khai thác được các HUI
Trang 1010
Có nhiều thuật toán đã được đề xuất để khai thác tập hợp các HUI Chan và cộng sự [7] lần đầu tiên đề xuất khái niệm về vấn đề khai thác hữu ích thay vì FIM Yao và cộng sự [4] đề xuất khai thác các HUI theo số lượng các mặt hàng như là tiện ích nội bộ và lợi nhuận đơn vị của các mặt hàng là tiện ích bên ngoài Liu và các cộng sự [8] đã đề xuất mô hình TWU (Transaction Weight Utility) hai giai đoạn
và trọng số giao dịch giảm dần (TWDC) để khai thác các HUI Lin và cộng sự [9] trình bày một cây HUP để khai thác HUIs Lan và cộng sự[10] đã thiết kế các thuật toán khai thác dựa trên cơ chế thiết lập chỉ mục(Index) và phát triển chiến lược cắt tỉa để khai thác hiệu quả các HUI Sau đó, Tseng [11] đã thiết kế thuật toán khai thác tăng trưởng để lấy các HUI dựa trên cấu trúc cây UP-develop HUI-Miner [12] là một thuật toán hiệu quả được sử dụng nhiều để khai thác các HUI
Các thuật toán đề xuất để giải bài toán HUIM phải mất nhiều thời gian tính toán hơn cùng với một không gian tìm kiếm khổng lồ, trong khi số lượng các mục riêng biệt hoặc kích thước cơ sở dữ liệu là rất lớn Các thuật toán tiến hóa là một cách hiệu quả và có thể tìm ra các giải pháp tối ưu sử dụng các nguyên tắc của sự tiến hóa tự nhiên [21] Các điều kiện dừng nghiêm ngặt có thể được thiết lập để hạn chế thời gian tính toán cho một quá trình nhưng vẫn có được một giải pháp gần như tối ưu Thuật toán di truyền (GA) [22], là một loại EC, một cách tiếp cận tối ưu để giải quyết các bài toán NP-hard và không tuyến tính, và được sử dụng để tìm kiếm trên các không gian tìm kiếm rất lớn để tìm ra các giải pháp tối ưu cho các hàm mục tiêu được thiết kế với các bài toán khác nhau như lựa chọn, chéo và đột biến Trong quá khứ, Kannimuthu và Premalatha [20] đã thông qua thuật toán di truyền và phát triển sự khai thác các tập mục lợi ích cao bằng cách sử dụng các thuật toán di truyền với đột biến xếp hạng sử dụng ngưỡng tiện ích tối thiểu (HUPEumu-GRAM) để khai thác HUI Một thuật toán di truyền khác gọi là HUPEwumu-GRAM cũng được đề xuất
để khai thác HUIs với một ngưỡng tiện ích tối thiểu cụ thể Đối với hai thuật toán này, việc di truyền chéo và đột biến được sử dụng để ngẫu nhiên tạo ra các lời giải tiếp theo trong quá trình tiến hóa Tuy nhiên, nó cần một số lượng HUI khởi tạo ban đầu, trong khi số lượng các HUI còn lại trong cơ sở dữ liệu là rất lớn
Thuật toán tối ưu bầy đàn (Particle Swarm Optimization-PSO) là một trong những kỹ thuật tối ưu được sử dụng nhiều nhất [23] Lin và cộng sự [24] đề xuất một kỹ thuật dựa trên PSO để khai thác các tập mục lợi ích cao dựa trên PSO nhị phân (BPSO) Nó được gọi là HUIM-BPSO và áp dụng mô hình TWU để tìm HUI hiệu quả
Ngoài ra, các thuật toán thuộc nhóm kiến hoặc các phép lai của ACO với các thuật toán meta-heuristic khác cũng được áp dụng trong lĩnh vực khai thác dữ liệu
Trang 1111
[26] Năm 2016, J.M.-T Wu và cộng sự [34] đã đề xuất thuật toán HUIM-ACS để khai thác các HUI Kết quả thực nghiệm đã cho kết quả thuật toán HUIM-ACS tốt hơn các thuật toán đề xuất trước đó
Trong luận văn này, tôi sẽ trình bày khảo cứu lại các phương pháp giải bài toán “Khai thác tập mục lợi ích cao” Tôi đã khảo cứu và cài đặt lại thuật toán HUIM-ACS là một thuật toán khai thác tập mục lợi ích cao hiệu quả nhất để giải bài toán này Sử dụng ý tưởng xây dựng lời giải của thầy PGS.TS Hoàng Xuân Huấn cùng các cộng sự [35] năm 2012, tôi đề xuất một thuật toán mới là HUIM-SMMAS để giải quyết bài toán khai thác tập mục lợi ích cao Thuật toán mới này sử dụng quy tắc cập nhật mùi của hệ kiến Max-Min trơn(SMMAS) Quy tắc cập nhật mùi mới này đã được chứng minh là hiệu quả hơn quy tắc cập nhật mùi của hệ kiến ACS
Ngoài phần kết luận, cấu trúc của luận văn bao gồm:
Chương 1: Trình bày khái quát về bài toán tối ưu tổ hợp tổng quát, phương
pháp tối ưu đàn kiến, các hệ kiến AS, ACS, MMAS, SMMAS Ví dụ về bài toán người chào hàng giải quyết bằng thuật toán ACO
Chương 2: Giới thiệu bài toán khai thác tập mục lợi ích cao và một vài
phương pháp tiếp cận để giải bài toán Trình bày thuật toán HUIM-ACS, phương pháp xây dựng đồ thị cấu trúc, cập nhật mùi Đề xuất thuật toán mới HUIM-SMMAS
Chương 3: Tiến hành thực nghiệm trên bộ dữ liệu chuẩn, thống kê, đánh giá
kết quả thu được và so sánh kết quả giữa thuật toán HUIM-ACS và HUIM-SMMAS
Trang 1212
CHƯƠNG 1: TỐI ƯU TỔ HỢP VÀ BÀI TOÁN
TỐI ƯU ĐÀN KIẾN 1.1 Giới thiệu bài toán tối ưu tổ hợp
Các bài toán tiêu biểu của lớp bài toán tối ưu tổ hợp như: bài toán giao hàng với chi phỉ nhỏ nhất giữa 2 thành phố, bài toán lập thời khóa biểu, bài toán lập lịch sản xuất…
Đây là các bài toán trong thực tế để giải các bài toán dạng này ta cần khái quát hóa chúng để có mô phỏng trên máy tính, tính toán thông qua các mô phỏng đó để tìm ra lời giải tối ưu Chung nhất với mỗi bài toán đều chứa n thành phần C={c1,…cn}
và hàm mục tiêu f Các bài toán ứng dụng với bộ (S, f, Ω), trong đó S là tập hữu hạn các trạng thái (phương án), f là hàm mục tiêu xác định trên S và Ω là tập các ràng buộc Mỗi phương án 𝑠 ∈ 𝑆 thỏa mãn các ràng buộc Ω gọi là phương án chấp nhận được Mục tiêu của chúng ta là tìm ra s* tối ưu hóa toàn cục đối với hàm mục tiêu f, nói cách khác chính là tìm phương án s* sao cho f(s*) ≤ f(s) với mọi 𝑠 ∈ 𝑆 Đối với bài toán này ta có 3 cách giải quyết đó là: vét cạn, kỹ thuật ăn tham hoặc phương pháp tối ưu trong lĩnh vực NP-hard(NP-khó)
Các thuộc tính của tập S, C và Ω như sau:
1 Ký hiệu X là tập các vector trên C có độ dài không quá h: X={<u0,…,uk>ui
∀i≤k≤h} Khi đó, mỗi phương án s trong S được xác định nhờ ít nhất một vector trong X
2 Tồn tại tập con X* của X và ánh xạ 𝜑 từ X* lên S sao cho 𝜑−1(𝑠) không rỗng với mọi 𝑠 ∈ 𝑆, trong đó tập X* có thể xây dựng được từ tập con C0
nào đó của C nhờ thủ tục mở rộng tuần tự dưới dây
3 Từ C0 ta mở rộng tuần tự thành X* như sau:
i Ta xem x0 = <u0> là mở rộng được với mọi u0∈C0
ii Giả sử xk = <u0,…,uk> là mở rộng được và chưa thuộc X* Từ tập ràng buộc Ω, xác định tập con J(xk) của C, sao cho với mọi uk+1∈J(xk) thì xk+1=<u0, …,uk, uk+1> là mở rộng được
iii Áp dụng thủ tục mở rộng từ các phần tử u0∈C0 cho phép ta xây dựng được mọi phần tử của X*
Như vậy mỗi bài toán TƯTH được xem là một bài toán cực trị hàm có h biến, trong đó mỗi biến nhận giá tri trong tập hữu hạn C kể cả giá trị rỗng Nói một cách khác là bài toán tìm kiếm trong không gian vector độ dài không quá h trong đồ thị đầy đủ có các đỉnh có nhãn trong tập C
Trang 1313
1.2 Giới thiệu bài toán người chào hàng
Bài toán người chào hàng (Traveling Salesman Problem - TSP) là bài toán
TƯTH điển hình, được nghiên cứu và xem như là bài toán chuẩn để đánh giá về hiệu quả lời giải các bài toán TƯTH
Bài toán được phát biểu như sau:
Có một tập gồm n thành phố (hoặc điểm tiêu thụ) 𝐶 = {𝑐1, 𝑐2, … , 𝑐𝑛}độ dài đường đi trực tiếp từ 𝑐𝑖 đến 𝑐𝑗 là 𝑑𝑖𝑗 Một người chào hàng muốn tìm một hành trình ngắn nhất từ nơi ở, đi qua mỗi thành phố đúng một lần để giới thiệu sản phẩm cho khách hàng, sau đó trở về thành phố xuất phát
Có thể thấy đây chính là bài toán tìm chu trình Hamilton với đồ thị đầy đủ có trọng số 𝐺 = (𝑉, 𝐸), với V là tập các đỉnh với nhãn là các thành phố trong C, E là tập các cạnh nối các thành phố tương ứng, độ dài mỗi cạnh chính là độ dài đường đi giữa hai thành phố tương ứng Trong trường hợp này, tập S sẽ là tập các chu trình Hamilton trên G, f là độ dài của chu trình, Ω là ràng buộc đòi hỏi chu trình là chu trình Hamilton (qua tất cả các đỉnh, mỗi đỉnh đúng một lần), C là tập thành phố được xét, C0 trùng với C, tập X là vectơ độ dài n: 𝑥 = (𝑥1, … , 𝑥𝑛) với 𝑥𝑖 ∈ 𝐶 ∀𝑖 ≤ 𝑛, còn X* là các vectơ trong đó 𝑥𝑖 khác 𝑥𝑗 đối với mọi cặp (𝑖, 𝑗)
Do đó, lời giải tối ưu của bài toán TSP là một hoán vị π của tập đỉnh {𝑐1, 𝑐𝑛, … , 𝑐𝑛} sao cho hàm độ dài f(π) là nhỏ nhất, trong đó f(π) được tính theo công thức sau:
𝑓(𝜋) = ∑𝑛−1𝑖=1 𝑑(𝜋(𝑖), 𝜋(𝑖 + 1)) + 𝑑(𝜋(𝑛), 𝜋(1))
1.3 Các cách tiếp cận giải quyết bài toán tối ưu tổ hợp
Các bài toán TƯTH có thể đưa về bài toán tìm kiếm trên đồ thị, với những bài toán nhỏ hoặc những bài toán đặc biệt thì có thể tìm lời giải tối ưu nhờ tìm kiếm vét cạn cũng như xây dựng những lời giải đặc thù Tuy nhiên hầu hết các bài toán trong
số đó là bài toán NP-hard, nên với các bài toán lớn ta phải tìm lời giải gần đúng Các thuật toán gần đúng đối với các bài toán TƯTH khó thường dựa trên 2 kỹ thuật cơ bản: heuristic cấu trúc (construction heuristic) và tìm kiếm địa phương (local search)
1.3.1 Heuristic cấu trúc
Khi không thể tìm được lời giải tối ưu của bài toán với thời gian đa thức, ta hướng đến việc tìm lời giải gần đúng Kỹ thuật thường dùng trong việc tìm lời giải gần đúng là heuristic cấu trúc, lời giải của bài toán được xây dựng thông qua việc
mở rộng tuần tự Từ thành phố khởi tạo trong tập C0, từng bước mở rộng không quay
Trang 1414
lui, thêm vào các thành phần mới theo phương thức ngẫu nhiên hay tất định dựa trên những quy tắc heuristic Các quy tắc heuristic này khác nhau tùy vào thuật toán cụ thể được xây dựng dựa trên toán học kết hợp với kinh nghiệm Chúng ta có thể khái quát hóa để mô phỏng dưới dạng thuật toán như sau:
Procedure Heuristic cấu trúc;
Thuật toán 1.1: Phương pháp Heuristic cấu trúc
Trong đó GreedyComponent(𝑠𝑝) có nghĩa là chọn thành phần bổ sung vào 𝑠𝑝theo quy tắc heuristic đã có Ký hiệu 𝑠𝑝𝑐 là kết quả phép toán thêm thành phần c vào
𝑠𝑝
Với phương pháp trên ta có thể áp dụng cho bài toán TSP với đồ thị đầy đủ
và sử dụng quy tắc heuristic láng giềng gần nhất để chọn đỉnh thêm vào (đỉnh láng giềng nhỏ nhất chưa đi qua để thêm vào) Thuật toán kiểu này có ưu điểm là thời gian tính toán nhanh nhưng không thể cải tiến lời giải qua mỗi bước lặp
1.3.2 Tìm kiếm địa phương
Kỹ thuật tìm kiếm cục bộ hay còn gọi là tìm kiếm địa phương, thực hiện bằng cách bắt đầu từ một phương án chấp nhận được, lặp lại bước cải tiến lời giải nhờ các
thay đổi cục bộ Để thực hiện kỹ thuật này, ta cần xác định được cấu trúc lân cận
của mỗi phương án (lời giải) đang xét, tức là những phương án chấp nhận được, gần
với nó nhất, nhờ thay đổi một số thành phần Cách thường dùng là lân cận k-thay đổi, tức là lân cận bao gồm các phương án chấp nhận được khác với phương án đang xét nhờ thay đổi nhiều nhất k thành phần
Ví dụ Lân cận 2-thay đổi của một lời giải s trong bài toán TSP bao gồm tất
cả các lời giải s’ có thể nhận được từ s bằng cách đổi hai cạnh Hình 1.1 chỉ ra một
Trang 1515
ví dụ một lời giải nhận được bằng cách thay hai cạnh (1,3), (2,6) bằng hai cạnh (2,3), (1,6)
Hình 1.1: Lời giải nhận được thông qua tìm kiếm địa phương
Việc cải tiến trong các bước lặp thường chọn theo phương pháp leo đồi dựa
theo hai chiến lược: Chiến lược tốt nhất và chiến lược tốt hơn Với chiến lược tốt nhất, người ta thực hiện chọn lời giải tốt nhất trong lân cận để làm lời giải cải tiến
Tuy nhiên, trong bài toán lớn có thể không tìm được lời giải tốt nhất do bị hạn chế
về thời gian Còn với chiến lược tốt hơn, ta chọn phương án đầu tiên trong lân cận,
cải thiện được hàm mục tiêu Nhược điểm của tìm kiếm địa phương là thường chỉ cho cực trị địa phương
Các kỹ thuật trên thường được kết hợp, tạo thành các hệ lai trong các phương pháp mô phỏng tự nhiên dựa trên quần thể, chẳng hạn như thuật toán di truyền (GA) hoặc tối ưu đàn kiến (ACO)
1.3.3 Phương pháp meta-heuristic
Phương pháp metaheuristic là một phương pháp heuristic tổng quát được thiết
kế, định hướng cho các thuật toán cụ thể (bao gồm cả heuristic cấu trúc và tìm kiếm địa phương) Như vậy, một meta-heuristic là một lược đồ thuật toán tổng quát ứng dụng cho các bài toán tối ưu khác nhau, với một chút sửa đổi cho phù hợp với từng bài toán
1.3.4 Phương pháp memetic
Memetic là một mô hình theo phương pháp meta-heuristic Trong các thuật toán được thiết kế theo memetic, người ta tạo ra nhiều thế hệ quần thể lời giải chấp nhận được Trong mỗi quần thể của thế hệ tương ứng, ta chỉ chọn ra một số lời giải
Trang 16Initialize: Tạo ra quần thể đầu tiên;
while điều kiện dừng chưa thỏa mãn do
Đánh giá các cá thể trong quần thể;
Thực hiện tiến hóa quần thể nhờ các toán tử cho trước;
Chọn tập con Ω𝑖𝑙 để cải tiến nhờ thủ tục tìm kiếm địa phương;
for mỗi cá thể trong Ω𝑖𝑙 do
Thực hiện tìm kiếm địa phương;
Thuật toán 1.2: Thuật toán memetic sử dụng EC
Trong ứng dụng thực tế, các thuật toán ACO thường được kết hợp với tìm kiếm địa phương theo mô hình memetic này
1.4 Phương pháp tối ưu đàn kiến
1.4.1 Từ kiến tự nhiên đến kiến nhân tạo
Những hình ảnh nhận thức đặc biệt của đàn kiến chỉ đơn giản là sự phát triển
và hoàn toàn mò mẫm Trong thực tế, một điều quan trọng trong nghiên cứu về loài kiến là hành vi liên lạc giữa các con kiến hoặc giữa các cá nhân với môi trường, được dựa trên việc sử dụng các hóa chất đặc trưng của các loài kiến Các hóa chất
đó được gọi là mùi (vết mùi)
Trang 1717
dù, kiến không có khả năng đo độ dài đường đi) Kiến chịu ảnh hưởng của các vết mùi của các con kiến khác chính là ý tưởng thiết kế thuật toán ACO
Hình 1.2: Thể hiện hành vi của mỗi con kiến trong tự nhiên
Để làm được điều đó, trên đường đi, mỗi con kiến để lại vết mùi dùng để đánh dấu đường đi Bằng cách cảm nhận vết mùi, con kiến có thể lần theo đường đi đến nguồn thức ăn được các con kiến khác khám phá theo phương thức chọn ngẫu nhiên,
có định hướng theo nồng độ vết mùi
Thí nghiệm trên cây cầu đôi
Có nhiều thực nghiệm nghiên cứu về hành vi để lại vết mùi và đi theo vết mùi của loài kiến Thực nghiệm, được thiết kế bởi Deneubourg và các cộng sự, dùng một chiếc cầu đôi nối từ tổ kiến tới nguồn thức ăn, như minh họa trong hình 1.3 Họ đã thực nghiệm với tỉ lệ độ dài đường giữa hai nhánh khác nhau của chiếc cầu đôi
Trong thực nghiệm thứ nhất, chiếc cầu đôi có hai nhánh bằng nhau (hình 1.3a) Ban đầu, kiến lựa chọn đường đi một cách tự do đi từ tổ đến nguồn thức ăn, cả hai nhánh đều có kiến đi, nhưng sau một thời gian các con kiến này tập trung đi theo cùng một nhánh Kết quả có thể được giải thích như sau: ban đầu không có vết mùi nào trên cả hai nhánh, do đó kiến lựa chọn nhánh bất kỳ với xác suất như nhau Một cách ngẫu nhiên, sẽ có một nhánh có số lượng kiến lựa chọn nhiều hơn nhánh kia
Do kiến để lại vết mùi trong quá trình di chuyển, nhánh có nhiều kiến lựa chọn sẽ
có nồng độ mùi lớn hơn nồng độ mùi của nhánh còn lại Nồng độ mùi trên cạnh lớn hơn sẽ ngày càng lớn hơn vì ngày càng có nhiều kiến lựa chọn Cuối cùng, hầu như tất cả các kiến sẽ tập trung trên cùng một nhánh Thực nghiệm này cho thấy là sự
Trang 1818
tương tác cục bộ giữa các con kiến với thông tin gián tiếp là vết mùi để lại cho phép điều chỉnh hoạt động vĩ mô của đàn kiến
Hình 1.3: Thực nghiệm trên cây cầu đôi
(a) Hai nhánh có độ dài bằng nhau (b) Hai nhánh có độ dài khác nhau
Trong thực nghiệm thứ hai (hình 1.3b), độ dài của nhánh dài gấp đôi độ dài nhánh ngắn (tỉ lệ r=2) Trong trường hợp này, sau một thời gian tất cả các con kiến
đều chọn đoạn đường ngắn hơn Cũng như trong thực nghiệm thứ nhất, ban đầu đàn kiến lựa chọn hai nhánh đi như nhau, một nửa số kiến đi theo nhánh ngắn và một nửa đi theo nhánh dài (mặc dù trên thực tế, do tính ngẫu nhiên có thể một nhánh nào
đó được nhiều kiến lựa chọn hơn nhánh kia) Nhưng thực nghiệm này có điểm khác biệt quan trọng với thực nghiệm thứ nhất: Những kiến lựa chọn đi theo nhánh ngắn
sẽ nhanh chóng quay trở lại tổ và khi phải lựa chọn giữa nhánh ngắn và nhánh dài, kiến sẽ thấy nồng độ mùi trên nhánh ngắn cao hơn nồng độ mùi trên nhánh dài, do
đó sẽ ưu tiên lựa chọn đi theo nhánh ngắn hơn Tuy nhiên, trong thời gian đầu không phải tất cả các kiến đều đi theo nhánh ngắn hơn Phải mất một khoảng thời gian tiếp theo nữa bầy kiến mới lựa chọn đi theo nhánh ngắn Điều này minh chứng bầy kiến
đã sử dụng phương thức thăm dò, tìm đường mới
Một điểm thú vị nữa là quan sát xem điều gì sẽ xảy ra khi quá trình tìm kiếm đang hội tụ, lại xuất hiện một đường mới từ tổ đến nguồn thức ăn Việc này được thực nghiệm như sau: Ban đầu từ tổ đến nguồn thức ăn chỉ có một nhánh dài và sau
30 phút, thêm một nhánh ngắn (hình 1.4) Trong trường hợp này, nhánh ngắn thường không được kiến chọn mà chúng tập trung đi trên nhánh dài Điều này có thể giải thích như sau: nồng độ vết mùi trên cạnh dài cao và sự bay hơi của vết mùi diễn ra chậm nên đại đa số các con kiến vẫn lựa chọn nhánh dài (có nồng độ vết mùi cao) Hành vi này tiếp tục được củng cố kiến chọn đi theo nhánh dài, ngay cả khi có một nhánh ngắn xuất hiện Việc bay hơi vết mùi là cơ chế tiện lợi cho việc tìm đường
Trang 1919
mới, nghĩa là việc bay hơi có thể giúp kiến quên đi đường đi tối ưu địa phương đã được tìm thấy trước đây để tìm khám phá đường đi mới, tốt hơn
Hình 1.4: Thí nghiệm bổ sung
(Ban đầu chỉ có một nhánh và 30 phút sau bổ sung nhánh ngắn hơn)
1.4.1.2 Kiến nhân tạo (Artificial Ant)
Thực nghiệm cây cầu đôi cho thấy đàn kiến tự nhiên có thể sử dụng luật di chuyển theo xác suất, dựa trên thông tin địa phương để tìm được đường đi ngắn nhất giữa hai địa điểm Vết mùi của đàn kiến cho phép liên tưởng tới cách học tăng cường (reinforcement learning) trong bài toán chọn tác động tối ưu, gợi mở mô hình mô phỏng cho bài toán tìm đường đi ngắn nhất giữa hai nút (tương ứng là tổ và nguồn thức ăn) trên đồ thị, trong đó các tác tử (agent) là đàn kiến nhân tạo
Tuy nhiên, trong các bài toán ứng dụng sẽ có đồ thị phức tạp hơn Từ mỗi đỉnh có thể có nhiều cạnh, nên nếu mô phỏng thực sự hành vi của đàn kiến tự nhiên nhiều con kiến sẽ đi luẩn quẩn và do đó hiệu quả thuật toán sẽ rất kém Vì vậy, người
ta dùng kỹ thuật đa tác tử (multiagent) mô phỏng đàn kiến nhân tạo, trong đó mỗi con kiến nhân tạo có khả năng nhiều hơn so với kiến tự nhiên Kiến nhân tạo (gọi đơn giản là kiến) sẽ có bộ nhớ riêng, có khả năng ghi nhớ các đỉnh đã thăm trong hành trình và tính được độ dài đường đi nó chọn Ngoài ra, kiến có thể trao đổi thông tin với nhau, thực hiện tính toán cần thiết, cập nhật mùi…
Sử dụng mô hình kiến nhân tạo này, Dorigo (1991) đã xây dựng thuật toán Hệ kiến (AS) giải bài toán người chào hàng Hiệu quả của thuật toán so với các phương pháp mô phỏng tự nhiên khác như SA(mô phỏng luyện kim) và GA(giải thuật di truyền) đã được kiểm chứng bằng thực nghiệm Thuật toán này về sau được phát triển và có nhiều ứng dụng phong phú, được gọi chung là phương pháp ACO
1.4.2 Phương pháp tối ưu đàn kiến
Tối ưu đàn kiến (Ant Colony Optimization - ACO) là một phương pháp
meta-heuristic được đề xuất bởi Dorigo vào năm 1991 dựa trên ý tưởng mô phỏng cách
Trang 2020
tìm đường đi từ tổ tới nguồn thức ăn và ngược lại của các con kiến tự nhiên để giải gần đúng bài toán TƯTH NP-hard
Trên đường đi của mình các con kiến thực để lại một vết hóa chất được gọi là
vết mùi (pheromone trail), đặc điểm sinh hóa học của vết mùi này là có khả năng ứ
đọng, bay hơi và là phương tiện giao tiếp báo cho các con kiến khác thông tin về đường đi đó một cách gián tiếp Các con kiến sẽ lựa chọn đường đi nào tồn đọng lượng mùi hay có cường độ vết mùi lớn nhất tại thời điểm lựa chọn để đi, nhờ cách giao tiếp mang tính gián tiếp và cộng đồng này mà đàn kiến trong tự nhiên tìm được đường đi ngắn nhất trong quá trình tìm thức ăn mang về tổ và ngược lại Sử dụng
mô hình kiến nhân tạo này Dorigo đã xây dựng thuật toán hệ kiến (AS) giải bài toán
người chào hàng Thuật toán này đã được chứng minh tính hiệu quả thông qua thực nghiệm so với các mô phỏng tự nhiên khác như SA và GA Thuật toán này về sau được phát triển và có nhiều áp dụng phong phú trong thực tế như ACS, MMAS, SMMAS,… được gọi chung là phương pháp ACO
Theo ý tưởng này, các thuật toán ACO sử dụng thông tin heuristic kết hợp
thông tin học tăng cường qua các vết mùi của các con kiến nhân tạo (artificial ant)
để giải các bài toán tối ưu tổ hợp khó bằng cách đưa về bài toán tìm đường đi tối ưu trên đồ thị cấu trúc tương ứng được xây dựng từ đặc điểm của từng bài toán cụ thể
Thuật toán ACO đầu tiên là hệ kiến (Ant System - AS) giải bài toán Người chào hàng
TSP, đến nay các thuật toán ACO đã áp dụng một cách phong phú để giải nhiều bài toán tối ưu tổ hợp khác nhau và hiệu quả nổi trội của nó đã được chứng tỏ bằng thực nghiệm
1.4.3 Mô tả thuật toán ACO tổng quát
Sử dụng điều kiện kết thúc (có thể theo số bước lặp hoặc/và giới hạn thời gian
chạy), ta dùng đàn kiến có m con, tiến hành lặp quá trình xây dựng lời giải trên đồ
thị cấu trúc 𝐺 = (𝑉, 𝐸, 𝐻, 𝑟) như sau: Tại mỗi lần lặp, kiến chọn ngẫu nhiên một đỉnh 𝑢0 ∈ 𝐶0 làm thành phần khởi tạo 𝑥0 = {𝑢0} và thực hiện xây dựng lời giải theo thủ tục bước ngẫu nhiên Dựa trên lời giải tìm được, đàn kiến sẽ thực hiện cập nhật mùi theo cách học tăng cường
Thủ tục bước ngẫu nhiên:
Giả sử 𝑥𝑘 =< 𝑢0, … , 𝑢𝑘 > là mở rộng được và chưa thuộc X* Từ tập ràng buộc Ω, xác định tập con 𝐽(𝑥𝑘) của 𝐶 , sao cho với 𝑢𝑘+1 ∈ 𝐽(𝑥𝑘) thì 𝑥𝑘+1 = <
𝑢0, … , 𝑢𝑘, 𝑢𝑘+1 > là mở rộng được Đỉnh 𝑗 = 𝑢𝑘+1 để mở rộng, được chọn với xác suất 𝑃(𝑗) như sau:
Trang 2121
𝑃(𝑗) = {
[𝜏𝑖𝑗]𝛼[𝜂𝑖𝑗]𝛽
∑ [𝜏𝑖𝑗]𝛼[𝜂𝑖𝑗]𝛽 𝑙∈𝐽(𝑥𝑘)
, 𝑗 ∈ 𝐽(𝑥𝑘)
0, 𝑗 𝜖 ̅𝐽(𝑥𝑘)
Quá trình mở rộng tiếp tục cho tới khi kiến r tìm được lời giải chấp nhận được
xr trong X* và do đó 𝑠𝑟 = 𝜑(𝑥𝑟) ∈ 𝑆
Hình 1.5: Lựa chọn đỉnh đi tiếp theo
Ta coi 𝑥𝑟 và 𝑠𝑟 như nhau và không phân biệt X* với S
- Cập nhật mùi:
Tùy theo chất lượng của lời giải tìm được, vết mùi trên mỗi cạnh sẽ được điều chỉnh tăng hoặc giảm tùy theo đánh giá mức độ ưu tiên tìm kiếm về sau Lượng mùi cập nhật theo các quy tắc cập nhật mùi khác nhau sẽ cho các thuật toán khác nhau
Vì vậy, quy tắc cập nhật mùi thường dùng làm tên gọi thuật toán, và chúng có dạng tổng quát là:
𝜏𝑖,𝑗 ← (1 − 𝜌)𝜏𝑖,𝑗 + ∆(𝑖, 𝑗) trong đó 𝜌 là hằng số thuộc khoảng (0,1) là tỷ lệ lượng mùi bị bay hơi
Procedure Thuật toán ACO;
Cập nhật lời giải tốt nhất;
Until (Điều kiện kết thúc);
Đưa ra lời giải tốt nhất;
End;
Thuật toán 1.3: Đặc tả thuật toán ACO
Trang 2222
Nhận xét chung về các thuật toán ACO
Nhờ kết hợp thông tin heuristic, thông tin học tăng cường và mô phỏng hoạt động của đàn kiến, các thuật toán ACO có các ưu điểm sau:
- Việc tìm kiếm ngẫu nhiên dựa trên các thông tin heuristic trở nên linh hoạt
và mềm trên miền rộng hơn so với các phương pháp heuristic đã có Do đó, cho ta lời giải tốt hơn và có thể tìm được lời giải tối ưu
- Học tăng cường thông qua thông tin về cường độ vết mùi cho phép từng bước thu hẹp không gian tìm kiếm, mà vẫn không loại bỏ các lời giải tốt, do đó nâng cao chất lượng thuật toán
Chú ý: Khi áp dụng phương pháp ACO cho các bài toán cụ thể, ba yếu tố sau
có ảnh hưởng quyết định đến hiệu quả thuật toán:
- Xây dựng đồ thị cấu trúc thích hợp: Việc xây dựng đồ thị cấu trúc để tìm được lời giải cho bài toán theo thủ tục tuần tự không khó Khó khăn chính là với các bài toán cỡ lớn, không gian tìm kiếm quá rộng, đòi hỏi ta sử dụng các ràng buộc một cách hợp lý để giảm miền tìm kiếm của kiến
- Chọn thông tin heuristic: Thông tin heuristic tốt sẽ tăng hiệu quả thuật toán Tuy nhiên, trong nhiều bài toán không có thông tin này thì có thể đánh giá chúng như nhau Khi đó, ban đầu thuật toán chỉ đơn thuần chạy theo phương thức tìm kiếm ngẫu nhiên, vết mùi thể hiện định hướng của học tăng cường và thuật toán vẫn thực hiện được
- Chọn quy tắc cập nhật mùi: Quy tắc cập nhật mùi thể hiện chiến lược học của thuật toán Trong khi đồ thị cấu trúc và thông tin heuristic phụ thuộc vào bài toán cụ thể, quy tắc cập nhật mùi lại là yếu tố phổ dụng và thường dùng để đặt tên cho thuật toán
1.4.4 Các hệ kiến
1.4.4.1 Hệ kiến AS
Hệ thống Kiến (Ant System) dựa trên sự quan sát của các đàn kiến thực sự tìm kiếm thức ăn Lần đầu tiên nó được giới thiệu bởi Colorni et al [28,29] Một đàn kiến thực sự có khả năng tìm ra con đường ngắn nhất giữa tổ và các điểm đến của mình bằng cách để lại vết mùi trên đường đi Mỗi con kiến xác định hướng tiếp theo trên tuyến theo mật độ pheromone AS mô phỏng hành vi của các cộng đồng kiến thực, lập bản đồ không gian giải pháp từ các vấn đề đã áp dụng cho đồ thị tìm kiếm
và tăng cường quá trình giải pháp xây dựng để tăng hiệu quả tìm kiếm AS không chỉ sử dụng thông tin của pheromone, mà còn thiết kế một hàm heuristic để hướng
Trang 2323
dẫn mỗi con kiến theo những hướng tốt hơn Một khi tất cả kiến đã hoàn thành chuyến đi của chúng, số lượng pheromone trên các chuyến đi sẽ được sửa đổi Thuật toán ngắn gọn được hiển thị trong Thuật toán 1.4
Thuật toán 1.4: Thuật toán Ant System
1.4.4.2 Hệ kiến ACS
Ant Colony System, được đề xuất bởi Dorigo và Gambardella [27], là một thuật toán mở rộng từ hệ thống kiến Nó đã sửa đổi quy tắc chuyển đổi trạng thái và quy tắc cập nhật pheromone để tăng hiệu suất của cách tiếp cận AS ban đầu Nó được hiển thị trong Thuật toán 1.5:
Thuật toán 1.5: Thuật toán ACS
- Quy tắc chuyển tiếp trạng thái: Quy tắc chuyển tiếp trạng thái được sử dụng
bởi một kiến để chọn xác định đỉnh tiếp theo (trạng thái) Vấn đề người bán hàng du lịch được lấy làm ví dụ Giả sử k-th kiến hiện tại thành phố j (nút) Thành phố s (nút)
kế tiếp cho con kiến thứ k đến thăm là:
𝑠 = {arg 𝑛 ∈ 𝑅⃗⃗⃗⃗ (𝑗) max{[𝜏(𝑗, 𝑛)]𝑘 𝛼 × [𝜂(𝑗, 𝑛)]𝛽} , 𝑖𝑓 𝑞 ≤ 𝑞0
𝑖 𝑤𝑖𝑡ℎ 𝑎 𝑝𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑡𝑦 𝑃𝑘(𝑗, 𝑖), 𝑖𝑓 𝑞 > 𝑞0 (1)