Algorithmen und Datenstrukturen SS09 Foliensatz 3 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 1 / 13 Die Mittlere Laufzeit Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 2 / 13 Die Mittlere Laufzeit von SIS Kehren wir nun zum Beispiel Straight Insertion Sort (SIS) zurück. Wir haben gesehen, dass der beste und der schlechteste Fall sich deutlich unterscheiden: TSIS (n) ∈ Θ(n2 ) und TSIS,best (n) ∈ Θ(n). Wir haben außerdem gesehen, dass die Anzahl der Elementaroperationen, die SIS benötigt, von der Anzahl der Fehlstellungen in der Eingabe abhängt, genauer ! n X TSIS (a1 , . . . , an ) = O n + ki i =2 mit ki = |{j < i | ai < aj }| und somit n X ki = |{(i, j) | i < j und ai > aj }| . i =2 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 3 / 13 Die Mittlere Laufzeit von SIS Beispiel (SIS mit 3 Elementen) Eingabe (1,2,3) (1,3,2) (2,1,3) (2,3,1) (3,1,2) (3,2,1) k2 0 0 1 0 1 1 k3 0 1 0 2 1 2 k1 + k3 0 1 1 2 2 3 Wie man sieht, treten die beiden Extreme nur auf, wenn die Eingabe bereits sortiert ist (auf- oder absteigend). In allen anderen Fällen ist die Summe der Fehlstände ein Wert dazwischen. Tatsächlich tritt das in 4 von 6 Fällen ein. Diese Beobachtung kann bei größeren Eingaben bestätigt werden. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 4 / 13 Die Mittlere Laufzeit von SIS Frage Wenn die Eingabe zufällig unter allen Permutationen von 1, . . . , n geewählt wird, was ist dann die mittlere Laufzeit? Um diese Frage zu beantworten, berechnet man den Durchschnitt der Laufzeiten für alle Eingaben. x ∈ In mit In = {(a! , . . . , an ) | {a1 , . . . , an } = {1, . . . , n}} . Da n! viele Permutationen von n Elementen gibt, ergibt sich die mittlere Laufzeit als 1 X TSIS,avg (n) = tSIS (x). n! x∈In Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 5 / 13 Das allgemeine Vorgehen Definition (Average-Case-Kosten (Mittlere Kosten)) P = (I, O, f ) sei ein Problem und In = {x ∈ I | |x| = n}. Weiter sei p : In → [0, 1] eine Wahrscheinlichkeitsverteilung auf den Eingaben der Größe n, d.h. X p(x) = 1. x∈In Dann sind die erwarteten oder mittleren Kosten eines Algorithmus A für P definiert als X p(x) · tA (x). TA,avg (n) = x∈In D.h. TA,avg (n) ist der Erwartungswert der von A benötigten Zeit über alle Eingaben der Größe n. Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 6 / 13 Die mittleren Kosten von SIS Im Falle von SIS nehmen wir an, dass jede Permutation der Zahlen 1, . . . , n 1 mit gleicher Wahrscheinlichkeit n! auftritt. Weiter sei für jedes Paar (i, j) mit i < j eine Zufallsvariable X(i ,j) mit ( 0 falls ai < aj X(i ,j) = 1 falls ai > aj gegeben. Es gilt: n X ki = i =2 und somit n X E i =2 ki X X(i ,j) X E X(i ,j) . 1≤i <j≤n ! = 1≤i <j≤n Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 7 / 13 Die mittleren Kosten von SIS Auf Grund der Definition von X(i ,j) ergibt sich: E X(i ,j) = 0 · P(ai < aj ) + 1 · P(ai > aj ) = P(ai > aj ). Lemma Das Paar (i, j) mit i < j weist in der Hälfte der Permutationen eine Fehlstellung auf, d.h. 1 P(ai > aj ) = . 2 Beweis: Übungsaufgabe. Damit ergibt sich E n X i =2 ki ! = X 1≤i <j≤n 1 n(n − 1) 1 n = · = . 2 2 2 4 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 8 / 13 Die mittleren Kosten von SIS Satz (Die mittleren Kosten von SIS) TSIS,avg (n) = Θ(n2 ). Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 9 / 13 Crashkurs: Erwartungswert Definition (Wahrscheinlichkeitsraum) Ein Wahrscheinlichkeitsraum (Ω, p) besteht aus einer Menge Ω von Elementarereignissen und einer Wahrscheinlichkeitsverteilung p : Ω → [0, 1] mit X p(x) = 1. x∈Ω Ein Ereignis A in (Ω, p) ist eine Teilmenge A ⊆ Ω. Die Wahrscheinlichkeit, dass A eintritt ist X P(A) = p(x). x∈A Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 11 / 13 Crashkurs: Erwartungswert Definition (Zufallsvariable) Sei (Ω, p) ein Wahrscheinlichkeitsraum. Eine Zufallsvariable X ist eine Abbildung X : Ω → R. Definition (Erwartungswert) Der Erwartungswert E (X ) einer Zufallsvariablen X auf (Ω, p) ist definiert als X E (X ) := X (x) · p(x). x∈Ω Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 12 / 13 Crashkurs: Erwartungswert Lemma Seien X und Y Zufallsvariablen auf (Ω, p) und C ∈ R eine Konstante. Dann gilt: 1 E (C · X ) = C · E (X ) 2 E (X + Y ) = E (X ) + E (Y ) Ende des Crashkurses Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Seite 13 / 13