I HC QUC GIA TP. H CHÍ MINH
I HC CÔNG NGH THÔNG TIN
KHOA KHOA HC MÁY TÍNH
TIU LUN
:
Ging dn: PGS. TS.
Hc viên thc hin: NGUY
Lp: Cao hc Khóa 6 MSHV: CH1101159
TP. H Chí Minh, tháng 08
Em xin bày t lòng bin PGS. TS. i hc Công
Ngh ng dn, cung cp kin thc, truyn
t nhng kinh nghim quí báu giúp em hoàn thành tt bài tiu lun này.
, các anh, ch tr, lo lng viên.
ng tht c các bng h chúng tôi trong quá trình thc
hin bài tiu lun này.
u c gc chn s không tránh khi nhng thiu sót, em
rt mong nhc s n ca các Thy giáo, Cô giáo và các b
c hoàn thi
Em xin chân thành c
Tp H Chí Minh, tháng 05
Hc viên
NHN XÉT
(Ca ging dn)
1
th 2
th 2
3
1.2.1. Cnh liên thunh k, bc 3
4
1.3. Biu di th 4
1.3.1. Ma trn k 4
1.3.2. Danh sách cnh 5
1.3.3. Danh sách k 6
1.3.4. Danh sách liên thuc 7
Ch th ng cu 8
2.1. Gii thiu bài toán 8
2.2. Thut toán VF 9
2.3. Biu din thut toán VF 10
2.4. Các lut xét tính kh thi ca trng thái 11
phc tp ca thut toán VF 12
t lun 13
14
TÀI LIU THAM KHO 16
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 1
GVHD: PGS. TS. Hc viên: Nguy
th là mt cu trúc d lic s dng rng rãi trong vic biu din thông tin
c ng dng rng trong qun lý và khai phá d lin các bài
th th ng cn nay vi gii
hoàn ch phc tp ca bài toán là rt l th có s nh ln và m
các cnh dày. ng 5 thum gii quyt
th ng cu bao gm Ullman, SD, Nauty, VF và VF2. Trong s u
qu nht là VF và VF2 vi VF2 là thut toán ci tin da trên VF.
Báo cáo s trình bày v lý thuy thm v bài toán
ng c thng ca thut, ng thi tính toán phc
tp ca thut toán này nhm làm rõ tính hiu qu ca thut toán VF.
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 2
GVHD: PGS. TS. Hc viên: Nguy
1.1.
th là mô hình biu din mt tng và mi quan h hai ngôi gia các
ng:
Graph = Object + Connections
G = (V,E)
Có th th G là mt cp các
nh (vertices) biu ding và E gi là tp các cnh (edges) biu din mi
quan h gi ng. Chúng ta quan tâm ti mi quan h hai ngôi (pairwise
relations) ging nên có th coi E là tp các cp (u, v) vi u và v là hai
nh ca V biu ding có quan h vi nhau.
Hình 1: Các ng dng c th.
Có th phân lo th c tính và s ng ca tp các cnh E:
c g th (hay gi t th) nu ginh u, v V có
nhiu nht là 1 cnh trong E ni t n v.
c g th (multigraph) nu ginh u, v V có th có nhiu
nh trong E ni u và v. Nu có nhiu cnh ni ginh u, v V
thì nhng cc gi là cnh song song (parallel edges)
c g th ng (undirected graph) nu các cnh trong E là
ng, tc là cnh nnh u, v V bnh ni 2
nh v, u. Hay nói cách khác, tp E gm các cp (u, v) không tính th t: (u,
v) = (v, u).
c g th ng (directed graph) nu các cnh trong E là có
ng, tc là có th có cnh ni t c
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 3
GVHD: PGS. TS. Hc viên: Nguy
có cnh ni t nh u. Hay nói cách khác, tp E gm các cp (u,
v) có tính th t: (u, v) th ng, các cc
gi là các cung (arcs).
Hình 2: Phân lo th.
1.2.
th G = (V, E) là mt cu trúc ri rc, tc là các tp V và E
là tc, vì vy ta có th th t n t
ca tng nht các phn t thuc tp V và E vi s th t ca chúng.
i lp trình cho máy tính thì ta ch n
th hu hn (V và E là tp hu hn), chính vì vy t sau, nu không chú
thích gì thêm thì khi nói t th, ta hiu r th hu hn.
1.2.1. Cnh liên thunh k, bc
i v th ng G = (V, E). Xét mt cnh e E, nu e = (u,v) thì ta nói hai
nh u và v là k nhau (adjacent) và cnh e này liên thuc (incident) vnh
v.
Vi m th c (degree) ca v, kí hiu
deg(v) là s cnh liên thuc v th thì s cnh liên thuc v
s nh k vi v.
i v th ng G = (V, E). Xét trong mt cung e E, nu e = (u,v) thì ta
nói u ni ti v và v ni t
c gnh c gnh cui ca cung e.
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 4
GVHD: PGS. TS. Hc viên: Nguy
Vi m th c ra (out-degree) ca v
kí hiu deg
+
(v) là s i nó; bán bc vào (in-degree) kí hiu deg
-
(v) là s
.
1.2.2.
Mt nh:
P = <p
0
, p
1
k
>
Sao cho (p
i-1
, p
i
) E,vi mc gi là m
này gnh p
0
, p
1
k
và k cnh (p
0
, p
1
), (p
1
, p
2
),
k-1
, p
k
). Nu có mt
k,
, kí hiu p
0
~> p
k
nh p
0
c gnh
p
k
gnh cui cnh p
1
, p
2
k-1
c gnh trong ca
.
Mu tt c nh trên
0
, p
1
k
> tr thành chu trình
(circuit) nu p
0
= p
k
th c gu k
nh p
1
, p
2
,
k
hoàn toàn phân bit.
1.3.
Khi lp trình gic mô hình hóa b th, viu tiên ta cn
làm tìm cu trúc d li biu di th sao cho vic gii quyc thun
tin nht.
Có rt nhiu di th, trong bài này chúng ta s kho sát mt
s bin nht. Tính hiu qu ca tu din s c
ch ng thut toán c th.
1.3.1. Ma trn k
Vi G = (V, E) là m th các
nh t ng nht mnh vi s th t ca nó. B
v th G có th biu din bng ma trn vuông A = {a
ij
}
n*n
a
ij
= 1 nu (i,j) E
0 nu (i,j) không E
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 5
GVHD: PGS. TS. Hc viên: Nguy
Vi mi i, giá tr ca các phn t ng chéo chính ma trn A: {a
ij
}có th t
tùy theo m th, chng ht bng 0. Ma trn A xây dc gi
là ma trn k (adjacent matrix) c th G. Vic biu di th c qui
v vic biu din phiên b ng: thay mi cnh (i,j) bi hai cung
ng nhau: (i,j) và (j,i).
i v th thì vic biu di u n
là cung thì a
ij
là s cnh ni ginh j.
Hình 3: Ma trn k biu di th.
m ca ma trn k:
n, trc quan, d cài t trên máy tính.
Kinh liên kt rn thông qua phép so sánh giá tr a
ij
0.
m ca ma trn k:
i n
2
ô nh d liu gây lãng phí b nh.
Khi bài toán yêu cu duyt qua tt c nh j k vnh i, ta luôn phi
duy kim tra giá tr a
ij
.
1.3.2. Danh sách cnh
Hình 4: Danh sách cnh biu di th.
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 6
GVHD: PGS. TS. Hc viên: Nguy
V th nh, m cnh, ta có th lit kê tt c các cnh c th
trong mt danh sách, mi phn t ca danh sách là mt cp (x, ng vi mt
cp cng h th ng thì (x, y) là m n y. Cách
biu din này gi là danh sách cnh.
m ca danh sách cnh:
ng h th tit ki vì ch s
dng m ô nh.
ng hp phi xét tt c các cnh thì vic duyt qua các cnh s
d c t
m ca danh sách cnh:
Khi cn duynh j k v th ta phi duyt ht m
cnh.
Khi kinh i, j có k i duyt qua m cnh.
Khi g th phc tp thut toán s m
trên.
1.3.3. Danh sách k
khc phm ca 2 cách biu di th
pháp biu di th bng danh sách k (adjacency list). Trong cách biu din này, vi
mnh v c th ng vi nó mnh k vi u.
V th ng G = (V, E). V gnh và E gm m cung. Có hai cách cài
t danh sách k ph bin:
Forward Star: vi m mt danh sách adj[u] chnh ni
t u: adj[u] = { v: (u, v) E }.
Reserve Star: vi m mt danh sách adj[v] chnh ni
n v: adj[v] = { u: (u, v) E }.
m ca danh sách k
i vi danh sách k , vic duynh k vc là ht sc
d dàng.
Vic duyt các cn vì mt cnh thc ra là ni mnh vi mt
nh khác k nó.
m ca danh sách k
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 7
GVHD: PGS. TS. Hc viên: Nguy
Danh sách k yn k vic kim tra (u, v) có phi là cnh hay
không vì phi duyt qua tt c danh sách k ca u hoc ca v.
1.3.4. Danh sách liên thuc
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 8
GVHD: PGS. TS. Hc viên: Nguy
2.1.
(graph isomorphism song ánh
hai th G
1
2
:
f: M(G
1
M(G
2
)
n
i
và n
j
G
1
f(n
i
) và f(n
j
) G
2
.
ng cu
này
th ng cu
:
f(a) = 1 f(g) = 5
f(b) = 6 f(h) = 2
f(c) = 8 f(i) = 4
f(d) = 3 f(j) = 7
ng cu gi th G
1
= (N
1
, B
1
) và G
2
= (N
2
, B
2
) là quá trình tìm
ra ánh x M t th G
1
sang G
2
. Có nhiu luc áp dng cho M và
ng vi các lut thì s có nhiu long cu khác nhau: ng cu, ng
cng cu gi th th ng cu gi th
th c s dng nhiu nht.
Ta có th t tp có th t các cp (n, m) vi n G
1
và m G
2
th
hin ánh x t n m:
M = { (n, m) N
1
x N
2
| n ánh x n m }
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 9
GVHD: PGS. TS. Hc viên: Nguy
Theo lý thuyt, vic gii quyt bài toán này có th c thc hin bng cách duyt
qua tt c các trng thái ánh x có th có và chn ra mt li gii phù hp vi long
cu cn tìm (s dng thut toán Brute Force).
2.2. TVF
Thut toán VF da trên khái nim không gian mô t trng thái (vit tt ting anh là
SSR) mô t ng cu c th vi mi trng thái s th hin mt phn
ca li gip con ca M và cha các thành phn thuc M.
gim b phc tp ca bài toán, c th m bng hp cn
phi duyt, vi mi trn t trng thái s
0
n trng thái li gii, chúng
t xét tính kh thi ca trng thái ng.
Ti bài toán này, t mi trng thái s
i
n trng thái s
j
, thao tác chúng ta cn làm là
thêm vào s mt cp ánh x ng ci. Nu
vip ánh x mi vào làm ng cu thì vic duyt tip các trng
thái sau khi thêm cp ánh x này là không cn thit.
Ví d th G
1
và G
2
sau:
Li gii ca bài toán: M = { (n
1
, m
4
), (n
2
, m
1
), (n
3
, m
2
), (n
4
, m
3
) }
Gi s trng thái M(s
i
) = { (n
1
, m
4
), (n
2
, m
1
ng thái c
th ng cu ta xây dc
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 10
GVHD: PGS. TS. Hc viên: Nguy
i tip tc tìm mt cp ánh x (n, m) sao cho vm bo tính
ng cu c th tc là tìm trng thái s
j
mi da trên s
i
ng thái M(s
j
) = { (n
1
, m
4
), (n
2
, m
1
), (n
3
, m
2
) ng thái c
th ng cu ta xây d
Vic lp li các thao tác tính toán theo tng tr
ta dn kt qu cui cùng ca bài toán.
2.3.
Thuc biu dit thut toán tìm kim theo chi
PROCEDURE Match(s)
INPUT: trng thái hin ti s vi d liu khi to s
0
có M(s
0
) = Ø
OUTPUT: ánh x gi th ng cu
IF M(s) cha tt c nh THEN
OUTPUT M(s)
ELSE
Tính tp P(s) là tp các cp ánh x ng viên có th thêm vào M(s)
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 11
GVHD: PGS. TS. Hc viên: Nguy
FOREACH p P(s)
IF vic thêm p vào M(s) là kh thi THEN
Tính trc khi thêm p vào M(s)
END IF
END FOREACH
END IF
END PROCEDURE
2.4.
i vi mca n trong tp ánh x ng là
cha cng.
i vi ma n trong tp ánh x ng là
con cng.
i vi mnh n thuc tp ánh x c, s nh là cha (con) cnh n nm
trong tnh vào T
in
1
(s) trng thái s bng vi s nh là cha (con) cnh m
ng nm trong tnh vào T
in
2
(s) trng thái s.
i vi mnh n thuc tp ánh x c, s nh là cha (con) cnh n nm
trong tp các nh ra T
out
1
(s) trng thái s bng vi s nh là cha (con) cnh m
ng nm trong tnh ra T
out
2
(s) trng thái s.
i vi m nh n thuc tp ánh x c, s nh là cha (con) c nh n
không nm trong c tnh ra T
out
1
(s) ln tp M
1
(s) trng thái s bng vi s
nh là cha (con) cng nm không trong tnh ra T
out
2
(s) ln
tp M
2
(s) trng thái s.
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 12
GVHD: PGS. TS. Hc viên: Nguy
2.5.
phc tp ca thung hp tt nht và xu nht
da trên hai yu t: s trng thái cn duyt và th duyt
mi trng thái.
Chi phí thi gian phi tr cho vic duyt qua mt trng thái bng cách thêm vào
mt cp (n, m) cho mt trng thái s có th chia làm 3 phn:
Chi ph kim tra xem trng thái mc tính kh thi hay không.
tính toán li các tp (T
in
1
, T
in
2
n trng thái
mi.
p các ng viên mi cho trng thái hin thi.
ng hp tt nht, ti mi trng thái ta ch có th chc mt ng
viên duy nht thu kin xét tính kh trng thái
cn duyt s là n, vi mi trng thái phi duy tìm kim ng viên. Vy
phc tp v thng hp tt nht s là O(n
2
).
ng hp xu nht, ta phi duyt qua tt c các trng thái có th ng
hp này có th x th phc tp có th c tính
i trng thái mc i s có n-i ng viên cn duyt trng thái ti
mc i+1 s c tính bng n-i nhân vi s trng thái mc i. C tip ty,
tng s trng thái phi duyt s là:
1 + n + n(n-1) + n(n-1)(n-
Tng này có th vit li thành
Vy s ng hp phi duy ng hp
nh phc tp v thng hp nht là O(n!n).
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 13
GVHD: PGS. TS. Hc viên: Nguy
Thut toán VF v lý theo tng trng thái ca li gii kt hp vi
các lut xét tính kh thi ca trng thái k ti các phép so sánh
cn s d phc tp ca thut toán m. C th khi
so sánh vi thut toán Ullman v phc tp cao nht là O(n!n
3
) và thp nht là
O(n
3
), ta thy rõ tính hiu qu ca thut toán VF.
i thiu v m nghim trong vic th con
ng cu s dng thu kt qu ánh x gi th
hoàn toàn chính xác và hin có th chy tt vi s nh trong khong nh. Trên
thc t, kt qu c nhu cu hin nay v th ln có ti hàng
trinh và m cc (mng xã hi) nên vic tìm hiu và nghiên cu nhm
t thut toán mi có tính ng dng cao trong vi th ng cu vn còn
là mt câu hi li gii.
o0o
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 14
GVHD: PGS. TS. Hc viên: Nguy
ng dn s d
t bng Mircrosoft Visual C# trên nn .NET Framework 3.5.
Giao din cng
Hình 5: Giao din c
i dùng nhp d li th thông qua 3
c d liu trc tip t file: nhn vào nút c File và chn file cha d li
th th liu file input phc vit
theo cu trúc sau:
- u tiên cha s nh n c th.
- n dòng tip theo là ma trn nxn là ma trn k a biu di th vi a[i][j] = 0
khi và ch khi không có cnh ni t c li.
Hình 6: .
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 15
GVHD: PGS. TS. Hc viên: Nguy
To b d liu ngi dùng nhp s nh c th và nhn vào nút
To Random t th ngu nhiên.
To b d liu ngng ci dùng nhn nút Tng cu
to ngu nhiên c th ng cu vi nhau.
Sau khi nhp d liu, danh sách cnh k s hin th i m th i dùng
có th kim tra d liu.
tìm b ng cu gi th th con c th 1, ta nhn nút Kt qu
xem b các ánh x c nu bài toán có kt qu c li, nu hoàn toàn
không có bt k th con nào c th ng cu v th hin
th thông báo là k th ng cu.
Tiu lun CSDL nâng cao: Gi th ng cu bng thut toán VF Trang 16
GVHD: PGS. TS. Hc viên: Nguy
Ting Vit:
[1]. Slide d liu nâng cao, PGS. TS. Phúc (2012), i hc Công ngh
Thông tin - .
Ting Anh:
[2]. A (sub)graph isomorphism algorithm for matching large graphs, L.P.Cordella
(2004), IEEE.
[3]. Performance Evaluation of the VF Graph Matching Algorithm, L.P.Cordella P.
Foggia C. Sansone M. Vento (1999), IEEE.
[4]. ebsite: