Fuerst ERK2018 CS

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Psevdokanonična predstavitev grafov na podlagi sosednosti

Luka Fürst
Univerza v Ljubljani, Fakulteta za računalništvo in informatiko, Večna pot 113, SI-1000 Ljubljana
E-pošta: luka.fuerst@fri.uni-lj.si

Neighborhood-based Pseudo-canonical ali zanj obstaja algoritem s polinomsko časovno zahtev-


Representation of Graphs nostjo.1 Najboljši znani algoritem teče v kvazipolinom-
A canonical representation of a graph is a string that is skem času [5].
invariant to the numbering of the graph vertices. Con- V nekaterih aplikacijah lahko zahteve glede kanonič-
sequently, two graphs are isomorphic if and only if they nega zapisa nekoliko omilimo in lahko, denimo, izomorfna
have equal canonical representations. The problem of grafa »občasno« proglasimo za neizomorfna [6]. V ta-
computing a canonical representation is thus at least as kih primerih zadošča psevdokanonični zapis, ki ga bomo
hard as the graph isomorphism problem. In this paper, we opredelili s sledečo zahtevo:
present a polynomial-time algorithm for finding a pseudo-
Če sta psevdokanonična zapisa grafov med
canonical graph representation with the property that a
seboj enaka, sta grafa izomorfna.
pair of equal representations implies isomorphism but
the opposite is not necessarily true. Nevertheless, for a Seveda je zaželeno, da lastnost čim večkrat drži tudi v
given graph the algorithm iteratively builds representa- obratni smeri, vendar pa tega formalno ne zahtevamo.
tions that are increasingly more likely to be numbering- V članku predstavljamo algoritem za tvorbo psevdo-
invariant. To validate our approach, we applied the pro- kanoničnega zapisa grafov. Algoritem se izvaja v poli-
posed algorithm to the complete set of connected simple nomskem času in postopoma gradi čedalje boljše pred-
undirected graphs with up to 9 vertices and to a set of stavitve; čim dlje ga pustimo teči, tem večja je verjetnost,
real-world graphs. da bo zapis, ki ga bo zgradil za podani graf, dejansko
kanoničen (popolnoma neobčutljiv na oštevilčenje voz-
1 Uvod lišč), čeprav, kot bomo videli, obstajajo grafi, pri katerih
Takšna in drugačna omrežja igrajo v današnjem svetu če- algoritem ne more zgraditi takšnega zapisa.2 Algoritem
dalje pomembnejšo vlogo. Za učinkovito preučevanje smo preizkusili na popolnem naboru povezanih neusmer-
omrežij pa potrebujemo učinkovite grafne algoritme. V jenih enostavnih grafov z največ 9 vozlišči in na nekate-
številnih postopkih za delo z grafi oz. omrežji nam pride rih grafih iz realnega sveta. Po nam dosegljivih podatkih
prav kanonični zapis [1]. Gre za zapis, ki enolično do- lahko algoritem in njegovo teoretično in praktično ana-
loča strukturo grafa, od oštevilčenja vozlišč pa je povsem lizo obravnavamo kot prispevek k znanosti.
neodvisen; če številke vozlišč med seboj premešamo, se Psevdokanonično predstavitev gradimo na podlagi so-
kanonični zapis ne sme spremeniti. Grafa imata enak ka- sednosti vozlišč, načeloma pa bi lahko algoritem zasno-
nonični zapis natanko tedaj, ko sta izomorfna, torej ko vali na poljubni kombinaciji grafnih invariant — lastno-
imata enako strukturo. sti, ki so odvisne samo od strukture grafa, ne pa od kon-
Eden od temeljnih problemov na področju odkriva- kretnega oštevilčenja vozlišč.
nja vzorcev v grafih (angl. graph data mining) [2] je pro- V razdelku 2 bomo opredelili pojme, ki jih bomo po-
blem naštevanja neizomorfnih podgrafov v danem gosti- trebovali skozi celotni prispevek, v razdelku 3 pa bomo
teljskem grafu [3]. Pri reševanju tega problema nam ka- predstavili algoritem za izdelavo psevdokanoničnega za-
nonični zapisi koristijo takrat, ko preverjamo, ali smo izo- pisa podanega grafa. V razdelku 4 bomo delovanje me-
morfno kopijo pravkar odkritega podgrafa že odkrili: na- tode eksperimentalno potrdili, z razdelkom 5 pa bomo
mesto da bi iskali izomorfizme, med seboj preprosto pri- prispevek zaključili.
merjamo kanonične zapise. Kanonični zapisi se upora-
bljajo tudi na področju kemije, saj omogočajo učinkovito
2 Terminologija in notacija
iskanje spojin in funkcionalnih skupin glede na njihovo Graf G je dvojica (VG , EG ), kjer je VG množica voz-
strukturo [4]. lišč, EG ⊆ VG × VG pa množica povezav. Namesto
Ker se preverjanje izomorfizma prevede na preverja- 1 Kratica GI se nanaša na problem grafnega izomorfizma (angl.
nje enakosti kanoničnih zapisov, je problem določitve ka- graph isomorphism problem).
noničnega zapisa vsaj tako težak kot problem grafnega 2 Če razreda problemov GI in P nista istovetna, potem taki grafi

izomorfizma. Ta problem pa je GI-poln, zato ne vemo, obstajajo pri poljubnem polinomskem algoritmu.
VG in EG bomo pisali V in E, kadar bo jasno, kate- G2 na sliki 1 sta izomorfna, vendar pa, kot smo videli, ni-
remu grafu pripadata množici, ali pa ko to ne bo po- mata enakih psevdokanoničnih zapisov. Zato se nam po-
membno. Brez pretirane izgube splošnosti se bomo ome- nuja sledeča ideja: vozliščem grafa dodelimo takšne šte-
jili na neusmerjene grafe brez zank: (v, v) 6∈ E, (u, v) ∈ vilke, da bo zapis, izdelan po metodi iz trditve 1, enak pri
E ⇐⇒ (v, u) ∈ E. Prav tako bomo predpostavili, da čimveč različnih začetnih oštevilčenjih vozlišč. Problem
velja |V | = n in V = {1, 2, . . . , n}. Rekli bomo, da (psevdo)kanonične predstavitve grafa tako prevedemo na
je vozlišče u manjše (oz. večje) od vozlišča v, če velja problem (psevdo)kanoničnega oštevilčenja vozlišč grafa.
u < v (oz. u > v). Množico vseh sosedov vozlišča u Pri iskanju (psevdo)kanoničnega oštevilčenja se mo-
bomo označili z N (u) = {v ∈ V | (u, v) ∈ E}. ramo opreti na lastnosti vozlišč, ki so neodvisne od za-
Grafa G in H sta izomorfna (oznaka: G ≃ H), če četnega oštevilčenja. Algoritem, ki ga bomo predstavili,
obstaja bijektivna preslikava h : VG → VH , ki ohranja obravnava soseščine vozlišč. Na primer, pri grafih G1 in
sosednosti in nesosednosti, torej če za vsak par vozlišč G2 na sliki 1 ima eno vozlišče enega soseda, eno vozli-
u, v ∈ VG velja (u, v) ∈ EG ⇐⇒ (h(u), h(v)) ∈ EH . šče tri sosede, tri vozlišča po dva soseda. Vozlišču z enim
Takšni preslikavi pravimo izomorfizem. sosedom se splača dodeliti (denimo) številko 1, vozlišču
Niz z ∗ (G) je kanonični zapis grafa G, če za vsak par s tremi sosedi (denimo) številko 5, ostalim vozliščem pa
grafov G in H velja z ∗ (G) = z ∗ (H) ⇐⇒ G ≃ H. številke 2, 3 in 4. Številki 1 in 5 bosta tako vedno, ne
Niz z(G) je psevdokanonični zapis grafa G, če za vsak glede na začetno oštevilčenje grafa, dodeljeni vozliščema
par grafov G in H velja z(G) = z(H) =⇒ G ≃ H. z enim oziroma tremi sosedi. Če poleg neposrednih so-
sedov upoštevamo tudi sosede sosedov, sosede sosedov
3 Algoritem sosedov itd., pa dobimo še robustnejše oštevilčenje.
Postopek za določanje psevdokanoničnega oštevilče-
Za začetek pokažimo sledečo trditev:
nja vozlišč je prikazan kot algoritem 1. Algoritem se
Trditev 1. Niz z(G) = S1 /S2 / . . . /Sn−1 , kjer je Su = prične s klicem funkcije I ZVRSI na podanem grafu. Funk-
su,u+1 su,u+2 . . . su,n za vsak u ∈ {1, . . . , n − 1} in cija na začetku vsem vozliščem dodeli številko id = 1,
su,v = 1 (v primeru (u, v) ∈ EG ) oziroma 0 (v naspro- nato pa v zanki tako dolgo kliče funkcijo NAPREJ in po
tnem primeru) za vsak v > u, je psevdokanonični zapis potrebi še funkcijo R AZPLETI, dokler nima vsako vozli-
grafa G. šče svoje unikatne številke.
Funkcija NAPREJ v k-ti iteraciji obravnava množico
Na primer, za grafa G1 in G2 na sliki 1 velja z(G1 ) = W , ki jo tvorijo vozlišča s številko k, a le v primeru, če
1100/010/10/1 in z(G2 ) = 0001/110/01/1. velja |W | ≥ 2. (Ko namreč neko vozlišče dobi unika-
tno številko, ga ne obravnavamo več; njegova številka po-
Dokaz. Če velja z(G) = z(H), potem imata grafa G
stane dokončna.) Za vsako vozlišče w iz množice W se
in H gotovo enako število vozlišč. Poleg tega za vsak
zgradi zaporedje številk vozlišč njegovih sosedov, nato
par (u, v) z lastnostjo u < v velja (u, v) ∈ EG ⇐⇒
se to zaporedje leksikografsko uredi (funkcija U REDI),
(u, v) ∈ EH . Ker sta grafa neusmerjena, velja ta lastnost
da dobimo zaporedje T (w), nazadnje pa se vozliščem v
za vse pare (u, v), od tod pa že sledi, da sta grafa izo-
množici W dodelijo številke glede na položaje njihovih
morfna.
zaporedij T (w) v leksikografsko urejenem zaporedju za-
poredij T (w1 ), T (w2 ), . . . , T (w|W | ). (Operator ≺ v vr-
1 2 2 3 stici 24 preberemo kot »je leksikografsko manjši od«.)
Vozlišča z enakim zaporedjem dobijo isto številko, zato
3 4 5 4 5 1 se bo z njimi še treba ukvarjati.
Če klic funkcije NAPREJ v ničemer ne spremeni ošte-
G1 G2 vilčenja, moramo spremeniti vsaj eno neunikatno številko,
saj bi se sicer ujeli v neskončno zanko. V funkciji R AZ -
1 PLETI poiščemo množico vozlišč z najmanjšo neunikatno
1 številko in vsem vozliščem iz te množice (razen najmanj-
3 2
6 2 šemu) povečamo številko za 1.
Tabela 1 prikazuje delovanje algoritma na primeru
grafa C6 s slike 1. (Na sliki podajajo številke v vozli-
5 3 ščih začetno, zunanje številke pa dobljeno končno ošte-
5 4 4
vilčenje.) Na začetku vsem vozliščem dodelimo številko
6 1. Ker imajo vsa vozlišča enako zaporedje T (h1, 1i), se
številke vozlišč ne spremenijo, zato pokličemo funkcijo
C6 G∗ R AZPLETI. Vozlišče 1 dobi unikatno številko 1 (z njim
se ne bomo več ukvarjali), ostala pa številko 2. V na-
Slika 1: Primeri grafov. slednjem klicu funkcije NAPREJ velja T (2) = T (6) =
h1, 2i in T (3) = T (4) = T (5) = h2, 2i, zato vozlišči
2 in 6 ohranita številko 2, vozlišča 3, 4 in 5 pa dobijo
Žal pa opisana predstavitev sama po sebi ni nujno od- številko 4. Postopek nadaljujemo, dokler nima vsako vo-
porna na spremembe v oštevilčenju vozlišč. Grafa G1 in
Algoritem 1 Psevdokanonično oštevilčenje vozlišč. zlišče svoje unikatne številke. Vidimo, kako algoritem na
začetku upošteva samo neposredne sosede, nato pa spre-
1: function I ZVRSI (G = (V, E))
membe številk vplivajo na vse bolj oddaljena vozlišča.
2: for all v ∈ V do
Časovno zahtevnost algoritma lahko določimo na pod-
3: id (v) := 1
lagi opažanja, da v vsakem obhodu zanke vsaj eno vozli-
4: end for
šče grafa pridobi svojo končno številko. Če funkcija NA -
5: repeat
PREJ vrne false, potem funkcija R AZPLETI nekemu voz-
6: sprememba := NAPREJ(G, id )
lišču dodeli unikatno številko, unikatna številka pa je sa-
7: konec := (∀u, v ∈ V : id (u) 6= id (v))
modejno tudi dokončna. V nasprotnem primeru pa funk-
8: if ¬konec ∧ ¬sprememba then
cija NAPREJ bodisi pridela vsaj eno unikatno številko ali
9: R AZPLETI(G, id )
pa poveča številke vsaj eni skupini vozlišč. Številke voz-
10: end if
lišč v tej skupini sicer niso unikatne, toda vsaj eno vozli-
11: until konec
šče iz skupine bo ohranilo svojo številko do konca izvaja-
12: return id
nja algoritma. Od tod sledi, da imamo največ (n − 1) ite-
13: end function
racij postopka, vsaka iteracija pa zahteva čas O(n2 log n):
14: function NAPREJ (G = (V, E), id ) za vsako od n vozlišč uredimo zaporedje številk vseh nje-
15: id ′ := id govih sosedov v času O(n log n), nato pa za celoten graf
16: for all k ∈ {1, 2, . . . , |V |} do uredimo zaporedje zaporedij številk v času O(n2 log n2 ) =
17: W := V RSTNIKI(V, id ′ , k) O(n2 log n). Skupna časovna zahtevnost algoritma po-
18: if |W | > 1 then temtakem znaša O(n3 log n).
19: for all w ∈ W do
20: T0 := hid ′ (w′ ) | w′ ∈ N (w)i 4 Eksperimentalni rezultati
21: T (w) := U REDI(T0 )
22: end for Psevdokanonično predstavitev lahko obravnavamo kot ka-
23: for all w ∈ W do nonično, če je povsem neobčutljiva na začetno oštevilče-
24: P := {w′ ∈ W | T (w′ ) ≺ T (w)} nje vozlišč. To lahko preverimo tako, da zgradimo psev-
25: id (w) := |P | + 1 dokanonični zapis za vsako od n! možnih oštevilčenj. Če
26: end for so vsi zapisi med seboj enaki, gre za pravo kanonično
27: end if predstavitev.
28: end for Algoritem 1 smo izvedli na celotni množici poveza-
29: return (id 6= id ′ ) nih enostavnih neusmerjenih grafov z največ 9 vozlišči.
30: end function Tabela 2 za vsak n ∈ {2, . . . , 9} in i ∈ {1, . . . , n − 1}
prikazuje, pri koliko grafih z n vozlišči dobimo po i itera-
31: function R AZPLETI (G = (V, E), id )
cijah zanke v funkciji I ZVRSI zapis, ki ni povsem neobču-
32: k ∗ := min{k | |V RSTNIKI(V, id , k)| > 1}
tljiv na začetno oštevilčenje vozlišč. Graf G∗ na sliki 1 je
33: W := V RSTNIKI(V, id , k ∗ )
najmanjši graf (in edini tak graf s sedmimi vozlišči), čigar
34: for all w ∈ W \ {min(W )} do
končni psevdokanonični zapis ni kanoničen. Kot vidimo,
35: id (w) := id (w) + 1
imajo vsa vozlišča grafa enako število sosedov. Takšni
36: end for
grafi povzročajo našemu algoritmu največ preglavic.
37: end function
V drugi skupini poskusov smo algoritem preizkusili
38: function V RSTNIKI (V , id , k) na nekaterih realnih grafih iz zbirk KONECT [7] in SNAP
39: return {v ∈ V | id (v) = k} [8]. V fazi predobdelave smo v vseh grafih odstranili mo-
40: end function rebitne oznake vozlišč in povezav, usmerjene povezave
spremenili v neusmerjene in odstranili morebitne večkra-
tne povezave in zanke. Pri poskusih smo algoritem 1
Tabela 1: Delovanje algoritma na grafu C6 . primerjali z algoritmom za računanje pravih kanoničnih
1 2 3 4 5 6 zapisov, ki je vgrajen v sistem Sage.3 Algoritem 1 smo
implementirali v programskem jeziku C, vse poskuse pa
id 1 1 1 1 1 1 smo izvršili na računalniku z 8-jedrnim procesorjem Intel
T h1, 1i h1, 1i h1, 1i h1, 1i h1, 1i h1, 1i Core i7-3770 s taktom 3,40 GHz.
id 1 1 1 1 1 1 Rezultati izvajanja poskusov so zbrani v tabeli 3. Po-
id 1 2 2 2 2 2 leg porabe časa v milisekundah (tPK za algoritem 1 in
T h1, 2i h2, 2i h2, 2i h2, 2i h1, 2i tK za algoritem v sistemu Sage) podajamo tudi število
id 2 4 4 4 2 iteracij (N ) zanke v funkciji I ZVRSI. V skladu s priča-
T h1, 4i h2, 4i h4, 4i h2, 4i h1, 4i kovanji se psevdokanonični zapisi v skoraj vseh primerih
id 2 4 6 4 2 izračunajo hitreje od kanoničnih. (Odgovora na vpraša-
id 2 4 4 3 nje, zakaj je graf Advogato izjema, zaenkrat še nimamo.)
T h2, 6i h3, 6i Ker je število permutacij vozlišč preveliko, ne moremo
id 4 5 zanesljivo trditi, ali so dobljeni psevdokanonični zapisi
3 http://www.sagemath.org/
Tabela 2: Število nekanoničnih psevdokanoničnih zapisov za grafe v množici vseh povezanih enostavnih neusmerjenih grafov z n
vozlišči (Gn ).
i
n |Gn | 1 2 3 4 5 6 7 8
2 1 0
3 2 0 0
4 6 2 1 0
5 21 12 7 3 0
6 112 88 52 27 7 0
7 853 781 427 235 89 20 1
8 11 117 10 873 6032 2780 1164 319 52 19
9 262 180 260 105 145 392 44 952 16 295 4691 899 201 113

Tabela 3: Rezultati na realnih grafih.


Graf |V | |E| tPK tK N
Les Misérables 77 254 1,8 8,8 28
David Copperfield 112 425 0,7 5,6 5
Jazz 198 2742 4,5 16,9 10
US Power Grid 4941 6594 32 700 58 700 481
Advogato 6541 39 285 230 000 124 000 2013
ca-HepTh 9877 25 973 615 000 1 450 000 2266
ca-CondMat 23 133 93 439 9 220 000 23 700 000 5999

odporni na spremembe v oštevilčenju vozlišč, vendar pa [3] M. Kuramochi, G. Karypis, “Finding frequent patterns in
se to po preizkušanju z naključnimi permutacijami zače- a large sparse graph,” Data Mining and Knowledge Dis-
tnega oštevilčenja zdi dokaj verjetno. covery, vol. 11, št. 3, str. 243–271, 2005.
[4] D. Weininger, “SMILES, a chemical language and infor-
5 Zaključek mation system. 1. introduction to methodology and enco-
ding rules,” Journal of Chemical Information and Compu-
Predstavili smo polinomski algoritem za izdelavo psev- ter Sciences, vol. 28, št. 1, str. 31–36, 1988.
dokanoničnega zapisa grafa in ga preizkusili na umetnih
[5] L. Babai, “Graph isomorphism in quasipolynomial time
in realnih grafih. Vsaj za grafe z največ devet vozlišči [extended abstract],” Symposium on Theory of Computing
lahko trdimo, da je zapis, ki ga proizvede algoritem, v (STOC) 2016, Cambridge, Massachussetts, ZDA, str. 684–
veliki večini primerov dejansko kanoničen, torej neobču- 697, 2016.
tljiv na oštevilčenje vozlišč. [6] L. Fürst, M. Mernik, V. Mahnič, “Graph grammar
Pri gradnji psevdokanoničnih zapisov bi si lahko po- induction as a parser-controlled heuristic search pro-
magali s simetrijami. Na primer, pri grafu K6 so pravza- cess,” Applications of Graph Transformations with Indu-
prav vsa oštevilčenja kanonična: ne glede na to, kako vo- strial Relevance (AGTIVE) 2011, Budimpešta, Madžar-
zliščem dodelimo številke, bo dobljeni zapis vedno enak. ska, LNCS vol. 7233, str. 121–136, 2012.
Pri grafu C6 imamo manj svobode; izkaže se, da lahko [7] J. Kunegis, “KONECT: the Koblenz network collec-
med seboj permutiramo le številke vozlišč 1, 3 in 5. Mno- tion,” International Web Observatory Workshop (WWW)
žice vozlišč z opisano lastnostjo tvorijo preiskovalno ek- 2013, Rio de Janeiro, Brazilija, str. 1343–1350, 2013.
vivalentno particijo grafa [9, 10]. V prihodnosti bi bilo http://konect.uni-koblenz.de/
potemtakem smiselno raziskati, kako preiskovalna ekvi- [8] J. Leskovec, A. Krevl, “SNAP Datasets: Stanford
valenca vpliva na psevdokanonični zapis in ali jo lahko large network dataset collection.” http://snap.
izkoristimo za dosego večje učinkovitosti algoritma ali stanford.edu/data, 2014.
robustnejših psevdokanoničnih predstavitev. [9] J. Mihelič, L. Fürst, U. Čibej, “Exploratory equivalence
in graphs: definition and algorithms,” in Federated Con-
Literatura ference on Computer Science and Information Systems
(FedCSIS) 2014, Varšava, Poljska, str. 447–456, 2014.
[1] L. Babai, E. M. Luks, “Canonical labeling of graphs,”
Symposium on Theory of Computing (STOC) 1983, Bo- [10] L. Fürst, U. Čibej, J. Mihelič, “Maximum exploratory
ston, Massachusetts, ZDA, str. 171–183, 1983. equivalence in trees,” in Federated Conference on Com-
puter Science and Information Systems (FedCSIS) 2015,
[2] D. Cook, L. Holder, Mining Graph Data. John Wiley &
Łódź, Poljska, str. 507–518, 2015.
Sons, 2006.

You might also like