21.02.2014 Aufrufe

Skript zur Vorlesung Algorithmen für synchrone Rechnernetze

Skript zur Vorlesung Algorithmen für synchrone Rechnernetze

Skript zur Vorlesung Algorithmen für synchrone Rechnernetze

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.

KAPITEL 4. ALGORITHMEN FÜR SYNCHRONE RECHNERNETZE 39<br />

Beispielsweise ist (0, 2, 4, 5, 6, 7, 3, 1) biton nach a) und (6, 7, 5, 3, 0, 1, 4, 5) biton nach b) mit<br />

i = 4. Einige einfache Eigenschaften bitoner Folgen faßt Lemma 4.1 zusammen.<br />

Lemma 4.1<br />

1. Biton ist gegen zyklisches Shiften abgeschlossen.<br />

2. Jede Teilfolge einer bitonen Folge ist biton.<br />

3. Ist die Folge (a 0 , . . . , a i ) aufsteigend und die Folge (b i+1 , . . . , b n−1 ) absteigend sortiert,<br />

dann ist die zusammengesetzte Folge (a 0 , . . . , a i , b i+1 , . . . , b n−1 ) biton.<br />

Definition 4.4 (eingabeunabhängiger Comparison-Exchange-Algorithmus)<br />

Ein Algorithmus im Telephon-Modus heißt Comparison-Exchange-Algorithmus, wenn in einem<br />

Schritt die Prozessorpaare ihre Zahlen miteinander vergleichen und in Abhängigkeit des<br />

Vergleichs eventuell austauschen können. Ein solcher Vergleich/Austausch heißt Comparison-<br />

Exchange-Operation. Ein Comparison-Exchange-Algorithmus heißt eingabeunabhängig (oblivious),<br />

wenn die Wahl der Prozessorpaare pro Runde nur von der Länge der Eingabe abhängt.<br />

Eine Comparison-Exchange-Operation läßt sich durch ein Tupel von Prozessornummern (α, β)<br />

beschreiben; der Effekt einer solchen Operation ist, daß Prozessor α anschließend das Minimum<br />

und Prozessor β das Maximum der beiden Zahlen A[α] und A[β] speichert.<br />

Um zu beweisen, daß ein Algorithmus ein Sortieralgorithmus ist, muß i.A. gezeigt werden,<br />

daß er jede beliebige Folge von Zahlen korrekt sortiert. Für eingabeunabhängige Comparison-<br />

Exchange-<strong>Algorithmen</strong> reicht es aus zu zeigen, daß sie jede beliebige 0-1-Folge (Folgen, die<br />

nur aus 0 und 1 bestehen) korrekt sortieren, wie das folgende Lemma zeigt:<br />

Lemma 4.2 (0-1-Prinzip)<br />

Sei CE ein eingabeunabhängiger Comparison-Exchange-Algorithmus. CE sortiert genau dann<br />

alle Folgen ganzer Zahlen korrekt, wenn er alle 0-1-Folgen korrekt sortiert.<br />

Beweis:<br />

=⇒: Offensichtlich.<br />

⇐=: Widerspruchsbeweis.<br />

Ann.: CE sortiert jede 0-1-Folge korrekt, aber es existiert eine Folge ganzer Zahlen, die von<br />

CE nicht korrekt sortiert wird.<br />

Sei A = (a 0 , . . . , a n−1 ) eine ganzzahlige Folge, die von CE nicht korrekt sortiert wird. Jeder<br />

Comparison-Exchange-Algorithmus führt eine Permutation auf seiner Eingabefolge aus. Sei<br />

π : {0, . . . , n − 1} → {0, . . . , n − 1} die Permutation, die CE auf der Folge A durchführt, d.h.<br />

die Ausgabefolge von CE lautet (a π(0) , . . . , a π(n−1) ). Da CE A nicht korrekt sortiert, existiert<br />

ein p ∈ {1, . . . , n − 1} mit a π(p−1) > a π(p) . Wir konstruieren aus A und a π(p) wie folgt eine<br />

0-1-Folge B = (b 0 , . . . , b n−1 ):<br />

{ 0 , falls ai ≤ a<br />

∀i ∈ {0, . . . , n − 1} : b i =<br />

π(p)<br />

1 , sonst

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!