30.01.2015 Aufrufe

pdf (18647 Kb) - Fachgebiet Datenbanken und Informationssysteme ...

pdf (18647 Kb) - Fachgebiet Datenbanken und Informationssysteme ...

pdf (18647 Kb) - Fachgebiet Datenbanken und Informationssysteme ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

durch die Formel<br />

darstellen, wobei gilt:<br />

ϕ(σ i (x, y)) =<br />

+<br />

σ i+1 (x, y) = σ i (x, y) + ϕ(σ i )(x, y)<br />

∑<br />

(a u,p,x)∈A,(b u,p,y)∈B<br />

∑<br />

(x,p,a v)∈A,(y,p,b v)∈B<br />

σ i (a u , b u ) · ω((a u , b u ), (x, y))<br />

σ i (a v , b b ) · ω((a v , b v ), (x, y))<br />

Aufgr<strong>und</strong> der Berechnung des neuen σ-Wertes als Summe würden die Ähnlichkeitswerte<br />

im Verlauf der Iterationen monoton wachsen, weshalb eine Normalisierung der<br />

σ-Werte nach jeder Iteration nötig ist. Das bedeutet, dass alle Werte am Ende einer<br />

Iteration durch den maximalen σ-Wert, der in der Iteration berechnet wurde, dividiert<br />

werden. Anschließend hat man somit nur Ähnlichkeitswerte im Bereich von 0 bis 1 für<br />

die nächste Iteration.<br />

Pseudocode 4.3 stellt die Funktion berechneÄhnlichkeiten dar, die die iterativen Berechnungen<br />

der σ-Werte für jeden Knoten eines gegebenen SPG durchführt. Dabei führt<br />

die normalisieren-Funktion die oben genannte Normalisierung durch. Die Komplexität<br />

der Methode ist dabei O(n Knoten ∗ n Kanten ), wobei n Knoten <strong>und</strong> n Kanten die Anzahl der<br />

Knoten bzw. Kanten im SPG sind.<br />

Pseudocode 4.3: berechneÄhnlichkeiten(SPG spg)<br />

for each Knoten (a 1 , b 1 ) ∈ spg do<br />

σ neu (a 1 , b 1 ) ← σ(a 1 , b 1 )<br />

for each Kante ((a 1 , b 1 ), l, (a 2 , b 2 )) ∈ spg do // ausgehende Kanten<br />

σ neu (a 1 , b 1 ) = σ neu (a 1 , b 1 ) + σ(a 2 , b 2 ) · ω((a 1 , b 1 ), (a 2 , b 2 ));<br />

for each Kante ((a 2 , b 2 ), l, (a 1 , b 1 )) ∈ spg do // eingehende Kanten<br />

σ neu (a 1 , b 1 ) = σ neu (a 1 , b 1 ) + σ(a 2 , b 2 ) · ω((a 2 , b 2 ), (a 1 , b 1 ));<br />

for each Knoten (a 1 , b 1 ) ∈ spg do<br />

σ(a 1 , b 1 ) = normalisieren(σ neu (a 1 , b 1 ))<br />

Tabelle 4.2 stellt den Verlauf der normalisierten Ähnlichkeitswerte des SPG aus Abbildung<br />

4.3 über mehrere Iterationen dar. Als Anfangsähnlichkeiten wurde hier σ 0 = 1.0 für<br />

alle Map Pairs angenommen. Gemäß der Formel berechnet sich zum Beispiel der Wert für<br />

σ 1 (a 1 , b 3 ) als σ 1 (a 1 , b 3 ) = σ 0 (a 1 , b 3 )+σ 0 (a 1 , b 3 )·ω((a 1 , b 3 ), (a 2 , b 1 )) = 1.0+1.0·1.0 = 2.0,<br />

aufgr<strong>und</strong> der Normalisierung mit dem maximal erreichten Wert in der Iteration (in diesem<br />

Fall der Wert 3.0) ergibt sich daraus σ 0 (a 1 , b 3 ) = 2 3 = 0.6.<br />

Schon nach den dargestellen fünf Iterationen kann man erkennen, dass der Ähnlichkeitswert<br />

für (a 1 , b 1 ) konstant bei 1.0 bleibt, die Werte für (a 2 , b 2 ) <strong>und</strong> (a 3 , b 4 ) gegen 0.71<br />

konvergieren <strong>und</strong> die Ähnlichkeiten der restlichen Map Pairs immer weiter gegen 0 konvergieren.<br />

Würde man noch weitere Iterationen durchführen, könnte man beobachten,<br />

dass die Ähnlichkeitswerte für (a 1 , b 3 ), (a 2 , b 1 ), (a 2 , b 3 ), (a 3 , b 3 ) <strong>und</strong> (a 4 , b 2 ) tatsächlich<br />

23

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!