Tải bản đầy đủ (.docx) (31 trang)

Tiểu luận môn cấu trúc dữ liệu nâng cao khai phá nhóm k đồ thị con phù hợp trong mạng truyền thông

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (447.34 KB, 31 trang )

KHOA CÔNG NGHỆ THÔNG TIN
_______________

& _______________

BÀI TẬP LỚN
MÔN HỌC: CẤU TRÚC DỮ LIỆU NÂNG CAO
CHỦ ĐỀ

“Khai phá Nhóm K đồ thị con phù hợp trong mạng truyền thông”

Giảng viên hướng dẫn : TS. Nguyễn Mạnh Hùng
Lớp : Cao học HTTT- K27B
Nhóm : 9
Học viên :
1. Trần Thông Trung
2. Lê Thị Huế
3. Nguyễn Tiến Thụy

Hà Nội, 2016


Hùng Nguyễn Mạnh <>

MỤC LỤC

2


I. Tìm hiểu lý thuyết
Tìm hiểu về khai phá Nhóm K đồ thị con phù hợp



1.
-

Khai phá Nhóm K đồ thị con phù hợp: Là việc tìm ra Nhóm K đồ thị con phù
hợp đáp ứng các truy vấn.

-

Input:

2.



Đồ thị lớn G = {VG,EG , typeG, weightG }



Đồ thị con Q với các trọng số không đồng nhất

Output: Nhóm K đồ thị con phù hợp từ đồ thị lớn G
Xác định các khái niệm trong các định nghĩa trên đồ thị

Định nghĩa 1: Mạng không đồng nhất
Là một đồ thị vô hướng G = (VG, EG, typeG,weightG)
- VG là tập hữu hạn các đỉnh của đồ thị
- EG là tập hữu hạn các cạnh của đồ thị
- typeG là một hàm được xác định trên tập đỉnh: typeG: VG → TG
TG là tập các dạng đỉnh của đồ thị và |TG|= T

- weightG là một hàm được xác định trên cạnh với miền giá trị R ∈[0, 1]
- weightG(e) là giá trị trọng số của cạnh e
Ví dụ: Ở hình trên là đồ thị G có:
Tập đỉnh |VG| = 13 đỉnh, Tập cạnh |EG| = 18 cạnh
Tập các dạng đỉnh TG = {A, B, C}, 3 dạng đỉnh
Trọng số cạnh tạo bởi đỉnh 1 và đỉnh 2 là 0.2
Định nghĩa 2: Truy vấn đồ thị con trên mạng
Truy vấn đồ thị con Q trên mạng G.
Đồ thị con Q được xác định bởi tập đỉnh VQ và tập cạnh EQ.
Mỗi đỉnh có thể là bất kỳ dạng nào từ tập TG
Ví dụ: Ở hình bên là một đồ thị con Q được sử dụng để truy vấn có |V Q| = 4 đỉnh, |
EQ|= 3 cạnh
3


Định nghĩa 3: Đồ thị con đẳng cấu
Đồ thị g = (Vg, Eg, typeg) là đồ thị con đẳng cấu với đồ thị g′ = (Vg′, Eg′, typeg
′)Nếu tồn tại một đồ thị con đẳng cấu từ g tới g′. Một đồ thị con đẳng cấu là một hàm
đơn ánh M được xác định trên tập đỉnh của đồ thị: Vg →Vg′thỏa mãn:
(1) ∀v ∈ Vg, thì M(v) ∈ Vg′ và typeg(v) = typeg′(M(v))
(2) ∀e = (u, v) ∈ Eg, e′ = (M(u), M(v)) ∈ Eg′

Định nghĩa 4: Sự phù hợp

Đồ
thị truy vấn Q có thể là đồ thị con đẳng cấu với
nhiều đồ thị con của G. Mỗi đồ thị con của G
như vậy được gọi là một truy vấn phù hợp hoặc
một đồ thị con phù hợp của G với Đồ thị truy
vấn Q.

Truy vấn Q có thể trả kết quả là tất cả đồ
thị con phù hợp từ đồ thị G.
Ví dụ: ở hình bên thì đồ thị con của mạng G được tạo bởi các đỉnh (8,9,5,6) là một
sự phù hợp cho truy vấn Q trong mạng G.
Định nghĩa 5: Kết quả phù hợp
Kết quả phù hợp M cho một truy vấn Q trong đồ thị G được định nghĩa là tổng
trọng số các cạnh của nó.
Ví dụ: Ở hình trên, kết quả phù hợp đáp ứng truy vấn {8,9,5,6} là 0.6 + 0.9 + 0.6 =
2.1

Định nghĩa 6: Khai phá nhóm K đồ thị con phù hợp
Given:
4


Cho đồ thị vô hướng G, có trọng số
Một truy vấn vô hướng Q, có trọng số
Trọng số phù hợp của cạnh

Find:
Nhóm K đồ thị con phù hợp với
những kết quả phù hợp nhất
Ví dụ: Ở hình bên, thì (3, 4, 5, 6)
và (4, 3, 2, 7) là nhóm hai đồ thị
phù hợp, với tổng trọng số là 2.2

Phương pháp cơ bản: Ranking After Matching (RAM) - Xếp hạng sau khi so sánh
Để giải quyết vấn đề khai phá nhóm K đồ thị con phù hợp, đầu tiên phải xác định
tất cả đồ thị con phù hợp thuộc mạng G, sau đó là sắp xếp các đồ thị con phù hợp
này.



dụ: Ở hình bên, Cho truy vấn Q
Ta có 9 đồ thị phù hợp là (10, 9, 8,
7), (2, 3, 4, 7), (4, 3, 2, 1), (10,9, 5, 6),
(9, 5, 4, 7), (5, 9, 8, 7), (8, 9, 5, 6), (4,
3, 2, 7) và (3, 4, 5, 6)
5


Sau đó kết quả phù hợp được tính
bằng cách cộng dồn trọng số của các
cạnh trên đồ thị con tương ứng là 1.4,
1.6, 1.7, 1.8, 1.8, 2.0, 2.1, 2.2, 2.2.
Nếu chọn K = 2 thì 2 đồ thị con là (4, 3, 2, 7) và (3, 4, 5, 6) là kết quả phù
hợp nhất đáp ứng truy vấn Q.
Phương pháp này không thực sự hiệu quả và sẽ tốn rất nhiều thời gian với
đồ thị có số lượng lớn các đồ thị con phù hợp.
Bài báo đề xuất phương pháp tiếp cận Nhóm K,thực hiện tính các kết quả
phù hợp trong khi so sách (RWM – ranking while matching). Đối với phương
pháp này, chúng ta sử dụng một vài cấu trúc chỉ số được xây dựng ẩn (Offline).
Sau đó khai thác các cấu trúc chỉ số này để thực hiện các truy vấn trực tiếp
(Online) được hiệu quả.
3.

Xây dựng chỉ số offline
3.1.

Cấu trúc chỉ số


Để hỗ trợ sắp xếp trong khi so sánh (RWM), chúng tôi đề xuất hai cấu trúc chỉ số
mới và sử dụng chúng để phát triển phương pháp khai phá Nhóm K tại mục IV.
3.1.1.

Chỉ số cấu trúc liên kết đồ thị - Graph Topology Index

Chỉ số cấu trúc liên kết đồ thị quy định cấu trúc của đồ thị G. Nó lưu trữ cho
mỗiđỉnh n, số d-hop của mỗidạngđỉnh, d={1,…,D}, tương ứng với một đường
dẫn có độ dài d, xuất phát từ đỉnh n, nơi mà một đường dẫn biến đổi được định
nghĩa như sau:
Định nghĩa 7: Đường dẫn biến đổi - Metapath
Một đường dẫn u → u′ là từ đỉnh u tới đỉnh u′ trong đồ thị G = (VG, EG,
typeG,weightG) là một chuỗi(v0, v1, . . . . . . , vk) của các đỉnh u = v0 và u′ =vk, và
(vi-1,vi) ∈ EG.
Độ dài của một đường dẫn bằng số các cạnh trong đường dẫn. Nếu dạng đỉnh
sử dụng id thay thế cho mỗi đỉnh trên đường dẫn, thì đường dẫn đó được gọi là
đường dẫn biến đổi. Như vậy đường dẫn biến đổi tương ứng từ u → u’ là
(typeG(v0), typeG(v1),…., typeG(vk)).
Ví dụ: Ở hình 3, thì đường dẫn biến đổi (5,4,7) tương ứng với đường dẫn là
(A,A,B).
Có TD đường dẫn biến đổi khác nhau của độ dài D, trong đó T là số dạng đỉnh.

6


Hình 5 ở bên,thể hiện chỉ số cấu trúc liên kết đồ thị cho 2 đỉnh đầu tiên của đồ thịG thể hiện trong
hình 3.Các đỉnh còn lại thực hiện tương tự.Chỉ số cấu trúc liên kết đồ thị là số đường dẫn biến đổi tương ứng giữa 2 đỉnh bất kỳ và riêng
biệt.
chẳng hạn, với d=1, đường dẫn biến đổi xuất phát từ đỉnh 1 đến đỉnh dạng A chỉ có 1 đường dẫn biến đổi là (1,2), như vậy chỉ số cấu
trúc liên kết đồ thị giữa đỉnh 1 và đỉnh dạng A bằng1, hay ký hiệu: topology(1(A))=1

Với d=2,đường dẫn biến đổi xuất phát từ đỉnh 2 đi qua đỉnh dạng B đến đỉnh dạng C để được đường dẫn (A,B,C) có 2 đường dẫn biến
đổi là (2,1,11) và (2,7,11), nhưng đây không phải là đường dẫn đến các đỉnh riêng biệt, như vậy chỉ số cấu trúc liên kết đồ thị giữa đỉnh 2,
đi qua đỉnh B đến đỉnh dạng C chỉ tính 1 đường, hay ký hiệu: topology(2(B,C))=1

7


Điền một số giá trị cho Hình 5 như sau:


Đường dẫn biến đổi có độ dài d=1(1-hop)// đi qua 1 cạnh
Là đường dẫn từ 1 đỉnh đến 1 đỉnh liền kề với nó
+ Xét các đường dẫn biến đổi xuất phát từ đỉnh Id=1 (Đỉnh có dạng B):
Có 1 đường tương ứng với(B,A) là (1,2)
Có 1 đường tương ứng với (B,C) là (1,11)

ký hiệu là topology(1(A))=1
ký hiệu là topology(1(C))=1

+ Xét các đường dẫn biến đổi xuất phát từ đỉnh Id=2 (Đỉnh có dạng A):

d→
Đỉnh
Id↓
1
+ Xét tương tự với các đỉnh còn lại của đồ thị G sẽ có được chỉ số cấu trúc liên kết đồ thị 2
3
tương ứng với các đường dẫn biến đổi.
4
Có 1 đường tương ứng với (A,A) là (2,3)

ký hiệu là topology(2(A))=1
Có 2 đường tương ứng với (A,B) là (2,1) và (2,7) ký hiệu là topology(2(B))=2
Có 1 đường tương ứng với (A,C) là (2,13)
ký hiệu là topology(2(A))=1

1

2

A B C AA BA CA AB BB CB AC BC CC
1
1
2
2

2
1

1
1
2
1

1
1
1
2

1
2

2

1
2
1

2
1

1

1
2
2
2

1
1

1
2
1

Hình 5. Chỉ số liên kết đồ thị cho 4 đỉnh đầu tiên

Đường dẫn biến đổi có độ d →
1
2
dài d=2(2-hop)// đi qua 2 Đỉnh
cạnh

A B C AA BA CA AB BB CB AC BC CC
Là đường dẫn từ 1 đỉnh đến 1 Id↓
đỉnh liền kề với đỉnh liền kề với nó.


1
2
3
4

1
1
2
2

2
1

1
1
2
1

1
1
1
2

1
2

2

1
2
1

2
1

1
8

1
2
2
2

1
1

1
2
1

Hình 5. Chỉ số liên kết đồ thị cho 4 đỉnh đầu tiên


+ Xét các đường dẫn biến đổi xuất phát từ đỉnh Id=1(Đỉnh có dạng B):
Có 1 đường tương ứng với (B,A,A) là (1,2,3)
Có 1 đường tương ứng với (B,A,B) là (1,2,7),

Có 1 đường tương ứng với (B,C,B) là (1,11,7)
Có 1 đường tương ứngvới (B,A,C) là (1,2,13)

ký hiệu là topology(1(A,A))=1
ký hiệu là topology(1(A,B))=1
ký hiệu là topology(1(C,B))=1
ký hiệu là topology(1(A,C))=1

+ Xét các đường dẫn biến đổi xuất phát từ đỉnh Id=2(Đỉnh có dạng A):
Có 1 đường tương ứng với (A,A,A) là (2,3,4)
ký hiệu là topology(2(A,A))=1
Có 2 đường tương ứng với (A,B,A) là (2,7,8) và (2,7,4) ký hiệu là topology(2(B,A))=2
Có 1 đường tương ứng với (A,C,A) là (2,13,3)
ký hiệu là topology(2(C,A))=1
Có 2 đường tương ứng với (A,A,C) là (2,3,12)và (2,3,13)
ký hiệu là topology(2(A,C))=2
Có 1 đường tương ứng với (A,B,C) là {(2,1,11)hoặc (2,7,11)} // Chỉ tính đường dẫn đến các đỉnh riêng biệt
Có 1 đường tương ứngvới (A,C,C) là (2,13,12)
ký hiệu là topology(2(C,C))=1
+ Xét tương tự với đỉnh còn lại của đồ thị G sẽ được cácchỉ số cấu trúc liên kết đồ thị tương ứng với các đường dẫn biến đổi như
trong Hình 5
Chỉ số cấu trúc liên kết đồ thị rỗng chỉ ra rằng không đường dẫn biến đổi tương ứng từ đỉnh dạng t, có độ dài d đến đỉnh n.
Nghĩa là, ở Hình 5 trên, với đỉnh có Id=1, d=1, Chỉ số cấu trúc liên kết đồ thị tới đỉnh B rỗng thì không có đường dẫn biến đổi
tạo bởi đỉnh có Id=1, d=1 tới đỉnh B, tức là topology(1,B )= Ø.
Chỉ số cấu trúc liên kết đồ thị đóng vai trò quan trọng trong việc làm giảm không gian tìm kiếm bằng cách cắt tỉa bớt các đỉnh ứng
viên mà nó không thể được tạo cho một đỉnh truy vấn nhất định.

9



3.1.2.

Chỉ số trọng số lớn nhất của đường dẫn biến đổi (MMW)

Chỉ số trọng số đường dẫn biến đổi lớn nhất
có cùng kích thước với chỉ số cấu trúc liên
kết đồ thị.
Nó là tổng là các trọng số từ một đỉnh
bất kỳ dạng t theo một đường dẫncó độ dài
d đến một đỉnh riêng biệt n.
Ví dụ:Hình 6 thể hiện chỉ số trọng số
lớn nhất của đường dẫn biến đổi (MMW)
của 4 đỉnh đầu tiên trong đồ thị G.
Đối với đỉnh 1, có 1 đường
dẫn tương ứng với đường dẫn
(B,A)là đường dẫn biến đổi (1,2) d →
có trọng số là 0.2, thì chỉ số trọng Đỉnh
số lớn nhất cho đường dẫn biến Id↓
1
đổi tương ứng với (B,A) là 0.2,
2
có thể viết gọn lại như sau:
3
MMW(1,(A)) = 0.2
4

1

2


A B C AA BA CA AB BB CB AC BC CC
0.2
0.1 0.9
0.9
0.7 0.7 0.3 1.5 1.2 0.7
0.8
0.5 1.6
0.9 1.4
0.8 0.1 0.4 1.7 0.8 0.9 1.4

0.3 0.5
1.2 0.9 0.5
1.2
0.7
1.3 0.3 0.6

Tính tương tự cho các chỉ số Hình 6. Chỉ số trọng số lớn nhất MMW cho 4 đỉnh đầu tiên
MMW khác tại đỉnh 1 với độ dài của đường dẫn khác nhau, trong Hình 6 biểu thị kết
quả cho độ dài đường dẫn biến đổi bằng d=1 và d=2.
Đối với đỉnh 2, có 2 đường dẫn tương ứng với đường dẫn (A,B,A) là 2 đường dẫn
biến đổi (2,7,4) và (2,7,8) có trọng số tương ứng là 0.7+0.1=0.8 và 0.7+0.5=1.2. Lựa
chọn trọng số lớn nhất cho đường dẫn biến đổi (B,A) là 1.2, có thể viết gọn lại như
sau: MMW(2,(B,A)) = 1.2
Tính tương tự cho các chỉ số MMW khác tại đỉnh 2 với độ dài của đường dẫn d=1
và d=2 để cho ra kết quả như Hình 6
Trong phần VI-C, chỉ số chỉ số trọng số lớn nhất của đường dẫn biến đổi (MMW)
10


được sử dụng cho việc tính các điểm ràng buộc chặt chẽ, điều đó dẫn tới việc cắt tỉa,

lựa chọn các ứng viên có khả năng phù hợp cao hơn.

11


3.1.3.

Danh sách cạnh được sắp xếp–Sorted Edge Lists

Ngoài hai chỉ số trên, chúng tôi còn giữ lại danh sách các cạnh đã sắp
xếp, mà nó vẫn phù hợp với các cạnh trong đồ thị. Từ mỗi dạng cạnh, tất cả các cạnh
của các dạng đó được lưu trữ theo thứ tự không tăng của các giá trị phù hợp. Như vậy,
các cạnh phù hợp nhất sẽ đứng đầu danh sách.
3.1.4.

Danh sách các cạnh được biểu diễn bởi các cặp đỉnh. Với mọi danh sách
cạnh, một hàm băm được duy trì, nó sẽ trỏ từ mỗi nút của đồ thị đến tập hợp các dòng
trong danh sách cạnh có chứa đỉnh của đồ thị.
3.1.5.

Ví dụ: Xét danh sách cạnh AA. Con trỏ, trỏ từ đỉnh 4 tới các cạnh (3,4)
và (4,5) tương ứng. Như vậy con trỏ truy cập nhanh tới các cạnh phù hợp của từng
dạng cho từng đỉnh cụ thể.
3.1.6.

Hai đỉnh bất kỳ có liên kết với nhau tạo thành một cạnh với trọng số
tương ứng. Liệt kê các cạnh với trọng số tương ứng có dạng đỉnh tương tự nhau thì
được một danh sách cạnh (Ví dụ: các cạnh AB, BA trong đồ thị G thuộc cùng một
danh sách cạnh, các cạnh AA trong đồ thị G thuộc cùng một danh sách cạnh).
3.1.7.


Ví dụ, trong đồ thị G (hình 3): danh sách cạnh AB có các cạnh (2,7),
(5,6), (8,7), (2,1), (4,7)
3.1.8.

Danh sách các cạnh AA của đồ thị G (hình 3) trước và sau khi sắp xếp
theo chiều không tăng của trọng số:
3.1.9.

3.1.10.

3.1.11. Danh sách

3.1.12. Danh sách cạnh AA sau khi sắp xếp

Stt

cạnh AA
3.1.14. (2,3) : 0.7

trọng số theo chiều không tăng
3.1.15. (5,9) : 0.9

3.1.17. (3,4) : 0.8

3.1.18. (3,4) : 0.8

3.1.20. (4,5) : 0.8

3.1.21. (4,5) : 0.8


3.1.23. (5,9) : 0.9

3.1.24. (2,3) : 0.7

3.1.26. (9,10) : 0.3

3.1.27. (8,9) : 0.6

3.1.29. (8,9) : 0.6

3.1.30. (9,10) : 0.3

3.1.13.

1
3.1.16.

2
3.1.19.

3
3.1.22.

4
3.1.25.

5
3.1.28.


6
Tương tự với các danh sách cạnh còn lại trong đồ thị G sẽ được một
bảng sắp xếp các danh sách cạnh theo chiều không tăng của trọng số. Trong Hình 8
mỗi cột là một danh sách cạnh đã được sắp xếp theo chiều không tăng của tọng số.
3.1.31.

3.1.32. AA
3.1.38. (5,9

) : 0.9

3.1.33. BB

3.1.39.

3.1.34. CC 3.1.35. AB
3.1.40. (12, 3.1.41. (2,7

13) : 0.2

) : 0.7
12

3.1.36. AC 3.1.37. BC
3.1.42. (3,1 3.1.43. (7,1

2) : 0.5

1) : 0.2



3.1.44. (3,4)

3.1.45.

3.1.46.

3.1.47. (5,6 3.1.48. (4,1 3.1.49. (1,1

: 0.8
) : 0.6
2) : 0.4
1) : 0.1
3.1.50. (4,5)
3.1.51.
3.1.52.
3.1.53. (8,7 3.1.54. (3,1
3.1.55.
: 0.8
) : 0.5
3) : 0.4
3.1.56. (2,3)
3.1.57.
3.1.58.
3.1.59. (2,1 3.1.60. (2,1
3.1.61.
: 0.7
) : 0.2
3) : 0.3
3.1.62. (8,9

3.1.63.
3.1.64.
3.1.65. (4,7
3.1.66.
3.1.67.
) : 0.6
) : 0.1
3.1.68. (9,1
3.1.69.
3.1.70.
3.1.71.
3.1.72.
3.1.73.
0) : 0.3
3.1.74. Hình 8. Danh sách dạnh được sắp xếp cho đồ thị trong Hình 3
3.2.

Xây dựng chỉ số

3.2.1. Chúng ta có thể tính cả các cấu trúc chỉ số và danh sách cạnh được sắp

xếp ẩn (offline) như sau:
3.2.2. Đối với việc xây dựng các chỉ số cấu trúc liên kết đồ thị (MMW) và

chỉ số trọng số lớn nhất của đường dẫn biến đổi, điểm giao nhau đầu tiên thì
cần được tổ chức thực hiện từ mỗi đỉnh trên đồ thị. Đối với mỗi đỉnh, d-hop, mỗi
đỉnh liền kề được đến thăm đến độ dài lớn nhất là D. Đối với chỉ số cấu trúc liên
kết đồ thị, điểm giao nhau đầu tiên giữ lại giới hạn của các node đã thăm hiện tại
trong hàng đợi. Sau mỗi hop của điểm giao nhau và các đường dẫn thực tế từ đỉnh
gốc được thực hiện trong các điều kiện tương ứng các đường dẫn biến đổi của nó

và chỉ số cấu trúc liên kết đồ thị được cập nhật trên cơ sở số điểm cuối dọc theo
đường dẫn biến đổi. Để cập nhật chỉ số MMW, tổng trọng số các cạnh cho mỗi
đường dẫn và chỉ số MMW được cập nhật với trọng số lớn nhất của bất kỳ đường
dẫn biến đổi tương ứng. Tuy nhiên, với giá trị D nhỏ thì không quá phức tạp.
Ngoài ra, lưu ý rằng việc xây dựng những chỉ số này chỉ cần thực hiện một lần và
được tính ẩn (trước). Nếu B là số đỉnh liền kề số trung bình, thì tổng số d-hop lên
tới D là O(BD). Do vậy việc tính toán chỉ số MMW và chỉ số cấu trúc liên kếtlà O(|
VG|BD). Không gian cần thiết để lưu trữ 2 chỉ số là O(|VG|TD) trong đó T là số dạng
đỉnh.
3.2.3. Khi tăng số dạng đỉnh, thì kích thước của hai chỉ số có thể cũng tăng rất

nhanh. Tuy nhiên, hầu hết các mạng thông tin không đồng nhất thì chỉ có một vài
dạng đỉnh, và cũng tuân theo một giản đồ. Các giản đồ đó có thể tự hạn chế số
lượng các dạngcạnh. Bên cạnh đó ở phần V chúng ta sẽ thảo luận một cách để làm
giảm kích thước của các chỉ số này mà không làm mất nhiều hiệu quả.
3.2.4. Các danh sách cạnh được sắp xếp được tạo ra bằng nhóm các dạng cạnh

và sắp xếp các cạnh theo mỗi dạng theo thứ tự không tăng. Nếu đồ thị có nhiều
dạng thì số các dạng của cạnh là. Thời gian để sắp xếp một danh sách cạnh có
chiều dài L là O(L×logL). Điều đó dễ dàng thấy được thời gian để sắp xếp danh
sáchmà tổng kích thước của chúnglà EG là lớn nhất khi mỗi danh sách có kích
thước là . Do đó tổng thời gian tính cho việc sắp xếp các danh sách cạnh làO(|E G|
13


log()). Không gian cần để lưu chữ các chỉ số là . Như vậy, xây dựng đỉnhkế tiếp
của đồ thị là trỏ tới các hàng trong các danh sách cạnh, thời gian xử lý và không
gian lưu trữ là).
3.2.5.


14


4. Top-K interesting subgraph query processing – Xử lý truy vấn Nhóm K đồ thị

con phù hợp
Cho một truy vấn Q với tập đỉnh V Q và tập cạnh EQ, khai phá topK đồ thị con phù hợp bằng cách duyệt qua danh sách cạnh đã sắp xếp từ trên
xuống dưới, việc tăng tốc độ duyệt danh sách cạnh như sau. Đầu tiên xét mỗi
đỉnh trong tập đỉnh VQ, một tập các đỉnh từ đồ thị lớn có thể là ứng viên tiềm
năng cho các truy vấn, được xác định bằng chỉ số cấu trúc liên kết (thuật toán 1).
4.1.1.

Các cạnh trong danh sách cạnh được sắp xếp có chứa các đỉnh
khác so với các đỉnh ứng viên tiềm năng được đánh dấu là không hợp lệ. Nhiều
cạnh được tỉa đi và làm tăng tốc độ duyệt trên danh sách cạnh. Truy vấn Q sau đó
được xử lý bằng cách sử dụng danh sách cạnh tương tự như xử lý truy vấn NhómK(Phần IV-B) đã thích ứng để xử lý các truy vấn mạng. Thảo luận phương pháp
trong Phần IV-B là tiếp tục cải tiến làm nhanh hơn bằng những ràng buộc chặt
chẽ sử dụng chỉ số MMW (thuật toán 2).
4.1.2.

4.2.

Lọc ứng viên sử dụng chỉ số cấu trúc liên kết

4.2.1.

Ở đây sẽ thảo luận về phương pháp
làm giảm không gian tìm kiếm bằng cách cắt tỉa các đỉnh ứng viên mà không thể
khởi tạo cho một đỉnh truy vấn cụ thể, sử dụng chỉ số cấu trúc liên kết. Việc xử lý
truy vấn Nhóm-K liên quan đến việc duyệt qua danh sách cạnh từ trên xuống

dưới. top-K có thể được cắt tỉa nếu một số cạnh trong danh sách cạnh được đánh
dấu là không hợp lệ, do đólàm giảm kích thước của danh sách cạnhmột cách hiệu
quả.
4.2.2. Ví dụ Tỉa ứng viên:

Trong hình bên, truy vấn Q bao gồm 4 đỉnh: Q1, Q2, Q3, Q4. Các đỉnh
ứng viên phù hợp với các dạng đỉnh như sau:
4.2.4. Truy vấn đỉnh Q1 phù hợp với dạng đỉnh: (2, 3, 4, 5, 8, 9, 10)
4.2.3.

15


4.2.5. Truy vấn đỉnh Q2 phù hợp với dạng đỉnh: (2, 3, 4, 5, 8,

9, 10)

1.1.1. 1.1.2. 1.1.3. 1.1.4.

Q1

Q2

Q3

Q4

2

2


2

1

4.2.6. Truy vấn đỉnh Q3 phù hợp với dạng đỉnh:(2, 3, 4, 5, 8, 1.1.5. 1.1.6. 1.1.7. 1.1.8.

9, 10)

4.2.7. Truy vấn đỉnh Q4 phù hợp với dạng đỉnh:(1, 6, 7).

1.1.9. 1.1.10.1.1.11.1.1.12.

Trong truy vấn ta thấy đỉnh Q2 được kết nối bởi
2 đỉnh dạng A ở độ dài d= 1. Tuy nhiên, tương ứng với đỉnh
2 trong đồ thị G, ở độ dài d= 1trong chỉ số cấu trúc liên kết
chỉ ra rằng chỉ có 1 đỉnh của kiểu A. Như vậy đỉnh 2 không
thể là ứng viên tiềm năng phù hợp của truy vấn đỉnh Q2.
Tương tự như vậy, chúng ta quan sát thấy đỉnh 8 và đỉnh 10
cũng không thể là ứng viên tiềm năng của truy vấn đỉnh Q2.
Vì vậy tập các ứng viên tiềm năng được thể hiện trong hình
7 Các đỉnh màu đỏ được lọc ra.

1.1.13.1.1.14.1.1.15.1.1.16.

4.2.8.

3
4


3
4

3

6

4

7

1.1.17.1.1.18.1.1.19.

5

5

5

1.1.20.

1.1.21.1.1.22.1.1.23.

8

8

8

1.1.24.


1.1.25.1.1.26.1.1.27.

9

9

9

1.1.28.

1.1.29.1.1.30.1.1.31.

10

10

10

1.1.32.

Các ứng viên tiềm năng có thể được xác định cho 1 đỉnh truy vấn q bằng
cách, đầu tiên tính toán các cấu trúc liên kết cho q (tương tự như một hàng trong chỉ
số cấu trúc liên kết đồ thị) và sau đó kiểm tra nếu truy vấn đỉnh q như một đồ thị con
phù hợp với một đỉnh ứng viên tiềm năng p trong đồ thị. Cấu trúc phù hợp này có thể
được kiểm tra bằng cách xem xét tất cả các đường dẫn trong các truy vấn với độ dài
từ 1 đến D. và kiểm tra sự xuất hiện của nó trong đồ thị. Chúng ta hãy biểu diễn cấu
trúc chỉ số liên kết cho các truy vấn bằng queryTopology.
4.2.9.


4.2.10. Algorithm 1 Candidate Node Filtering Algorithm
4.2.11. Input: (1) Query Node q,
4.2.12.
4.2.13.
4.2.14.
4.2.15.

(2) Graph Node p,
(3) topology[p],
(4) queryTopology[q],
(5) Index Parameter D.
4.2.16. Output: Is p a potential candidate node for query node q?
4.2.17. 1: for d = 1 . . . D do
4.2.18. 2:
for mp = 1 . . . T d do // TD đường dẫn biến đổi khác
nhau của độ dài D
4.2.19. 3:
if queryTopology[q][d][mp] > topology[p][d][mp]
then
4.2.20. 4:
Return False
4.2.21. 5: Return True
4.2.22.

4.3.

Thuật toán lọc đỉnh ứng viên

Đối với mỗi độ dài d. Kiểm tra độ dài d của đường dẫn thay đổi,
bằng cách so sánh chỉ số cấu trúc liên kết đồ thị đưa vào với các giá trị chỉ số

cấu trúc liên kết đồ thị trên đồ thị cần truy vấn G tương ứng (bước 3).
4.3.1.

4.3.2.

Tìm các ứng viên p phù hợp với truy vấn q.

4.3.3.

Cắt tỉa ứng viên làm rút ngắn được danh sách cạnh.
4.3.4.

Ví dụ: Đỉnh 2, 8 và 10 được cắt tỉa bởi truy vấn đỉnh Q2.
16


4.3.5.

Truy vấn Q2 (đỉnh dạng A), với độ dài d=1,
thì chỉ số cấu trúc liên kết đồ thị = 2 (có 2 liên kết độ dài 1 đến đỉnh dạng A)
Trong khi đó các đỉnh dạng A trong đồ thị G là 2, 8, 10 có chỉ số cấu
trúc liên kết đồ thị = 1, như vậy 3 đỉnh này bị loại theo thuật toán 1.
4.3.6.
4.3.7.

Như vậy danh sách cạnh cần xét sẽ loại đi các cạnh tạo bởi các đỉnh bị

loại.
Tức là, danh sách cạnh truy vấn cạnh (Q2, Q3) tương ứng với cạnh AA
được đánh dấu là không hợp lệ là: (2, 3), (8,9) và (10,9).

4.3.8.

4.3.9.
1. Input: Q1 (đỉnh Q1 là đỉnh dạng A)
4.3.10. P: Đỉnh 2, 3, 4, 5, 8, 9, 10
4.3.11. topology[P]
4.3.12. queryTopology[Q1]
4.3.13. Index Parameter D = 2
4.3.14. for d = 1 . . D do

for mp = 1 . . Td do // TD đường dẫn biến đổi khác nhau
của độ dài D
4.3.16. + d=1
mp=1 // chỉ có 1 đường dẫn biến đổi khác nhau của độ dài 1 , AA
4.3.15.

-

4.3.17. //if queryTopology[q][d][mp] > topology[p][d][mp] then

Q1 Có 1 đường dẫn biến đổi AA
Các đỉnh 2, 3, 4, 5, 8, 9, 10 đều có ít nhất 1 đường dẫn biến đổi
độ dài 1 đến đỉnh A
4.3.20.
Nên không loại được đỉnh nào với truy vấn Q1 độ dài 1
4.3.21. + d=2
mp=1 // chỉ có 1 đường dẫn biến đổi khác nhau của độ dài 1, AAA
4.3.18.
4.3.19.


-

4.3.22. //if queryTopology[q][d][mp] > topology[p][d][mp] then
17


Q1 Có 1 đường dẫn biến đổi AAA
Các đỉnh 2, 3, 4, 5, 8, 9, 10 đều có ít nhất 1 đường dẫn biến đổi
độ dài 2 đến đỉnh A
4.3.25.
Nên không loại được đỉnh nào với truy vấn Q1 độ dài 2
mp=2 // chỉ có 1 đường dẫn biến đổi khác nhau của độ dài 1, AAAB
4.3.23.
4.3.24.

-

4.3.26. //if queryTopology[q][d][mp] > topology[p][d][mp] then

Q1 Có 1 đường dẫn biến đổi AAAB
Các đỉnh 2, 3, 4, 5, 8, 9, 10 đều có ít nhất 1 đường dẫn biến đổi
độ dài 3 đến đỉnh A
4.3.29.
Nên không loại được đỉnh nào với truy vấn Q1 độ dài 2
2. Input: Q2 (đỉnh Q2 là đỉnh dạng A)
4.3.30. + d=1
mp=1 // có 2 đường dẫn biến đổi khác nhau của độ dài 1 , AA, đó là 2,1 và 2,3
4.3.27.
4.3.28.


4.3.31. //if queryTopology[q][d][mp] > topology[p][d][mp] then
4.3.32.
4.3.33.

Q2 Có 2 đường dẫn biến đổi AA
Các đỉnh 2, 8, 10 chỉ có nhất 1 đường dẫn biến đổi độ dài 1 đến

đỉnh A
4.3.34.
-

Nên bị loại bởi truy vấn Q2 độ dài 1

mp=2
4.3.35.
4.3.36.
4.3.37.

4.4.

Q2 Có 1 đường dẫn biến đổi AAB
Các đỉnh 2, 10 không có đường dẫn biến đổi độ dài 2 đến đỉnh B
Nên bị loại bởi truy vấn Q2 độ dài 2
4.3.38. Như vậy truy vấn Q2 đã loại các nút 2, 8, 10
4.3.39. Suy ra các cạnh tạo bởi các đỉnh này cũng bị loại khỏi danh
sách cạnh, tương tự với Q3 và Q4.
4.3.40.
Cách tính Top-K đồ thị con phù hợp

4.4.1. Ý tưởng:


Lưu lại Top-K đồ thị con phù hợp nhất. Các danh sách cạnh được sắp
xếp từ trên xuống dưới theo chiều không tăng của trọng số. Mỗi lần 1 cạnh có trọng số
lớn nhất lấy từ danh sách cạnh bất kỳ được chọn, tất cả có thể phù hợp với Size-1,
cạnh đó được lấy ra để tính toán.
4.4.2.

Ứng viên Size-1 phù hợp sẽ được phát triển một cạnh tại một thời điểm,
cho đến khi phát triển đến kích thước cần truy vấn. Trong quá trình phát triển, các ứng
viên phù hợp một phần có thể bị loại bỏ, nếu số điểm ràng buộc trên mỗi phần tử trong
mỗi lần tính toán (so sánh) giảm xuống dưới mức tối thiểu trong Top-K.
4.4.3.

Thuật toán kết thúc khi không có đồ thị con sử dụng các cạnh còn lại để
có thể có 1 kết hợp với ứng viên để cho kết quả có số điểm lớn hơn phần từ tối thiểu
trong Top-K.
4.4.4.

5. Tính toán, phát triển đường dẫn cơ sở

18


5.1.1. Định nghĩa 8: Một cạnh hợp lệ e, với cách đánh giá để một cạnh truy

vấn qE là một cạnh của đồ thị có nghĩa là cả hai là điểm cuối được chứa trong các
ứng viên tiềm năng cho nút truy vấn tương ứng trong qE. (Cần nhớ lại tập ứng viên
tiền năng cho mỗi nút truy vấn được tính ở thuật toán 1.)
5.1.2. Các danh sách cạnh thì khá giống các danh sách cạnh trong Fagin’s TA


[4]. Để di chuyển các danh sách cạnh theo thứ tự từ trên xuống dưới cần một con trỏ
duy trì với mọi danh sách cạnh. Con trỏ được khởi tạo để chỉ tới cạnh đồ thị cao nhất
trong danh sách cạnh đã sắp xếp, nó là hợp lệ khi (for) truy vấn ít nhất một cạnh. Khi
nó di chuyển xuống, chúng di chuyển đến cạnh hợp lệ tiếp theo chứ không phải di
chuyển đến các cạnh tiếp theo trong danh sách (như trong Fagin của TA).
Định nghĩa 9: (Size-c candidate match) (Kích cỡ phù hợp). một size-c
ứng viên phù hợp là một phần phát triển phù hợp như là size-c của các cạnh, size-c
được tạo ra bằng cách sử dụng cạnh đồ thị phù hợp.
5.1.3.

5.2.

Tạo ra Size-1 ứng viên phù hợp (Generating Size-1 Candidate
Matches)

5.2.1. Việc xử lý bắt đầu bằng cách chọn các loại cạnh và trỏ đến cạnh với số

điểm lớn nhất trong danh sách cạnh như ET. Cạnh e trong đồ thị (với điểm lớn nhất )
sau khi được khởi tạo cho tất cả các cạnh của loại ET truy vấn để hình thành nhiều
ứng viên phù hợp cỡ size-1. Ứng viên phù hợp size-1 dần phát triển một kích cỡ phù
hợp lớn hơn bao gồm các cạnh khởi tạo, mỗi cạnh ở một thời điểm. Chú ý rằng nếu
loại cạnh ET có cả hai điểm của loại nút giống nhau kết thúc thì cạnh e của đồ thị sẽ
phù hợp qE cạnh truy vấn trong 2 cách. Do đó trường hợp này được xử lý bằng cách
tạo ra ứng viên khác mới với sự đảo ngược cạnh đồ thị.
5.2.2. Ví dụ: Đối tượng được tạo ra từ cạnh(5,9) trong hình 3. Kết quả cho ra

4 ứng viên phù hợp cỡ size-1 (Q1 − 9 − 5 − Q4), (5 − 9 − Q3 − Q4), (Q1 − 5 − 9 −
Q4), and (9 − 5 − Q3 − Q4)
5.3.


Giá trị thực tế và Giá trị giới hạn trên (UBScore) của ứng viên
phù hợp

Cho một ứng viên phù hợp size-c, nó có thể cũng được cắt tỉa bởi vì
UBScore nhỏ hơn phần tử bé nhất trong Top-K hoặc nó phát triển xa hơn hoặc đặt
trong Top. Để đưa ra quyết định này thì UBScore cần được tính toán.
5.3.1.

Ở bất kỳ điểm nào trong khi xử lý thì CurrCandidates bao gồm mỗi ứng
viên phù hợp nó gồm các danh sách cạnh được tạo ra ở trong tập ConsideredEdges
được gọi đến.
5.3.2.

Giá trị thực tế của mỗi ứng viên phù hợp thì đơn thuần là việc tính tổng
các trọng số của tất cả cạnh được tạo ra.
5.3.3.

19


UBScore của ứng viên là điểm thực tế của nó cộng thêm UBScore của
mỗi cạnh không được tạo ra.
5.3.4.

UBScore của cạnh qE truy vấn không tạo ra (của dạng (t1,t2)) được tính
là giá trị bất ký lớn nhất của một cạnh đồ thị của dạng(t1,t2) tương ứng với cạnh hiện
tại trong ứng viên phù hợp và nằm dưới vị trí con trỏ hiện tại trong danh sách cạnh
(t1,t2)
5.3.5.


5.3.6.

Growing the Candidate Matchesa ( Phát triển ứng viên phù hợp)

Nếu đống bao gồm một số ít phần tử K và nếu UBScore của ứng viên
phù hợp là ít hơn phần tử nhỏ nhất ở trong đống thì ứng viên phù hợp được cắt tỉa.
Cạnh truy vấn tiếp theo được tạo ra qE’ cho tất cả các ứng viên trong sự lặp lại sẽ
được chọn như là nó không thuộc tập ConsideredEdges nhưng mà nó được liên kết tới
một số cạnh trong ConsideredEdges
5.3.7.

5.3.8.

Maintaining the Top-K Heap (Duy trì đống K )

Mỗi lần được tính toán phù hợp ở trong CurrCandidates, nếu giá trị mỗi
ứng viên lớn hơn phần tử nhỏ nhất trong đống thì ứng viên mới được thêm vào đống
và phần tử nhỏ nhất được lấy ra từ đống. Ngoài ra sau khi xử lý cho tất cả các cạnh
truy vấn trong QueryEdges đã hoàn thành thì con trỏ được di chuyển tới cạnh hợp lệ
trong danh sách cạnh ET. Trước khi xử lý tới cạnh hợp lệ tiếp theo thì giới hạn ứng
viên phù hợp phía trên được tính bằng tổng giá trị giới hạn phía trên (UBScore)
cho tất cả các cạnh trong truy vấn. Nếu UBScore cho một ứng viên bất kỳ mà nhỏ
hơn phần tử nhỏ nhất ở trong đống, thuật toán kết thúc. Ở thời điểm này đống chứa K
phù hợp cho truy vấn Q.
5.3.9.

5.3.10. Ví dụ: Sau khi tính toán cạnh (4,5). Đống bao gồm 2 phần tử cả hai có

điểm đều là 2,2. ở giai đoạn này, các cạnh được chỉ tới là (2,3) và (2,7). Giá trị giới
hạn trên lớn nhất bây giờ là: 0,7. (do cạnh (2, 3)) + 0,6 (do cạnh (8, 9)) + 0,7 (do

cạnh (2, 7)) = 2,0 mà là <2.2 và do đó xử lý có thể được ngừng lại.
5.3.11.
5.3.12.
5.3.13. C . Xử lý truy vấn nhanh hơn khi sử dụng chỉ số trọng số lớn nhất

(MMW)
5.3.14. Trong phần IV-B giá trị giới hạn trên cho bởi ứng viên đã tạo ra thì

được tính bởi tổng giá trị thực tế từ các cạnh đã xem xét và giới hạn trên các cạnh
không xem xét. Nó có thể có 1 giới hạn đúng không cho những cạnh không xem xét?
Một giới hạn đúng sẽ giúp nhiều hơn trong việc cắt tỉa ứng viên phù hợp và tất nhiên
xử lý truy vấn K đồ thị sẽ nhanh hơn.
5.4.

Tính toán giới hạn trên sử dụng đường dẫn nhanh hơn các cạnh.

5.4.1. Xem xét truy vấn Q’ ở hình 9. Phần trên bên phải thể hiện ứng viên phù

hợp size-1 ở một cạnh đồ thị được sử dụng để tạo ra cạnh truy vấn (Q1,Q2). Vì vậy
20


điểm thực tế của ứng viên là chỉ tương đương một trọng số cạnh để khai báo. Trong
phần IV-B điểm giới hạn trên được tính như là tổng điểm thực tế cho cạnh tương ứng
tới (Q1,Q2) và mỗi điểm giới hạn trên cho các cạnh (Q1,Q3),(Q3,Q4), (Q4,Q5) và
(Q2,Q3). Tuy nhiên, một giới hạn trên đúng có thể đạt được nếu chúng ta tính đến
điểm giới hạn trên như là tổng điểm thực tế cho cạnh tương ứng (Q1,Q2) và các điểm
giới hạn trên cho đường dẫn (Q1, Q3, Q4, Q5) và (Q2, Q3).

Có 2 vấn đề là,


5.4.2.

Làm thế nào để chúng ta chia tập của các cạnh truy vấn không xem
xét trong đường dẫn?
5.4.3.

5.4.4. Làm thế nào để chúng ta tính các điểm giới hạn trên các đường dẫn

này?
5.4.5. Để trả lời câu hỏi thứ hai, xét một đường dẫn p = (v1,v2, . . ., vn) độ dài

n trong truy vấn. Đường dẫn biến đổi tương đương là t = (t1, t2, . . . , tn). Giả sử rằng
cạnh truy vấn (v1, v2) được tạo ra với cạnh đồ thị (u1,u2). Chúng ta có thể dự tính
điểm giới hạn trên cho đường dẫn trong ứng viên phù hợp như là trọng số cạnh thực
tế của (u1, u2)+MMW [u2][t3, t4, . . . , tn]. Như vậy điểm giới hạn trên của một
đường dẫn có thể được tính sử dụng chỉ số MMW.
5.4.6. Để trả lời câu hỏi thứ nhất, thì truy vấn cần được chia các cách mà đáp

ứng được các tiêu chí sau:
5.4.7. Đường phải có nguồn gốc từ một nút được tạo ra. Điều này cần thiết bởi

vì chúng ta có thể chỉ cần sử dụng chỉ số MMW, nếu nguồn gốc của đường dẫn đã
được tạo ra.
Các đường dẫn phải không được chồng chéo cũng như mỗi đường khác
nhau cũng như các cạnh đã được tạo ra như vậy để đat được giới hạn trên đúng.
5.4.8.

5.4.9. Chiều dài của mỗi đường dẫn sẽ nhỏ hơn so với các chỉ số tham số D.


5.4.10.
5.5.

Greedy Path Set Selection (Chọn tập đường dẫn tham lam)
21


5.5.1. Một phần phù hợp riêng được tạo ra bao gồm các cạnh được tạo ra IE,

các đỉnh trong tập IN là tập các đỉnh được lấy bởi các cạnh đã tạo ra và tập các cạnh
không được tạo ra. Phương pháp này bắt đầu bằng cách liệt kê tất cả các đường dẫn
có khả năng mà nó có thể chứa các cạnh không được tạo ra bắt nguồn từ đỉnh thuộc
IN và đáp ứng được các tiêu chí trên. Sự kết hợp của tất cả các đường dẫn thông qua
tất cả đỉnh truy vấn được tạo ra được gọi là AllPaths. Mặc dù chúng ta có thể thiết kế
theo nguyên tắc tiết kiệm dựa trên phương thức chọn tập đường dẫn từ AllPaths.
Chúng ta nhờ đến một phương pháp tham lam cho lợi ích hiệu quả. Do vậy các đường
dẫn được chọn từng cái một từ một tập đường dẫn này trong một cách tham lam như
đường dẫn dài nhất được chọn ở mỗi bước. Sau khi chọn một đường dẫn thì một tập
hợp đường dẫn AllPaths có sẵn được cập nhật bằng cách loại bỏ tất các đường dẫn
mà trùng với đường dẫn được chọn. Thuật toán dừng khi tập đường dẫn AllPaths
rỗng.
5.5.2. Tuy nhiên giống như một lựa chọn các đường dẫn tham lam không bảo

đảm rằng tất cả các cạnh không được tạo ra sẽ nhận được bao phủ.

Ví dụ: Trong hình 10.
Với D=4, cạnh (Q1,Q2) đã được tạo ra. Việc xử lý tiếp theo chọn đường dẫn dài nhất
(with length ≤ MMW index parameter) nguồn gốc từ các nút đã được tạo ra giống như
là nó không trùng với bất kỳ một cạnh nào đã được tạo ra hoặc đường dẫn khác. Do
đó, đường dẫn (Q1, Q3, Q4, Q5, Q7) là sự lựa chọn và sau đó là đường dẫn (Q2, Q3).

Bây giờ, các cạnh (Q4, Q6) và (Q6, Q7) cần phải được xem xét riêng biệt từ khi chúng
không thể được bao phủ bởi bấy kỳ một đường dẫn nào mà nguồn gốc từ các nút đã
được khởi tạo. Như vậy, các truy vấn được thực sự chia thành ba tập hợp không giao
nhau: (1) các cạnh đã được tạo ra, (2) Các cạnh ở trên các đường dẫn đã lựa chọn và
(3) các cạnh phụ không được bao phủ bởi (1) hoặc (2).
5.5.3.

5.5.4.
5.5.5.
22


5.6.

Path Based Upper Bound Score Computation (tính điểm giới hạn
trên dựa vào đường dẫn)

5.6.1. Phương pháp này được tóm tắt trong thuật toán 2. Điểm giới hạn trên của

ứng viên được khởi tạo (thiết lập ban đầu) để tổng trọng số các cạnh cho tất cả các
cạnh đã được tạo ra.
5.6.2. Đối với mỗi nút được tạo ra thì tập tất cả các đường dẫn có nguồn gốc từ

nút này thì được tính (Step 4). Tập này loại trừ bất kỳ đường dẫn nào mà bao gồm
cạnh nào đã được tạo ra. Cho đến khi tất cả các cạnh truy vấn không được bao phủ,
đường dẫn dài nhất maxP được chọn từ AllPaths(Step 6). Cạnh ở maxP được thêm vào
để tập cạnh được tạo ra (Step 7) và điểm giới hạn trên được cập nhật với điểm giới hạn
trên của maxP bằng cách tìm lối vào phù hợp từ chỉ số MMW (Step 8). Tất cả các
đường dẫn được cập nhật bằng cách loại bỏ tất cả các đường dẫn trùng với maxP(Step
9). Cuối cùng, khi không có nhiều đường dẫn còn lại trong AllPaths

5.6.3.

Algorithm 2 Path Based Upper Bound Score
Computation

5.6.4. Input: (1) Query Q,
5.6.5.
(2) Instantiated Edges IE,
5.6.6.
(3) Instantiated Graph Nodes IN,
5.6.7.
(4) MMW Index,
5.6.8.
(5) SortedEdgeLists

Output: Upper Bound Score UBScore
1: UBScore ←
2: AllPaths ← ∅
3: for each instantiated node n ∈ IN do
4:
AllPaths ← AllPaths ∪ Paths in query
graph originating from n, length≤ D and do not
contain edges from IE
5: while ∃ a query edge not yet covered or
AllPaths ≠ ∅ do
6:
maxPath ← Compute path with
maximum length from AllPaths
7:
Add edges from maxPath to IE

8:
UBScore ← UBScore + Score of
maxPath using MMW
9:
Remove paths from AllPaths containing
edges in maxPath
10: UBScore ← UBScore + UBScore for edges ∈
Q but ∉ IE

5.6.9.
5.6.10. Giải nghĩa thuật toán 2: Tính điểm giới hạn trên dựa vào đường dẫn
5.6.11. Input:
5.6.12.

(1): Truy vấn Q
23


5.6.13.
5.6.14.
5.6.15.
5.6.16.

(2): Tập hữu hạn cạnh IE được tạo ra từ truy vấn Q
(3): Tập hữu hạn đỉnh IN được lấy ra từ tập cạnh IE
(4): chỉ số MMW
(5): Danh sách cạnh đã được sắp xếp

5.6.17. Output: Giá trị giới hạn trên


Bước 1: Tính giá trị giới hạn trên của ứng viên bằng tổng trọng số các
cạnh đã tạo ra
5.6.18.
5.6.19.

Bước 2: Khởi tạo Tập chứa tất cả đường dẫn (AllPaths) ban đầu bằng

rỗng
5.6.20.

Bước 3: Duyệt từng đỉnh thuộc tập đỉnh IN

5.6.21. Bước 4: Tìm tập hợp tất cả các đường dẫn xuất phát từ mỗi đỉnh thuộc IN

và có độ dài <=D, không chứa các cạnh IE, kết nạp vào tập AllPasths
5.6.22.

Bước 5: Khi mà AllPaths không chứa IE hoặc Tập AllPaths khác rỗng

thì:
5.6.23. Bước 6: maxPath là đường dẫn có độ dài lớn nhất lấy ra từ tập AllPaths
5.6.24. Bước 7: Thêm vào tập cạnh IE các cạnh lấy từ đường dẫn maxPath
5.6.25. Bước 8: Tính lại USBcode theo USBcode của maxPath sử dụng chỉ số

MMW
5.6.26. Bước 9: Tập AllPaths được cập nhật lại bằng cách loại bỏ những đường

dẫn có cạnh chứa trong đường dẫn maxPath đã duyệt
Bước 10: Cuối cùng khi không còn nhiều đường dẫn trong AllPaths thì
giá trị giới hạn trên của ứng viên được cập nhật bằng cách cộng thêm giá trị giới

hạn của cạnh truy vấn Q mà không được bao phủ (Không ∉ tập cạnh IE).
5.6.27.

5.6.28.
5.6.29. Yêu cầu 1: Phương pháp cắt tỉa sử dụng chỉ số MMW thì hiệu quả hơn

so với phương pháp cắt tỉa sử dụng chỉ dùng danh sách cạnh đã được sắp xếp.
5.6.30. Khi mà tính toán giới hạn trên sử dụng danh sách cạnh đã

được sắp xếp thì giới hạn trên cho một cạnh không khởi tạo
có thể được điểm cao tùy ý nếu có bất kỳ một cạnh hợp lệ
chưa được xử lý ở trong toàn bộ mạng với một trọng số cao.
Tuy nhiên, Vì chỉ số MMW, điểm giới hạn trên cho các cạnh
không được khai báo để được giới hạn tới vùng liên kết các
cạnh đã được khởi tạo do đó hạn chế tổng thể điểm giới hạn
trên.
5.6.31. Chỉ số MMW thực sự có thể giúp cắt tỉa các ứng viên phù hợp mà khi sử

dụng danh sách cạnh đã sắp xếp không thể cắt tỉa được. VD xem xét ứng viên (9 − 5 −
Q3 − Q4) và nhớ rằng đống chứa 2 phần tử với các điểm lần lượt 2,1 và 2,0 ở lúc này.
Bây giờ điểm giới hạn trên cho ứng viên phù hợp này sử dụng trong danh sách cạnh là:
24


0.9+0.8+0.7=2.4 và từ 2,4 >2,0 nó không thể cắt tỉa được. Mặt khác, giới hạn trên sử
dụng chỉ số MMW là: 0.9+MMW(5,(A,B)) = 0.9+0.9 = 1.8 < 2.0 thì ứng viên này có
thể được cắt tỉa.
5.6.32.
5.6.33.


25


×