Thị cấu trúc định tuyến với 3 items

Một phần của tài liệu (LUẬN văn THẠC sĩ) khai thác tập mục lợi ích cao sử dụng phương pháp tối ưu đàn kiến (Trang 32)

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.

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

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

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

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.

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.

functionGlobalUpdatingRule(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 this 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

foreach edge e th Gdo

set pe is the pheromone density of e;

pe = pe + (𝑢ℎ

𝑟);

break while; H=H\h;

End function;

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

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

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

19. next;

20. ifthere 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. ifg=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 𝑚𝑖𝑛 ,𝑚𝑎𝑥.

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.

CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM, SO SÁNH VÀ ĐÁNH GIÁ 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.

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

Một phần của tài liệu (LUẬN văn THẠC sĩ) khai thác tập mục lợi ích cao sử dụng phương pháp tối ưu đàn kiến (Trang 32)

Tải bản đầy đủ (PDF)

(47 trang)