khai thÁc tẬp m c l i Ích cao sỬ dỤng phƯƠng phÁp...

47
ĐẠI HC QUC GIA HÀ NI TRƯỜNG ĐẠI HC CÔNG NGHNGUYỄN ĐỨC DŨNG KHAI THÁC TP MC LI ÍCH CAO SDỤNG PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN Ngành: Khoa hc máy tính Chuyên ngành: Khoa hc máy tính Mã s: 8480101.01 LUẬN VĂN THẠC SĨ KHOA HC MÁY TÍNH NGƯỜI HƯỚNG DN KHOA HC: PGS.TS Hoàng Xuân Hun Hà Ni - 2019

Upload: others

Post on 18-Nov-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

ĐẠ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

Ngành: Khoa học máy tính

Chuyên ngành: Khoa học máy tính

Mã số: 8480101.01

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

Page 2: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

2

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

Page 3: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

3

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

Page 4: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

4

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

Page 5: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

5

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

Page 6: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

6

DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT

STT Từ viết tắt Từ hoặc cụm 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

Page 7: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

7

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

Bảng 3.1: Bộ dữ liệu chạy thử nghiệm ................................................................... 41

Bảng 3.2: Ngưỡng tiện ích thiết lập chạy thực nghiệm .......................................... 41

Page 8: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

8

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

Page 9: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

9

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.

Page 10: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

10

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

Page 11: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

11

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

Page 12: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

12

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.

Page 13: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

13

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

Page 14: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

14

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;

Begin

𝑠𝑝 ←chọn thành phần 𝑢0 trong 𝐶0;

While (chưa xây dựng xong lời giải) do

𝑐 ←GreedyComponent(𝑠𝑝);

𝑠𝑝 ← 𝑠𝑝𝑐;

end-while

𝑠 ← 𝑠𝑝;

Đưa ra lời giải s;

End;

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

Page 15: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

15

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

Page 16: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

16

(chẳng hạn lời giải tốt nhất) để thực hiện tìm kiếm địa phương nhằm cải thiện chất

lượng. Quá trình tiến hóa này cho ta tìm được lời giải tốt nhất có thể. Thuật toán 1.2

mô tả một thuật toán memetic sử dụng tính toán tiến hóa (Evolutionary Computing

- EC):

Proedure Thuật toán memetic-EC;

Begin

Initialize: 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;

end-for

Chọn phần tử tốt nhất;

end-while;

Đưa ra lời giải tốt nhất;

End;

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

1.4.1.1. Kiến tự nhiên

Khi tìm đường đi, đàn kiến trao đổi thông tin gián tiếp và hoạt động theo

phương thức tự tổ chức. Phương thức này tuy đơn giản nhưng đã giúp cho đàn kiến

có thể thực hiện được những công việc phức tạp vượt xa khả năng của từng con kiến,

đặc biệt là khả năng tìm đường đi ngắn nhất từ tổ đến nguồn thức ăn (Hình 1.2) (mặc

Page 17: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

17

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ự

Page 18: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

18

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

Page 19: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

19

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

Page 20: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

20

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:

Page 21: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

21

𝑃(𝑗) =

[𝜏𝑖𝑗]𝛼[𝜂𝑖𝑗]

𝛽

∑ [𝜏𝑖𝑗]𝛼[𝜂𝑖𝑗]

𝛽𝑙∈𝐽(𝑥𝑘)

, 𝑗 ∈ 𝐽(𝑥𝑘)

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;

Begin

Khởi tạo tham số, ma trận mùi, khởi tạo con kiến;

repeat for k=1 to m do

Kiến k xây dựng lời giải;

end-for

Cập nhật mùi;

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

Page 22: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

22

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

Page 23: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

23

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)

Page 24: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

24

Trong đó Rk(j) là tập hợp các thành phố chưa được viếng thăm bởi kiến, τ(j,n)

là pheromone nằm trên cạnh từ thành phố j tới thành phố n, và α, β là hai tham số

xác định ảnh hưởng tương đối của Pheromone so với khoảng cách giữa hai thành

phố trong vấn đề này. Ngoài ra, tham số q là một số ngẫu nhiên phân bố đều giữa 0

và 1, q0 là tham số (0 ≤q0 ≤1) được xác định trước bởi người dùng, và Pk(j, i) là

xác suất từ thành phố j (node) đến thành phố i(node) nếu q> q0. Pk(j, i) được tính như

sau:

𝑃𝑘(𝑗, 𝑖) =

[𝜏(𝑗, 𝑖)]𝛼 × [𝜂(𝑗, 𝑖)]𝛽

∑ [𝜏(𝑗, 𝑛)]𝛼 × [𝜂(𝑗, 𝑛)]𝛽𝑛∈𝑅𝑘(𝑗)

, 𝑖𝑓 𝑖 ∈ 𝑅𝑘(𝑗)

0, 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

(2)

Nếu giá trị của biến ngẫu nhiên q ít hơn tham số được xác định trước q0, quy

tắc chuyển tiếp trạng thái sẽ chọn nút có nồng độ [τ (j, i)]α × [η (j, i)]β theo sau. Nếu

không, nó xác định chọn một nút theo công thức (2). Phương pháp lựa chọn ở trên

được gọi là quy luật tỷ lệ giả ngẫu. Quy tắc tỷ lệ giả ngẫu có thể làm tăng tốc độ hội

tụ để có được các giải pháp tốt hơn trong các lần lặp. Trong trường hợp tổng quát,

hàm η(j, i) là một hàm heuristic liên quan đến việc tối ưu hóa. Đây là một thiết kế

quan trọng và hữu ích cho các thuật toán dựa trên kiến. Một chức năng heuristic

thích hợp được thiết lập theo kiến thức miền của ứng dụng nhất định.

- Quy tắc cập nhật toàn cục: Khi tất cả các kiến đã hoàn thành chuyến đi, quy

tắc cập nhật toàn cục sẽ được áp dụng để cập nhật mật độ pheromone của chuyến đi

tốt nhất. Nó khác với quá trình cập nhật pheromone trong AS. Nó làm tăng lượng

pheromone trong tất cả các chuyến đi được thông qua bởi kiến trong một lần lặp lại.

Nhưng ACS chỉ làm tăng lượng pheromone trong chuyến đi tốt nhất. Vì vậy, quy

tắc cập nhật toàn cục phân biệt các chuyến đi tốt nhất giữa các giải pháp khả thi khác

và tăng tốc độ hội tụ. Có hai loại quy tắc cập nhật toàn cục có thể được chọn: Loại

thứ nhất đưa ra chuyến đi tốt nhất (giải pháp tốt nhất toàn cầu) giữa các con kiến

trong tất cả các lần thực hiện lặp đi lặp lại và loại thứ hai có chuyến đi tốt nhất (giải

pháp tốt nhất lặp đi lặp lại) trong lần lặp lại hiện tại. Lấy ví dụ như vấn đề người bán

hàng đi du lịch.

Quy tắc cập nhật toàn cục được nêu như sau:

𝜏𝑡+1(𝑗, 𝑠) = (1 − 𝜌) × 𝜏𝑡(𝑗, 𝑠) + 𝜌 × ∆𝜏(𝑗, 𝑠) (3)

∆𝜏(𝑗, 𝑠) =

1

𝐿𝑏𝑒𝑠𝑡, 𝑖𝑓(𝑗, 𝑠) ∈ 𝑏𝑒𝑠𝑡 𝑡𝑜𝑢𝑟

0, 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

(4)

Page 25: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

25

Trong đó t là phép lặp hiện tại, 𝜌 (0 < 𝜌 <1) là tham số bay hơi của pheromone,

và Lbest là chiều dài của lời giải tốt nhất toàn cục hoặc lời giải tốt nhất lặp đi lặp lại

qua các kiến. Do đó, quy tắc cập nhật toàn cục sẽ cung cấp tăng lượng pheromone

lớn hơn cho một chuyến đi ngắn nhất trong vấn đề người bán hàng đi du lịch.

- Quy tắc cập nhật cục bộ: Do ảnh hưởng của luật tỷ lệ ngẫu nhiên và quy tắc

cập nhật toàn cầu, ACS luôn thống kê một quần thể kiến để vượt qua cùng một cạnh.

Quy tắc cập nhật cục bộ được thiết kế để điều chỉnh mật độ pheromones và tránh

việc kiến luôn chọn những chuyến đi tương tự trong một lần lặp. Khi một con kiến

chọn một cạnh giữa các nút j và s, nó sẽ cập nhật mật độ pheromone ngay lập tức để

tránh tối ưu cục bộ như sau:

𝜏𝑎𝑓𝑡𝑒𝑟(𝑗, 𝑠) = (1 − 𝜌) × 𝜏𝑏𝑒𝑓𝑜𝑟𝑒(𝑗, 𝑠) + 𝜌 × 𝜏0 (5)

Trong đó τbefore(j, s) là mật độ pheromone từ thành phố j đến s, khi một con

kiến đi qua cạnh, lượng pheromone sẽ được cập nhật τafter( j, s ). Và ρ (0 <ρ <1) là

một tham số để điều chỉnh mật độ pheromone. Đối với công thức này, nếu mật độ

pheromone τbefore(j, s) trong chuyến đi xây dựng cao hơn pheromone ban đầu τ0, quy

tắc cập nhật cục bộ làm giảm mật độ pheromone để giảm khả năng thăm viếng lặp

lại từ cạnh. Nếu không, nó làm tăng mật độ pheromone. Quy tắc cập nhật cục bộ

cung cấp cho một xác suất hợp lý cho bất kỳ giải pháp có thể. Nó giúp kiến khám

phá các cạnh khác với xác suất cao hơn và do đó tránh tối ưu cục bộ. Theo quy trình

cập nhật cục bộ ở trên, một con kiến thường làm giảm mật độ pheromone của cạnh

mà nó chọn. Điều này ngăn cản quần thể con kiến lựa chọn các đường đi tương tự

và đảm bảo rằng các giải pháp khác có thể có cơ hội tốt để được lựa chọn.

1.4.4.3. Hệ kiến Max-Min

MMAS là một thuật toán cải tiến hệ kiến với một số thay đổi. Thứ nhất, giống

như quy tắc cập nhật toàn cục trong ACS, mỗi lần lặp tất cả các lời giải được xây

dựng, chỉ các lời giải tốt nhất được cập nhật bằng quy tắc cập nhật chung trong (3),

trong đó lượng pheromone, ∆𝜏𝑖𝑗, được tính bởi:

∆𝜏𝑖𝑗(𝑀𝑀𝐴𝑆)

= (1 − 𝜌)

1

𝐿𝑔𝑏, 𝑖𝑓 𝑒𝑖𝑗 ∈ 𝑠∗(𝑡),

0, 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

(6)

Thứ hai, cường độ pheromone 𝜏𝑖𝑗 trên eij bị hạn chế trong khoảng

[𝜏𝑚𝑖𝑛, 𝜏𝑚𝑎𝑥], trong đó, 𝜏𝑚𝑖𝑛 và 𝜏𝑚𝑎𝑥 là các tham số khác không được xác định trước.

Các tham số khác không(≠0) này được sử dụng để giảm tình trạng đình trệ do các

Page 26: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

26

con kiến đi cùng đường và đưa ra lời giải chưa tối ưu. Khi thực hiện cập nhật toàn

cục và 𝜏𝑖𝑗 nằm ngoài [𝜏𝑚𝑖𝑛, 𝜏𝑚𝑎𝑥] thì 𝜏𝑖𝑗 được điều chỉnh lại bằng thuật toán:

𝜏𝑖𝑗 = 𝜏𝑚𝑖𝑛, 𝑖𝑓 𝜏𝑖𝑗 < 𝜏𝑚𝑖𝑛

𝜏𝑚𝑎𝑥, 𝑖𝑓 𝜏𝑖𝑗 > 𝜏𝑚𝑎𝑥 (7)

Các lựa chọn của 𝜏𝑚𝑖𝑛 và 𝜏𝑚𝑎𝑥 ảnh hưởng rất lớn đến hiệu quả của thuật toán.

Thứ ba, khởi tạo lại được sử dụng trong MMAS khi tình trạng đình trệ xảy ra. Thứ

tư, khi thuật toán gần hội tụ, làm mịn sự thay đổi cường độ pheromone nhằm tăng

cường khám phá, tìm kiếm các lời giải mới tốt hơn. Việc làm mịn này thay thế quy

tắc được xác định trong (6) bằng quy tắc cập nhật sau:

𝜏𝑖𝑗 ← 𝜏𝑖𝑗 + 𝛿(𝜏𝑚𝑎𝑥 − 𝜏𝑖𝑗 ) (8)

Trong đó 𝛿 là một hằng số và 0 < 𝛿 < 1.

1.4.4.4. Hệ kiến Max-Min trơn

Thuật toán Max-Min trơn kí hiệu là SMMAS được Đỗ Đức Đông và Hoàng

Xuân Huấn đề xuất năm 2012 [35]. SMMAS được đề xuất để khắc phục nhược điểm của

MMAS, tăng tính khám phá của thuật toán.

Sau khi các con kiến đã tìm được lời giải, ta xác định lời giải tốt nhất và cập nhật

vết mùi theo công thức sau:

𝜏𝑖𝑗 ← (1 − 𝜌)𝜏𝑖𝑗 + ∆𝑖𝑗 (9)

Trong đó:

∆𝑖𝑗= 𝜌𝜏𝑚𝑎𝑥 𝑖𝑓 (𝑖, 𝑗) ∈ (𝑡)𝜌𝜏𝑚𝑖𝑛 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

So với MMAS, thuật toán SMMAS đơn giản, dễ dùng và thực nghiệm cho

thấy nó hiệu quả hơn MMAS.

Page 27: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

27

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

2.1. Bài toán khai thác tập mục lợi ích cao

Một siêu thị bán lẻ kinh doanh hàng trăm sản phẩm khác nhau từ các nhà cung

cấp. Họ bày bán các sản phẩm theo các khu vực khác nhau, việc sắp xếp này phụ

thuộc vào các chiến lược kinh doanh, kích thích người mua. Mỗi sản phẩm được bán

ra sẽ đem lại một giá trị lợi nhuận xác định được tính là chênh lệch giữa giá bán và

giá mua. Mỗi khách hàng vào siêu thị mua một vài sản phẩm với số lượng nhất định,

tập hợp sản phẩm khách hàng mua này sẽ đem lại một giá trị lợi nhuận cho siêu thị,

được gọi là một giao dịch. Tất cả các giao dịch sẽ được siêu thị lưu trữ lại, tạo ra

một cơ sở dữ liệu giao dịch. Những người lãnh đạo siêu thị muốn tìm ra các tập hợp

sản phẩm mà khách hàng đã mua đem lại lợi nhuận (ví dụ: 30% tổng lợi nhuận) cho

siêu thị, từ đó đưa ra các chiến lược kinh doanh, tiếp thị như xếp các mặt hàng này

cạnh nhau, đưa ra các chương trình khuyến khích khách hàng mua sản phẩm này thì

sẽ mua thêm một sản phẩm khác trong tập các sản phẩm đã tìm ra. Bài toán HUIM

đã được nhóm tác giả R.C. Chan, Q. Yang, Y.D. Shen đề xuất vào năm 2003. Cùng

với sự phát triển của nền kinh tế, nhu cầu tính toán doanh thu, hiệu quả kinh doanh

theo thời gian thực với lượng dữ liệu lớn ngày càng trở nên cấp thiết.

Danh sách các giao dịch Giá trị lợi nhuận

T1 a:1,c:18,e:1 a 3$

T2 b:6,d:1,e:1,f:1 b 9$

T3 a:2,c:1,e:1 c 1$

T4 d:1,e:1 d 5$

T5 c:4,e:2 e 6$

T6 b:1,f:1 f 1$

T7 b:10,d:1,e:1

T8 a:3,c:25,d:3,e:1

T9 a:1,b:1,f:3

T10 b:6,c:2,e:2,f:4

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

Việc xác định tổ hợp sản phẩm với số lượng bán ra có lợi nhuận cao hơn một

ngưỡng cho trước có ý nghĩa tính toán doanh thu và đặt ra chiến lược kinh doanh.

Page 28: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

28

Mô hình toán học của bài toán được phát biểu như sau:

Cho:

- I = i1, i2,. . . , im là một tập hợp hữu hạn của m mục khác biệt.

- D = T1, T2,. . . , Tn là một tập các giao dịch, Tq ∈ D (1 ≤q ≤ n) là một

tập hợp con của I và có một số nhận dạng duy nhất q, được gọi là TID. Với mỗi ij

trong một giao dịch Tq có số lượng được biểu thị là q (ij, Tq).

- Một bảng lợi nhuận ptable = pr(i1), pr(i2),. . . , pr(im) cho biết giá trị lợi

nhuận của mỗi khoản ij, giá trị lợi nhuận là chênh lệch giữa giá mua và giá bán.

- δ là ngưỡng tiện ích tối thiểu theo tùy chọn của người dùng.

Trong Bảng 2.1, có 10 giao dịch và 6 mặt hàng khác nhau, được biểu thị từ (a)

đến (f). Giá trị lợi nhuận (tiện ích bên ngoài) của mỗi mục được hiển thị dưới dạng

bảng lợi nhuận = a: 3, b: 9, c: 1, d: 5, e: 6, f: 1. Ngưỡng tiện ích tối thiểu được đặt

là (δ = 30%).

Định nghĩa 1: Lợi ích của một item ij trong một giao dịch Tq được ký hiệu là

u(ij, tq), và được định nghĩa là:

𝑢(𝑖𝑗 , 𝑇𝑞) = 𝑞(𝑖𝑗 , 𝑇𝑞) × 𝑝𝑟(𝑖𝑗)

Trong đó: q là số lượng ij trong Tq, pr là lợi nhuận của ij.

Ví dụ, lợi ích của các item (a), (c) và (e) trong giao dịch T1 được tính tương

ứng:

u(a, T1) = q(a, T1) × pr(a) = 1 × 3 = 3;

u(c, T1) = q(c, T1) x pr(c) = 18 × 1 = 18

u(e, T1) = q(e, T1) × pr(e) = 1 × 6 = 6

Định nghĩa 2: Lợi ích của một itemset X trong giao dịch Tq được ký hiệu là

u (X, Tq), và được định nghĩa như sau:

𝑢(𝑋, 𝑇 𝑞) = ∑ 𝑢(𝑖𝑗 , 𝑇𝑞)

𝑖𝑗⊆𝑋∧𝑋⊆𝑇𝑞

Ví dụ, tiện ích của itemset (ac) và (ace) trong giao dịch T1 được tính tương

ứng:

u(ac, T1) = u(a, T1) + u(c, T1)

= q(a, T1) × pr(a) + q(c, T1) × pr(c)

= 1 × 3 + 18 × 1 = 21

u(ace, T1) = u(a, T1) + u(c, T1) + u(2, T1)

= q(a, T1) × pr(a) + q(c, T1) × pr(c) + q(e, T1) × pr(e)

Page 29: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

29

= 1 × 3 + 18 × 1 + 1 × 6 = 27

Định nghĩa 3: Lợi ích của một itemset X trong cơ sở dữ liệu D được biểu diễn

là u(X), và được định nghĩa là:

𝑢(𝑋) = ∑ 𝑢(𝑋, 𝑇𝑞)

𝑋⊆𝑇𝑞∧𝑇𝑞∈𝐷

Ví dụ, lợi ích của các itemset (b) và (bc) trong D tương ứng được tính như sau:

u(b) = u(b, T2) + u(b, T6) + u(b, T7) + u(b, T9) + u(b, T10)

= 54 + 9 + 90 + 9 + 54 = 216

u(bc) = u(bc, T10) = 56

Định nghĩa 4: Lợi ích của một giao dịch Tq được ký hiệu là tu(Tq), và được

định nghĩa là:

𝑡𝑢(𝑇𝑞) = ∑ 𝑢(𝑋, 𝑇𝑞)

𝑋⊆𝑇𝑞

Ví dụ:

tu(T1) = u(a, T1) + u(c, T1) + u(e, T1) = 3 + 18 + 6 = 27.

Các giao dịch từ T2 đến T10 được tính tương ứng là:

tu(T2) = 66,

tu(T3) = 13,

tu(T4) = 11,

tu (T5) = 16,

tu(T6) = 10,

tu(T7) = 101,

tu(T8) = 55,

tu(T9) = 15,

tu(T10) = 72.

Định nghĩa 5: Tổng lợi ích của một cơ sở dữ liệu D được biểu thị là TU, và

được định nghĩa như sau:

𝑇𝑈 = ∑ 𝑡𝑢(𝑇𝑞)

𝑇𝑞∈𝐷

Ví dụ, tổng lợi ích trong cơ sở dữ liệu D được tính như sau:

TU = 27 + 66 + 13 + 11 + 16 + 10 + 101 + 55 + 15 + 72 = 386

Page 30: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

30

Định nghĩa 6: Một itemset X trong một cơ sở dữ liệu D là một HUI nếu và

chỉ nếu tiện ích của nó là không ít hơn ngưỡng lợi ích tối thiểu được tính là:

𝐻𝑈𝐼 ← 𝑋|𝑢(𝑋) ≥ 𝑇𝑈 × 𝛿

Ví dụ, lợi ích của tập (b) và (bc) được tính tương ứng là:

u(b) = 216 và u(bc) = 56.

Như vậy, itemset (b) là một HUI vì u(b) = 216> 386 × 0.3 = 115.8

Itemset (bc) không phải là HUI vì u(bc) = 56 <115.8

Dựa trên các định nghĩa trên, chúng ta xác định vấn đề của HUIM theo các

tác giả [4,5]. Ta có D là một cơ sở dữ liệu giao dịch định lượng, bảng lợi nhuận của

nó và một ngưỡng hữu ích tối thiểu cho người sử dụng cụ thể δ. Vấn đề của HUIM

từ D là tìm tập các tập thuộc tính lợi ích cao, trong đó lợi ích của một itemset X

không nhỏ hơn (TU × δ).

2.2. Một số phương pháp tiếp cận để giải bài toán

Đã có nhiều thuật toán được đề xuất để khai thác tập hợp các HUI. 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 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 để khai thác các HUI.

Việc sử dụng 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 để 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

Page 31: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

31

và đột biến được yêu cầu để ngẫu nhiên tạo ra các lời giải tiếp theo trong quá trình

tiến hóa. Bên cạnh đó, nó cần một số lượng HUI được tính toán trước để khởi tạo,

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 dựa trên PSO nhị phân (BPSO) được thiết kế để khai thác các HUI.

Nó được gọi là HUIM-BPSO và áp dụng mô hình TWU để tìm HUI. HUIM-BPSO

được thiết kế để giải quyết vấn đề tối ưu hóa rời rạc bằng cách sử dụng quy trình

PSO truyền thống và giữ được đặc tính của tốc độ hội tụ cao trong PSO [25], nó có

thể có tìm được giải pháp tốt trong các lần lặp ban đầu.

2.3. Thuật toán HUIM-ACS.

2.3.1. Xây dựng đồ thị cấu trúc và khởi tạo vết mùi.

- Xây dựng đồ thị cấu trúc định tuyến: Trước khi thực hiện một thuật toán ant-

based, một đồ thị định tuyến được mã hóa từ không gian giải pháp cần được xác

định và xây dựng. Trong phần này, nhóm tác giả đã đề xuất một loại biểu đồ định

tuyến cụ thể cho HUIM.

Trong quá trình xây dựng cho biểu đồ định tuyến, việc sử dụng các 1-HTWUIs

(High Transaction-Weight Utilization 1-itemsets) được các tác giả [8] đề xuất.

HUIM-ACS xây dựng một đồ thị định tuyến từ các 1-HTWUIs. Sau khi nhận được

các 1-HTWUIs, HUIM-ACS sắp xếp các mục trong 1-HTWUIs với trọng số tiện ích

tăng dần. Ví dụ, giả sử có 3 mục a,b,c trong 1-HTWUIs và trọng số tiện ích của

chúng là twua=100, twub=90, twuc=110, HUIM-ACS sẽ xuất ra một danh mục liệt

kê: b,a,c. Sau đó, đồ thị cấu trúc sẽ được tạo ra từ danh sách có thứ tự đó bởi các

thuật toán 2.3.1 và 2.3.2:

Thuật toán 2.3.1: Xây dựng đồ thị định tuyến

Page 32: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

32

Hình 2.3.1: Đồ thị cấu trúc định tuyến với 3 items

Trong ví dụ này, đồ thị cấu trúc định tuyến được thể hiện trong hình 2.3.1. Có

bảy nút trong đồ thị này (không bao gồm điểm bắt đầu) và mỗi nút đại diện cho một

itemset. Các nút trên đồ thị sẽ được xây dựng bởi thuật toán 2.3.2:

Thuật toán 2.3.2: Xây dựng các nút của đồ thị

Theo quá trình trên, một đồ thị cấu trúc định tuyến sẽ được tạo ra trước khi tất

cả kiến bắt đầu chuyến đi của chúng. Có một chút khác biệt nhỏ so với thuật toán

kiến truyền thống, một kiến có thể tạo ra một vài itemset trong suốt chuyến đi của

nó. Do đó, mỗi nút trong đồ thị cấu trúc định tuyến cho biết một itemset cụ thể cho

dù nó có phải HUI hay không. Biểu diễn của một nút là lịch sử đường đi của một

kiến đi từ nút bắt đầu đến nút đó. Ví dụ, biểu diễn của nút 6 trong hình 2.3.1 là a,c,

và nút 7 là b,a,c. Bằng cách này, tất cả các HUI sẽ được mã hóa chặt chẽ trong đồ

thị cấu trúc định tuyến này.

Page 33: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

33

- Quy tắc tỷ lệ ngẫu nhiên cho HUIM-ACS: Một hàm heuristic duy nhất được

sử dụng trong quy tắc tỷ lệ ngẫu nhiên để khai thác các HUI được thiết kế để hướng

dẫn số của kiến đi một cách hiệu quả. Hàm heuristic được định nghĩa để ước tính

các giá trị tương tác giữa hai yếu tố. Nói chung, phương pháp tiếp cận được đề xuất

sử dụng giá trị của TWU cho tập hợp gồm nút hiện tại (mục) và nút ứng viên (mục)

như hàm heuristic. Tuy nhiên, tính tất cả các TWU cho mỗi cặp mục sẽ lãng phí rất

nhiều thời gian tìm kiếm cơ sở dữ liệu. Thuật toán được đề xuất chỉ tính toán TWU

cho một tập khi một con kiến đến với nút liên quan lần đầu tiên. Do đó, có ba loại

tình huống khác nhau liên quan đến các trọng số lợi ích giao dịch cho các tập dữ liệu

bao gồm mục hiện tại và một trong các mục ứng viên trong việc thực hiện quy tắc

tỷ lệ ngẫu nhiên, đó là:

+ Không có bất kỳ thông tin nào về các TWU cho các cặp item: Bởi vì thuật

toán được đề xuất tìm thấy các 1-HTWUI đầu tiên, mỗi mục có một tiện ích cân

bằng giao dịch cho tập bản thân nó là tương ứng. Phương pháp được đề xuất sử dụng

trọng số lợi ích giao dịch cho nút đích như hàm heuristic trực tiếp. Một ví dụ đơn

giản được thể hiện trong hình 2.3.2.

Hình 2.3.2: Ví dụ của hàm heuristic trong trường hợp không có thông tin về TWU

Trong hình 2.3.2, hàm heuristic trên cạnh a → n, η (a, n) là trọng số lợi ích

giao dịch cho các itemset n, twun. Ví dụ, η (a, b) = twub = 100, và η (a, f) = twuf

= 80.

+ Quy trình giữ lại tất cả TWU cho các cặp item: Do thông tin đầy đủ, thuật

toán được đề xuất có thể sử dụng tiện ích trọng số giao dịch cho tập hợp tiện lợi bao

gồm mục hiện tại và mục đích. Trong hình 3.3, hàm heuristic trên cạnh a → n, η (a,

n) là twua. Ví dụ, η (a, b) = twuab = 110, và η (a, f) = twuaf = 88.

Page 34: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

34

Hình 2.3.3: Ví dụ về hàm heuristic giữ lại tất cả TWU

+ Một số TWU cho các mục được ghép nối đang tồn tại trong quá trình này,

nhưng một số thì không. Trong trường hợp này, một số TWU cho tập hợp bao gồm

mục hiện tại và một mục đích đã không được tính trước. Phương pháp được đề xuất

không thể áp dụng các tiện ích trọng lượng giao dịch như hàm heuristic trực tiếp. Về

mặt chính thức, hàm heuristic từ a đến n được định nghĩa như sau:

𝜂(𝑎, 𝑛) = 𝑡𝑤𝑢𝑎𝑛, 𝑡𝑤𝑢𝑎𝑛 ℎ𝑎𝑠 𝑏𝑒𝑒𝑛 𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑡𝑒𝑑 𝑒𝑡𝑤𝑢𝑎𝑛, 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

(9)

Với etwuan là tiện ích đánh giá giao dịch ước tính cho các tập a, n và nó

được tính như sau:

𝑒𝑡𝑤𝑢𝑎𝑛 =|𝑇𝑎| × 𝑡𝑤𝑢𝑛

∑ 𝑡𝑤𝑢𝑥𝑥∈𝑇𝑎

×∑ 𝑡𝑤𝑢𝑎𝑦𝑦∈𝑇𝑎

|𝑇𝑎| (10)

Trong đó Ta là tập con của tập các hạng mục ứng cử viên kế tiếp, mọi y ở Ta

sao cho twuay đã được tính toán trước đó.

Một ví dụ đơn giản cho trường hợp 3 trong hình 2.3.4. Bởi vì không có twuad

bên cạnh 𝑎𝑑 , etwuad sẽ được tạo ra bởi hàm heuristic thay vì twuad. Vì vậy, hàm

heuristic ŋ(𝑎, 𝑑) = 3 ∗120

100+110+80∗

110+108+88

3= 126.62

Page 35: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

35

Hình 2.3.4: Ví dụ của hàm heuristic tính toán các TWU

2.3.2. Quy tắc cắt tỉa nút

Thuật toán được đề xuất thực hiện các quá trình tỉa vì hai lý do chính, thứ nhất

là tránh dấu vết tìm kiếm của một chuyến đi bị trùng lặp, và một con kiến khác đang

gỡ bỏ một số nhánh mà không có cơ hội để phát hiện ra bất kỳ tập các tiện ích cao

nào từ đồ thị định tuyến.

Quá trình tỉa thưa có thể làm giảm không gian tìm kiếm các HUI và nâng cao

hiệu quả của việc tìm kiếm. Hai quy tắc cắt tỉa được đề xuất được mô tả trong các

tiểu mục sau đây:

- Quy tắc tỉa tích cực: Theo phương thức của [8], nếu TWU của một tập dữ

liệu nhỏ hơn ngưỡng của các HUI, tất cả các phần tử thừa của nó chắc chắn không

có cơ hội trở thành một HUI. Trong HUIM-ACS, thuật toán duy trì một bảng băm

tỉa(pruning hash table) để ghi lại một số tập dữ liệu. Khi một con kiến đến một nút

lần đầu tiên, thuật toán tính TWU cho các tập liên quan. Nếu TWU nhỏ hơn ngưỡng

của các HUI, thì tập này sẽ được lưu trữ trong bảng băm tỉa ngay. Sau đó, kiến sẽ

loại bỏ các nút ứng cử viên và các nhánh của nó trước tiên, nếu nút tiếp theo là phần

tử thừa của một tập trong bảng băm tỉa. Quá trình tỉa cành được gọi là quy tắc cắt tỉa

tích cực.

Một ví dụ đơn giản được thể hiện trong hình 2.3.5. Giả sử một con kiến đến

tại nút 8 (tập quan hệ có liên quan là b, c) và tính toán tiện ích trọng số giao dịch

cho các mục (b, c), twubc, nhỏ hơn ngưỡng. Các itemset b, c sẽ được đưa vào bảng

băm tỉa ngay. Tiếp theo, các kiến khác đến node 5, nó sẽ tỉa nút 11 (các itemset liên

Page 36: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

36

quan là a, b, c, nó là một tập hợp các phần tử a, b) và các nhánh của nó trực tiếp

bằng cách đề cập đến việc cắt tỉa Bảng băm.

Hình 2.3.5: Ví dụ về quy tắc cắt tỉa tích cực

- Quy tắc cắt tỉa đệ quy: Phương pháp được đề xuất không ước lượng các tập

tương tự cho dù đó là một HUI hay không. Vì lý do này, nó cắt các nhánh không

chứa các tập không được ước lượng hoặc các HUI bằng một quy trình đệ quy.

Một con kiến sẽ kết thúc chuyến đi, nếu không có giải pháp nào khả thi trong

các nhánh. Do đó, phương pháp được đề xuất sẽ thực hiện quy tắc cắt tỉa đệ qui và

dừng chuyến đi hiện tại trong hai trường hợp. Tình huống đầu tiên là TWU của nút

hiện tại ít hơn ngưỡng của các HUI; Thứ hai là không có nhánh nào từ nút hiện tại.

Trong trường hợp đầu tiên, phương pháp đề xuất sẽ gỡ bỏ tất cả các nhánh khỏi nút

hiện tại trước, sau đó thực hiện chức năng cắt tỉa đệ quy từ nút hiện tại. Trong trường

hợp thứ hai, nó thực hiện chức năng cắt tỉa đệ quy trực tiếp. Chức năng cắt tỉa đệ

quy được mô tả trong Thuật toán 2.3.3.

Thuật toán 2.3.3: Quy tắc cắt tỉa đệ quy

Page 37: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

37

Trong hình 2.3.5, một con kiến đến tại nút 8 (tập quan hệ có liên quan là b,

xsc) và tính toán TWU cho các mục (b, c), twubc, ít hơn ngưỡng. Kiến thực hiện

công việc của nó và thuật toán thực hiện quy tắc cắt tỉa đệ quy từ nút 8. Nút 8 và

cạnh 8, 14 được loại ra khỏi đồ thị định tuyến ngay và nút 2 sẽ được giữ lại vì nó

vẫn có một nút sau (nút 9). Giả sử kiến khác tiếp theo đến nút 9 và thuật toán thực

hiện quy tắc cắt tỉa đệ quy từ nút 9. Lúc này, không chỉ là nút 9 và cạnh 9, 14 được

loại ra khỏi đồ thị định tuyến mà còn nút 2 và cạnh s, 2 cũng được loại bỏ.

2.3.3. Quy tắc cập nhật mùi

Trong các ACS truyền thống, mật độ pheromone trên mỗi cạnh sẽ được điều

chỉnh bởi hai quy tắc cập nhật pheromone trong mỗi lần lặp. HUIM-ACS được đề

xuất áp dụng cùng một quy tắc cập nhật cục bộ và đề xuất một quy tắc cập nhật toàn

cầu tương tự cho khai thác các HUI.

Nhìn chung, quy tắc cập nhật toàn cầu sẽ cập nhật mật độ pheromone bằng

giải pháp tốt nhất lặp đi lặp lại hoặc giải pháp tốt nhất toàn cầu. Tuy nhiên, mục đích

của HUIM-ACS không phải là tìm ra giải pháp tốt nhất mà là khám phá ra nhiều

HUI hơn. Do đó, HUI có tiện ích cao nhất được phát hiện trong lần lặp hiện tại được

áp dụng trong quy tắc cập nhật toàn cầu. Quy tắc cập nhật toàn cầu hoàn chỉnh cho

HUIMACS được mô tả trong Thuật toán 2.3.4.

function GlobalUpdatingRule(G,H) // G is the routing

graph, H is the set of HUIs discovered in this iteration

while H ≠ ∅ do

set h is a itemset with highest utility in H;

set th is the related tour of h;

set uh is the utility of h;

set r is the threshold of high-utility itemsets;

if some edges in the tour th still exists in the graph G

then

for each edge e th ∩ G do

set pe is the pheromone density of e;

pe = pe + (𝑢ℎ

𝑟);

break while;

H=H\h;

End function;

Thuật toán 2.3.4: Quy tắc cập nhật toàn cầu cho HUIMACS

Page 38: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

38

Trong Thuật toán 2.3.4, quy tắc cập nhật đơn giản hóa công thức cập nhật toàn

cầu truyền thống. Nó chỉ tăng cường mật độ pheromone bằng các tiện ích của tập và

bỏ qua tham số bay hơi. Hơn nữa, nó không phải luôn luôn làm tăng mật độ

pheromone trong mỗi lần lặp. Nó có thể tránh được một số vùng của đồ thị định

tuyến gửi quá nhiều pheromone trên đường đi. Hành vi này tăng cường khả năng

khai thác và làm giảm ảnh hưởng của việc thăm dò trong ACS. Điều đó tốt cho việc

khai thác các HUI bởi vì nó cần phải tìm các HUI cao hơn chứ không phải là một

giải pháp tối ưu duy nhất.

Theo mô tả ở trên, các hạng mục khai thác các tiện ích cao được đề xuất cho

hệ thống kiến này được mô tả trong Thuật toán 2.3.5.

Input: D, a quantitative transaction table; ptable, a profit table; 𝛿, the minimum

utility threshold ratio; M, the size of ant’s population; G, the maximum generations

of ant system; 𝜏0, the initial pheromone density.

Output: HUIs, a set of high-utility itemsets.

1. calculate total utility(TU) and transaction-weight utility(twuj) for each itemj;

2. find 1 − HTWUIs ← 𝑖𝑗 |𝑡𝑤𝑢𝑗 ≥ 𝑇𝑈 × 𝛿;

3. construct the ant routing graph from 1-HTWUIs

4. set 𝑝ℎ𝑎𝑠ℎ ← ∅,𝐻𝑈𝐼𝑠 ← ∅, 𝑔 = 0;

5. while there are some ants which have not already build their solution do

6. set 𝑠𝑖𝑏 = ∅ //𝑠𝑖𝑏 is the iteration best solution

7. choose an ant which has not finished its tour;

8. use phash to prune the candidate edges by positive pruning rule;

9. select an edge from the cadidate edges to the next stage according to the

pseudo-random proportional rule;

10. perform local updating rule to adjust the density of pheromone on the select

edge;

11. set the related itemset for the current node is cis;

12. calculate u(cis) and twucis //utility and transaction-weight utility

13. if 𝑢(𝑐𝑖𝑠) ≥ 𝑇𝑈 × 𝛿 then

14. 𝐻𝑈𝐼 ← 𝑐𝑖𝑠;

15. if 𝑢(𝑐𝑖𝑠) ≥ 𝑢(𝑠𝑖𝑏) then

16. 𝑠𝑖𝑏 = 𝑐𝑖𝑠;

Page 39: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

39

17. if 𝑡𝑤𝑢𝑐𝑖𝑠 < 𝑇𝑈 × 𝛿 then

18. 𝑝ℎ𝑎𝑠ℎ ← 𝑐𝑖𝑠 //phash is pruning hash table prune the current node and

its following nodes;

19. next;

20. if there is at least one candidate edge from current node

then

go to line 8;

else

do recursive pruning rule;

the ants has built its tour; next;

21. g=g+1;

22. if g=G or there is not any candidate path from the starting point then

23. return HUIs;

24. accumulate pheromone on the paths which ants passed by sib //update

pheromone density

25. go to line 5 for next iteration;

Thuật toán 2.3.5: HUIM-ACS

2.4. Thuật toán HUIM-SMMAS

Trên cơ sở thuật toán HUIM-ACS đã được trình bày ở trên, tôi cải tiến thuật

toán bằng cách áp dụng quy tắc cập nhật mùi của hệ kiến Max-Min trơn (SMMAS).

Khi đó, quy tắc cập nhật mùi sẽ là:

𝜏𝑖𝑗 ← (1 − 𝜌)𝜏𝑖𝑗 + ∆𝑖𝑗

Trong đó:

∆𝑖𝑗= 𝜌𝜏𝑚𝑎𝑥 𝑖𝑓 (𝑖, 𝑗) ∈ (𝑡)𝜌𝜏𝑚𝑖𝑛 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

Với ACS, để xác định 𝜏0 ta cần tìm một lời giải theo phương pháp heuristic

và dựa vào giá trị hàm mục tiêu của nó. Vì giá trị hàm mục tiêu này nhận được ngẫu

nhiên, nên khó xác định tốt tham số cho học tăng cường. Quy tắc cập nhật mới cho

phép ta xác định các tham số này đơn giản và hợp lý hơn, trong SMMAS ta chỉ cần

xác định tỉ lệ giữa 𝑚𝑖𝑛 , 𝑚𝑎𝑥. Trong thực nghiệm, tôi thiết đặt 𝑚𝑎𝑥 = 1.0 và xác

định 𝑚𝑖𝑛 qua tỉ lệ giữa 𝑚𝑖𝑛 , 𝑚𝑎𝑥.

Page 40: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

40

Việc thêm mùi cho các cạnh thuộc lời giải tốt ở mỗi bước lặp trong thuật toán

ACS, ta phải xây dựng hàm để tính lượng mùi được thêm dựa trên chất lượng lời

giải do kiến xây dựng được. Ví dụ, trong bài toán TSP, ACS sử dụng hàm nghịch

đảo độ dài đường đi được kiến xác định. Điều này cũng là một trong những khó khăn

khi áp dụng. Tuy nhiên, trong SMMAS không cần phải xây dựng hàm này.

Thuật toán này có cùng độ phức tạp như ACS, nhưng ít phép toán hơn vì

không phải tính hàm mục tiêu ở lượng mùi cập nhật.

Trong thuật toán đề xuất HUIM-SMMAS, chọn tỉ lệ 𝜏𝑚𝑎𝑥

𝜏𝑚𝑖𝑛 đặt bằng 𝑁. 𝑘, với

𝑘 = 𝑁+50

100 𝑛ế𝑢 𝑁 ≥ 50

1 𝑛ế𝑢 𝑁 < 50, 𝑁 là số đỉnh.

Hiệu quả của phương pháp cập nhật mùi trong hệ kiến đã được nhóm tác giả

[36] chứng minh bằng thực nghiệm. Do đó, thuật toán HUIM-SMMAS sẽ cho kết

quả tốt hơn thuật toán cũ. Tôi sẽ tiến hành thực nghiệm, so sánh và đánh giá kết quả

ở chương sau.

Page 41: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

41

CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM, SO SÁNH

VÀ ĐÁNH GIÁ

3.1. Bộ dữ liệu chuẩn

Dữ liệu chuẩn để chạy thuật toán là bộ dữ liệu được công bố tại địa chỉ:

http://fimi.uantwerpen.be/data/. Đây là các bộ dữ liệu thực tế được sử dụng rộng rãi

trong các nghiên cứu về HUIM, bao gồm: Chess, Foodmart, Mushroom, Retail,

Accident, Connect.

Database Transaction Count Item Count

Chess 287640 6750

Foodmart 1940130 140310

Mushroom 731160 10710

Retail 7934580 1482300

Bảng 3.1: Bộ dữ liệu chạy thử nghiệm

3.2. Tiến hành chạy thực nghiệm

Các thuật toán trong thí nghiệm được thực hiện bằng ngôn ngữ C++ trên máy

tính cài đặt hệ điều hành Centos 7.5, bộ xử lý AMD Ryzen 5 1600x 3.6 GHz với 6

lõi, 12 luồng, 8GB RAM trên 04 bộ dữ liệu tiêu chuẩn: Chess, Foodmart, Mushroom,

Retail với các ngưỡng lợi ích lần lượt là:

Database Threshold 1 Threshold 2 Threshold 3

Chess 25.00% 25.50% 26.00%

Foodmart 0.11% 0.12% 0.13%

Retail 0.30% 0.40% 0.50%

Mushroom 14.00% 14.25% 14.50%

Bảng 3.2: Ngưỡng tiện ích thiết lập chạy thực nghiệm

Các thông số chạy thuật toán được thiết lập chạy thực nghiệm để so sánh hai

thuật toán: số lần lặp tối đa là 3000, kích thước quần thể kiến là 15, mỗi thí nghiệm

sẽ thực hiện 20 lần và hiển thị các kết quả tối ưu, initPheromone = 1, rho=0.05.

Page 42: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

42

3.3. Kết quả thực nghiệm và đánh giá

Do thuật toán có tính ngẫu nhiên nên kết quả so sánh là giá trị trung bình của

các lần lặp. So sánh các thuật toán về thời gian chạy, số lượng HUI, tốc độ hội thụ

của các thuật toán, kết quả cụ thể để đánh giá như sau:

1. Số lượng HUIs:

Trong phần này, thí nghiệm đánh giá số lượng HUIs để phân tích hiệu suất

của các thuật toán. Các kết quả tiến hành thí nghiệm được thể hiện trong hình 3.3.1:

Hình 3.3.1: So sánh số lượng HUI tìm được của 2 thuật toán

Từ hình 3.3.1, các kết quả thí nghiệm cho thấy HUIM-SMMAS có thể tìm ra

được số lượng HUIs tốt hơn thuật toán HUIM-ACS trong điều kiện thí nghiệm. Bên

cạnh đó, HUIM-SMMAS có hiệu quả tốt hơn HUIM-ACS với cơ sở dữ liệu lớn như

Foodmart. Điều này thực sự có ý nghĩa với mục tiêu của bài toán là tìm ra được số

HUI càng nhiều càng tốt trong cơ sở dữ liệu đang có.

2. Thời gian chạy thuật toán:

Tiến hành thí nghiệm với các thuật toán với các ngưỡng tối thiểu khác nhau

và so sánh thời gian thực hiện thuật toán. Kết quả chi tiết được thể hiện trong hình

3.3.2.

Từ kết quả thực nghiệm, có thể thấy rằng thuật toán HUIM-SMMAS tốt hơn

thuật toán HUIM-ACS về thời gian chạy thực nghiệm với phần lớn các bộ dữ liệu.

Page 43: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

43

Kết quả này có được nhờ quy tắc cập nhật mùi SMMAS đơn giản, ít tính toán hơn

quy tắc cập nhật mùi của hệ kiến ACS truyền thống.

Hình 3.3.2: So sánh thời gian thực hiện của các thuật toán

3. Tốc độ hội tụ:

Hình 3.3.3 cho thấy số lượng HUI trong các lần lặp khác nhau cho hai thuật

toán. Nhìn chung, tốc độ hội tụ của thuật toán HUIM-SMMAS chậm hơn so với

HUIM-ACS, tuy nhiên, với các cơ sở dữ liệu lớn như Foodmart, tốc độ hội tụ của

HUIM-SMMAS vượt trội hơn hẳn HUIM-ACS. Nói chung, thuật toán mới tính toán

các cơ sở dữ liệu lớn tốt hơn HUIM-ACS.

Hình 3.3.3: So sánh tốc độ hội tụ của hai thuật toán

Page 44: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

44

KẾT LUẬN

Các bài toán TƯTH NP-hard có nhiều ứng dụng quan trọng trong thực tiễn,

đặc biệt là bài toán HUIM trong kinh tế, giúp định hướng kinh doanh cũng như tối

ưu hóa lợi nhuận thu được.

Khi dùng phương pháp ACO, quy tắc cập nhật mùi đóng vai trò quan trọng,

quyết định hiệu quả thuật toán được dùng. Luận văn cài đặt thuật toán HUIM-

SMMAS áp dụng quy tắc cập nhật mùi của hệ kiến SMMAS. Thuật toán này bất

biến đối với phép biến đổi đơn điệu hàm mục tiêu, thực nghiệm trên các bài toán cơ

bản như TSP, UBQP, lập lịch sản xuất với dữ liệu chuẩn cho thấy các thuật toán đề

xuất có hiệu quả và dễ sử dụng hơn so với các thuật toán thông dụng nhất hiện nay

như ACS và MMAS.

Thuật toán HUIM-SMMAS sử dụng đồ thị cấu trúc định tuyến rõ ràng, thu

gọn không gian tìm kiếm và các đặc tính của thuật toán ACO, ngoài ra, việc áp dụng

quy tắc cập nhật mùi của SMMAS giúp cho thuật toán đơn giản hơn, tăng khả năng

khám phá. Kết quả thực nghiệm cho thấy thuật toán HUIM-SMMAS tốt hơn so với

thuật toán HUIM-ACS đã công bố trước đó..

Thuật toán HUIM-SMMAS có thể áp dụng đồ thị cấu trúc khác và kỹ thuật

tìm kiếm địa phương để có kết quả tốt hơn.

Page 45: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

45

TÀI LIỆU THAM KHẢO

[1] R. Agrawal, R. Srikant, Fast algorithms for mining association rules in large

databases, in: The International Conference on Very Large Data Bases, volume 1215,

1994, pp. 487–499.

[2] M.S. Chen, J. Han, P.S. Yu, Data mining: an overview from a database

perspective, IEEE Trans. Knowl. Data. Eng. 8 (6) (1996) 866–883.

[3] C.F. Ahmed, S.K. Tanbeer, B.S. Jeong, Y.K. Lee, Efficient tree structures for

high utility pattern mining in incremental databases, IEEE Trans. Knowl. Data.

Eng.21 (12) (2009) 1708–1721.

[4] H. Yao, H.J. Hamilton, C.J. Butz, A foundational approach to mining itemset

utilities from databases., SIAM, 2004, pp. 221–225.

[5] H. Yao, H.J. Hamilton, Mining itemset utilities from transaction databases,

Data Knowl. Eng. 59 (3) (2006) 603–626.

[6] S.J. Yen, Y.S. Lee, Mining high utility quantitative association rules, in: Data

Warehousing and Knowledge Discovery, 2007, pp. 283–292.

[7] R.C. Chan, Q. Yang, Y.D. Shen, Mining high utility itemsets, in: IEEE Interna-

tional Conference on Data Mining, 2003, pp. 19–26.

[8] Y. Liu, W.k. Liao, A. Choudhary, A two-phase algorithm for fast discovery of

high utility itemsets, in: Advances in Knowledge Discovery and Data Mining, 2005,

pp. 689–695.

[9] C.W. Lin, T.P. Hong, W.H. Lu, An effective tree structure for mining high

utility itemsets, Expert Syst. Appl. 38 (6) (2011) 7419–7424.

[10] G.C. Lan, T.P. Hong, V.S. Tseng, An efficient projection-based indexing

approach for mining high utility itemsets, Knowl. Inf. Syst. 38 (1) (2014) 85–107.

[11] V.S. Tseng, C.W. Wu, B.E. Shie, P.S. Yu, UP-Growth: An Efficient Algorithm

for High Utility Itemset Mining, in: ACM SIGKDD international conference on

Knowledge Discovery and Data Mining, 2010, pp. 253–262.

[12] M. Liu, J. Qu, Mining high utility itemsets without candidate generation, in:

ACM International Conference on Information and Knowledge Management, 2012,

pp. 55–64.

[13] M. Zihayat, A. An, Mining top-k high utility patterns over data streams, Inf.

Sci. 285 (2014) 138–161.

[14] H. Ryang, U. Yun, Top-k high utility pattern mining with effective threshold

raising strategies, Knowl. Based Syst. 76 (2015) 109–126.

Page 46: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

46

[15] V.S. Tseng, C.W. Wu, P. Fournier-Viger, S.Y. Philip, Efficient algorithms for

mining top-k high utility itemsets, IEEE Trans. Knowl. Data Eng. 28 (1) (2016) 54–

67.

[16] S. Krishnamoorthy, Pruning strategies for mining high utility itemsets, Expert

Syst. Appl. 42 (5) (2015) 2371–2381.

[17] U. Yun, J. Kim, A fast perturbation algorithm using tree structure for privacy

preserving utility mining, Expert Syst. Appl. 42 (3) (2015) 1149–1165.

[18] J.C.W. Lin, W. Gan, P. Fournier-Viger, T.P. Hong, H.C. Chao, Fdhup: fast

algorithm for mining discriminative high utility patterns, Knowl Inf Syst (2016).

[19] J.C.W. Lin, W. Gan, P. Fournier-Viger, T.P. Hong, V.S. Tseng, Efficient

algorithms for mining high-utility itemsets with uncertain databases, Knowl. Based

Syst. 96 (2016) 171–187.

[20] S. Kannimuthu, K. Premalatha, Discovery of high utility itemsets using genetic

algorithm with ranked mutation, Appl. Artif. Intell. 28 (4) (2014) 337–359.

[21] R. Cattral, F. Oppacher, K. Graham, Techniques for evolutionary rule

discovery in data mining, in: IEEE Congress on Evolutionary Computation, 2009,

pp. 1737–1744.

[22] H. John, Adaptation in Natural and Artificial Systems, MIT Press, Cambridge,

MA, 1992.

[23] Y. Zhang, S. Wang, G. Ji, A comprehensive survey on particle swarm

optimization algorithm and its applications, Math. Probl. Eng. 2015 (2015).

[24] J.C.W. Lin, L. Yang, P. Fournier-Viger, T.-P. Hong, M. Voznak, A binary PSO

approach to mine high-utility itemsets, Soft Comput. (2016) 1–19.

[25] J. Kennedy, R.C. Eberhart, A discrete binary version of the particle swarm

algorithm, in: IEEE International Conference on Systems, Man, and Cybernetics,

volume 5, 1997, pp. 4104–4108.

[26] Y. Zhang, S. Wang, G. Ji, A rule-based model for bankruptcy prediction based

on an improved genetic ant colony algorithm, Math. Probl. Eng. 2013 (2013).

[27] M. Dorigo, L.M. Gambardella, Ant colony system: a cooperative learning

approach to the traveling salesman problem, IEEE Trans. Evol. Comput. 1 (1) (1997)

53–66.

[28] A. Colorni, M. Dorigo, V. Maniezzo, Distributed optimization by ant colonies,

in: The first European conference on artificial life, 142, 1991, pp. 134–142.

[29] M. Dorigo, V. Maniezzo, A. Colorni, Ant system: optimization by a colony of

cooperating agents, IEEE Trans. Syst. Man Cybern. Part B 26 (1) (1996) 29–41.

Page 47: KHAI THÁC TẬP M C L I ÍCH CAO SỬ DỤNG PHƯƠNG PHÁP …lib.uet.vnu.edu.vn/bitstream/123456789/1018/1/LVTS_Nguyen-Duc-Dung.pdfcác tập dữ liệu có lợi nhuận cao,

47

[30] J. Han, J. Pei, Y. Yin, R. Mao, Mining frequent patterns without candidate

generation: a frequent-pattern tree approach, Data Min. Knowl. Discov. 8 (1) (2004)

53–87.

[31] S. Zida, P. Fournier-Viger, J.C.W. Lin, C.W. Wu, V.S. Tseng, EFIM: a highly

efficient algorithm for high-utility itemset mining, in: Mexican International

Conference on Artificial Intelligence, 2015, pp. 530–546.

[32] P. Fournier-Viger, J.C.W. Lin, A. Gomariz, T. Gueniche, A. Soltani, Z. Deng,

H.T. Lam, The SPMF Open-Source Data Mining Library Version 2 and Beyond,

2016, pp. 36–40.

[33] J.C.W. Lin, W. Gan, P. Fournier-Viger, T.P. Hong, Mining high-utility itemsets

with multiple minimum utility thresholds, in: International C∗ Conference on

Computer Science & Software Engineering, 2015, pp. 9–17.

[34] Jimmy Ming-Tai Wu, Justin Zhan, Jerry Chun-Wei Lin, An ACO-based

approach to mine high-utility itemsets, Knowledge-Based Systems, Volume 116, 15

January 2017, Pages 102–113.

[35] Huan H.X, Trung N.L, Dong D.D, Tue H.H, Solving the Traveling Salesman

Problem with Ant Colony Optimization: A Revisit and New Efficient Algorithms,

Journal on Electronics and Communications, Vol. 2, No. 3–4, July – December,

2012.