Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
|
|
- Hartmut Otto
- vor 6 Jahren
- Abrufe
Transkript
1 Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen zu lernen, wie man systematisch die Effizienz eines Algorithmus A bestimmt Ansatz: Bestimmen einer Funktion g, die das Laufzeitwachstum T(n) des Algorithmus A anhängig von den (sehr großen) Eingaben bestimmt: logarithmisch, linear, quadratisch,.. Vorgehen: RAM-Modell, Abstraktion von konkretem Rechner Bestimmen (grob) der Anzahl der Berechnungsschritte bei Eingabe n Beschreiben des Wachstumsverhaltens mittels Abschätzungen: Landau-Funktionen: T(n) = Ө(g), T(n) = O(g), z.b. T(n) = O(n) Kapitel 4: Grundlagen des Algorithmen-Entwurfs Entwurfsprinzipien: Iteration, Teile&Herrsche, Rekursion Rekursion: Beispiel Fakultätsfunktion: fac(n) = n! Frage: Effizienz? AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 1
2 4.3 Analyse von ausgewählten Algorithmen Beispiel: Berechnung der Fakultät Zur Erinnerung: f(n) = n! = n (n 1) (n 2) Rekursives Programm fact(n) Analyse der Laufzeit T(n): Anweisungen 1 und 2 benötigen O(1). Anweisung 3 benötigt O(1) + T(n-1). D.h mit Konstanten c und d ergibt sich: function fact(n) % Berechnung der Fakultaet 1 if n<=1 2 fact = 1; else 3 fact = n*fact(n-1); end ( )= c+t(n-1) n>1 T n d n=1 AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 2
3 Laufzeitanalyse der Fakultätsfunktion (Forts.) mit n > 2 kann T(n-1) entwickelt werden und somit also T(n-1) = c + T(n-2) if n>2 T(n) = c + T(n-1) = c + c +T(n-2) = 2 c + T(n-2) if n>2 T(n) = 3 c + T(n-3) if n>3 und T(n) = i c + T(n-i) wenn i = n-1 if n>i T(n) = (n-1) c + T(1) = (n-1) c + d, d.h. T(n) = Ο(n) AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 3
4 Beispiel: Effiziente Multiplikation Aufgabe: Berechnung des Produktes x y Ansatz 1: Berechnung durch x-fache Addition der Zahl y Erforderlich sind O(x) Additionen Beispiel: x = x 0 ; y = y 0 ; z = 0; while x > 0, z = z + y; x = x 1; AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 4
5 Aufgabe: Berechnung des Produktes x y Ansatz 2: Links Shift : Multiplikation mit Faktor 2 Rechts Shift: Division durch 2 Beispiel: 4*5 x = x 0 ; y = y 0 ; z = 0; While x > 0, if odd(x) { z = z + y; x = x 1; } x = x/2; y = 2*y; AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 5
6 Aufgabe: Berechnung des Produktes x y Ansatz 2: Links Shift Multiplikation mit Faktor 2 Rechts Shift Division durch 2 Laufzeitverhalten T(n) = O(log x) D.h. Reduktion der Zeitkomplexität von O(x) auf O(log x) x = x 0 ; y = y 0 ; z = 0; While x > 0, { if odd(x) { z = z + y; x = x 1; } x = x/2; y = 2*y; } AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 6
7 Zahlenbeispiel x = x 0 ; x = 9, y = 17, y z = = y 0 0 ; z = =17; x = 9 1 = 8; z = 0; x = 8/2 = 4; y = 2*17 = 34; While x > 0, { x = 4/2 = 2; y = 2*34 = 68; if odd(x) { x = 2/2 = 1; y = 2*68 = 136; z = z + y; z = = 153; x = 1 1 = 0; x = x 1; } x = x/2; O(log x) Additionen y = 2*y; } AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 7
8 Von Folie 12 hierher verschoben Technische Universität München Beispiel: Fibonacci-Reihe Bildungsgesetz mit rekursiver Berechnung f 1 = f 2 = 1 f k = f k-1 + f k-2 für k > 2 Rekursive Berechnung: F = Fib( k ) % Rekursive Berechnung der % k ten Fibonacci Zahl if (k=1 or k=2), F = 1; else F = Fib(k 1) + Fib(k 2); 3 Operationen T rek (k-1) T rek (k-2) AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 8
9 Beispiel: k= 8 Technische Universität München AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 9
10 Erkenntnis: Technische Universität München AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 10
11 Fibonacci-Zahlen: gehen zurück auf Leonardo von Pisa (1175) z.b. Bestimmung der Nachkommenschaft eines Kaninchenpaares Jedes Kaninchen wird im Alter von 2 Monaten gebärfähig Jedes Paar bringt von da an ein Paar Kaninchen pro Monat zur Welt Monatliche Entwicklung der Anzahl der Kaninchenpaare: Fibonacci Zahlen 1. Monat 2. Monat 3. Monat 4. Monat 5. Monat 6. Monat Nicht gebärfähig gebärfähig AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 11
12 Beispiel: Laufzeitanalyse Fibonacci-Zahl-Berechnung Wiederholung: Berechnung f 1 = f 2 = 1, f k = f k-1 + f k-2 für k > 2 Laufzeitanalyse: Berechnung der k-ten Fibonacci-Zahl Wiederholung: Beispiel k=8 für Berechnungsansatz: AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 12
13 Laufzeitanalyse: Berechnung der k-ten Fibonacci-Zahl Berechnung f 1 = f 2 = 1, f k = f k-1 + f k-2 für k > 2 T rek (1) = T rek (2) = 0 T(k) = T rek (k 1) + T rek (k 2) + 3, k 3 T rek (k) + 3 = T rek (k 1) + T rek (k 2) Sei: D(k) = T rek (k) + 3 Neue Rekursionsgleichung D(1) = D(2) = 3 (Rekursionsbeginn) D(k) = D(k 1) + D(k 2), k 3 F = Fib( k ) % Rekursive Berechnung der % k ten Fibonacci Zahl if (k=1 or k=2), F = 1; else F = Fib(k 1) + Fib(k 2); AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 13
14 Rekursive Berechnung der k-ten Fibonacci Zahl erfordert T rek ( k ) = D(k) 3 = 3 (f k 1) Abschätzung für die k te Fibonacci Zahl Operationen k -1 2 k 2 f k k N, k > 2 : 2 2 Die Laufzeit für die Berechnung ist O(2 k ), d.h. exponentieller Rechenaufwand für die rekursive Berechnung der k ten Fibonacci Zahl f k. Für k = 100, sind mehr als Operationen erforderlich. Abschätzung unter Annahme von 1 ns pro Operation liefert über eine Woche Rechenzeit als untere Schranke. Tatsächlich sind es mehr als 8000 Jahre! AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 14
15 Fazit: Die Entwurfsentscheidung, Rekursion zu verwenden, ist schlecht! Begründung: Rekursive Berechnung von f k-1 ist extrem ineffizient! Exponentielles Wachstum der Rechenzeit, denn durch die Rekursion werden die Teilprobleme f k-1 und f k-2 unabhängig voneinander berechnet. Es ist aber effizienter zur Berechnung von f k-1 auf das Ergebnis von f k-2 und f k-3 zurückzugreifen. Eine effizientere Lösung des Problems lässt sich iterativ erreichen. AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 15
16 Iterative Berechnung der Fibonacci-Zahlen Technische Universität München Idee: Addition der 2 jeweils vorhergehenden Zahlen Einfache Realisierung Beispiel k=8 F = Fibonacci( k ) % iterative Berechnung der % k ten Fibonacci Zahl if (k=1 or k=2), F = 1; else { F = 1; G = 1; for i=3 to k Temp = F + G; G = F; F = Temp; } AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 16
17 Abschätzen der Komplexität: Zählen der Anweisungen F = Fibonacci( k ) % iterative Berechnung der % k ten Fibonacci Zahl if (k=1 or k=2), F = 1; else { F = 1; G = 1; for i=3 to k Temp = F + G; G = F; F = Temp; } AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 17
18 Laufzeitanalyse der iterativen Berechnung T iter (1) = T iter (2) = 0 T iter (k) = 3 + T iter (k 1), k 3 Rekursionsgleichung T iter (k) = T iter (k 1) + 3 = T iter (k 2) = = T iter (k i) + 3 i, bis i = k 2 = T iter (k (k 2)) + 3 (k 2), mit T iter (2) = 0 T iter (k) = 3 (k 2) Der Rechenaufwand für die iterative Berechnung der k ten Fibonacci Zahl hat lineare Komplexität O(k). Beispiel: Berechnung von f in einer Sekunde bei 1 µs Rechenzeit pro Operation. AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 18
19
20 4.4 Induktion Motivation: Die Beweistechnik des Schließens mittels vollständiger Induktion wird vielfach benötigt, z.b. für Laufzeitanalysen Definition: Induktion bzw. induktives Schließen bezeichnet in der Logik und den Naturwissenschaften das Schließen vom Besonderen auf das Allgemeine zum Zweck des Erkenntnisgewinns. Bem.: bei der Rekursion wird ein Problem durch Abbildung auf Teilprobleme gelöst, während bei der Induktion der umgekehrte Weg gegangen wird. AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 20
21 Vollständige Induktion wird in der Mathematik angewandt, um Aussagen nicht nur für endliche Mengen, sondern auch für unendliche Mengen (z.b. die Menge der natürlichen Zahlen) treffen zu können. Allgemeines Vorgehen: Induktions-Prinzip: Zunächst wird gezeigt, dass die Aussage A für ein festes n (in der Regel n=0 bzw. n=1) gilt (Induktionsanfang). Nun muss noch gezeigt werden, dass wenn für alle Zahlen x n die Aussage A(x) gilt, die Aussage auch für A(n+1) gilt. (Induktionsschritt) AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 21
22 Induktionsbeweis zum Beweis einer Annahme: 1. Induktionsanfang 2. Induktionsvoraussetzung 3. Induktionsschritt 4. Induktionsschluss Beispiel 1: Zu beweisende Aussage: Induktionsanfang: n=0 Induktionsschritt: n n+1: AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 22
23 Beispiel 2: Summe der Quadratzahlen Zu beweisende Aussage: Induktionsanfang: n=0 Induktionsschritt: n n+1: AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 23
24 Wichtige Anwendung der Induktion: Terminierungsbeweise Definition Terminierung: Ein Algorithmus muss für alle zulässigen Eingabeparameter in endlich vielen Schritten eine Lösung finden. Zum Beweis der Terminierung von rekursiven Funktionen kann die Induktion verwendet werden. Zum Beweis werden so genannte Abstiegsfunktionen verwendet. AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 24
25 Beweis der Terminierung durch Abstiegsfunktionen Eine Abstiegsfunktion g bildet die Menge der Eingabeparameter einer vorgelegten Funktion f auf eine natürliche Zahl ab. Wahl der Abstiegsfunktion: sie gibt eine obere Grenze für die Anzahl der rekursiven Aufrufe (Aufruftiefe) an. Es muss gezeigt werden, dass die Funktion f für alle Aufrufe mit Parametern, die auf einen Minimalwert (typischerweise 0 oder 1) abgebildet werden, sofort terminiert. Kann für die gewählte Abstiegsfunktion g bewiesen werden, dass für jeden Aufruf der Wert der Abstiegsfunktion abnimmt und durch den Minimalwert nach unten begrenzt ist, so ist damit auch die Terminierung bewiesen. AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 25
26 Beweis der Terminierung durch Induktion Technische Universität München 1. Induktionsanfang: Terminierung muss für das Minimum der Abstiegsfunktion bei Anwendung auf die zulässigen Argumente (typischerweise 0 oder 1) nachgewiesen werden. 2. Induktionsannahme: Die Terminierung sei für alle Aufrufe mit Argumenten, für die die Abstiegsfunktion einen Wert kleiner gleich n annimmt, nachgewiesen. 3. Induktionsschritt: Aufrufe mit Argumenten, für die die Abstiegsfunktion den Wert n+1 annimmt. Nachzuweisen ist, dass innerhalb dieser Aufrufe nur rekursive Aufrufe mit Argumenten arg auftreten, für die gilt: f(arg) n. Laut Induktionsannahme terminieren aber diese Aufrufe. AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 26
27 4. Induktionsschluss: Die Funktion terminiert auch für Aufrufe mit Argumenten bei denen die Abstiegsfunktion den Wert n+1 annimmt. Somit terminiert die Funktion für alle Aufrufe. Beispiel: Terminierung der Summe Abstiegsfunktion f(n) = n zz: sum(arg) terminiert sofort, oder für alle rekursiven Unteraufrufe mit den Argumenten arg gilt: f(arg) > f(arg ) Induktionsanfang: n = 0, d.h. arg=0, d.h. f(0) = 0 Induktionsannahme: function sum(n) if n =0 then 0 else n= n+ sum(n-1) Induktionsschritt: n n+1 zz f(arg) = n+1, falls arg=n+1 Es gilt: AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 27
28 Beispiel: g=fac(n) AuD, Kapitel 4 Algorithmenentwurf, WS10/11, C. Eckert 28
Übung zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrLösungsvorschlag Serie 2 Rekursion
(/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma
MehrDiskrete Strukturen Kapitel 2: Grundlagen (Beweise)
WS 2014/15 Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_14
MehrFachwissenschaftliche Grundlagen
Fachwissenschaftliche Grundlagen Vorlesung im Wintersemester 2011/2012, Universität Landau Roland Gunesch 8. Vorlesung Roland Gunesch (Mathematik) Fachwissenschaftliche Grundlagen 8. Vorlesung 1 / 25 Themen
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Ziel Angabe der Effizienz eines Algorithmus unabhängig von Rechner, Programmiersprache, Compiler. Page 1 Eingabegröße n n Integer, charakterisiert die Größe einer Eingabe, die
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Rekursion Rekursion Neue Denkweise Wikipedia: Als Rekursion bezeichnet man den Aufruf
Mehr1 Das Prinzip der vollständigen Induktion
1 1 Das Prinzip der vollständigen Induktion 1.1 Etwas Logik Wir nennen eine Formel oder einen Satz der Alltagssprache eine Aussage, wenn sie wahr oder falsch sein kann. Die Formeln 2 = 3, 2 4, 5 5 sind
MehrInduktion und Rekursion
Induktion und Rekursion Induktion und Rekursion Vorkurs Informatik Theoretischer Teil WS 013/14. Oktober 013 Vorkurs Informatik WS 013/14 1/1 Vollständige Induktion Vorkurs Informatik WS 013/14 /1 Ziel
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
MehrÜbersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.
Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
Mehr3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen
3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen Sortierproblem Eingabe: Folge von n natürlichen Zahlen a 1, a 2,, a n, die Folge
MehrProf. Dr. Margarita Esponda
Die O-Notation Analyse von Algorithmen Die O-Notation Prof. Dr. Margarita Esponda Freie Universität Berlin ALP II: Margarita Esponda, 5. Vorlesung, 26.4.2012 1 Die O-Notation Analyse von Algorithmen Korrektheit
MehrInduktion und Rekursion
Mathematische Beweistechniken Vorkurs Informatik SoSe13 10. April 013 Mathematische Beweistechniken Ziel Mathematische Beweistechniken Ziel beweise, dass eine Aussage A(n) für alle n N gilt. Beispiel Für
Mehr2. Algorithmenbegriff
2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen
Mehr... direkte Umsetzung in Scheme. Prozeduren und von ihnen erzeugte Prozesse Gültigkeitsbereiche und Rekursion
Prozeduren und von ihnen erzeugte Prozesse Gültigkeitsbereiche und Rekursion Stand: Wir kennen Elementare ( primitive ) Operationen Kombination dieser Operationen Abstraktion zusammengesetzter Operationen
MehrKapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler
Mehr11. Rekursion, Komplexität von Algorithmen
11. Rekursion, Komplexität von Algorithmen Teil 2 Java-Beispiele: Power1.java Hanoi.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 23. Nov. 2015 Anwendung der Rekursion Rekursiv
MehrKapitel III. Aufbau des Zahlensystems
Kapitel III. Aufbau des Zahlensystems 1 Addition und Multiplikation natürlicher Zahlen Wir wollen erklären, wie man natürliche Zahlen addiert und multipliziert und dabei nur den Begriff das Zählens verwenden.
MehrInformatik I: Einführung in die Programmierung
Informatik I: Einführung in die Programmierung 7. Albert-Ludwigs-Universität Freiburg Bernhard Nebel 31. Oktober 2014 1 31. Oktober 2014 B. Nebel Info I 3 / 20 Um zu, muss man zuerst einmal. Abb. in Public
MehrNumerische Verfahren und Grundlagen der Analysis
Numerische Verfahren und Grundlagen der Analysis Rasa Steuding Hochschule RheinMain Wiesbaden Wintersemester 2011/12 R. Steuding (HS-RM) NumAna Wintersemester 2011/12 1 / 16 4. Groß-O R. Steuding (HS-RM)
MehrTheoretische Informatik SS 03 Übung 3
Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrEinführung in die Informatik I
Einführung in die Informatik I Fortgeschrittene Rekursion Prof. Dr. Nikolaus Wulff Problematische Rekursion Mittels Rekursion lassen sich Spezifikationen recht elegant und einfach implementieren. Leider
Mehr3. rekursive Definition einer Folge
3. rekursive Definition einer Folge In vielen Fällen ist eine explizite Formel für das n-te Glied nicht bekannt, es ist hingegen möglich, aus den gegebenen Gliedern das nächste Glied zu berechnen, d.h.
MehrInduktive Beweise und rekursive Definitionen
Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1
MehrVorkurs: Mathematik für Informatiker
Vorkurs: Mathematik für Informatiker Teil 3 Wintersemester 2016/17 Steven Köhler mathe@stevenkoehler.de mathe.stevenkoehler.de 2 c 2016 Steven Köhler Wintersemester 2016/17 Inhaltsverzeichnis Teil 1 Teil
Mehr3 Vom Zählen zur Induktion
7 3 Vom Zählen zur Induktion 3.1 Natürliche Zahlen und Induktions-Prinzip Seit unserer Kindheit kennen wir die Zahlen 1,, 3, 4, usw. Diese Zahlen gebrauchen wir zum Zählen, und sie sind uns so vertraut,
MehrFunktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation
Grundlagen der Programm- und Systementwicklung Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation Technische Universität München Institut für Informatik Software &
MehrEinstieg in die Informatik mit Java
1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking
Mehr4 Effizienz und Komplexität 3.1 1
4 Effizienz und Komplexität 3.1 1 Effizienz (efficiency): auf den Ressourcen-Verbrauch bezogene Programmeigenschaft: hohe Effizienz bedeutet geringen Aufwand an Ressourcen. Typische Beispiele: Speichereffizienz
MehrAlgorithmen & Programmierung. Rekursive Funktionen (1)
Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden
MehrA N A L Y S I S I F Ü R T P H, U E ( ) 1. Übungstest (FR, ) (mit Lösung )
Institut für Analysis und Scientific Computing TU Wien W. Auzinger WS 05/6 A N A L Y S I S I F Ü R T P H, U E (03.088). Übungstest (FR, 6..05) (mit Lösung ) Aufgabe. a ) Wandeln Sie die periodische Dezimalzahl
Mehr= =
9. Januar 2007 Arbeitsblatt 9 Übungen zu Mathematik I für das Lehramt an der Grund- und Mittelstufe sowie an Sonderschulen I. Gasser, H. Strade, B. Werner WiSe 06/07 19.12.06 Präsenzaufgaben: 1. Zu Beginn
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum
Mehr11. Folgen und Reihen.
- Funktionen Folgen und Reihen Folgen Eine Folge reeller Zahlen ist eine Abbildung a: N R Statt a(n) für n N schreibt man meist a n ; es handelt sich also bei einer Folge um die Angabe der Zahlen a, a
MehrVorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion
Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion Saskia Klaus 07.10.016 1 Motivation In den ersten beiden Vorträgen des Vorkurses haben wir gesehen, wie man aus schon bekannten Wahrheiten
MehrAlgorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1
Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische
MehrVollständige Induktion
Schweizer Mathematik-Olympiade smo osm Vollständige Induktion Aktualisiert: 1 Dezember 01 vers 100 Eine der wichtigsten Beweistechniken der Mathematik überhaupt ist die (vollständige) Induktion Wir nehmen
Mehr2.2 Allgemeine (vergleichsbasierte) Sortierverfahren
. Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrAlgorithmen und Datenstrukturen 1-1. Seminar -
Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik
MehrInduktive Beweise und rekursive Definitionen
Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1
MehrProgrammierung 1 - Repetitorium
WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage: http://info1.marcwagner.info Donnerstag, den 10.04.03 Kapitel 7 Korrektheit 7.1 Abstrakte Prozeduren Abstrakte Prozedur
MehrProgrammierung und Modellierung
Programmierung und Modellierung Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 2. Rekursive Funktionen und Induktion 1. Dateien laden, Kommentare und Fallunterscheidungen 2. Rekursive Funktionen
MehrErsetzbarkeitstheorem
Ersetzbarkeitstheorem Die Abgeschlossenheit läßt sich auch folgendermaßen formulieren: Ersetzbarkeitstheorem Seien F und G Formeln mit F G. SeienH und H Formeln, so daß H aus H hervorgeht, indem ein Vorkommen
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. November 2014 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger
MehrLaufzeit und Komplexität
Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen
MehrInformationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind
Mehr1.2 Eigenschaften der ganzen Zahlen
Lineare Algebra I WS 2015/16 c Rudolf Scharlau 13 1.2 Eigenschaften der ganzen Zahlen Dieser Abschnitt handelt von den gewöhlichen ganzen Zahlen Z und ihren Verknüpfungen plus und mal. Man kann die natürlichen
MehrSpeicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
MehrRekursionsanfang, Rekursionsschritt oder äquivalente Antworten. (z.b.: Abbruchbedingung (= Basisfall), eigentliche Rekursion (= Selbstaufruf))
Formale Methoden der Informatik WS / Lehrstuhl für Datenbanken und Künstliche Intelligenz Prof.Dr.Dr.F.J.Radermacher H. Ünver T. Rehfeld J. Dollinger 8. Aufgabenblatt Besprechung in den Tutorien vom..
MehrInformatik I. Informatik I Iteration vs. Rekursion. Iteration vs. Rekursion Iteration vs. Rekursion. 20. Iteration vs.
Informatik I 1. Februar 2011 20. Informatik I 20. Jan-Georg Smaus 20.1 Albert-Ludwigs-Universität Freiburg 1. Februar 2011 Jan-Georg Smaus (Universität Freiburg) Informatik I 1. Februar 2011 1 / 31 Jan-Georg
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Große Übung #6 Phillip Keldenich, Arne Schmidt 26.02.2017 Heute: Master-Theorem Phillip Keldenich, Arne Schmidt Große Übung 2 Vorbetrachtungen Wir betrachten rekursive Gleichungen
MehrAbschnitt 18: Effizientes Suchen in Mengen
Abschnitt 18: Effizientes Suchen in Mengen 18. Effizientes Suchen in Mengen 18.1 Vollständig ausgeglichene binäre Suchbäume 18.2 AVL-Bäume 18.3 Operationen auf AVL-Bäumen 18.4 Zusammenfassung 18 Effizientes
Mehr6.1 Natürliche Zahlen 6.2 Induktion und Rekursion 6.3 Ganze, rationale, reelle und komplexe Zahlen 6.4 Darstellung von Zahlen
6. Zahlen 6.1 Natürliche Zahlen 6.2 Induktion und Rekursion 6.3 Ganze, rationale, reelle und komplexe Zahlen 6.4 Darstellung von Zahlen 6. Zahlen GM 6-1 6.1 Natürliche Zahlen Vom lieben Gott gemacht Menschenwerk:
MehrDonnerstag, 11. Dezember 03 Satz 2.2 Der Name Unterraum ist gerechtfertigt, denn jeder Unterraum U von V ist bzgl.
Unterräume und Lineare Hülle 59 3. Unterräume und Lineare Hülle Definition.1 Eine Teilmenge U eines R-Vektorraums V heißt von V, wenn gilt: Unterraum (U 1) 0 U. (U ) U + U U, d.h. x, y U x + y U. (U )
Mehr2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik
Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,
MehrIn diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N. Wenn (mit einem n > 1)
34 Determinanten In diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N Wenn (mit einem n > 1) a 11 a 12 a 1n a 21 a 22 a 2n A =, (1)
MehrAufgaben und Lösungen zum Vorkurs Mathematik: Beweismethoden Für Mittwoch den
Fachbereich Mathematik Aufgaben und Lösungen zum Vorkurs Mathematik: Beweismethoden Für Mittwoch den 8.9.011 Vorkurs Mathematik WS 011/1 Die mit * gekennzeichneten Aufgaben sind etwas schwerer. Dort braucht
MehrPraktische Informatik I Der Imperative Kern Rekursive Funktionen
Praktische Informatik I Der Imperative Kern Rekursive Funktionen Prof. Dr. Stefan Edelkamp Institut für Künstliche Intelligenz Technologie-Zentrum für Informatik und Informationstechnik (TZI) Am Fallturm
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra
Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,
MehrFachwissenschaftliche Grundlagen
Fachwissenschaftliche Grundlagen Vorlesung im Wintersemester 2011/2012, Universität Landau Roland Gunesch 9. Vorlesung Roland Gunesch (Mathematik) Fachwissenschaftliche Grundlagen 9. Vorlesung 1 / 17 Themen
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrKapitel 3. Konvergenz von Folgen und Reihen
Kapitel 3. Konvergenz von Folgen und Reihen 3.1. Normierte Vektorräume Definition: Sei V ein Vektorraum (oder linearer Raum) über (dem Körper) R. Eine Abbildung : V [0, ) heißt Norm auf V, falls die folgenden
MehrAufgaben und Lösungen zum Vorkurs Mathematik: Beweismethoden Für Donnerstag den x > 1 3x > 3 3x + 3 > 6 6x + 3 > 3x + 6.
Fachbereich Mathematik Aufgaben und Lösungen zum Vorkurs Mathematik: Beweismethoden Für Donnerstag den 7.9.01 Vorkurs Mathematik WS 01/13 Die mit * gekennzeichneten Aufgaben sind etwas schwerer. Dort braucht
MehrVorlesung. Vollständige Induktion 1
WS 015/16 Vorlesung Vollständige Induktion 1 1 Einführung Bei der vollständigen Induktion handelt es sich um ein wichtiges mathematisches Beweisverfahren, mit dem man Aussagen, die für alle natürlichen
MehrEinstieg in die Informatik mit Java
1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4
MehrTechnische Universität München WS 2012/13 Fakultät für Informatik Lösungsvorschläge zu Blatt 4 Dr. C. Herzog, M. Maalej 12.
4/1 Technische Universität München WS 2012/13 Fakultät für Informatik Lösungsvorschläge zu Blatt 4 Dr. C. Herzog, M. Maalej 12. November 2012 Übungen zu Grundlagen der Programmierung Aufgabe 14 (Lösungsvorschlag)
MehrDer Dreyfus-Wagner Algorithmus für das Steiner Baum Problem
Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Andreas Moser Dietmar Ebner Christian Schauer Markus Bauer 9. Dezember 2003 1 Einführung Der in der Vorlesung gezeigte Algorithmus für das Steiner
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:
MehrLösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie
Hochschuldozent Dr. Christian Schindelhauer Paderborn, den 21. 2. 2006 Lösungen zur 1. Klausur in Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie Name :................................
MehrMusterlösungen zu Datenstrukturen und Algorithmen SS 2005 Blatt 2, Aufgabe 3 Wir schreiben zunächst alle Funktionen zur Basis 2.
Prof. Dr. Johannes Blömer Paderborn, den. August 005 Musterlösungen zu Datenstrukturen und Algorithmen SS 005 Blatt, Aufgabe 3 Wir schreiben zunächst alle Funktionen zur Basis. Dann erhalten wir 3 n log(n)
MehrLösungen. 1. Klausur zur MIA: Analysis I für Mathematiker
MATHEMATISCHES INSTITUT WS 006/07 DER UNIVERSITÄT MÜNCHEN Prof. Dr. M. Schottenloher Dr. S. Tappe Version 5.. Lösungen zur. Klausur zur MIA: Analysis I für Mathematiker vom 6..06 Aufgabe. ( + Punkte) a)
MehrAlgorithmen und Datenstrukturen Laufzeitabschätzung
Algorithmen und Datenstrukturen Laufzeitabschätzung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren, Suchen,
MehrKapitel 3: Untere Schranken für algorithmische Probleme Gliederung
Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte
MehrEinschub: Anweisungen und Bedingungen für PAP und Struktogramme (1)
Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1) Anweisungen: Eingabeanweisungen, z.b. Eingabe: x Ausgabeanweisungen, z.b. Ausgabe: Das Maximum ist, max Die Symbole x und max werden
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
Mehr3 Vollständige Induktion
3.1 Natürliche Zahlen In den vorherigen Kapiteln haben wir die Menge der natürlichen Zahlen schon mehrfach als Beispiel benutzt. Das Konzept der natürlichen Zahlen erscheint uns einfach, da wir es schon
MehrAchtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass
Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik
Mehr12. Rekursion Grundlagen der Programmierung 1 (Java)
12. Rekursion Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 24. Januar 2006 Einordnung im Kontext der Vorlesung
MehrKonzepte und Methoden der Programmierung Lösungen P. Fierz / FS 2012
Kapitel 1 Rekursion Alle Programme finden Sie im mitgelieferten zip-file. Aufgabe 1.1 [Fakultät] Für diese Übung brauchen Sie die Klassen Factorial Skelett und MyTimer. n! ist rekursiv folgendermassen
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
MehrRekursive Auswertungsprozesse in Haskell
Rekursive Auswertungsprozesse in Haskell Auswertungsprozess, der durch eine rekursive Funktion bewirkt wird Beispiel: Auswertung der rekursiven Fakultätsfunktion 0! := 1 n! := n (n 1)! fakultaet x = if
MehrVorkurs: Mathematik für Informatiker
Vorkurs: Mathematik für Informatiker Lösungen Wintersemester 2016/17 Steven Köhler mathe@stevenkoehler.de mathe.stevenkoehler.de 2 c 2016 Steven Köhler Wintersemester 2016/17 Kapitel I: Mengen Aufgabe
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrLOOP-Programme: Syntaktische Komponenten
LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=
Mehr11. Rekursion, Komplexität von Algorithmen
nwendung der Rekursion 11. Rekursion, Komplexität von lgorithmen Teil 2 Java-eispiele: Power1.java Hanoi.java Rekursiv definierte Funktionen - Fibonacci-Funktion - Fakultät, Potenz -... Rekursiver ufbau
MehrTeil III. Komplexitätstheorie
Teil III Komplexitätstheorie 125 / 160 Übersicht Die Klassen P und NP Die Klasse P Die Klassen NP NP-Vollständigkeit NP-Vollständige Probleme Weitere NP-vollständige Probleme 127 / 160 Die Klasse P Ein
MehrKapitel 9 Suchalgorithmen
Kapitel 9 Suchalgorithmen Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für Suchverfahren: u.a. Suchen in
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrEinführung in die Informatik I
Einführung in die Informatik I Berechenbarkeit und Komplexität Prof. Dr. Nikolaus Wulff Berechenbarkeit Im Rahmen der Turingmaschine fiel zum ersten Mal der Begriff Berechenbarkeit. Ein Funktion f heißt
MehrKettenbrüche. dar, und allgemein: a 1 + 1
Kettenbrüche Um die Verfahren der höheren Mathematik besser verstehen zu können, ist es ratsam, sich über die verwendeten Zahlen Gedanken zu machen. Der Grieche Hippasos (5. Jahrh. v. Chr.) entdeckte,
MehrKombinatorik von Zahlenfolgen
6. April 2006 Vorlesung in der Orientierungswoche 1 Kombinatorik von Zahlenfolgen Einige Beispiele Jeder kennt die Fragen aus Intelligenztests, in denen man Zahlenfolgen fortsetzen soll. Zum Beispiel könnten
MehrRekursion und Induktion
Rekursion und Induktion Rekursion und Induktion Quick Start Informatik Theoretischer Teil WS2011/12 11. Oktober 2011 Rekursion und Induktion > Rekursion > Was ist Rekursion? Definition der Rekursion fu
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Kapitel 6: Induktives Vorgehen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische
MehrKostenmaße. F3 03/04 p.188/395
Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);
MehrRekursion. Sie wissen wie man Programme rekursiv entwickelt. Sie kennen typische Beispiele von rekursiven Algorithmen
Rekursion Sie wissen wie man Programme rekursiv entwickelt Sie kennen typische Beispiele von rekursiven Algorithmen Sie kennen die Vor-/Nachteile von rekursiven Algorithmen Einführung 2 von 40 Rekursiver
Mehr