DAP 1. Datenstrukturen, Algorithmen und Programmierung. Bernhard Steffen. Lehrstuhl für Programmiersysteme
|
|
- Adolf Armbruster
- vor 8 Jahren
- Abrufe
Transkript
1 DAP 1 Datenstrukturen, Algorithmen und Programmierung Bernhard Steffen Lehrstuhl für Programmiersysteme B. Steffen 1
2 Was ist Informatik? Informatik ist die Wissenschaft von der Informationsverarbeitung. Auffallend ist, daß in dieser Definition das Wort Computer nicht vorkommt. Im Vordergrund stehen prinzipielle Fragen wie: B. Steffen 2
3 Wo liegen die Grenzen des (automatisch) Berechenbaren? Wie können komplexe Probleme zuverlässig behandelt werden? Warum ist eine Programmier-, Modellierungs- oder Spezifikationssprache so und nicht anders entworfen worden? (formales Sprachdesign) Welche Maschinenarchitekturen sind zur Realisierung spezieller Problemklassen am besten geeignet? (abstrakte Maschinen- und Berechnungsmodelle, verteilte Systeme und parallele Algorithmen) Was sind die wesentlichen Charakteristika eines Problems in Hinblick auf eine abstrakte Modellierung (Problemanalyse, Requirements Engineering)? Wann läßt sich ein gegebenes Verfahren einsetzen (Anwendungsprofile)? Wer sind die zukünftigen Interessenten und Anwender (Relevanzanalyse)? B. Steffen 3
4 Wissenschaftliche Einordnung geisteswissenschaftliche Natur ingenieurwissenschaftlicher Charakter mathematischer Charakter B. Steffen 4
5 Mathematische Wurzeln Algebra Logik Statistik Zahlentheorie Operations Research Informationstheorie Codierungstheorie Modelltheorie Kryptographie Topologie Geometrie Kontrolltheorie Kybernetik B. Steffen 5
6 Auseinandersetzung mit Abstrakten Strukturen Programmstrukturen, Sprachstrukturen, Datenstrukturen, Rechnerstrukturen,... Strukturwissenschaft B. Steffen 6
7 Historie bis Ende der 80er B. Steffen 7
8 Anfänge des Rechnens Jahr Entwicklungsschritt 1700 v. Chr. Älteste schriftliche Rechenaufgabe, auf Papyrus in Ägypten 300 v. Chr. Euklidischer Algorithmus 5. Jh. n. Chr. Benutzung von Dezimalzahlen in Indien 820 n. Chr. Mukhammad ibn Musa Al-Chowarizmi (etwa ), persischer Mathematiker und Astronom, Buch über Algebra 1202 Liber abaci (erste systematische Einführung in Rechnen mit Dezimalzahlen) von Leonardo von Pisa, genannt Fibonacci (etwa ), italienischer Mathematiker 1524 Rechenbuch von Adam Riese ( ) B. Steffen 8
9 Erste Ansätze zu Rechenmaschinen Jahr Entwicklungsschritt 1623 Mechanische Rechenmaschine für vier Grundrechenarten von Wilhelm Schickard ( ) 1641 Maschine zur Addition von sechsstelligen Zahlen, konstruiert von Blaise Pascal ( ) 1673 Gottfried Wilhelm Leibniz ( ) konstruiert Rechenmaschinen mit Staffelwalzen für vier Grundrechenarten, befasst sich auch mit dualem Zahlensystem 1774 Erste zuverlässig arbeitende mechanische Rechenmaschine, in Serie hergestellt von Philipp Matthäus Hahn ( ) B. Steffen 9
10 Erste Ansätze zu Rechenmaschinen Jahr um 1800 Entwicklungsschritt Mittels Lochkarten gesteuerter automatischer Webstuhl von Joseph-Marie Jacquard ( ) 1833 Analytical Engine von Charles Babbage ( ); Lady Augusta Ada Byron ( ), Countess of Lovelace, entwickelt dazu die erste Programmiersprache 1886 Erfindung der Lochkarte von Hermann Hollerith ( ); Entwicklung verschiedener elektrischer Lochkartenmaschinen (u.a. Einsatz zur Volkszählung); Programmierung mittels Steckkarten B. Steffen 10
11 Erste Meilensteine der Computerentwicklung Jahr Entwicklungsschritt 1934 Konrad Zuse ( ) beginnt mit Planung einer programmgesteuerten Rechenmaschine auf Basis des dualen Zahlensystems und Gleitkomma-Zahlendarstellung 1939 Alan M. Turing ( ) entwickelt ein nach ihm benanntes Maschinenmodell, das als Grundlage der Berechenbarkeitstheorie dient 1941 Z3 von Zuse fertiggestellt; sie ist die erste funktionsfähige programmgesteuerte Rechenmaschine; (Telefon-) Relais als Schaltelemente; Programmierung mithilfe von Lochstreifen (Filmrollen), die bei Bedarf zu Schleifen zusammengeklebt werden konnten; Multiplikationszeit: ca. 3 s 1944 Howard Hathaway Aiken ( ) erbaut Mark I, Rechenautomat auf Basis von Dezimalzahlen B. Steffen 11
12 Erste Meilensteine der Computerentwicklung Jahr Entwicklungsschritt 1946 ENIAC: Erster elektronischer Rechner (18000 Elektronenröhren, 1500 Relais), gebaut von John Presper Eckert (1919*) und John William Mauchly ( ) Multiplikationszeit: ca. 3 ms; John von Neumann ( ) erfindet den Programmspeicher 1949 EDSAC: Erster universeller Digitalrechner mit gespeichertem Programm von Maurice Vincent Wilkes (1913*) 1950 Erster russischer Rechner von S.A. Lebedev fertiggestellt (MESM, mit Röhren als Schaltelementen) ab 1950 Industrielle Serienproduktion von elektronischen Rechenanlagen B. Steffen 12
13 Hauptquelle: D. Roller Informatik - Grundlagen. Mit einer Einführung in PASCAL. Springer-Verlag, Heidelberg, Weiterführende Literatur: J.A.N. Lee: Computer Pioneers. IEEE Computer Society Press, (80 SR 800 L478) K. Zuse. Der Computer - mein Lebenswerk. Springer-Verlag, Heidelberg, (80 SR 800 Z96(2)) F.L. Bauer. Konrad Zuse - Fakten und Legenden. Informatik Spektrum, Band 19, Heft 6, Dezember 1996, R. Rojas. Die Architektur der Rechenmaschinen Z1 und Z3 von Konrad Zuse. Informatik Spektrum, Band 19, Heft 6, Dezember 1996, K. Ganzhorn, W. Walter. Die geschichtlicheentwicklung der Datenverarbeitung. IBM Deutschland GmbH, Böblingen, 1975 B. Steffen 13
14 Computereinteilung in Generationen Generation Merkmale 1 Bis Ende der 50er Jahre Hardware: Elektronenröhren (Schaltzeit 1 ms; störanfällig) und Relais (Schaltzeit 0,1 s; relativ zuverlässig) als Schaltelemente; Drucker und Magnetbänder als Peripheriegeräte Software: Praktisch keine (System-) Software; Programmierung in Maschinencode (Zahlenkolonnen) 2 ab 1957 bis Ende der 60er Jahre Hardware: Transistoren (Schaltzeit 10 µs) als Schaltelemente; Ferritkern-, Band-, Trommel-, Plattenspeicher; Lochstreifen als neues Peripheriegerät Software: Erste Betriebssysteme für Stapelverarbeitung (Batch-Betrieb); erste problemorientierte Programmiersprachen (COBOL, FORTRAN, ALGOL, LISP) B. Steffen 14
15 Computereinteilung in Generationen Generation Merkmale 3 ab Mitte der 60er Jahre Hardware: Mikromodultechnik (integrierte Schaltkreise): ca. 20 Schaltelemente pro cm 2 (Schaltzeit ca. 10 ns); Kanäle, Magnetplatten und Bildschirme (Terminals) statt Teletypes als typischeperipheriegeräte Software: Betriebssysteme mit Dialogbetrieb, Datenbanken, Programmiersprache ALGOL 68 4 ab Anfang der 70er Jahre Hardware: Überwiegend hochintegrierte Schaltkreise (LSI); kompletter Prozessor auf einem Chip; PCs und Workstations; 8-BitArchitektur Software: Strukturierte Programmierung, Software-Engineering, imperative Programmiersprachen PASCAL, C; funktionale Programmiersprache ML, Betriebssysteme mit Mehrbenutzerbetrieb (Time-sharing) und lokale Netzwerke; Microcomputer und erstes portables Betriebssystem (UNIX) B. Steffen 15
16 Computereinteilung in Generationen Generation Merkmale 5 seit Anfang der 80er Jahre Hardware: Höchstintegrierte Schaltkreise (VLSI): mehrere Prozessoren auf einem Chip; Homecomputer, PCs und Workstations; 16- und 32-Bit-Architektur Software: Graphik; globale Vernetzung; Künstliche Intelligenz (KI) Logikorientierte Programmiersprachen (PROLOG); objektorientierte Programmiersprachen (Smalltalk) 6 seit Anfang der 90er Jahre Hardware: Hochprogrammierbare Bausteine (Field Programmable Gate Arrays); Embedded Systems Software: Ereignisorientierte Programmierung; Internetprogrammierung, Middleware, Integrationsframeworks. Programmiersprachen: JAVA, Delphi, Erlang und Modellierurng in UML B. Steffen 16
17 Computereinteilung in Generationen Generation Merkmale 7 seit Anfang 2000 Hardware: SoCs (Systems on a Chip, MEMSs (Micro-electro-mechanical systems) Software: Heterogene, sich dynamisch entwickelnde Netzwerke von Systemen und Endgeräten. Programmiertechnologie zunehmend Model Driven Design. Hauptquelle der historischen Angaben: D. Roller Informatik - Grundlagen. Mit einer Einführung in PASCAL. Springer-Verlag, Heidelberg, B. Steffen 17
18 Einteilung der Informatik Theoretische Informatik Theorie der Berechenbarkeit Praktische Informatik Algorithmen und Datenstrukturen Technische Informatik Entwicklung von Hardwarekomponenten (Schaltkreise, -netze, -werke) Angewandte Informatik Automatisierungs- Technik in Konstruktion und Produktion Komplexitätstheorie Programmiersprachen und Übersetzer Rechnerorganisation und -architektur Computergraphik und Simulation Theorie der formalen Sprachen, Automatentheorie Programmiermethoden und -werkzeuge Periphere Geräte und Rechnernetze Kaufmännische Datenverarbeitung u. Büroautomatisation Formale Semantik, Programmverifikation Betriebssysteme, Informationssysteme Quelle: D. Roller Informatik - Grundlagen. Mit einer Einführung in PASCAL. Springer-Verlag, Heidelberg, B. Steffen 18
19 Inhaltliche Übersicht 1. Motivation 2. Programmieren im Kleinen / Großen 3. Struktur und Invarianz 4. Das WHILE-Fragment von Java 5. Algorithmen, Datenstrukturen und Rekursion 6. Objektorientierte Erweiterungen B. Steffen 19
20 Programmieren im Großen B. Steffen 20
21 Programmentwicklungsphasen 1. Analyse 2. Modellierung 3. Design 4. Implementierung 5. Test Organisiert in einem iterativen Prozess B. Steffen 21
22 Abstraktion & Kompositionalität Modelle Architekturen Konzepte Problemorientiert Problem Plattformorientiert Prozesse getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 22
23 getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 23
24 Programm-Strukturen Schleifen x = n; y = 1; while (x > 1) { y = y x; x = x-1; } Rekursion Fak(n) = if n = 1 then 1 else n Fak(n-1) Fak(n) = n B. Steffen 24
25 Programm-Strukturen Schleifen, Rekursion Prozeduren, Module Prog Begin End Proc Fak. : Fak(n) B. Steffen 25
26 Problem getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 26
27 Analyse B. Steffen 27
28 Lehrer Schueler Elternteil B. Steffen 28
29 Modelle Implementierungen Problemorientiert Problem getestete Produkte Algorithmen & Datenstrukturen B. Steffen 29
30 Assoziation Geschäftsprozeß Szenario Statische Konzepte Dynamische Konzepte Vererbung Paket Botschaft Zustandsautomat Attribut Operation Statisches Modell Basiskonzepte Objekt Klasse Dynamisches Modell B. Steffen 30
31 Modellierung B. Steffen 31
32 B. Steffen 32
33 Modelle Architekturen Implementierungen Plattformorientiert Problem getestete Produkte Problemorientiert Algorithmen & Datenstrukturen B. Steffen 33
34 Architektur-Design B. Steffen 34
35 Modelle Architekturen Problemorientiert Problem Plattformorientiert Prozesse getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 35
36 SW-Management 1 Grundlagen SW-Entwicklung 1 Die Planungsphase SW-Qualitätssicherung 1 Grundlagen 2 Planung 2 Die Definitionsphase 2 Qualitätssicherung 3 Organisation 3 Die Entwurfssphase 3 Manuelle Prüf methoden 4 Personal 4 Die Implementierungsphase 4 Prozeßqualität 5 Leitung 5 Die Abnahme und Einführungsphase 5 Produktqualität -Komponenten 6 Kontrolle 6 Die Wartungs- und Pflegephase 6 Produktqualität -Systeme B. Steffen 36
37 Modelle Architekturen Konzepte Problemorientiert Problem Plattformorientiert Prozesse getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 37
38 Konzeptuelle Strukturen 1 (Sprach-Design) x = 1 x = x + 1 x = x + 1 x =? Granularität? Java: X += ++X + X++? B. Steffen 38
39 Konzeptuelle Strukturen 2 (Sprach-Design) M M M K T K T Wer entscheidet? B. Steffen 39
40 Abstraktion & Kompositionalität Modelle Architekturen Konzepte Problemorientiert Problem Plattformorientiert Prozesse getestete Produkte Implementierungen Algorithmen & Datenstrukturen B. Steffen 40
41 Abstraktion und Kompositionalität Konzentration auf das Wesentliche Konzentration auf spezielle Aspekte Konzentration auf Entscheidbares Ersetzen von Gleichem durch Gleiches Hierarchische (Programm-)Entwicklung Bibliothekskonzepte B. Steffen 41
42 Inhaltliche Übersicht 1. Motivation 2. Programmieren im Kleinen / Großen 3. Struktur und Invarianz 4. Das WHILE-Fragment von Java 5. Algorithmen, Datenstrukturen und Rekursion 6. Objektorientierte Erweiterungen B. Steffen 42
43 Programmieren im Kleinem B. Steffen 43
44 Phasen der Programmentwicklung im Kleinen reale Welt abstrakte Objekte informationsverarb. System Abstraktion Darstellung Realisierung Problem Algorithmus Programm Problemanalyse, funktionale Spezifikation, Algorithmenentwurf Darstellung in formalisierter Sprache zur Ausführung durch Rechner Umsetzung in Elementarschritte einer Maschine Maschine B. Steffen 44
45 Schlüsselkriterien Korrektheit Effizienz Algorithmik Skalierbarkeit Implementierung Integration B. Steffen 45
46 Vorgehen bei der Programmentwicklung im Kleinen 1. Problemformulierung 2. Problemanalyse, Problemabstraktion und -formalisierung, Problemspezifikation 3. Algorithmenentwurf 4. Korrektheitsnachweis (Semantikanalyse) 5. Aufwandsanalyse (Komplexitätsanalyse) 6. Programmkonstruktion 7. Verifikation und Test B. Steffen 46
47 Vorgehen bei der Programmentwicklung im Grossen 1. Analyse 2. Modellierung 3. Design 4. Implementierung 5. Test Organisiert in einem iterativen Prozess B. Steffen 47
48 Problemformulierung/Analyse 1. Finden einer Zahl in einer Zahlenmenge. 2. Algorithmische Idee: Das Telefonbuchprinzip: Vorsortieren Intervallschachtelung B. Steffen 48
49 Algorithmenentwurf Umsetzen der algorithmischen Idee in eine abstrakte, eindeutig interpretierbare Beschreibungsform. Klassisch sind die Flußdiagramme. Festlegen konzeptuell günstiger Datenstrukturen, hier sortierte Listen natürlicher Zahlen. Verwenden von Variablen L und R zur Charakterisierung des aktuellen Suchintervalls. B. Steffen 49
50 Flußdiagramme Start Stop z = 0 Wende Formel (3) an ja nein a<b a>b a==b? Vergleiche a und b a==b Lies x ein Gib x aus B. Steffen 50
51 Start Flußdiagramm zum Binären Suchen lies x ein L=1 R=n found=false L<=R && found==false? nein gib found aus gib Index m aus ja m=(l+r) / 2 End a[m]==x? ja found=true nein a[m]<x? ja L=m+1 nein vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite6-10 R=m-1 B. Steffen 51
52 x {n 1, n 2,..., n k }? n 1 n k 1 1 n + 2 n k-1 n k n k L Instruktionen: n m = x? nein n m < x? nein! R := m-1 m Hilfsvariablen: L = 1 R = k Found = FALSE m = (k + 1) DIV 2 R B. Steffen 52
53 x {n 1, n 2,..., n k }? n 1 n k 1 1 n + 2 n k-1 n k n k L R m Hilfsvariablen: L = 1 R = m - 1 Found = FALSE m = (k + 1) DIV 2 B. Steffen 53
54 x {n 1, n 2,..., n k }? n k n 1 n 2 1 n k L R m Instruktionen: m := ( L+ R) DIV 2 Hilfsvariablen: L = 1 R = k Found = FALSE m = (k + 1) DIV 2 B. Steffen 54
55 x {n 1, n 2,..., n k }? n k n 1 n 2 1 n k L m R Instruktionen: n m = x? nein n m < x? ja! L:= m+1 Hilfsvariablen: L = 1 R = k Found = FALSE m = ( L+ R) DIV 2 B. Steffen 55
56 x {n 1, n 2,..., n k }? n k n 1 n 2 1 n k m L R Instruktionen: m := ( L+ R) DIV 2 Hilfsvariablen: L = m+1 R = k Found = FALSE m = ( L+ R) DIV 2 B. Steffen 56
57 x {n 1, n 2,..., n k }? n k n 1 n 2 1 n k L m R Und so weiter... Hilfsvariablen: L = m+1 R = k Found = FALSE m = ( L+ R) DIV 2 B. Steffen 57
58 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? L m R Instruktionen: 12 = 10? nein 12 < 10? nein! R := 7 Hilfsvariablen: L = 1 R = 15 Found = FALSE m = 8 B. Steffen 58
59 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? L R m Instruktionen: m:= 4 Hilfsvariablen: L = 1 R = 7 Found = FALSE m = 8 B. Steffen 59
60 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? L m R Instruktionen: 7 = 10? nein 7 < 10? ja! L:= 5 Hilfsvariablen: L = 1 R = 7 Found = FALSE m = 4 B. Steffen 60
61 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? m L R Instruktionen: m:= 6 Hilfsvariablen: L = 5 R = 7 Found = FALSE m = 4 B. Steffen 61
62 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? L m R Instruktionen: 10 = 10? ja! Found := TRUE Hilfsvariablen: L = 5 R = 7 Found = FALSE m = 6 B. Steffen 62
63 10 {1,3,4,7,8,10,11,12,15,16,19,23,33,35,55}? L m R Hilfsvariablen: L = 5 R = 7 Found = TRUE m = 6 B. Steffen 63
64 Korrektheitsnachweis 1. Symbolische Ausführung des Beschreibung 2. Analyse der Randfälle, z.b. R =1 oder L= R 3. Mathematischer Korrektheitsbeweis vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite10-11 B. Steffen 64
65 Aufwandsanalyse Hierarchische Untersuchung des Aufwandswachstums bei wachsenden Inputparamtern von Elementaroperationen Schleifen- oder Rekursionsrümpfen vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite12-13 Iterationskonstrukten: Wie oft werden sie durchlaufen? Beim binären Suchen beobachten wir bzgl. des Parameters n: Elementaroperationen/Rümpfe haben konstanten Aufwand Die Schleife wird maximal log 2 (n)+1-mal durchlaufen. Man sagt, der Algorithmus hat logarithmische Komplexität. B. Steffen 65
66 Programmkonstruktion 1. Automatisch, z.b. durch Compilation 2. Halbautomatisch über formale Transformationsregeln 3. Manuell, durch freie Programmierung 4. Gemischt, durch gezielte Computerunterstützung: Extraktion von Schnittstellencode Erzeugung von Klassenstrukturen Generierung von Datenstrukturen vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite13-14 B. Steffen 66
67 L = 1; R = n; found = false; while (( L<=R) && (found = = false)) { m = (L+R) / 2; if (a[m] = = x) {found = true;} else { if (a[m] < x) {L = m+1;} else { R = m-1; } } } B. Steffen 67
68 Programmanalyse und Verifikation Verifikation á la Floyd und Hoare Programm- und Datenflußanalyse Type- und Rangechecking Modelchecking B. Steffen 68
69 Testmethoden Komponententest Integrationstest Funktionale Tests Regressionstest Performancetests B. Steffen 69
70 Inhaltliche Übersicht 1. Motivation 2. Programmieren im Kleinen / Großen 3. Struktur und Invarianz 4. Das WHILE-Fragment von Java 5. Algorithmen, Datenstrukturen und Rekursion 6. Objektorientierte Erweiterungen B. Steffen 70
71 Struktur und Invarianz B. Steffen 71
72 Abstraktionsebenen Objekte der realen Welt Begriffsbildung Abstraktion Verstehen Begreifen Begriffe, Information Darstellung Interpretation Repräsentationen B. Steffen 72
73 Eine Beispielinstanz ein konkreter Apfel Abstraktion (nicht alle Äpfel sind gleich) Verstehen (sich einen Apfel vorstellen) Begriffe: Apfel, pomme, apple, Boskop Darstellung Interpretation Repräsentationen: Apfel oder A p f e l B. Steffen 73
74 Semantikschemata Definition (Semantikschemata) Ein Semantikschema ist ein TupelR, I,. mit R: Menge der Repräsentationen oder Nachrichten I: Menge der Begriffe oder Informationen. R I: Semantik(-Relation) oder Interpretation. vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite16-19 B. Steffen 74
75 Numerierungssysteme 25, 98 Abstraktion (Zahl, statt Objekt) Verstehen fünfundzwanzig, Begriffe: quatrevingtdixhuit, Darstellung Interpretation Repräsentationen:, (Babylonische Notation) XXV, LXXXXVIII oder XCVIII (Römische Notation) B. Steffen 75
76 Konvention Fallsr, i., so ist i eine Information zur Repräsentation r. Im folgenden schreiben wir oft i r anstelle von r, i.. Also r = df { i I r, i. } Ist r einelementig, so schreiben wir auch i = r. B. Steffen 76
77 Unärdarstellung natürlicher Zahlen R u = df {,,,...}, I u = df = df {1, 2,...} Natürliche Zahlen (als Begriffe bzw. Informationen, nicht als ihre Darstellung im Dezimalsystem! Siehe auch nächstes Beispiel),. u = df {..., k k }. k Die Semantik einer Nachricht aus k Strichen ist also die natürliche Zahl k. B. Steffen 77
78 Dezimaldarstellung natürlicher Zahlen R N = df {1, 2,..} Dezimalrepräsentation der natürlichen Zahlen, I N = df = df {1,2,...} Natürliche Zahlen (als Begriffe bzw. Informationen, nicht als ihre Notation im Dezimalsystem!),. N = df { (1,1), (2,2), (3,3),...}. B. Steffen 78
79 Binärdarstellung natürlicher Zahlen R B = df {(d i ) i n d i {0, 1}, n 0 }. I B = df 0 = df {0,1, 2,...} Natürliche Zahlen (wieder als Begriffe bzw. Informationen, nicht als ihre Notation im Dezimalsystem), n. B = df {(d i ) i n, d i *2 n - i n 0 } i=0 B. Steffen 79
80 Kardinalzahlen in MODULA-2 R K = df {0,1,...,2 B -1}, I K = df 0 = df {0, 1, 2,...} Natürliche Zahlen (wieder als Begriffe bzw. Informationen, nicht als ihre Notation im Dezimalsystem),. K = df {k, k k R K }. B. Steffen 80
81 Vervollständigte Kardinalzahlen Achtung: Folie verändert! R uo = df R k {underflow, overflow}, I uo = df, r uo = df {i i > 2 B -1}, falls r = overflow {i i < 0}, falls r = underflow r K, sonst B. Steffen 81
82 Formale Eigenschaften Ein Semantikschema R, I,. heißt total, falls r R. r. eindeutig gdw.. eine totale Funktion ist, d.h. falls r R. {i r,i. } = 1. Falls. eindeutig ist, so heisst. injektiv gdw.. injektiv ist, d.h. falls r 1,r 2 R. r 1 = r 2 r 1 = r 2. surjektiv gdw.. surjektiv ist, d.h. falls vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite19 19 i I.r R. r = i. B. Steffen 82
83 Kodierung Äquivalenztransformation r R. r = f (r) 1 2 f R 1 R Kongruenztransformation I r, r' R. r = r' f (r) = f (r') B. Steffen 83
84 Kodierung Äquivalenztransformation r R. r = f (r) 1 2 Kongruenztransformation r,r' R. r = r' f (r) = f (r') Zusammenhang vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite19-21 f (r) =r = r' =f (r') qed B. Steffen 84
85 Kodierung succ mod 2 mod 2 {0,1} Äquivalenztransformation? n. n mod 2 succ(n) mod 2 Insbesondere: 1 mod 2 = 1 0 = 2 mod 2 = succ(1) mod 2 B. Steffen 85
86 Kodierung succ mod 2 mod 2 {0,1} Kongruenztransformation? n, m. n mod 2 = m mod 2 succ(n) mod 2 = succ(m) mod 2 B. Steffen 86
87 Kodierung succ mod k mod k {0,,k-1} Kongruenztransformation? n,m. n mod k = m mod k succ(n) mod k = succ(m) mod k B. Steffen 87
88 Inhaltliche Übersicht 1. Motivation 2. Programmieren im Kleinen 3. Struktur und Invarianz (induktives Vorgehen) 4. Das WHILE-Fragment von Java 5. Algorithmen, Datenstrukturen und Rekursion 6. Objektorientierte Erweiterungen B. Steffen 88
89 Induktives Definieren Die induktive Definition einer Menge erfolgt durch Angabe 1. einer Menge elementarer Grundobjekte oder atomarer Bausteine und 2. einer Menge von Operatoren, die es erlauben, kleinere Bausteine entsprechend einer Konstruktionsvorschrift zu größeren Einheiten zusammenzusetzen. B. Steffen 89
90 Syntax Boolescher Terme Sei ID eine Menge von Identifikatoren (Variablen). Die Menge BT aller Booleschen Terme über ID ist wie folgt definiert: 1. true, false und Identifikatoren id aus ID sind Boolesche Terme, sogenannte atomare Boolesche Terme oder kurz Atome. 2. Sind t 1 und t 2 Boolesche Terme, so sind auch ( t 1 ), die Negation von t 1, (t 1 t 2 ), die Konjunktion von t 1 und t 2 und (t 1 t 2 ), die Disjunktion von t 1 und t 2 Boolesche Terme. 3. Weitere Boolesche Terme gibt es nicht. vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite24 24 B. Steffen 90
91 Backus-Naur-Form (BNF) linke Seite ::= rechte Seite N (N T ) * T die Menge der atomaren syntaktischen Objekte der Sprache, die durch die BNF beschrieben wird (T: Terminale ), N eine Menge von Regelbezeichnern (N: Nichtterminale ), `* der sequentielle Iterator. Solche Beschreibungen nennt man auch kontextfreie Grammatiken. B. Steffen 91
92 Konvention Man schreibt statt LS ::= RS 1, LS ::= RS 2,... LS ::= RS n oft kurz: LS ::= RS 1... RS n B. Steffen 92
93 Syntax Boolescher Terme in BNF ABT ::= true false id, BT ::= ABT ( BT) (BT BT) (BT BT) mit id ID, oder alternativ kurz BT ::= true false id ( BT) (BT BT) (BT BT) vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite24 24 B. Steffen 93
94 BNF als Generatorbeschreibung Erweiterung von ::= N x (N T )* auf Worte durch: (N T )* x (N T )* mit w 1 A w 2 w 1 w w 2 gdw. A ::= w ist BNF-Produktion BT ::= true false id ( BT) (BT BT) (BT BT) Beispiel: ((x y) z) vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite21-22 BT (BT BT) ((BT BT) BT) ((x BT) BT) ((x y) BT) ((x y) z) B. Steffen 94
95 BNF als Akzeptor durch Reduktion BT ::= true false id ( BT) (BT BT) (BT BT) Beispiel: ( ( x y ) z ) BT BT BT BT vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite21-22 BT B. Steffen 95
96 Axiomatische Begründung: die Peano-Axiome P1 1 ist eine natürliche Zahl: 1 P2 Jede natürliche Zahl besitzt eine eindeutig bestimmte natürliche Zahl als Nachfolger: n. m. m = succ(n) ( m'. m' = succ(n)m= m') P3 1 ist nicht Nachfolger einer natürlichen Zahl: n. 1 = succ(n) P4 Verschiedene natürliche Zahlen haben verschiedene Nachfolger: m,n. n m succ(n) succ(m) B. Steffen 96
97 Axiomatische Begründung: die Peano-Axiome P5 Axiom der vollständigen Induktion: Ist eine Aussage über natürliche Zahlen für 1 wahr und läßt sich ihre Gültigkeit für jede größere natürliche Zahl aus der Gültigkeit der Aussage für ihren Vorgänger ableiten, dann ist sie für jede natürliche Zahl wahr. ( A(1) ( n. (A(n) A(succ(n)))) ) n. A(n) Eine Aussage ist eine totale Funktion A : vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite22-24 B. Steffen 97
98 1. n i= 1 i = n ( n + 1), 2 Summe der ersten n natürlichen Zahlen. 2. n i= 1 2 (2i 1) = n, Summe der ersten n ungeraden Zahlen. 3. n i= 1 2 i = n ( n + 1), Summe der ersten n geraden Zahlen. 4. n i= 1 i 2 = n ( n + 1) (2n + 1), 6 Summe der ersten n Quadratzahlen. B. Steffen 98
99 5. n i= 1 i 3 = n ( n + 1), Summe der ersten n Kubikzahlen. 6. Es gibt n! Permutationen über n Objekten. 7. Es gibt 2 n Teilmengen von n-elementigen Mengen. 8. Es gibt 2 n Binärworte der Länge n. B. Steffen 99
100 Beispielbeweis Beh.: n. {0,1} n = 2 n Beweis durch vollständige Induktion nach n. IA: (n=1): {0,1} 1 = {0,1} = 2 = 2 1 IV: Die Behauptung gelte für n: {0,1} n = 2 n IS: (nn+1): {0,1} n+1 = {w0 w {0,1} n } {w1 w {0,1} n } = 2 n + 2 n = 2 n+1 B. Steffen 100
101 Kaninchenpopulation B. Steffen 101
102 B. Steffen 102
103 Adäquatheit Fibonacci-Funktion fib : 0 fib(0) = fib(1) = 1; fib(n) = fib(n-2) + fib(n-1). Fakt: n 0. fib(n) 2 n. (A(1) ( n. (A(n) A(n + 1))) ) n. A(n) Und nun? B. Steffen 103
104 Verallgemeinertes Induktionsprinzip Satz Läßt sich eine Aussage über natürliche Zahlen für jede natürliche Zahl aus der Gültigkeit der Aussage für alle kleineren natürlichen Zahlen ableiten, dann ist sie für jede natürliche Zahl wahr. ( n. ( m < n. A(m)) A(n) ) n. A(n) vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite24-25 B. Steffen 104
105 Überblick Beweisverpflichtungen A'(1) n. ( A'(n) A'(n+1) ) n. A'(n) n. ( m < n. A(m) A(n) ) n. A (n) A'(n) ist definiert durch m < n. A(m) B. Steffen 105
106 Rückführung verallgemeinerter auf vollständige Induktion vollständige Induktion A'(n) = df ( m < n. A(m)) trans A(n) n. A'(n) adapt n. A(n) verallgemeinerte Induktion B. Steffen 106
107 Adäquatheit Fibonacci-Funktion fib(0) = fib(1) = 1; fib(n) = fib(n -2) + fib(n-1). Fakt: n 0. fib(n) 2 n. (A(1) ( n. (A(n) A(n + 1))) ) n. A(n) ( n. ( m < n. A(m)) A(n) ) n. A(n) B. Steffen 107
108 Beh.: n 0. fib(n) 2 n Beweis durch verallgemeinerte Induktion nach n. Sei n 0 und es gelte: ) m < n. fib(m) 2 m zu zeigen: fib(n) 2 n Fallunterscheidung: 1) n=0: fib(0) = ) n=1: fib(1) = ) n 2: fib(n) = fib(n-2) + fib(n-1) (nach ) 2 n n-1 2 n qed. B. Steffen 108
109 Bäume Ein (endlicher) Baum ist ein Tripel (V, E, r) bestehend aus einer endlichen Knotenmenge V einer endlichen Kantenmenge E VV und einem ausgezeichneten Element r, der Wurzel wobei: B. Steffen 109
110 Tiefe eines Knotens innerhalb eines Baumes jeder Knoten v V\{r} genau einen Vorgänger hat, d.h. es gibt genau eine Kante, die v als rechte Komponente hat. r keinen Vorgänger hat, d.h. es gibt keine Kante, die r als rechte Komponente hat jeder Knoten v V von r aus erreichbar ist, d.h. es gibt eine Folge von Kanten (einen Weg) der Form (r,v 1 ), (v 1,v 2 ),...,(v k-1,v k ), (v k,v) die Länge des eindeutigen Weges von r nach v nennt man die Tiefe von v. B. Steffen 110
111 Beispiele von Bäumen Binärer Baum Syntaxbaum Strukturbaum und viele mehr... B. Steffen 111
112 binärer Baum Tiefe B. Steffen 112
113 Syntax- Baum Tiefe * 1 * a b + y x a b 4 ((a b) + (-(7+b))) + ((y+x) (a+5)) B. Steffen 113
114 Syntax- Baum Tiefe IN + 0 succ(succ(succ(succ(0)))) + * 1 succ(succ(succ(0))) * succ(succ(0)) a b + y x a 5 3 succ(0) 7 b 4 0 B. Steffen 114
115 Tiefe eines Baumes Die Tiefe eines Baumes ist die Länge seines längsten Weges. Dieser Weg geht offenbar immer von r zu einem Blatt, d.h. einem Knoten ohne Nachfolger. Wir bezeichnen die Tiefe eines Baumes mit tiefe. B. Steffen 115
116 Syntax- Baum tiefe IN * * succ(succ(succ(succ(0)))) succ(succ(succ(0))) succ(succ(0)) succ(0) a b 7 b y x a ((a b) + (-(7+b))) + ((y+x) (a+5)) B. Steffen 116
117 Strukturelle Induktion Satz vgl. vgl. DAP1-Skript DAP1-Skript Seite Seite27-29 Läßt sich eine Aussage für jedes Element einer induktiv definierten Menge S aus der Gültigkeit der Aussage für alle kleineren Bausteine ableiten, dann ist sie für jedes Element von S wahr. ( s S. ( s' Komp (s). A(s')) A(s)) s S. A(s). Komponenten Komp entsprechen den (echten) Teilstrukturen (Teilbäumen) einer induktiv definierten Baumstruktur. B. Steffen 117
118 Überblick Beweisverpflichtungen ( n. m < n. A'(m)) A'(n) ) n. A'(n) ( s S. ( s' Komp(s). A(s')) A(s) ) s S. A(s) n. A'(n) = df s S. tiefe(s) = n A(s) B. Steffen 118
119 Rückführung struktureller auf verallgemeinerte Induktion verallgemeinerte Induktion A'(n) = df l(s) na(s) trans A(s) n. A'(n) adapt s S. A(s) strukturelle Induktion B. Steffen 119
120 Strukturelle Definition von Funktionen und Eigenschaften Die strukturelle Definition einer Funktion f mit induktiv definiertem Definitionsbereich erfolgt (im elementaren Fall) durch 1. Festlegung von f für die atomaren Bausteine des Definitionsbereichs und 2. Angabe einer Vorschrift, wie sich die Funktionswerte komplexer Bausteine relativ zu den Funktionswerten ihrer Komponenten berechnen. f (s) =df g cons (f (s 1 ),.., f(s k )) Falls s ein durch Konstruktor cons zusammengesetztes Objekt der Form s = cons(s 1,..,s k ), (k0) ist und g cons eine auf dem Wertebereich bekannte Funktion ist. B. Steffen 120
121 Beispiel: Semantikfuntional. : BT (ENV ) Definition (Wahrheitswert, Belegung, Umgebung) = {tt, ff} Menge der Booleschen Wahrheitswerte β : ID, Belegung oder Umgebung ENV, die Menge der Belegungen Definition neg conj tt ff tt ff tt tt ff ff tt ff ff ff disj tt ff tt tt tt ff tt ff B. Steffen 121
Einführung in die Informatik
Einführung in die Informatik Geschichte und Einteilung der Informatik 01101101 01011001 11010011 10011000 00000011 00011100 01111111 11111111 00110100 00101110 11101110 01110010 10011101 00111010 2 Der
MehrInformatik - Lehrgang 2000/2001 GRUNDLAGEN
Informatik - Lehrgang 2000/2001 GRUNDLAGEN Ein Überblick! Das Werden der Informatik! Daten! Technische Informatik Der von Neumann Computer Versuch einer Entmystifizierung 2 Grundlagen Micheuz Peter Das
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
MehrEinführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)
Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff
MehrLogik für Informatiker
Logik für Informatiker 2. Aussagenlogik Teil 3 30.04.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Letztes Mal Aussagenlogik Syntax: welche Formeln? Semantik:
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
MehrTheoretische Grundlagen des Software Engineering
Theoretische Grundlagen des Software Engineering 11: Abstrakte Reduktionssysteme schulz@eprover.org Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch
MehrGrundlagen der Informatik II. Teil I: Formale Modelle der Informatik
Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende
MehrMathematische Maschinen
Mathematische Maschinen Ziel: Entwicklung eines allgemeinen Schemas zur Beschreibung von (mathematischen) Maschinen zur Ausführung von Algorithmen (hier: (partiellen) Berechnungsverfahren). Mathematische
Mehr4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.
Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
Mehr1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
MehrSemantik von Formeln und Sequenzen
Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt
MehrFormale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt David Farago, Christoph Scheben, Mattias Ulbrich Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrGrammatiken. Einführung
Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische
Mehr2.11 Kontextfreie Grammatiken und Parsebäume
2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle
MehrLernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.
6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente
MehrBinäre Suchbäume (binary search trees, kurz: bst)
Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.
MehrAlso kann nur A ist roter Südler und B ist grüner Nordler gelten.
Aufgabe 1.1: (4 Punkte) Der Planet Og wird von zwei verschiedenen Rassen bewohnt - dem grünen und dem roten Volk. Desweiteren sind die Leute, die auf der nördlichen Halbkugel geboren wurden von denen auf
MehrSatz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich
Herbrand-Strukturen und Herbrand-Modelle Sei F eine Aussage in Skolemform. Dann heißt jede zu F passende Struktur A =(U A, I A )eineherbrand-struktur für F, falls folgendes gilt: 1 U A = D(F ), 2 für jedes
Mehrt r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )
Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen
MehrAnalysis I für Studierende der Ingenieurwissenschaften
Fachbereich Mathematik der Universität Hamburg WiSe 2015/16 Prof. Dr. M. Hinze Dr. P. Kiani Analysis I für Studierende der Ingenieurwissenschaften Lösungshinweise zu Blatt 2 Aufgabe 1: (12 Punkte) a) Beweisen
MehrPrimzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
MehrGrundlagen der Theoretischen Informatik, SoSe 2008
1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)
MehrFormale Sprachen und Grammatiken
Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax
MehrGrundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de
Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik
MehrTerme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)
Prädikatenlogik Man kann den natürlichsprachlichen Satz Die Sonne scheint. in der Prädikatenlogik beispielsweise als logisches Atom scheint(sonne) darstellen. In der Sprache der Prädikatenlogik werden
MehrZusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1
Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 1 Wir betrachten die folgende Signatur
Mehr50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte
50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien
MehrTheoretische Grundlagen des Software Engineering
Theoretische Grundlagen des Software Engineering 7: Einführung Aussagenlogik schulz@eprover.org Logisches Schließen 2 gold +1000, 1 per step, Beispiel: Jage den Wumpus Performance measure death 1000 10
MehrLogische Folgerung. Definition 2.11
Logische Folgerung Definition 2.11 Sei 2A eine aussagenlogische Formel und F eine endliche Menge aussagenlogischer Formeln aus A. heißt logische Folgerung von F genau dann, wenn I ( ) =1für jedes Modell
MehrWS 2008/09. Diskrete Strukturen
WS 2008/09 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/ws0809
MehrZusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen
Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 6 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Satz 1 Seien F, G Boolesche Ausdrücke
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
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
MehrIT-Basics 2. DI Gerhard Fließ
IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte
MehrI. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.
I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten
MehrGrundlagen der Theoretischen Informatik - Sommersemester 2012. Übungsblatt 1: Lösungsvorschläge
Lehrstuhl für Softwaretechnik und Programmiersprachen Professor Dr. Michael Leuschel Grundlagen der Theoretischen Informatik - Sommersemester 2012 Übungsblatt 1: Lösungsvorschläge Disclaimer: Bei Folgendem
MehrVorlesung Diskrete Strukturen Graphen: Wieviele Bäume?
Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V
Mehr4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls
4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,
MehrFormeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur
Signatur Formeln Am Beispiel der Aussagenlogik erklären wir schrittweise wichtige Elemente eines logischen Systems. Zunächst benötigt ein logisches System ein Vokabular, d.h. eine Menge von Namen, die
MehrProlog basiert auf Prädikatenlogik
Software-Technologie Software-Systeme sind sehr komplex. Im Idealfall erfolgt die Programmierung problemorientiert, während die notwendige Übertragung in ausführbare Programme automatisch erfolgt. Prolog-Philosophie:
MehrMotivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.
Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de
MehrKapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen
reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 3: Alphabete (und Relationen, Funktionen, Aussagenlogik) Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Oktober 2008 1/18 Überblick Alphabete ASCII Unicode
MehrWortproblem für kontextfreie Grammatiken
Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?
MehrGrundlagen der Informationverarbeitung
Grundlagen der Informationverarbeitung Information wird im Computer binär repräsentiert. Die binär dargestellten Daten sollen im Computer verarbeitet werden, d.h. es müssen Rechnerschaltungen existieren,
Mehr2. Vorlesung. Slide 40
2. Vorlesung Slide 40 Knobelaufgabe Was tut dieses Programm? Informell Formal Wie stellt man dies sicher? knobel(a,b) { Wenn a = 0 dann return b sonst { solange b 0 wenn a > b dann { a := a - b sonst b
MehrTheoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19
Inhalt 1 inführung 2 Automatentheorie und ormale prachen Grammatiken Reguläre prachen und endliche Automaten Kontextfreie prachen und Kellerautomaten Kontextsensitive und yp 0-prachen 3 Berechenbarkeitstheorie
MehrProgrammieren Formulierung eines Algorithmus in einer Programmiersprache
Zum Titel der Vorlesung: Programmieren Formulierung eines in einer Programmiersprache Beschreibung einer Vorgehensweise, wie man zu jedem aus einer Klasse gleichartiger Probleme eine Lösung findet Beispiel:
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
MehrTechnische Informatik - Eine Einführung
Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine
Mehr9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83
9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x
MehrErfüllbarkeit und Allgemeingültigkeit
Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.3 Aussagenlogik Erfüllbarkeit 44 Erfüllbarkeit und Allgemeingültigkeit Def.: eine Formel ϕ heißt erfüllbar, wennesein I gibt, so dass I = ϕ
MehrÜbung Theoretische Grundlagen
Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory
MehrMächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrTheoretische Informatik I
Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften
MehrRekursionen (Teschl/Teschl 8.1-8.2)
Rekursionen (Teschl/Teschl 8.1-8.2) Eine Rekursion kter Ordnung für k N ist eine Folge x 1, x 2, x 3,... deniert durch eine Rekursionsvorschrift x n = f n (x n 1,..., x n k ) für n > k, d. h. jedes Folgenglied
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrFHZ. K01 Geschichte des Computers. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt
Inhalt 1. Geschichte Folie 1 Lernziele Sie kennen die wichtigsten Punkte in der Geschichte des Computers Sie sind mit einigen Begriffen vertraut Folie 2 Seite 1 Computer als elektronische Rechenmaschine:
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrBeispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen
4.3.2 Zusammengesetzte Zufallsvariablen Beispiel 48 Ein Würfel werde zweimal geworfen. X bzw. Y bezeichne die Augenzahl im ersten bzw. zweiten Wurf. Sei Z := X + Y die Summe der gewürfelten Augenzahlen.
MehrFormale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK
Formale Systeme Prof. Dr. Bernhard Beckert WS / KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz Association
MehrMai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln
Hauptseminar: Nichtrelationale Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Mai 2006 Was ist eine Datenbank? Erweiterung relationaler um eine Deduktionskomponente Diese
Mehr4. Übungsblatt Matrikelnr.: 6423043
Lineare Algebra I 1. Name: Bleeck, Christian 4. Übungsblatt Matrikelnr.: 6423043 Abgabe: 15.11.06 12 Uhr (Kasten D1 320) Übungsgruppe: 03 Patrick Schützdeller 2. Name: Niemann, Philipp Matrikelnr.: 6388613
Mehr3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrDeterministische Turing-Maschinen (DTM) F3 03/04 p.46/395
Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle
MehrDer Zwei-Quadrate-Satz von Fermat
Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat
MehrFachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester 2015. gehalten von Harald Baum
Fachschaft Mathematik und Informatik (FIM) LA I VORKURS Herbstsemester 2015 gehalten von Harald Baum 2. September 2015 Inhaltsverzeichnis 1. Stichpunkte zur Linearen Algebra I 2. Körper 3. Vektorräume
MehrEine Logikschaltung zur Addition zweier Zahlen
Eine Logikschaltung zur Addition zweier Zahlen Grundlegender Ansatz für die Umsetzung arithmetischer Operationen als elektronische Schaltung ist die Darstellung von Zahlen im Binärsystem. Eine Logikschaltung
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrData Mining: Einige Grundlagen aus der Stochastik
Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
MehrWas bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion
Was bisher geschah Daten, Information, Wissen explizites und implizites Wissen Wissensrepräsentation und -verarbeitung: Wissensbasis Kontextwissen Problemdarstellung fallspezifisches Wissen repräsentiert
MehrFormale Methoden II. Gerhard Jäger. SS 2008 Universität Bielefeld. Teil 8, 11. Juni 2008. Formale Methoden II p.1/30
Formale Methoden II SS 2008 Universität Bielefeld Teil 8, 11. Juni 2008 Gerhard Jäger Formale Methoden II p.1/30 Beispiele Anmerkung: wenn der Wahrheitswert einer Formel in einem Modell nicht von der Belegungsfunktion
MehrEinführung in die Fuzzy Logic
Einführung in die Fuzzy Logic Entwickelt von L. Zadeh in den 60er Jahren Benutzt unscharfe (fuzzy) Begriffe und linguistische Variablen Im Gegensatz zur Booleschen Logik {0,} wird das ganze Intervall [0,]
MehrEinführung in die Algebra
Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv
MehrTheorie der Informatik
Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax
MehrProbleme beim Arbeiten mit Variablen, Termen und Gleichungen
Probleme beim Arbeiten mit Variablen, Termen und Gleichungen Tage des Unterrichts in Mathematik, Naturwissenschaften und Technik Rostock 2010 Prof. Dr. Hans-Dieter Sill, Universität Rostock, http://www.math.uni-rostock.de/~sill/
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)
MehrBasis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.
Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren
MehrBeweisbar sichere Verschlüsselung
Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6
MehrKorrelation (II) Korrelation und Kausalität
Korrelation (II) Korrelation und Kausalität Situation: Seien X, Y zwei metrisch skalierte Merkmale mit Ausprägungen (x 1, x 2,..., x n ) bzw. (y 1, y 2,..., y n ). D.h. für jede i = 1, 2,..., n bezeichnen
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrDiskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de
Diskrete Strukturen und Logik WiSe 2007/08 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Diskrete Strukturen und Logik Gesamtübersicht Organisatorisches Einführung Logik & Mengenlehre
MehrEinfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at
Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
Mehr15 Optimales Kodieren
15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen
Mehr1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI
MehrRekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt
Methoden und Techniken an Beispielen erklärt Georg Anegg 5. November 009 Beispiel. Die Folge {a n } sei wie folgt definiert (a, d, q R, q ): a 0 a, a n+ a n q + d (n 0) Man bestimme eine explizite Darstellung
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 3. Endliche Automaten (V) 21.05.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Determinierte endliche Automaten (DEAs) Indeterminierte
Mehr7 Rechnen mit Polynomen
7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn
Mehr6.2 Perfekte Sicherheit
04 6.2 Perfekte Sicherheit Beweis. H(B AC) + H(A C) = H(ABC) H(AC) + H(AC) H(C) Wegen gilt Einsetzen in die Definition gibt = H(AB C). H(A BC) = H(AB C) H(B C). I(A; B C) = H(A C) H(AB C) + H(B C). Da
Mehr4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:
4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie
MehrFolge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
MehrMathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011
Mathematik für Informatiker II Christoph Eisinger Sommersemester 211 Beispiellösungen zur Probeklausur Aufgabe 1 Gegeben sind die Polynome f, g, h K[x]. Zu zeigen: Es gibt genau dann Polynome h 1 und h
Mehr