Vortrag: Unendliche Listen Unendliche Listen Einleitung Eigenschaften Ausprägungen Beispiel Unendliche Listen Unendliche Bäume Funktionale Programmierung in Haskell Sebastian Schröder Zusammenfassung Philip Chinery Fachhochschule Wedel – University of Applied Sciences 11. Dezember 2009 Sebastian Schröder, Philip Chinery 1/46 Unendliche Listen Agenda Unendliche Listen Einleitung 1 Eigenschaften Einleitung Ausprägungen Beispiel 2 Eigenschaften Unendliche Bäume Zusammenfassung 3 Ausprägungen 4 Beispiel 5 Unendliche Bäume 6 Zusammenfassung Sebastian Schröder, Philip Chinery 2/46 Unendliche Listen Agenda Unendliche Listen Einleitung 1 Einleitung Motivation Aus der Mengenlehre Motivation Aus der Mengenlehre Eigenschaften Ausprägungen Beispiel 2 Eigenschaften Unendliche Bäume Zusammenfassung 3 Ausprägungen 4 Beispiel 5 Unendliche Bäume 6 Zusammenfassung Sebastian Schröder, Philip Chinery 3/46 Unendliche Listen Einleitung Unendliche Listen Einleitung Motivation Aus der Mengenlehre Eigenschaften Warum unendliche Listen? Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 4/46 Unendliche Listen Einleitung Unendliche Listen Einleitung Motivation Aus der Mengenlehre Eigenschaften Warum unendliche Listen? Ausprägungen „Weil es geht“ Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 4/46 Unendliche Listen Einleitung Unendliche Listen Einleitung Motivation Aus der Mengenlehre Eigenschaften Warum unendliche Listen? Ausprägungen „Weil es geht“ Beispiel Unendliche Listen können in Haskell (partiell) verarbeitet werden Unendliche Bäume Zusammenfassung Existieren auch außerhalb der Informatik Erleichtern die intuitive Definition mancher Funktionen Sebastian Schröder, Philip Chinery 4/46 Unendliche Listen Einleitung Unendliche Listen Einleitung Motivation Aus der Mengenlehre Eigenschaften Ausprägungen Beispiel Zum Vortrag: Unendliche Bäume Zwischenfragen sind ausdrücklich erwünscht Zusammenfassung Bei Fragen sind Antworten ausdrücklich erwünscht Sebastian Schröder, Philip Chinery 5/46 Unendliche Listen Bekannte unendliche Listen Unendliche Listen Einleitung Motivation Aus der Mengenlehre Bekannte unendliche Listen bestimmte Zahlenmengen Eigenschaften Ausprägungen Beispiel natürliche Zahlen alle geraden Zahlen ... Unendliche Bäume Zusammenfassung Ströme (Streams) „stdin“ /dev/zero ... Sebastian Schröder, Philip Chinery 6/46 Unendliche Listen Unendliche Listen verarbeiten Unendliche Listen Einleitung Motivation Aus der Mengenlehre unendliche Mengen: {x 2 |x ∈ N; x 2 < 10} Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 7/46 Unendliche Listen Unendliche Listen verarbeiten Unendliche Listen Einleitung Motivation Aus der Mengenlehre unendliche Mengen: {x 2 |x ∈ N; x 2 < 10} Eigenschaften Haskell: [square x | x <- [0..], square x < 10] Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 7/46 Unendliche Listen Unendliche Listen verarbeiten Unendliche Listen Einleitung Motivation Aus der Mengenlehre unendliche Mengen: {x 2 |x ∈ N; x 2 < 10} Eigenschaften Haskell: [square x | x <- [0..], square x < 10] Ausprägungen Beispiel Unendliche Bäume Ergebnis Zusammenfassung squares = [square x | x <- [0..], square x < 10] > squares > [0, 1, 4, 9 Sebastian Schröder, Philip Chinery 7/46 Unendliche Listen Unendliche Listen verarbeiten Unendliche Listen Einleitung Motivation Aus der Mengenlehre unendliche Mengen: {x 2 |x ∈ N; x 2 < 10} Eigenschaften Haskell: [square x | x <- [0..], square x < 10] Ausprägungen Beispiel Unendliche Bäume Ergebnis Zusammenfassung squares = [square x | x <- [0..], square x < 10] > squares > [0, 1, 4, 9 Und dann? Sebastian Schröder, Philip Chinery 7/46 Unendliche Listen Unendliche Listen verarbeiten Unendliche Listen Einleitung Motivation Aus der Mengenlehre Eigenschaften Etwas Mathematik Ausprägungen Der Computer ist nicht schlau genug Eigenschaften der erzeugenden Menge Beispiel Unendliche Bäume Zusammenfassung Monotonität Geeignete Abbruchbedingung Sebastian Schröder, Philip Chinery 8/46 Unendliche Listen Unendliche Listen verarbeiten Unendliche Listen Einleitung Motivation Aus der Mengenlehre Eigenschaften Etwas Mathematik Ausprägungen Der Computer ist nicht schlau genug Eigenschaften der erzeugenden Menge Beispiel Unendliche Bäume Zusammenfassung Monotonität Geeignete Abbruchbedingung Was bietet sich an? Sebastian Schröder, Philip Chinery 8/46 Unendliche Listen Unendliche Listen verarbeiten Unendliche Listen Einleitung Motivation Aus der Mengenlehre Eigenschaften Etwas Mathematik Ausprägungen Der Computer ist nicht schlau genug Eigenschaften der erzeugenden Menge Beispiel Unendliche Bäume Zusammenfassung Monotonität Geeignete Abbruchbedingung Was bietet sich an? takeWhile Sebastian Schröder, Philip Chinery 8/46 Unendliche Listen Unendliche Listen verarbeiten Unendliche Listen Einleitung Motivation Aus der Mengenlehre Eigenschaften Ausprägungen Beispiel Quadrate < 10 Unendliche Bäume squares’ = [square x | x <- [0..]] > takeWhile (<10) squares’ > [0, 1, 4, 9] Sebastian Schröder, Philip Chinery Zusammenfassung 9/46 Unendliche Listen Unendliche Listen verarbeiten Unendliche Listen Einleitung Motivation Aus der Mengenlehre Unendliche Listen verarbeiten Eigenschaften Ausprägungen Grundsätzlich mit Haskell möglich Beispiel Erfordert Bedarfsauswertung (lazy evaluation) Unendliche Bäume => Funktionen dürfen nicht strikt sein Zusammenfassung Erfordert sorgfalt Mathematische Eigenschaften ausnutzen Vollständige Verarbeitung nicht möglich Sebastian Schröder, Philip Chinery 10/46 Unendliche Listen Agenda Unendliche Listen 1 Einleitung Einleitung Eigenschaften 2 (Un)endliche Listen als Grenzwerte Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume 3 Ausprägungen 4 Beispiel 5 Unendliche Bäume 6 Zusammenfassung Sebastian Schröder, Philip Chinery Zusammenfassung 11/46 Unendliche Listen Unendliche Objekte Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Mathematik: Unendliche Objekte Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 12/46 Unendliche Listen Unendliche Objekte Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Mathematik: Unendliche Objekte Approximationsordnung Grenzwerte von unendlichen Sequenzen von Approximationen Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 12/46 Unendliche Listen Unendliche Objekte Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Mathematik: Unendliche Objekte Approximationsordnung Grenzwerte von unendlichen Sequenzen von Approximationen Beweis von Eigenschaften Beispiel: Irrationale Zahl π (3,14159265358979...) Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 12/46 Unendliche Listen Unendliche Objekte Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Mathematik: Unendliche Objekte Approximationsordnung Grenzwerte von unendlichen Sequenzen von Approximationen Beweis von Eigenschaften Beispiel: Irrationale Zahl π (3,14159265358979...) Grenzwert der unendlichen Sequenz von rationalen Approximationen: 3,0, 3,1, 3,14, 3,141, 3,1415, 3,14159, ... Sebastian Schröder, Philip Chinery Ausprägungen Beispiel Unendliche Bäume Zusammenfassung 12/46 Unendliche Listen Unendliche Objekte Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Mathematik: Unendliche Objekte Approximationsordnung Grenzwerte von unendlichen Sequenzen von Approximationen Beweis von Eigenschaften Beispiel: Irrationale Zahl π (3,14159265358979...) Grenzwert der unendlichen Sequenz von rationalen Approximationen: 3,0, 3,1, 3,14, 3,141, 3,1415, 3,14159, ... Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Jedes weitere Element der Sequenz ist eine bessere Approximation des Grenzwertes Sebastian Schröder, Philip Chinery 12/46 Unendliche Listen Unendliche Listen Unendliche Listen Einleitung Unendliche Listen Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 13/46 Unendliche Listen Unendliche Listen Unendliche Listen Einleitung Unendliche Listen Eigenschaften Ebenso Grenzwerte von unendlichen Sequenzen von Approximationen (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 13/46 Unendliche Listen Unendliche Listen Unendliche Listen Einleitung Unendliche Listen Eigenschaften Ebenso Grenzwerte von unendlichen Sequenzen von Approximationen (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Beispiel: Liste [1 .. ] Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 13/46 Unendliche Listen Unendliche Listen Unendliche Listen Einleitung Unendliche Listen Eigenschaften Ebenso Grenzwerte von unendlichen Sequenzen von Approximationen Approximationsordnung Beweis von Eigenschaften Beispiel: Liste [1 .. ] Ausprägungen Grenzwert der unendlichen Sequenz von partiellen Listen: ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : ⊥, 1 : 2 : 3 : 4 : ⊥, ... Sebastian Schröder, Philip Chinery (Un)endliche Listen als Grenzwerte Beispiel Unendliche Bäume Zusammenfassung 13/46 Unendliche Listen Unendliche Listen Unendliche Listen Einleitung Unendliche Listen Eigenschaften Ebenso Grenzwerte von unendlichen Sequenzen von Approximationen (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Beispiel: Liste [1 .. ] Ausprägungen Grenzwert der unendlichen Sequenz von partiellen Listen: ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : ⊥, 1 : 2 : 3 : 4 : ⊥, ... Beispiel Unendliche Bäume Zusammenfassung ⊥ (undefiniert) liefert keine Informationen über den Grenzwert Sebastian Schröder, Philip Chinery 13/46 Unendliche Listen Unendliche Listen Unendliche Listen Einleitung Unendliche Listen Eigenschaften Ebenso Grenzwerte von unendlichen Sequenzen von Approximationen (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Beispiel: Liste [1 .. ] Ausprägungen Grenzwert der unendlichen Sequenz von partiellen Listen: ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : ⊥, 1 : 2 : 3 : 4 : ⊥, ... Beispiel Unendliche Bäume Zusammenfassung ⊥ (undefiniert) liefert keine Informationen über den Grenzwert Durch hinzufügen eines definierten Wertes ist jedes zusätzliche Element der Sequenz eine bessere Approximation des Grenzwertes Sebastian Schröder, Philip Chinery 13/46 Unendliche Listen Konvergenz von Sequenzen Unendliche Listen Einleitung Konvergenz von Sequenzen Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 14/46 Unendliche Listen Konvergenz von Sequenzen Unendliche Listen Einleitung Konvergenz von Sequenzen Eigenschaften (Un)endliche Listen als Grenzwerte ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : ⊥, 1 : 2 : 3 : 4 : ⊥, ... Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 14/46 Unendliche Listen Konvergenz von Sequenzen Unendliche Listen Einleitung Konvergenz von Sequenzen Eigenschaften (Un)endliche Listen als Grenzwerte ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : ⊥, 1 : 2 : 3 : 4 : ⊥, ... Approximationsordnung Konvergiert gegen den Grenzwert [1 .. ] Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 14/46 Unendliche Listen Konvergenz von Sequenzen Unendliche Listen Einleitung Konvergenz von Sequenzen Eigenschaften (Un)endliche Listen als Grenzwerte ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : ⊥, 1 : 2 : 3 : 4 : ⊥, ... Approximationsordnung Konvergiert gegen den Grenzwert [1 .. ] Beweis von Eigenschaften Ausprägungen ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : 4 : ⊥, 1 : 2 : 3 : 4 : 5 : 6 : ⊥, ... Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 14/46 Unendliche Listen Konvergenz von Sequenzen Unendliche Listen Einleitung Konvergenz von Sequenzen Eigenschaften (Un)endliche Listen als Grenzwerte ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : ⊥, 1 : 2 : 3 : 4 : ⊥, ... Approximationsordnung Konvergiert gegen den Grenzwert [1 .. ] Beweis von Eigenschaften Ausprägungen ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : 4 : ⊥, 1 : 2 : 3 : 4 : 5 : 6 : ⊥, ... Beispiel Unendliche Bäume Ist eine Untersequenz der obigen Sequenz Zusammenfassung Konvergiert ebenfalls gegen den Grenzwert [1 .. ] Sebastian Schröder, Philip Chinery 14/46 Unendliche Listen Konvergenz von Sequenzen Unendliche Listen Einleitung Konvergenz von Sequenzen Eigenschaften (Un)endliche Listen als Grenzwerte ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : ⊥, 1 : 2 : 3 : 4 : ⊥, ... Approximationsordnung Konvergiert gegen den Grenzwert [1 .. ] Beweis von Eigenschaften Ausprägungen ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : 4 : ⊥, 1 : 2 : 3 : 4 : 5 : 6 : ⊥, ... Beispiel Unendliche Bäume Ist eine Untersequenz der obigen Sequenz Zusammenfassung Konvergiert ebenfalls gegen den Grenzwert [1 .. ] ⊥, 1 : ⊥, 2 : 1 : ⊥, 3 : 2 : 1 : ⊥, ... Sebastian Schröder, Philip Chinery 14/46 Unendliche Listen Konvergenz von Sequenzen Unendliche Listen Einleitung Konvergenz von Sequenzen Eigenschaften (Un)endliche Listen als Grenzwerte ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : ⊥, 1 : 2 : 3 : 4 : ⊥, ... Approximationsordnung Konvergiert gegen den Grenzwert [1 .. ] Beweis von Eigenschaften Ausprägungen ⊥, 1 : 2 : ⊥, 1 : 2 : 3 : 4 : ⊥, 1 : 2 : 3 : 4 : 5 : 6 : ⊥, ... Beispiel Unendliche Bäume Ist eine Untersequenz der obigen Sequenz Zusammenfassung Konvergiert ebenfalls gegen den Grenzwert [1 .. ] ⊥, 1 : ⊥, 2 : 1 : ⊥, 3 : 2 : 1 : ⊥, ... Konvergiert gegen keinen Grenzwert Sebastian Schröder, Philip Chinery 14/46 Unendliche Listen Endliche Grenzwerte Unendliche Listen Einleitung Endliche Grenzwerte Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 15/46 Unendliche Listen Endliche Grenzwerte Unendliche Listen Einleitung Endliche Grenzwerte Eigenschaften (Un)endliche Listen als Grenzwerte Grenzwerte von Sequenzen können endlich sein Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 15/46 Unendliche Listen Endliche Grenzwerte Unendliche Listen Einleitung Endliche Grenzwerte Eigenschaften (Un)endliche Listen als Grenzwerte Grenzwerte von Sequenzen können endlich sein Approximationsordnung ⊥, 1 : ⊥, [1], [1], ... Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 15/46 Unendliche Listen Endliche Grenzwerte Unendliche Listen Einleitung Endliche Grenzwerte Eigenschaften (Un)endliche Listen als Grenzwerte Grenzwerte von Sequenzen können endlich sein Approximationsordnung ⊥, 1 : ⊥, [1], [1], ... Beweis von Eigenschaften Konvergiert gegen den Grenzwert [1] Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 15/46 Unendliche Listen Endliche Grenzwerte Unendliche Listen Einleitung Endliche Grenzwerte Eigenschaften (Un)endliche Listen als Grenzwerte Grenzwerte von Sequenzen können endlich sein Approximationsordnung ⊥, 1 : ⊥, [1], [1], ... Beweis von Eigenschaften Konvergiert gegen den Grenzwert [1] Ausprägungen Beispiel ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : ⊥, ... Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 15/46 Unendliche Listen Endliche Grenzwerte Unendliche Listen Einleitung Endliche Grenzwerte Eigenschaften (Un)endliche Listen als Grenzwerte Grenzwerte von Sequenzen können endlich sein Approximationsordnung ⊥, 1 : ⊥, [1], [1], ... Beweis von Eigenschaften Konvergiert gegen den Grenzwert [1] Ausprägungen Beispiel ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : ⊥, ... Unendliche Bäume Konvergiert gegen den Grenzwert 1 : 2 : ⊥ Zusammenfassung Sebastian Schröder, Philip Chinery 15/46 Unendliche Listen Endliche Grenzwerte Unendliche Listen Einleitung Endliche Grenzwerte Eigenschaften (Un)endliche Listen als Grenzwerte Grenzwerte von Sequenzen können endlich sein Approximationsordnung ⊥, 1 : ⊥, [1], [1], ... Beweis von Eigenschaften Konvergiert gegen den Grenzwert [1] Ausprägungen Beispiel ⊥, 1 : ⊥, 1 : 2 : ⊥, 1 : 2 : ⊥, ... Unendliche Bäume Konvergiert gegen den Grenzwert 1 : 2 : ⊥ Zusammenfassung Endliche und partielle Listen sind Grenzwerte für Sequenzen, welche nur aus einer endlichen Anzahl unterschiedlicher Elemente bestehen Sebastian Schröder, Philip Chinery 15/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Formalisierung der Eigenschaft, dass unendliche Sequenzen von partiellen Listen gegen einen Grenzwert konvergieren Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 16/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Formalisierung der Eigenschaft, dass unendliche Sequenzen von partiellen Listen gegen einen Grenzwert konvergieren Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Approximationsordnung Ausprägungen x v y (x ist eine Approximation von y) Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 16/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Formalisierung der Eigenschaft, dass unendliche Sequenzen von partiellen Listen gegen einen Grenzwert konvergieren Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Approximationsordnung Ausprägungen x v y (x ist eine Approximation von y) Beispiel Unendliche Bäume Zusammenfassung reflexiv (x v x) transitiv (x v y ∧ y v z ⇒ x v z) antisymmetrisch (x v y ∧ y v x ⇒ x = y ) Sebastian Schröder, Philip Chinery 16/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Formalisierung der Eigenschaft, dass unendliche Sequenzen von partiellen Listen gegen einen Grenzwert konvergieren Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Approximationsordnung Ausprägungen x v y (x ist eine Approximation von y) Beispiel Unendliche Bäume Zusammenfassung reflexiv (x v x) transitiv (x v y ∧ y v z ⇒ x v z) antisymmetrisch (x v y ∧ y v x ⇒ x = y ) partielle Ordnung Sebastian Schröder, Philip Chinery 16/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Eigenschaften Definition Approximationsordnung für Zahlen, Buchstaben und alle weiteren Aufzählungstypen (Un)endliche Listen als Grenzwerte Approximationsordnung x v y ≡ (x = ⊥) ∨ (x = y ) Beweis von Eigenschaften ⊥ (Bottom) approximiert jeden Wert Ausprägungen flache Ordnung Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 17/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Eigenschaften Definition Approximationsordnung für Zahlen, Buchstaben und alle weiteren Aufzählungstypen (Un)endliche Listen als Grenzwerte Approximationsordnung x v y ≡ (x = ⊥) ∨ (x = y ) Beweis von Eigenschaften ⊥ (Bottom) approximiert jeden Wert Ausprägungen flache Ordnung Beispiel Unendliche Bäume Definition Approximationsordnung für Tupel (α,β) Zusammenfassung ⊥ v (x,y ) (x,y ) v (x 0 ,y 0 ) ≡ (x v x 0 ) ∧ (y v y 0 ) keine flache Ordnung Sebastian Schröder, Philip Chinery 17/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Eigenschaften Definition Approximationsordnung für Listen [α] (Un)endliche Listen als Grenzwerte ⊥ v xs Approximationsordnung [ ] v xs ≡ xs = [ ] Beweis von Eigenschaften (x : xs) v (y : ys) ≡ (x v y ) ∧ (xs v ys) Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 18/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Eigenschaften Definition Approximationsordnung für Listen [α] (Un)endliche Listen als Grenzwerte ⊥ v xs Approximationsordnung [ ] v xs ≡ xs = [ ] Beweis von Eigenschaften (x : xs) v (y : ys) ≡ (x v y ) ∧ (xs v ys) Ausprägungen Beispiel Beispiele: Unendliche Bäume [1, ⊥, 3] v [1, 2, 3] Sebastian Schröder, Philip Chinery Zusammenfassung 18/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Eigenschaften Definition Approximationsordnung für Listen [α] (Un)endliche Listen als Grenzwerte ⊥ v xs Approximationsordnung [ ] v xs ≡ xs = [ ] Beweis von Eigenschaften (x : xs) v (y : ys) ≡ (x v y ) ∧ (xs v ys) Ausprägungen Beispiel Beispiele: Unendliche Bäume [1, ⊥, 3] v [1, 2, 3] Zusammenfassung [1, 2, ⊥] v [1, 2, 3] Sebastian Schröder, Philip Chinery 18/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Eigenschaften Definition Approximationsordnung für Listen [α] (Un)endliche Listen als Grenzwerte ⊥ v xs Approximationsordnung [ ] v xs ≡ xs = [ ] Beweis von Eigenschaften (x : xs) v (y : ys) ≡ (x v y ) ∧ (xs v ys) Ausprägungen Beispiel Beispiele: Unendliche Bäume [1, ⊥, 3] v [1, 2, 3] Zusammenfassung [1, 2, ⊥] v [1, 2, 3] Jedoch nicht: [1, 2, ⊥] v [1, ⊥, 3] Sebastian Schröder, Philip Chinery 18/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Weitere Eigenschaft von Approximationsordnungen für jeden Typen α Jede Kette von Approximationen x0 v x1 v ... hat einen Grenzwert welcher ebenfalls zu α gehört. Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 19/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Weitere Eigenschaft von Approximationsordnungen für jeden Typen α Jede Kette von Approximationen x0 v x1 v ... hat einen Grenzwert welcher ebenfalls zu α gehört. Eigenschaften des Grenzwertes limn→∞ xn (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume ∀n xn v limn→∞ xn Der Grenzwert ist eine obere Grenze für die Sequenz von Approximationen Sebastian Schröder, Philip Chinery Eigenschaften Zusammenfassung 19/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Weitere Eigenschaft von Approximationsordnungen für jeden Typen α Jede Kette von Approximationen x0 v x1 v ... hat einen Grenzwert welcher ebenfalls zu α gehört. Eigenschaften des Grenzwertes limn→∞ xn Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume ∀n xn v limn→∞ xn Der Grenzwert ist eine obere Grenze für die Sequenz von Approximationen Zusammenfassung Falls xn v y für alle n gilt, dann ist limn→∞ xn v y . Der Grenzwert ist die kleinste obere Grenze. Sebastian Schröder, Philip Chinery 19/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Haskell Funktion zur Approximationsberechnung Eigenschaften (Un)endliche Listen als Grenzwerte approx :: Integer -> [a] -> [a] approx (n+1) [ ] = [ ] approx (n+1) (x : xs) = x : approx n xs Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 20/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Haskell Funktion zur Approximationsberechnung Eigenschaften (Un)endliche Listen als Grenzwerte approx :: Integer -> [a] -> [a] approx (n+1) [ ] = [ ] approx (n+1) (x : xs) = x : approx n xs Approximationsordnung Beweis von Eigenschaften > approx 0 [1] > undefined Ausprägungen Beispiel > approx 1 [1] > 1 : undefined Unendliche Bäume Zusammenfassung > approx 2 [1] > 1 : [ ] Sebastian Schröder, Philip Chinery 20/46 Unendliche Listen Approximationsordnung Unendliche Listen Einleitung Haskell Funktion zur Approximationsberechnung Eigenschaften (Un)endliche Listen als Grenzwerte approx :: Integer -> [a] -> [a] approx (n+1) [ ] = [ ] approx (n+1) (x : xs) = x : approx n xs Approximationsordnung Beweis von Eigenschaften > approx 0 [1] > undefined Ausprägungen Beispiel > approx 1 [1] > 1 : undefined Unendliche Bäume Zusammenfassung > approx 2 [1] > 1 : [ ] Wichtige Eigenschaft limn→∞ approx n xs = xs Für alle Listen xs (endlich, partiell oder unendlich) Sebastian Schröder, Philip Chinery 20/46 Unendliche Listen Kettenvollständig (Chain Complete) Unendliche Listen Einleitung Angenommen eine Eigenschaft P(xs) gilt für alle partiellen Listen xs Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Der Grenzwert einer Kette von Approximationen xs0 , xs1 , ... (partielle Listen) ist eine unendliche Liste Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 21/46 Unendliche Listen Kettenvollständig (Chain Complete) Unendliche Listen Einleitung Angenommen eine Eigenschaft P(xs) gilt für alle partiellen Listen xs Eigenschaften (Un)endliche Listen als Grenzwerte Approximationsordnung Der Grenzwert einer Kette von Approximationen xs0 , xs1 , ... (partielle Listen) ist eine unendliche Liste Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Kettenvollständig (Chain Complete) Zusammenfassung P ist eine mathematische Zusicherung Wenn P(xs) für alle Approximationen gilt, dann gilt es auch für den Grenzwert Wenn jedoch ¬P für alle Approximationen gilt, dann muss es nicht auch für den Grenzwert gelten Sebastian Schröder, Philip Chinery 21/46 Unendliche Listen Beispiele: Kettenvollständig (Chain Complete) Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Beispiele Approximationsordnung Beweis von Eigenschaften e1 v e2 , wobei e1 , e2 Ausdrücke auf xs sind Variablen in den Ausdrücken sind allquantifiziert Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 22/46 Unendliche Listen Beispiele: Kettenvollständig (Chain Complete) Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Beispiele Approximationsordnung Beweis von Eigenschaften e1 v e2 , wobei e1 , e2 Ausdrücke auf xs sind Variablen in den Ausdrücken sind allquantifiziert Ausprägungen kettenvollständig Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 22/46 Unendliche Listen Beispiele: Kettenvollständig (Chain Complete) Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Beispiele Approximationsordnung Beweis von Eigenschaften e1 v e2 , wobei e1 , e2 Ausdrücke auf xs sind Variablen in den Ausdrücken sind allquantifiziert Ausprägungen kettenvollständig Beispiel Unendliche Bäume Zusammenfassung ∃n drop n xs = ⊥ Sebastian Schröder, Philip Chinery 22/46 Unendliche Listen Beispiele: Kettenvollständig (Chain Complete) Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Beispiele Approximationsordnung Beweis von Eigenschaften e1 v e2 , wobei e1 , e2 Ausdrücke auf xs sind Variablen in den Ausdrücken sind allquantifiziert Ausprägungen kettenvollständig Beispiel Unendliche Bäume Zusammenfassung ∃n drop n xs = ⊥ Nicht kettenvollständig Sebastian Schröder, Philip Chinery 22/46 Unendliche Listen Vollständige Induktion? Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Haskell Funktion Iterate Approximationsordnung Beweis von Eigenschaften iterate :: (a -> a) -> a -> [a] iterate f x = x : iterate f (f x) Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 23/46 Unendliche Listen Vollständige Induktion? Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Haskell Funktion Iterate Approximationsordnung Beweis von Eigenschaften iterate :: (a -> a) -> a -> [a] iterate f x = x : iterate f (f x) Ausprägungen {- Folgende Gleichungen wird dabei erfüllt: -} iterate f x = x : map f (iterate f x) {- bzw. -} iterate f (f x) = map f (iterate f x) Sebastian Schröder, Philip Chinery Beispiel Unendliche Bäume Zusammenfassung 23/46 Unendliche Listen Vollständige Induktion? Unendliche Listen Einleitung Eigenschaften (Un)endliche Listen als Grenzwerte Haskell Funktion Iterate Approximationsordnung Beweis von Eigenschaften iterate :: (a -> a) -> a -> [a] iterate f x = x : iterate f (f x) Ausprägungen {- Folgende Gleichungen wird dabei erfüllt: -} iterate f x = x : map f (iterate f x) {- bzw. -} iterate f (f x) = map f (iterate f x) Beispiel Unendliche Bäume Zusammenfassung Problem: Kein Argument vorhanden, über welchem die Induktion ausgeführt werden kann. Sebastian Schröder, Philip Chinery 23/46 Unendliche Listen Vollständige Induktion? Unendliche Listen Einleitung 1. Ansatz Eigenschaften Zwei Listen sind gleich, wenn alle Elemente an gleichen Positionen gleich sind (Un)endliche Listen als Grenzwerte xs !! n = ys !! n für alle natürlichen Zahlen n Beweis von Eigenschaften Approximationsordnung Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 24/46 Unendliche Listen Vollständige Induktion? Unendliche Listen Einleitung 1. Ansatz Eigenschaften Zwei Listen sind gleich, wenn alle Elemente an gleichen Positionen gleich sind (Un)endliche Listen als Grenzwerte xs !! n = ys !! n für alle natürlichen Zahlen n Beweis von Eigenschaften Approximationsordnung Gegenbeispiel: xs = ⊥ und ys = [⊥] Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 24/46 Unendliche Listen Vollständige Induktion? Unendliche Listen Einleitung 1. Ansatz Eigenschaften Zwei Listen sind gleich, wenn alle Elemente an gleichen Positionen gleich sind (Un)endliche Listen als Grenzwerte xs !! n = ys !! n für alle natürlichen Zahlen n Beweis von Eigenschaften Approximationsordnung Gegenbeispiel: xs = ⊥ und ys = [⊥] Ausprägungen Beispiel Unendliche Bäume Zusammenfassung 2. Ansatz Nutzung der Funktion approx mit der Eigenschaft limn→∞ approx n xs = xs Sebastian Schröder, Philip Chinery 24/46 Unendliche Listen Vollständige Induktion? Unendliche Listen Einleitung 1. Ansatz Eigenschaften Zwei Listen sind gleich, wenn alle Elemente an gleichen Positionen gleich sind (Un)endliche Listen als Grenzwerte xs !! n = ys !! n für alle natürlichen Zahlen n Beweis von Eigenschaften Approximationsordnung Gegenbeispiel: xs = ⊥ und ys = [⊥] Ausprägungen Beispiel Unendliche Bäume Zusammenfassung 2. Ansatz Nutzung der Funktion approx mit der Eigenschaft limn→∞ approx n xs = xs Somit ∀n approx n xs = approx n ys → xs = ys Und ∀n approx n xs v approx n ys → xs v ys Sebastian Schröder, Philip Chinery 24/46 Unendliche Listen Vollständige Induktion! Unendliche Listen Einleitung Vollständige Induktion über n Eigenschaften (Un)endliche Listen als Grenzwerte approx n (iterate f (f x)) = approx n (map f (iterate f x)) Approximationsordnung Beweis von Eigenschaften Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 25/46 Unendliche Listen Vollständige Induktion! Unendliche Listen Einleitung Vollständige Induktion über n Eigenschaften (Un)endliche Listen als Grenzwerte approx n (iterate f (f x)) = approx n (map f (iterate f x)) Approximationsordnung Beweis von Eigenschaften {- Induktionsvoraussetzung (n=0) -} approx 0 xs = undefined Ausprägungen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 25/46 Unendliche Listen Vollständige Induktion! Unendliche Listen Einleitung Vollständige Induktion über n Eigenschaften (Un)endliche Listen als Grenzwerte approx n (iterate f (f x)) = approx n (map f (iterate f x)) Approximationsordnung Beweis von Eigenschaften {- Induktionsvoraussetzung (n=0) -} approx 0 xs = undefined Ausprägungen {- Induktionsschritt (n = n+1) -} {- Linke Seite der Gleichung -} approx (n+1) (iterate f (f x)) Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 25/46 Unendliche Listen Vollständige Induktion! Unendliche Listen Einleitung Vollständige Induktion über n Eigenschaften (Un)endliche Listen als Grenzwerte approx n (iterate f (f x)) = approx n (map f (iterate f x)) Approximationsordnung Beweis von Eigenschaften {- Induktionsvoraussetzung (n=0) -} approx 0 xs = undefined Ausprägungen {- Induktionsschritt (n = n+1) -} {- Linke Seite der Gleichung -} approx (n+1) (iterate f (f x)) Beispiel Unendliche Bäume Zusammenfassung {- Definition iterate -} approx (n+1) (f x : iterate f (f (f x))) Sebastian Schröder, Philip Chinery 25/46 Unendliche Listen Vollständige Induktion! Unendliche Listen Einleitung Vollständige Induktion über n Eigenschaften (Un)endliche Listen als Grenzwerte approx n (iterate f (f x)) = approx n (map f (iterate f x)) Approximationsordnung Beweis von Eigenschaften {- Induktionsvoraussetzung (n=0) -} approx 0 xs = undefined Ausprägungen {- Induktionsschritt (n = n+1) -} {- Linke Seite der Gleichung -} approx (n+1) (iterate f (f x)) Beispiel Unendliche Bäume Zusammenfassung {- Definition iterate -} approx (n+1) (f x : iterate f (f (f x))) {- Definition approx -} f x : approx n (iterate f (f (f x))) Sebastian Schröder, Philip Chinery 25/46 Unendliche Listen Vollständige Induktion! Unendliche Listen Einleitung Vollständige Induktion über n Eigenschaften (Un)endliche Listen als Grenzwerte approx n (iterate f (f x)) = approx n (map f (iterate f x)) Approximationsordnung Beweis von Eigenschaften {- Induktionsvoraussetzung (n=0) -} approx 0 xs = undefined Ausprägungen {- Induktionsschritt (n = n+1) -} {- Linke Seite der Gleichung -} approx (n+1) (iterate f (f x)) Beispiel Unendliche Bäume Zusammenfassung {- Definition iterate -} approx (n+1) (f x : iterate f (f (f x))) {- Definition approx -} f x : approx n (iterate f (f (f x))) {- Induktionsannahme -} f x : approx n (map f (iterate f (f x))) Sebastian Schröder, Philip Chinery 25/46 Unendliche Listen Vollständige Induktion! Unendliche Listen Einleitung Vollständige Induktion über n Eigenschaften (Un)endliche Listen als Grenzwerte approx n (iterate f (f x)) = approx n (map f (iterate f x)) Approximationsordnung Beweis von Eigenschaften {- Induktionsvoraussetzung (n=0) -} approx 0 xs = undefined Ausprägungen {- Induktionsschritt (n = n+1) -} {- Rechte Seite der Gleichung -} approx (n+1) (map f (iterate f x)) Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 26/46 Unendliche Listen Vollständige Induktion! Unendliche Listen Einleitung Vollständige Induktion über n Eigenschaften (Un)endliche Listen als Grenzwerte approx n (iterate f (f x)) = approx n (map f (iterate f x)) Approximationsordnung Beweis von Eigenschaften {- Induktionsvoraussetzung (n=0) -} approx 0 xs = undefined Ausprägungen {- Induktionsschritt (n = n+1) -} {- Rechte Seite der Gleichung -} approx (n+1) (map f (iterate f x)) Beispiel Unendliche Bäume Zusammenfassung {- Definition iterate -} approx (n+1) (map f (x : iterate f (f x))) Sebastian Schröder, Philip Chinery 26/46 Unendliche Listen Vollständige Induktion! Unendliche Listen Einleitung Vollständige Induktion über n Eigenschaften (Un)endliche Listen als Grenzwerte approx n (iterate f (f x)) = approx n (map f (iterate f x)) Approximationsordnung Beweis von Eigenschaften {- Induktionsvoraussetzung (n=0) -} approx 0 xs = undefined Ausprägungen {- Induktionsschritt (n = n+1) -} {- Rechte Seite der Gleichung -} approx (n+1) (map f (iterate f x)) Beispiel Unendliche Bäume Zusammenfassung {- Definition iterate -} approx (n+1) (map f (x : iterate f (f x))) {- Definition map -} approx (n+1) (f x : map f (iterate f (f x))) Sebastian Schröder, Philip Chinery 26/46 Unendliche Listen Vollständige Induktion! Unendliche Listen Einleitung Vollständige Induktion über n Eigenschaften (Un)endliche Listen als Grenzwerte approx n (iterate f (f x)) = approx n (map f (iterate f x)) Approximationsordnung Beweis von Eigenschaften {- Induktionsvoraussetzung (n=0) -} approx 0 xs = undefined Ausprägungen {- Induktionsschritt (n = n+1) -} {- Rechte Seite der Gleichung -} approx (n+1) (map f (iterate f x)) Beispiel Unendliche Bäume Zusammenfassung {- Definition iterate -} approx (n+1) (map f (x : iterate f (f x))) {- Definition map -} approx (n+1) (f x : map f (iterate f (f x))) {- Definition approx -} f x : approx n (map f (iterate f (f x))) Sebastian Schröder, Philip Chinery 26/46 Unendliche Listen Agenda Unendliche Listen Einleitung 1 Einleitung Eigenschaften Ausprägungen 2 Unendliche Strukturen Eigenschaften Zyklische Strukturen Beispiel 3 Ausprägungen Unendliche Strukturen Zyklische Strukturen 4 Beispiel 5 Unendliche Bäume 6 Zusammenfassung Sebastian Schröder, Philip Chinery Unendliche Bäume Zusammenfassung 27/46 Unendliche Listen Unendliche Strukturen Unendliche Listen Einleitung Funktion Repeat Eigenschaften Ausprägungen repeat :: a -> [a] repeat x = x : repeat x Unendliche Strukturen Zyklische Strukturen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 28/46 Unendliche Listen Unendliche Strukturen Unendliche Listen Einleitung Funktion Repeat Eigenschaften Ausprägungen repeat :: a -> [a] repeat x = x : repeat x Unendliche Strukturen Zyklische Strukturen Beispiel Funktion Iterate Unendliche Bäume Zusammenfassung iterate :: (a -> a) -> a -> [a] iterate f x = x : map f (iterate f x) Sebastian Schröder, Philip Chinery 28/46 Unendliche Listen Unendliche Strukturen Unendliche Listen Einleitung Funktion Repeat Eigenschaften Ausprägungen repeat :: a -> [a] repeat x = x : repeat x Unendliche Strukturen Zyklische Strukturen Beispiel Funktion Iterate Unendliche Bäume Zusammenfassung iterate :: (a -> a) -> a -> [a] iterate f x = x : map f (iterate f x) Probleme: Keine Möglichkeit der Darstellung als zyklischen Graphen im Auswerter Sebastian Schröder, Philip Chinery 28/46 Unendliche Listen Unendliche Strukturen Unendliche Listen Einleitung Funktion Repeat Eigenschaften Ausprägungen repeat :: a -> [a] repeat x = x : repeat x Unendliche Strukturen Zyklische Strukturen Beispiel Funktion Iterate Unendliche Bäume Zusammenfassung iterate :: (a -> a) -> a -> [a] iterate f x = x : map f (iterate f x) Probleme: Keine Möglichkeit der Darstellung als zyklischen Graphen im Auswerter Laufzeit kann durch unendliche Definition negativ beeinflusst werden Sebastian Schröder, Philip Chinery 28/46 Unendliche Listen Unendliche Strukturen Unendliche Listen Einleitung Eigenschaften Beispiel für Darstellung im Auswerter Ausprägungen Unendliche Strukturen repeat 1 > 1 : 1 : 1 : 1 : repeat 1 Zyklische Strukturen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 29/46 Unendliche Listen Unendliche Strukturen Unendliche Listen Einleitung Eigenschaften Beispiel für Darstellung im Auswerter Ausprägungen Unendliche Strukturen repeat 1 > 1 : 1 : 1 : 1 : repeat 1 Zyklische Strukturen Beispiel Unendliche Bäume Beispiel für Laufzeitauswirkungen Zusammenfassung iterate (2x) 1 > 1 : map (2x) (iterate (2x) 1) > 1 : 2 : map (2x) (map (2x) (iterate (2x) 1)) > 1 : 2 : 4 : map (2x) (map (2x) (map (2x) (iterate (2x) 1))) Sebastian Schröder, Philip Chinery 29/46 Unendliche Listen Unendliche Strukturen Unendliche Listen Einleitung Eigenschaften Beispiel für Darstellung im Auswerter Ausprägungen Unendliche Strukturen repeat 1 > 1 : 1 : 1 : 1 : repeat 1 Zyklische Strukturen Beispiel Unendliche Bäume Beispiel für Laufzeitauswirkungen Zusammenfassung iterate (2x) 1 > 1 : map (2x) (iterate (2x) 1) > 1 : 2 : map (2x) (map (2x) (iterate (2x) 1)) > 1 : 2 : 4 : map (2x) (map (2x) (map (2x) (iterate (2x) 1))) Laufzeit: O(n2 ) Sebastian Schröder, Philip Chinery 29/46 Unendliche Listen Zyklische Strukturen Unendliche Listen Einleitung Eigenschaften Ausprägungen Unendliche Strukturen Zyklische Strukturen Datenstruktur ones Beispiel Unendliche Bäume ones :: [Integer] ones = 1 : ones Sebastian Schröder, Philip Chinery Zusammenfassung 30/46 Unendliche Listen Zyklische Strukturen Unendliche Listen Einleitung Eigenschaften Ausprägungen Unendliche Strukturen Zyklische Strukturen Datenstruktur ones Beispiel Unendliche Bäume ones :: [Integer] ones = 1 : ones Zusammenfassung Darstellung im Auswerter Sebastian Schröder, Philip Chinery 30/46 Unendliche Listen Zyklische Strukturen Unendliche Listen Einleitung Eigenschaften Funktion Iterate Ausprägungen Unendliche Strukturen iterate :: (a -> a) -> a -> [a] iterate f x = xs where xs = x : map f xs Zyklische Strukturen Beispiel Unendliche Bäume Zusammenfassung Sebastian Schröder, Philip Chinery 31/46 Unendliche Listen Zyklische Strukturen Unendliche Listen Einleitung Eigenschaften Funktion Iterate Ausprägungen Unendliche Strukturen iterate :: (a -> a) -> a -> [a] iterate f x = xs where xs = x : map f xs Zyklische Strukturen Beispiel Unendliche Bäume Laufzeitauswirkungen iterate (2x) 1 Sebastian Schröder, Philip Chinery Zusammenfassung 31/46 Unendliche Listen Zyklische Strukturen Unendliche Listen Einleitung Eigenschaften Funktion Iterate Ausprägungen Unendliche Strukturen iterate :: (a -> a) -> a -> [a] iterate f x = xs where xs = x : map f xs Zyklische Strukturen Beispiel Unendliche Bäume Laufzeitauswirkungen iterate (2x) 1 Zusammenfassung Laufzeit: O(n) Sebastian Schröder, Philip Chinery 31/46 Unendliche Listen Agenda Unendliche Listen Einleitung 1 Eigenschaften Einleitung Ausprägungen Beispiel 2 Eigenschaften Unendliche Bäume Zusammenfassung 3 Ausprägungen 4 Beispiel 5 Unendliche Bäume 6 Zusammenfassung Sebastian Schröder, Philip Chinery 32/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Ausprägungen Algorithmus Beispiel Füge alle Zahlen größer 1 in das Sieb ein. Unendliche Bäume Setze p auf die erste nicht gestrichene Zahl. Zusammenfassung Streiche alle Zahlen durch, die Vielfache von p sind. Setze p gleich der nächsten nicht durchgestrichenen Zahl. Weiter mit Schritt 2 Sebastian Schröder, Philip Chinery 33/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Ausprägungen Beispiel Umsetzung in Haskell Unendliche Bäume Füge alle Zahlen größer 1 in das Sieb ein. Sebastian Schröder, Philip Chinery Zusammenfassung 34/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Ausprägungen Beispiel Umsetzung in Haskell Unendliche Bäume Füge alle Zahlen größer 1 in das Sieb ein. Zusammenfassung Und dann? Sebastian Schröder, Philip Chinery 34/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Ausprägungen Beispiel Umsetzung in Haskell Unendliche Bäume Füge alle Zahlen größer 1 in das Sieb ein. Zusammenfassung Und dann? Direkte Übertragung nicht möglich Geeignete Implementierung nötig Sebastian Schröder, Philip Chinery 34/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Umsetzung in Haskell (2. Versuch) Ausprägungen Nehme die Liste [2..] Beispiel Unendliche Bäume Erzeuge die Liste, die vielfache des ersten Elements nicht enthält Zusammenfassung Das erste Element ist eine Primzahl und wird in die Ergebnisliste eingefügt Rekursiver Aufruf mit der neuen Liste Sebastian Schröder, Philip Chinery 35/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Umsetzung in Haskell (2. Versuch) Ausprägungen Nehme die Liste [2..] Beispiel Unendliche Bäume Erzeuge die Liste, die vielfache des ersten Elements nicht enthält Zusammenfassung Das erste Element ist eine Primzahl und wird in die Ergebnisliste eingefügt Rekursiver Aufruf mit der neuen Liste Geht das? Sebastian Schröder, Philip Chinery 35/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Umsetzung in Haskell (2. Versuch) Ausprägungen Nehme die Liste [2..] Beispiel Unendliche Bäume Erzeuge die Liste, die vielfache des ersten Elements nicht enthält Zusammenfassung Das erste Element ist eine Primzahl und wird in die Ergebnisliste eingefügt Rekursiver Aufruf mit der neuen Liste Geht das? Ja, wenn man es geschickt macht Sebastian Schröder, Philip Chinery 35/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Ausprägungen Beispiel Unendliche Bäume Primzahlen Zusammenfassung primes :: [Integer] primes = sieve [2..] where sieve (p:xs) = p : sieve [x|x <- xs, x ‘mod‘ p > 0] Sebastian Schröder, Philip Chinery 36/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Analyse der Arbeitsschritte Ein Element der Liste abrufen (p) O(n2 ) Ausprägungen Beispiel Primzahllücke ist O(n) Wegen Bedarfsauswertung muss die Berechnung auf jeder Rekusionsebene vorgenommen werden, also auf O(n) Ebenen Unendliche Bäume Zusammenfassung Aufstellen der Liste ohne Vielfache von p (O(1)) Sebastian Schröder, Philip Chinery 37/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Analyse der Arbeitsschritte Ein Element der Liste abrufen (p) O(n2 ) Ausprägungen Beispiel Primzahllücke ist O(n) Wegen Bedarfsauswertung muss die Berechnung auf jeder Rekusionsebene vorgenommen werden, also auf O(n) Ebenen Unendliche Bäume Zusammenfassung Aufstellen der Liste ohne Vielfache von p (O(1)) Wir sind etwas großzügig; beweisbar: O(n ∗ (logn) ∗ (loglogn)) Sebastian Schröder, Philip Chinery 37/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Analyse der Arbeitsschritte Ein Element der Liste abrufen (p) O(n2 ) Ausprägungen Beispiel Primzahllücke ist O(n) Wegen Bedarfsauswertung muss die Berechnung auf jeder Rekusionsebene vorgenommen werden, also auf O(n) Ebenen Unendliche Bäume Zusammenfassung Aufstellen der Liste ohne Vielfache von p (O(1)) Wir sind etwas großzügig; beweisbar: O(n ∗ (logn) ∗ (loglogn)) | zu Hause ;-) Sebastian Schröder, Philip Chinery 37/46 Unendliche Listen Das Sieb des Eratosthenes Unendliche Listen Einleitung Eigenschaften Ausprägungen Beispiel Erkenntnisse Unendliche Bäume Unendliche Listen lassen sich leicht definieren Zusammenfassung Verarbeitung kann effizient erfolgen Kann intuitiv formuliert werden Komplexitätsanalyse funktioniert anders bei Bedarfsauswertung Sebastian Schröder, Philip Chinery 38/46 Unendliche Listen Agenda Unendliche Listen Einleitung 1 Eigenschaften Einleitung Ausprägungen Beispiel 2 Eigenschaften Unendliche Bäume Zusammenfassung 3 Ausprägungen 4 Beispiel 5 Unendliche Bäume 6 Zusammenfassung Sebastian Schröder, Philip Chinery 39/46 Unendliche Listen Unendliche Bäume Unendliche Listen Einleitung Ausprägungen Bäume mit unendlicher Tiefe Eigenschaften Ausprägungen Feste Anzahl Kinder pro Knoten Maximale Anzahl Kinder pro Knoten Beispiel Unendliche Bäume Bäume mit unendlicher Breite Zusammenfassung Unendlich viele Kinder pro Knoten Endliche Tiefe Bäume mit unendlicher Breite und Tiefe Unendlich viele Kinder pro Knoten Unendliche Tiefe Verallgemeinerungen (Unechte Bäume) Kreise Schlingen Mehrfachkanten Sebastian Schröder, Philip Chinery 40/46 Unendliche Listen Verarbeitung unendlicher Bäume Unendliche Listen Einleitung Eigenschaften Ausprägungen Beispiel Verarbeitung Unendliche Bäume Vollständige Verarbeitung nicht möglich Zusammenfassung Verarbeitungsstrategien für große Bäume können (weitgehend) übernommen werden => Terminieren ohne zusätzliche Abbruchbedingungen nicht zwangsläufig Sebastian Schröder, Philip Chinery 41/46 Unendliche Listen Verarbeitung unendlicher Bäume Unendliche Listen Einleitung Eigenschaften Ausprägungen Strategien Breitensuche (breadth-first) Beispiel Unendliche Bäume Für unendliche tiefe Bäume Zusammenfassung Tiefensuche (depth-first) Für unendliche breite Bäume Bäume mit unendlicher Breite und Tiefe Erfordern mehr Vorsicht Konzept der Breitensuche verfeinern Schrittweise Breite und Tiefe ausweiten Sebastian Schröder, Philip Chinery 42/46 Unendliche Listen Unendlicher Bäume in der realen Welt Unendliche Listen Einleitung Eigenschaften Ausprägungen Vorkommen Beispiel Unendliche Bäume Entscheidungsbäume Zusammenfassung Landkarte auf einer Kugel Präfixbaum über alle möglichen Sätze Sebastian Schröder, Philip Chinery 43/46 Unendliche Listen Unendlicher Bäume in der realen Welt Unendliche Listen Einleitung Eigenschaften Ausprägungen Vorkommen Beispiel Unendliche Bäume Entscheidungsbäume Zusammenfassung Landkarte auf einer Kugel Präfixbaum über alle möglichen Sätze Das vollständige vorhandene und zukünftige niedergeschriebene Wissen der Welt in einer Datenstruktur von wenigen Byte Sebastian Schröder, Philip Chinery 43/46 Unendliche Listen Agenda Unendliche Listen Einleitung 1 Eigenschaften Einleitung Ausprägungen Beispiel 2 Eigenschaften Unendliche Bäume Zusammenfassung 3 Ausprägungen 4 Beispiel 5 Unendliche Bäume 6 Zusammenfassung Sebastian Schröder, Philip Chinery 44/46 Unendliche Listen Zusammenfassung Unendliche Listen Einleitung Eigenschaften Ausprägungen Beispiel Unendliche Bäume Unendliche Listen Zusammenfassung Erfordern etwas Eingewöhnung Können intuitiv Probleme Abbilden Erfordern Bedarfsauswertung Sebastian Schröder, Philip Chinery 45/46 Unendliche Listen Fragen? Unendliche Listen Einleitung Eigenschaften Ausprägungen Beispiel Unendliche Bäume Vielen Dank für die Aufmerksamkeit! Zusammenfassung Und vielen Dank an alle Beteiligten (Christoph und Thomas, Prof. Hoffmann, Alex Treptow, Till Tantau) für die LATEX-Vorlage Sebastian Schröder, Philip Chinery 46/46 Unendliche Listen