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 Die Mittlere Laufzeit Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau 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 i =2 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau ki = |{(i, j) | i < j und ai > aj }| . 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 i =2 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau ki = |{(i, j) | i < j und ai > aj }| . 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 i =2 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau ki = |{(i, j) | i < j und ai > aj }| . 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 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 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 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 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 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 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 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 TA,avg (n) = p(x) · tA (x). 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 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 TA,avg (n) = p(x) · tA (x). 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 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 E n X i =2 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau ki X X(i ,j) X E X(i ,j) . 1≤i <j≤n ! = 1≤i <j≤n 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 E n X i =2 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau ki X X(i ,j) X E X(i ,j) . 1≤i <j≤n ! = 1≤i <j≤n 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 E n X i =2 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau ki X X(i ,j) X E X(i ,j) . 1≤i <j≤n ! = 1≤i <j≤n 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 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau ki ! = X 1≤i <j≤n n 1 n(n − 1) 1 = · . = 2 2 2 4 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 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau ki ! = X 1≤i <j≤n n 1 n(n − 1) 1 = · . = 2 2 2 4 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 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau ki ! = X 1≤i <j≤n n 1 n(n − 1) 1 = · . = 2 2 2 4 Die mittleren Kosten von SIS Satz (Die mittleren Kosten von SIS) TSIS,avg (n) = Θ(n2 ). Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau Weiter geht es mit Grundlegende Datentypen Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau 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 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 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 Crashkurs: Erwartungswert Lemma Seien X und Y Zufallsvariablen auf (Ω, p) und C ∈ R eine Konstante. Dann gilt: 1 2 E (C · X ) = C · E (X ) E (X + Y ) = E (X ) + E (Y ) Ende des Crashkurses Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau