13.07.2015 Aufrufe

Algorithmen auf Graphen und dünn besetzte Matrizen - Bergische ...

Algorithmen auf Graphen und dünn besetzte Matrizen - Bergische ...

Algorithmen auf Graphen und dünn besetzte Matrizen - Bergische ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5.1. DICHTE DIAGONALBLÖCKEe) Bestimmung von G := G| C ′ aus G C mit C ′ = C ∪ P : O(|P | + |E ′ |), E ′Kanten aus G C ′, die nicht in G| C sind.5.1.9 LemmaUnter diesen Voraussetzungen besitzt der PABLO-Algorithmus 5.1.8 denAufwand O(|E| + |V |).Beweis: Jeder Knoten w wird höchstens deg(w) mal in Q eingefügt, denndazu muss er adjazent zu einem v aus P sein, <strong>und</strong> alle v kommen nur einMal nach P . Aufwand für Zeilen 6, 8, 10, 11 <strong>und</strong> 13 deshalb jeweils O(|E|).Aufwand für Zeile 5: O(|V |). Aufwand für Zeile 16: O(|V |+|E|), für Zeile 17:O(|V |). Fehlt noch der Aufwand für das Überprüfen von (5.1.1) <strong>und</strong> (5.1.2).Dieser ist jeweils O(1) plus Aufwand für die Aufdatierung von ϕ(P ) <strong>und</strong>deg | P (v). Letzterer ist deg(v) <strong>und</strong> damit insgesamt (für alle v) O(|E|). □Wie erreicht man den Aufwand für die elementaren Operationen? Für Q, Pgenügt irgendeine lineare Datenstruktur wie Stack, Queue oder Liste, da diezu entnehmenden Knoten unspezifiziert sind. (Folge: PABLO verläuft unterschiedlich,je nach Wahl der Datenstruktur). Damit ist a) ok für Q, P . Aus Cmüssen wir vorgegebene Knoten mit Aufwand O(1) entfernen können (Zeile6). Wir nehmen deshalb für C eine doppelt verkettete Liste mit ”externemIndex“, genau wie bei der Markowitz-Liste (Abschnitt 4.6): Bei Realisierungmit Feldern ist Knoten v an Stelle v gespeichert. G = (V, E) nehmen wir inDCEL-Darstellung b), c), d), e) erfüllt.Praktische Modifikationen:a) Zu große Blöcke vermeiden: Setze Parameter maxbs. Wenn |P | = maxbs,innere Schleife abbrechen, Q nach C zurückschreiben, P ausgebenb) Zu kleine Blöcke vermeiden: Setze Parameter minbs. Wenn |P | < minbsnach Ende der inneren Schleife: Füge mehrere <strong>auf</strong>einanderfolgende Pin ursprünglich leere Menge P ′ ; wenn minbs ≤ P ′ gib P ′ als nächstenBlock aus. (Test <strong>auf</strong> zu große Böcke wird dann |P ′ | + |P | = maxbs).Sind P <strong>und</strong> P ′ Listen, ist das Vereinigen ein Aufwand O(1) (wenn manListenanfang <strong>und</strong> -ende kennt).5.1.10 BeispielMatrix STEAM3 vom Matrix.Market 2 . Abbildungen 5.1 <strong>und</strong> 5.2 zeigen dieStruktur der Matrix vor <strong>und</strong> nach der PABLO-Permutation (α = 1.0, β =0.5). Abbildung 5.3 zeigt den Digraphen mit PABLO-Nummerierung derKnoten.2 Ergebnisse der Diplomarbeit von David Fritzsche, Universität Wuppertal, 2004169

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!