Lecture 11: Inductive Program Synthesis p. 1

Größe: px
Ab Seite anzeigen:

Download "Lecture 11: Inductive Program Synthesis p. 1"

Transkript

1 Lecture 11: Inductive Program Synthesis Cognitive Systems II - Machine Learning SS 2005 Part III: Learning Programs and Strategies Functional Programs, Program Schemes, Traces, Folding Lecture 11: Inductive Program Synthesis p. 1

2 Lernen aus Problemlöse-Erfahrung Induktive Programm Synthese Planung (Universelles Planen) Erweiterung von Strips auf Funktionsanwendung Erwerb von domain spezifischen Kontrollregeln Falten endlicher Terme zu rekursiven Programmen Transformation von Plänen zu Termen Analoges Schliessen (Abstraktion) Erwerb abstrakter Schemata durch Anti Unifikation von Termen Strukturelle Ähnlichkeit Lecture 11: Inductive Program Synthesis p. 2

3 Klassifikations- und Handlungsregeln einfache Klassifikationsregel (Entscheidungsbaum) if (x1 = 1) & (x2 = 0) then k else not k rekursive Klassifikationsregel (definite Hornklauseln) ancestor(p, F) :- parent(p,f). ancestor(p, F) :- parent(p, I), ancestor(i, F). einfache Handlungsregel (Entscheidungsbaum) if (pressure=high) & (oxygen=low) then reduce-temp else do-nothing rekursive Handlungsregel (funktionales Programm) unloadall(tr, s) = if empty(tr) then s else unload(getobj(tr), unloadall(restobj(tr), s)) Lernen rekursiver Handlungsregeln mit induktiver Programmsynthese Lecture 11: Inductive Program Synthesis p. 3

4 Programmsynthese Automatisches Programmieren: Automatisierung/Unterstützung eines möglichst grossen Teils des Software-Entwicklungsprozesses. (Spezifikations-Akquisition, Umsetzung in Programmcode, Verifikation, Validierung,...) Programmsynthese: Automatisierung oder Unterstützung der Generierung von Programmcode aus Spezifikationen. Lecture 11: Inductive Program Synthesis p. 4

5 Programmsynthese Deduktive Programmsynthese: vollständige, formale (nicht ausführbare) Spezifikationen. last(l) find z such that for some y, l = y [z] where islist(l) and l [ ] (Manna & Waldinger) x y [P re(x) P ost(x, y)] x [P re(x) P ost(x, f(x))] Lecture 11: Inductive Program Synthesis p. 4

6 Programmsynthese Induktive Programmsynthese: unvollständige Spezifikationen ( Trainingsbeispiele ), I/O-Paare oder Traces. last([1]) = 1 last([2 7]) = 7 last([5 3 4]) = 4 Induktive Programmsynthese ist Maschinelles Lernen Lecture 11: Inductive Program Synthesis p. 4

7 Induktive Programmsynthese Genetisches Programmieren: generate and test. Induktive Logische Programmierung: meist bottom-up Generalisierung aus positiven und negativen Beispielen (relative least general generalizations) Funktionale Programmsynthese: 1. Umwandlung von I/O-Beispielen in Berechnungsspuren (traces) 2. Rekurrenz-Entdeckung (Falten endlicher Terme) Lecture 11: Inductive Program Synthesis p. 5

8 Fuktionale Programmsynthese Schritt 2: Programmsynthese aus Berechnungsspuren Pattern-Matching auf Termen Theoretische Basis von Summers (1977) Synthese von Lisp-Programmen aus Berechnungsspuren Schritt 1 basiert dagegen auf Hintergrundwissen Lecture 11: Inductive Program Synthesis p. 6

9 Summers RPS Hypothesensprache: linear rekursives Programmschema (RPS) F (x) (p 1 (x) f 1 (x),..., p k (x) f k (x), T C(F (b(x)), x)) Lecture 11: Inductive Program Synthesis p. 7

10 Summers RPS Hypothesensprache: linear rekursives Programmschema (RPS) F (x) (p 1 (x) f 1 (x),..., p k (x) f k (x), T C(F (b(x)), x)) p 1,... p k : Prädikate atom(b i (x)) Lecture 11: Inductive Program Synthesis p. 7

11 Summers RPS Hypothesensprache: linear rekursives Programmschema (RPS) F (x) (p 1 (x) f 1 (x),..., p k (x) f k (x), T C(F (b(x)), x)) b, b i : Basis-Funktionen car(x), cdr(x) und Kombinationen (cadr(x), cddr(x),...) Lecture 11: Inductive Program Synthesis p. 7

12 Summers RPS Hypothesensprache: linear rekursives Programmschema (RPS) F (x) (p 1 (x) f 1 (x),..., p k (x) f k (x), T C(F (b(x)), x)) f 1,..., f k : S-Expression (nil, b, cons(w, x)) Lecture 11: Inductive Program Synthesis p. 7

13 Summers RPS Hypothesensprache: linear rekursives Programmschema (RPS) F (x) (p 1 (x) f 1 (x),..., p k (x) f k (x), T C(F (b(x)), x)) T : Wahrheitswert true Lecture 11: Inductive Program Synthesis p. 7

14 Summers RPS Hypothesensprache: linear rekursives Programmschema (RPS) F (x) (p 1 (x) f 1 (x),..., p k (x) f k (x), T C(F (b(x)), x)) C(w, x): cons-expression, in der w genau einmal vorkommt Lecture 11: Inductive Program Synthesis p. 7

15 Summers RPS Hypothesensprache: linear rekursives Programmschema (RPS) F (x) (p 1 (x) f 1 (x),..., p k (x) f k (x), T C(F (b(x)), x)) u(x) (atom(cdr(x)) cons(x, nil), T cons(cons(car(x), nil), u(cdr(x)))) Lecture 11: Inductive Program Synthesis p. 7

16 Beispiel I/O Beispiele: nil nil (A) ((A)) (A B) ((A) (B)) (A B C) ((A) (B) (C)) Lecture 11: Inductive Program Synthesis p. 8

17 Beispiel nil nil (A) ((A)) (A B) ((A) (B)) (A B C) ((A) (B) (C)) Berechnungsspuren: F L (x) (atom(x) nil, atom(cdr(x)) cons(x, nil), atom(cddr(x)) cons(cons(car(x), nil), cons(cdr(x), nil)), T cons(cons(car(x), nil), cons(cons(cadr(x),nil), cons(cddr(x),nil)))) Lecture 11: Inductive Program Synthesis p. 8

18 Beispiel F L (x) (atom(x) nil, atom(cdr(x)) cons(x, nil), atom(cddr(x)) cons(cons(car(x), nil), cons(cdr(x), nil)), T cons(cons(car(x), nil), cons(cons(cadr(x),nil), cons(cddr(x),nil)))) Synthetisiertes Programm: unpack(x) u(x) (atom(x) nil, T u(x)) (atom(cdr(x)) cons(x, nil), T cons(cons(car(x), nil), u(cdr(x)))) Lecture 11: Inductive Program Synthesis p. 8

19 Rekurrenz-Detektion F L (x) (atom(x) nil, atom(cdr(x)) cons(x, nil), atom(cddr(x)) cons(cons(car(x), nil), cons(cdr(x), nil)), T cons(cons(car(x), nil), cons(cons(cadr(x),nil), cons(cddr(x),nil)))) Lecture 11: Inductive Program Synthesis p. 9

20 Rekurrenz-Detektion F L (x) (atom(x) nil, atom(cdr(x)) cons(x, nil), atom(cddr(x)) cons(cons(car(x), nil), cons(cdr(x), nil)), T cons(cons(car(x), nil), cons(cons(cadr(x),nil), cons(cddr(x),nil)))) Differenzen: p 2 (x) = p 1 (cdr(x)) p 3 (x) = p 2 (cdr(x)) p 4 (x) = p 3 (cdr(x)) Rekurrenz-Relation: p 1 (x) = atom(x) p k+1 (x) = p k (cdr(x)) for k = 1, 2, 3 Lecture 11: Inductive Program Synthesis p. 9

21 Rekurrenz-Detektion F L (x) (atom(x) nil, atom(cdr(x)) cons(x, nil), atom(cddr(x)) cons(cons(car(x), nil), cons(cdr(x), nil)), T cons(cons(car(x), nil), cons(cons(cadr(x),nil), cons(cddr(x),nil)))) Differenz: f 2 (x) = cons(x, f 1 (x)) Rekurrenz-Relation: f 1 (x) = nil f 2 (x) = cons(x, f 1 (x)) Lecture 11: Inductive Program Synthesis p. 9

22 Rekurrenz-Detektion F L (x) (atom(x) nil, Differenz: atom(cdr(x)) cons(x, nil), atom(cddr(x)) cons(cons(car(x), nil), cons(cdr(x), nil)), T cons(cons(car(x), nil), cons(cons(cadr(x),nil), cons(cddr(x),nil)))) f 3 (x) = cons(cons(car(x),nil), f 2 (cdr(x))) f 4 (x) = cons(cons(car(x),nil), f 3 (cdr(x))) Rekurrenz-Relation: f 2 (x) = cons(x, f 1 (x)) f k+1 (x) = cons(cons(car(x),nil), f k (cdr(x))) for k = 2, 3 Lecture 11: Inductive Program Synthesis p. 9

23 Falten endlicher Terme Wird eine Rekurrenz-Relation in einem endlichen Term erkannt, p 1 (x) = atom(x) p k+1 (x) = p k (cdr(x)) for k = 1, 2, 3 f 1 (x) = nil f 2 (x) = cons(x, f 1 (x)) f k+1 (x) = cons(cons(car(x),nil), f k (cdr(x))) for k = 2, 3 so kann der Term in eine rekursive Funktion gefaltet werden. u(x) (atom(cdr(x)) cons(x, nil), T cons(cons(car(x), nil), u(cdr(x)))) Lecture 11: Inductive Program Synthesis p. 10

24 Summers Synthese-Theorem (1) Entfalten einer rekursiven Funktion: Syntaktisches Einsetzen des Funktionskörpers für den Funktionsaufruf mit entsprechender Substitution der Parameter Ausnutzen der Beziehung zwischen einem RPS und seinen Entfaltungen für die Induktion (Faltung) eines RPS aus einem endlichen Term. Term wird als k-te Approximation der gesuchten Funktion F(x) angenommen. Lecture 11: Inductive Program Synthesis p. 11

25 Folge von Unfoldings für unpack(x) für keine Eingabe definiert U 0 Ω Lecture 11: Inductive Program Synthesis p. 12

26 Folge von Unfoldings für unpack(x) für keine Eingabe definiert für leere Liste definiert U 1 (atom(x) nil, T Ω) U 0 Ω Lecture 11: Inductive Program Synthesis p. 12

27 Folge von Unfoldings für unpack(x) für keine Eingabe definiert für leere Liste definiert U 1 (atom(x) nil, T Ω) U 0 Ω für leere und einelementige Liste definiert U 2 (atom(x) nil, atom(cdr(x)) cons(x, nil), T Ω) Lecture 11: Inductive Program Synthesis p. 12

28 Folge von Unfoldings für unpack(x) für keine Eingabe definiert für leere Liste definiert U 1 (atom(x) nil, T Ω) U 0 Ω für leere und einelementige Liste definiert U 2 (atom(x) nil, atom(cdr(x)) cons(x, nil), T Ω)... für Listen bis n Elemente definiert Lecture 11: Inductive Program Synthesis p. 12

29 Summers Synthese-Theorem (2) Partielle Ordnung über der Menge der Funktionsapproximationen (aufsteigende Kette). Supremum der Kette von Funktionsapproximationen ist die gesuchte Funktion (Fixpunkt-Semantik). Lecture 11: Inductive Program Synthesis p. 13

30 Summers Synthese-Theorem (2) Partielle Ordnung über der Menge der Funktionsapproximationen (aufsteigende Kette). Supremum der Kette von Funktionsapproximationen ist die gesuchte Funktion (Fixpunkt-Semantik). Wird ein aus Beispielen konstruiertes endliches Programm (Berechnungsspuren) als k-tes Unfolding eines unbekannten rekursiven Programms aufgefasst und können Rekurrenz-Beziehungen im endlichen Programm entdeckt werden, dann kann ein rekursives Programm, das dieses endliche Programm erzeugen kann, induziert werden! Lecture 11: Inductive Program Synthesis p. 13

31 Verallgemeinerung + Sprachunabhängig: Terme einer beliebigen Termalgebra T Σ (X). + Mengen rekursiver Funktionen mit beliebiger (aber nicht wechselseitiger) calls-relation. + Beliebige Anzahl von formalen Parametern, mit wechselseitigen Abhängigkeiten. + Unvollständige Entfaltungen. Mächtigere Hypothesensprache Verallgemeinerte Synthesetheoreme Lecture 11: Inductive Program Synthesis p. 14

32 Hypothesensprache RPS S = (G, t 0 ) mit t 0 T Σ Φ (X) und G als System von n Gleichungen: G = G 1 (x 1,..., x m1 ) = t 1,. G n (x 1,..., x mn ) = t n mit t i T Σ Φ (X), i = 1... n. Lecture 11: Inductive Program Synthesis p. 15

33 Hypothesensprache RPS S = (G, t 0 ) mit t 0 T Σ Φ (X) und G als System von n Gleichungen: G = G 1 (x 1,..., x m1 ) = t 1,. G n (x 1,..., x mn ) = t n mit t i T Σ Φ (X), i = 1... n. Summers: eine Gleichung G i Lecture 11: Inductive Program Synthesis p. 15

34 Hypothesensprache RPS S = (G, t 0 ) mit t 0 T Σ Φ (X) und G als System von n Gleichungen: G = G 1 (x 1,..., x m1 ) = t 1, mit t i T Σ Φ (X), i = 1... n. Signatur Σ. G n (x 1,..., x mn ) = t n Funktionsvariablen Φ mit Σ Φ = und Stelligkeit α(g i ) = m i > 0 Lecture 11: Inductive Program Synthesis p. 15

35 Hypothesensprache RPS S = (G, t 0 ) mit t 0 T Σ Φ (X) und G als System von n Gleichungen: G = G 1 (x 1,..., x m1 ) = t 1, mit t i T Σ Φ (X), i = 1... n.. G n (x 1,..., x mn ) = t n Abstraktes funktionales Programm mit t 0 als initialer Aufruf ( main ) und G als Menge rekursiver Funktionen. Lecture 11: Inductive Program Synthesis p. 15

36 Hypothesensprache RPS S = (G, t 0 ) mit t 0 T Σ Φ (X) und G als System von n Gleichungen: G = G 1 (x 1,..., x m1 ) = t 1,. G n (x 1,..., x mn ) = t n mit t i T Σ Φ (X), i = 1... n. Linke Seite einer Gleichung: Programmkopf (Parameter x i paarweise verschieden). Rechte Seite einer Gleichung: Programmkörper (t i enthält mindestens einen Aufruf von G i und evtl. Aufrufe von G j G). Lecture 11: Inductive Program Synthesis p. 15

37 Beispiel G = ModList(l, n) = if( empty(l), nil, cons( if(eq0(mod(n, head(l))), T, nil), ModList(tail(l), n))), Mod(k, n) = if(<(k, n), k, Mod( (k, n), n)) t 0 = ModList(l, n) Lecture 11: Inductive Program Synthesis p. 16

38 Beispiel G = ModList(l, n) = if( empty(l), nil, cons( if(eq0(mod(n, head(l))), T, nil), ModList(tail(l), n))), Mod(k, n) = if(<(k, n), k, Mod( (k, n), n)) t 0 = ModList(l, n) Zwei rekursive Gleichungen. ModList ruft Mod auf. Lecture 11: Inductive Program Synthesis p. 16

39 Beispiel G = ModList(l, n) = if( empty(l), nil, cons( if(eq0(mod(n, head(l))), T, nil), ModList(tail(l), n))), Mod(k, n) = if(<(k, n), k, Mod( (k, n), n)) t 0 = ModList(l, n) t 0 : uninstantiierter Aufruf von ModList Initialisierung ModList([9, 4, 7], 8) Einbettung head(modlist([9, 4, 7], 8)) Lecture 11: Inductive Program Synthesis p. 16

40 Beispiel G = ModList(l, n) = if( empty(l), nil, cons( if(eq0(mod(n, head(l))), T, nil), ModList(tail(l), n))), Mod(k, n) = if(<(k, n), k, Mod( (k, n), n)) t 0 = ModList(l, n) Unvollständige Entfaltungen (Planer-/Nutzergenerierte Berechnungsspuren) Lecture 11: Inductive Program Synthesis p. 16

41 Allgemeiner Ansatz Betrachtung eines RPS als Termersetzungssystem Charakterisierung der Sprache eines RPS Induktion: Ist gegebener Term Element der Sprache? Lecture 11: Inductive Program Synthesis p. 17

42 Folding-Algorithmus 1. Hypothetische Segmentierung eines Terms in potentielle Rekursionspunkte: Rekurrenzrelation entlang Pfaden zu Ω s (Backtracking-Punkt). 2. Bildung eines maximalen Funktions-Körpers durch Anti-Unifikation der Segmente. 3. Ermittlung der Substitutionsvorschrift. Lecture 11: Inductive Program Synthesis p. 18

43 Beispielterm (EMPTY L) NIL NS (IF (EQ0 (IF (< (HEAD L) N) (HEAD L) OMEGA)) T NIL) F (EMPTY (TAIL L)) NIL CONS (IF (EQ0 (IF (< (HEAD (TAIL L)) N) (HEAD (TAIL L)) (IF (< (- (HEAD (TAIL L)) N) N) (- (HEAD (TAIL L)) N) OMEGA))) T NIL) (IF (EMPTY (TAIL (TAIL L))) NIL (CONS (IF (EQ0 (IF (< (HEAD (TAIL (TAIL L))) N) (HEAD (TAIL (TAIL L))) (IF (< (- (HEAD (TAIL (TAIL L))) N) N) (- (HEAD (TAIL (TAIL L))) N) (IF (< (- (- (HEAD (TAIL (TAIL L))) N) N) N) (- (- (HEAD (TAIL (TAIL L))) N) N) OMEGA)))) T NIL) (IF (EMPTY (TAIL (TAIL (TAIL L)))) NIL (CONS (IF (EQ0 (IF (< (HEAD (TAIL (TAIL (TAIL L)))) N) (HEAD (TAIL (TAIL (TAIL L)))) (IF (< (- (HEAD (TAIL (TAIL (TAIL L)))) N) N) (- (HEAD (TAIL (TAIL (TAIL L)))) N) (IF (< (- (- (HEAD (TAIL (TAIL (TAIL L)))) N) N) N) (- (- (HEAD (TAIL (TAIL (TAIL L)))) N) N) OMEGA)))) T NIL) OMEGA)))))))) Lecture 11: Inductive Program Synthesis p. 19

44 Generierung von Berechnungsspuren Folding: rein syntaktisch, allgemein formulierbar, mit Pattern-Matching lösbar Generierung von Berechnungsspuren: domain-abhängig Lecture 11: Inductive Program Synthesis p. 20

45 Generierung von Berechnungsspuren Folding: rein syntaktisch, allgemein formulierbar, mit Pattern-Matching lösbar Generierung von Berechnungsspuren: domain-abhängig Summers: strukturelle Listenprobleme I/O Beispiele können eindeutig in Berechnungsspuren transformiert werden. Lecture 11: Inductive Program Synthesis p. 20

46 Generierung von Berechnungsspuren Folding: rein syntaktisch, allgemein formulierbar, mit Pattern-Matching lösbar Generierung von Berechnungsspuren: domain-abhängig Programming by Demonstration: Erfassung über Benutzerinteraktion Lecture 11: Inductive Program Synthesis p. 20

47 Generierung von Berechnungsspuren Folding: rein syntaktisch, allgemein formulierbar, mit Pattern-Matching lösbar Generierung von Berechnungsspuren: domain-abhängig KI-Planung: Pläne als Folge von Operator-Anwendungen zur Transformation eines Anfangszustand (Input) in einen Zielzustand (Output) Pläne sind Berechnungsspuren Lecture 11: Inductive Program Synthesis p. 20

48 Generierung von Berechnungsspuren Folding: rein syntaktisch, allgemein formulierbar, mit Pattern-Matching lösbar Generierung von Berechnungsspuren: domain-abhängig Input/Output Beispiele Beispielprobleme Transformation primitive Funktionen Datentypen Domain Basis Operatoren Planung Berechnungsspuren Pläne Folding rekursives Programmschema Lecture 11: Inductive Program Synthesis p. 20

49 Planung und Programmsynthese Zustandsbasiertes Planen (Strips, Graphplan) Suche im Zustandsraum i.a. exponentieller Aufwand Lösung 1: domainspezifische Kontrollregeln zur Steuerung der Suche Problem: knowledge engineering Lösung 2: Lernen von Kontrollregeln aus Beispielplänen Lecture 11: Inductive Program Synthesis p. 21

50 Planung und Programmsynthese domain spezifische Kontrollstrategie Berechnungsspuren Beispielprobleme Domain Basis Operatoren Planung Pläne Folding Beispiel: Clearblock -Problem rekursives Programmschema clearblock(b, s) = IF clear(b, s) THEN s ELSE puttable(topof(b, s), clearblock(topof(b, s), s)) Lecture 11: Inductive Program Synthesis p. 21

51 Problemlösen und Programmsynthese Lernen aus Problemlöseerfahrung Induktives Lernen aus Beispielen Lösen von Programmierproblemen als Spezialfall Handsimulation der ersten n Beispiele Sortieren einer Liste mit bis zu drei Elementen Generalisierung zur rekursiven Lösung insertion-sort Modellierung von Programmsynthese als Wissenserwerb aus Problemlöseerfahrung Induktive Programmsynthese als methodischer Zugang zum Lernen aus Erfahrung Lecture 11: Inductive Program Synthesis p. 22

52 Exploration eines Problembereichs A B C puttable(a) puttable(b) B C A C A B clear(a) clear(b) clear(c) Gegeben Problemlöse-Operatoren und Ziel Lecture 11: Inductive Program Synthesis p. 23

53 Generalisierung über Lösungsstrukturen: Wende solange puttable(x) an, bis clear(zielblock) Lecture 11: Inductive Program Synthesis p. 24

54 Generalisierung über Lösungsstrukturen: Repräsentiert als rekursives Programmschema: clearblock(b, s) = IF clear(b, s) THEN s ELSE puttable(topof(b, s), clearblock(topof(b, s), s)) Schema-Erwerb (e.g. Norman & Rumelhart) Teilziel-Struktur Domain-spezifische Strategie Lecture 11: Inductive Program Synthesis p. 24

55 Generalisierung über Lösungsstrukturen: Repräsentiert als rekursives Programmschema: clearblock(b, s) = IF clear(b, s) THEN s ELSE puttable(topof(b, s), clearblock(topof(b, s), s)) Teilzielbildung Lecture 11: Inductive Program Synthesis p. 24

56 Generalisierung über Lösungsstrukturen: Repräsentiert als rekursives Programmschema: clearblock(b, s) = IF clear(b, s) THEN s ELSE puttable(topof(b, s), clearblock(topof(b, s), s)) Aktionsfolge Lecture 11: Inductive Program Synthesis p. 24

57 Generalisierung über Lösungsstrukturen: Repräsentiert als rekursives Programmschema: clearblock(b, s) = IF clear(b, s) THEN s ELSE puttable(topof(b, s), clearblock(topof(b, s), s)) Relevante Eigenschaften Lecture 11: Inductive Program Synthesis p. 24

58 Generalisierung über Lösungsstrukturen: Repräsentiert als rekursives Programmschema: clearblock(b, s) = IF clear(b, s) THEN s ELSE puttable(topof(b, s), clearblock(topof(b, s), s)) Objekt-Auswahl Lecture 11: Inductive Program Synthesis p. 24

59 Bewertung Induktive Programmsynthese als Ansatz zum Maschinellen Lernen von Kontrollregeln Wissensentdeckung : Identifikation von und Generalisierung über Regularitäten (Chomsky, LAD) Bezug zum menschlichen Lernen: learning by doing nicht begrenzt auf chunking von Regeln (Makro-Lernen, ACT), Lernen von Problemlöse-Strategien als Generalisierung über Problemlöse-Erfahrung Kognitive Modellierung: statt Simulation konkreter empirischer Daten Formulierung grundlegender Mechanismen (Identifikation relevanter Merkmale, Schema-Erwerb) Lecture 11: Inductive Program Synthesis p. 25

60 Anwendungen Lernen von Kontrollregeln für Planungssysteme aktuell: verteiltes Planen für ubiquituos computing in der Transportlogistik Lernen von XSL Transformationen mit recursive template application (Umwandlung von XML-Dokumenten) Analoges und fallbasiertes Schliessen als Spezialfall von Induktion (Anti-Unifikations-Algorithmen, Bezug zu psychologischen Theorien) Lecture 11: Inductive Program Synthesis p. 26

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: 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,

Mehr

Foundations of Systems Development

Foundations of Systems Development Foundations of Systems Development Vergleich und Zusammenfassung Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer WS 2007/08 2 Ziele Wichtige Aspekte von algebraischen Spezikationen

Mehr

Prolog basiert auf Prädikatenlogik

Prolog 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:

Mehr

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract:

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract: Spezifikation der zulässigen Parameter Bemerkungen: Bei jeder (partiellen) Funktion muss man sich überlegen und dokumentieren, welche aktuellen Parameter bei einer Anwendung zulässig sein sollen. Der Anwender

Mehr

Kompositionen von Baumreihen-Transformationen

Kompositionen von Baumreihen-Transformationen Kompositionen von Baumreihen-Transformationen Andreas Maletti 1 Lehrstuhl: Grundlagen der Programmierung Institut für Theoretische Informatik Technische Universität Dresden 4. November 2005 1 Finanziell

Mehr

Einführung in die Informatik Grammars & Parsers

Einführung in die Informatik Grammars & Parsers Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: 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

Mehr

Verträge für die funktionale Programmierung Design und Implementierung

Verträge für die funktionale Programmierung Design und Implementierung 1 Verträge für die funktionale Programmierung Design und Implementierung RALF HINZE Institut für Informatik III, Universität Bonn Römerstraße 164, 53117 Bonn, Germany Email: ralf@informatik.uni-bonn.de

Mehr

Maschinelles Lernen und Data Mining: Methoden und Anwendungen

Maschinelles Lernen und Data Mining: Methoden und Anwendungen Maschinelles Lernen und Data Mining: Methoden und Anwendungen Eyke Hüllermeier Knowledge Engineering & Bioinformatics Fachbereich Mathematik und Informatik GFFT-Jahrestagung, Wesel, 17. Januar 2008 Knowledge

Mehr

Entwicklung eines korrekten Übersetzers

Entwicklung eines korrekten Übersetzers Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung

Mehr

Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe

Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe Anfragen für Listen Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe 1 MapReduce-Verfahren Google u.a. verwenden Map-Reduce-Verfahren zur Verarbeitung riesiger

Mehr

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen 9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam

Mehr

Grundlagen der Informationverarbeitung

Grundlagen 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,

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

ShopBot, ein Software-Agent für das Internet

ShopBot, ein Software-Agent für das Internet Software-Agenten p.1/20 ShopBot, ein Software-Agent für das Internet Eine Einführung in (Software-)Agenten Madeleine Theile Software-Agenten p.2/20 Aufbau des Vortrags grundlegende Theorie Definition Autonomy,

Mehr

Verifikations- und Spezifikationsmethoden

Verifikations- und Spezifikationsmethoden Verifikations- und Spezifikationsmethoden Prof. Dr. Sibylle Schwarz Westsächsische Hochschule Zwickau Dr. Friedrichs-Ring 2a, RII 263 http://www.fh-zwickau.de/~sibsc/ sibylle.schwarz@fh-zwickau.de WS 2012/13

Mehr

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

Programmierparadigmen

Programmierparadigmen Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2011, 20. Juni 2011, c 2011 D.Rösner D. Rösner PGP 2011...

Mehr

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel XML-QL Querysprachen für XML Zusätzliche Quellen: http://www.w3.org/tr/xquery/ http://www.w3schools.com/xquery/ XML-QL ist eine Querysprache für XML mit folgenden Eigenschaften: Kombiniert die XML-Syntax

Mehr

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

Mehr

Algorithmen und Datenstrukturen SS09

Algorithmen und Datenstrukturen SS09 Foliensatz 8 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 29 TU Ilmenau Seite / 54 Binärbäume TU Ilmenau Seite 2 / 54 Binäre Bäume Bäume und speziell

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Prof. Dr. Hans J. Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2011 I. Die

Mehr

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: 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.

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaß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);

Mehr

Maschinelles Lernen Entscheidungsbäume

Maschinelles Lernen Entscheidungsbäume Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Maschinelles Lernen Entscheidungsbäume Paul Prasse Entscheidungsbäume Eine von vielen Anwendungen: Kreditrisiken Kredit - Sicherheiten

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Übersicht 1 Allgemein Teilgebiete der Informatik ohne Theoretische Grundlagen 2 Fragen an

Mehr

Data Mining und Text Mining Einführung. S2 Einfache Regellerner

Data Mining und Text Mining Einführung. S2 Einfache Regellerner Data Mining und Text Mining Einführung S2 Einfache Regellerner Hans Hermann Weber Univ. Erlangen, Informatik 8 Wintersemester 2003 hans.hermann.weber@gmx.de Inhalt Einiges über Regeln und Bäume R1 ein

Mehr

ChangePoint-Analysen - ein Überblick

ChangePoint-Analysen - ein Überblick ChangePoint-Analysen - ein Überblick Gliederung Motivation Anwendungsgebiete Chow Test Quandt-Andrews Test Fluktuations-Tests Binary Segmentation Recursive circular and binary segmentation algorithm Bayesscher

Mehr

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

Mehr

Grundlagen der Programm- und Systementwicklung

Grundlagen der Programm- und Systementwicklung Grundlagen der Programm- und Systementwicklung Technische Universität München Institut für Informatik Software & Systems Engineering Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. Alexander Malkis,

Mehr

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) 05 -Kommunizierende Prozesse PD Dr. Bernhard Schätz Lehrstuhl für Software und Systems Engineering, Fakultät für Informatik

Mehr

Data Mining Anwendungen und Techniken

Data Mining Anwendungen und Techniken Data Mining Anwendungen und Techniken Knut Hinkelmann DFKI GmbH Entdecken von Wissen in banken Wissen Unternehmen sammeln ungeheure mengen enthalten wettbewerbsrelevantes Wissen Ziel: Entdecken dieses

Mehr

Einführung in PROLOG. Christian Stocker

Einführung in PROLOG. Christian Stocker Einführung in PROLOG Christian Stocker Inhalt Was ist PROLOG? Der PROLOG- Interpreter Welcher Interpreter? SWI-Prolog Syntax Einführung Fakten, Regeln, Anfragen Operatoren Rekursion Listen Cut Funktionsweise

Mehr

1. Teilklausur. Modul "OOPM Vorlesung/Übung" 16.12.2008. Gruppe A

1. Teilklausur. Modul OOPM Vorlesung/Übung 16.12.2008. Gruppe A Objektorientierte Programmierung und Modellierung WS 2008/2009 Institut für Informatik Prof. Dr. Ralf Lämmel Dr. Manfred Jackel 1. Teilklausur Modul "OOPM Vorlesung/Übung" 16.12.2008 Gruppe A Name Vorname

Mehr

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise:

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise: Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 5.4 Prädikatenlogik mit Gleichheit Resolution 192 Beispiel Bsp.: Betrachte Schlussweise in: 1 Wenn es regnet, dann wird die Straße nass. R N

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binäre lineare Optimierung mit K*BMDs p.1/42 Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre

Mehr

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen aussagenlogischer Regeln: Wissensbasis (Kontextwissen): Formelmenge,

Mehr

Einführung in das Entity-Relationship-Modell

Einführung in das Entity-Relationship-Modell Einführung in das Entity-Relationship-Modell Historie Entity-Relationship-Modell kurz: ER-Modell bzw. ERM 1976 von Peter Chen vorgeschlagen Standardmodell für frühe Entwurfsphasen in der Datenbankentwicklung

Mehr

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2008/09. Universität Freiburg, Germany

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2008/09. Universität Freiburg, Germany Informatik I Grundlagen der systematischen Programmierung Peter Thiemann Universität Freiburg, Germany WS 2008/09 Organisatorisches Vorlesung Di und Do, 11-13 Uhr, HS 101-00-036 Dozent Prof. Dr. Peter

Mehr

Allgemeine Regressionsanalyse. Kovariablen / Prädiktoren / unabhängige Variablen X j R d, evtl. deterministisch

Allgemeine Regressionsanalyse. Kovariablen / Prädiktoren / unabhängige Variablen X j R d, evtl. deterministisch Prof. Dr. J. Franke Statistik II für Wirtschaftswissenschaftler 9.1 Allgemeine Regressionsanalyse Daten (X j, Y j ), j = 1,..., N unabhängig Kovariablen / Prädiktoren / unabhängige Variablen X j R d, evtl.

Mehr

Teil II. Nichtlineare Optimierung

Teil II. Nichtlineare Optimierung Teil II Nichtlineare Optimierung 60 Kapitel 1 Einleitung In diesem Abschnitt wird die Optimierung von Funktionen min {f(x)} x Ω betrachtet, wobei Ω R n eine abgeschlossene Menge und f : Ω R eine gegebene

Mehr

6 Systematisches Testen von Programmen

6 Systematisches Testen von Programmen 6 Systematisches Testen von Programmen Testen Untersuchung des Source-Codes nach Fehlern und Anomalien Stefan Lucks, Software-Entwicklung für Sichere Systeme SS 04, Kapitel 6 p.1/24 Untersuchung des Source-Codes

Mehr

Software Engineering II (IB) Testen von Software / Modultests

Software Engineering II (IB) Testen von Software / Modultests Testen von Software / Modultests Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Programm-Tests Tests sollen zeigen, dass ein Programm das tut was es tun soll sowie

Mehr

Simulation der SW-Systemzuverlässigkeit in Automatisierungssystemen auf Grundlage von SW-Komponenten

Simulation der SW-Systemzuverlässigkeit in Automatisierungssystemen auf Grundlage von SW-Komponenten Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Simulation der SW-Systemzuverlässigkeit in Automatisierungssystemen auf Grundlage von SW-Komponenten

Mehr

Software-Test: Funktionstest

Software-Test: Funktionstest Software-Test: Funktionstest Andreas Zeller Lehrstuhl für Softwaretechnik Universität des Saarlandes, Saarbrücken 2006-02-06 Funktionale Testverfahren Funktionale Testverfahren testen gegen die Spezifikation

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

3. Entscheidungsbäume. Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002)

3. Entscheidungsbäume. Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002) 3. Entscheidungsbäume Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002) (aus Wilhelm 2001) Beispiel: (aus Böhm 2003) Wann sind Entscheidungsbäume

Mehr

8: Zufallsorakel. Wir suchen: Einfache mathematische Abstraktion für Hashfunktionen

8: Zufallsorakel. Wir suchen: Einfache mathematische Abstraktion für Hashfunktionen Stefan Lucks 8: Zufallsorakel 139 Kryptogr. Hashfunkt. (WS 08/09) 8: Zufallsorakel Unser Problem: Exakte Eigenschaften von effizienten Hashfunktionen nur schwer erfassbar (z.b. MD5, Tiger, RipeMD, SHA-1,...)

Mehr

Laufzeit und Komplexität

Laufzeit 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

Mehr

Personalisierung. Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung. Data Mining.

Personalisierung. Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung. Data Mining. Personalisierung Personalisierung Thomas Mandl Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung Klassifikation Die Nutzer werden in vorab bestimmte Klassen/Nutzerprofilen

Mehr

Programmiertechnik II

Programmiertechnik 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

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Datenbankmodelle 1. Das Entity-Relationship-Modell. Prof. Dr. Bernhard Schiefer 2-1

Datenbankmodelle 1. Das Entity-Relationship-Modell. Prof. Dr. Bernhard Schiefer 2-1 Datenbankmodelle 1 Das Entity-Relationship-Modell Prof. Dr. Bernhard Schiefer 2-1 Datenbankmodelle ER-Modell hierarchisches Modell Netzwerkmodell relationales Modell objektorientierte Modelle Prof. Dr.

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Prof Dr Hans J Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2005 I Die Sprache

Mehr

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Grundlagen der Kognitiven Informatik

Grundlagen der Kognitiven Informatik Grundlagen der Kognitiven Informatik Mittel-Ziel-nalyse, Turm von Hanoi, Rekursive Probleme Ute Schmid unterstützt von Michael Siebers Kognitive Systeme, ngewandte Informatik, Universität amberg letzte

Mehr

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt:

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt: Informatik 13: Gierhardt Theoretische Informatik III Berechenbarkeit Nicht-berechenbare Funktionen Nach der Church-Turing-These kann alles, was berechenbar ist, mit einer Turing-Maschine oder einer While-Maschine

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean 01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2

Mehr

Safer Software Formale Methoden für ISO26262

Safer Software Formale Methoden für ISO26262 Safer Software Formale Methoden für ISO26262 Dr. Stefan Gulan COC Systems Engineering Functional Safety Entwicklung Was Wie Wie genau Anforderungen Design Produkt Seite 3 Entwicklung nach ISO26262 Funktionale

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

den Einsatz von generierenden Werkzeugen und Theorien und von Software-Engineering-Methoden

den Einsatz von generierenden Werkzeugen und Theorien und von Software-Engineering-Methoden U- Übersetzer Vorlesung WS /8 Uwe Kastens Ziele: grundlegende Verfahren der Sprachimplementierung erlernen den Einsatz von generierenden Werkzeugen und von Standardverfahren kennen und schätzen lernen

Mehr

Wie entsteht ein Computerprogramm?

Wie entsteht ein Computerprogramm? Wie entsteht ein Computerprogramm Grundstrukturen von Programmen Programmiersprachen Entwicklungsschritte eines Programms Programmdokumentation Seite 1 Telefonanruf-Algorithmus Start Rufnummer bereitstellen

Mehr

Computer Vision: Optische Flüsse

Computer Vision: Optische Flüsse Computer Vision: Optische Flüsse D. Schlesinger TUD/INF/KI/IS Bewegungsanalyse Optischer Fluss Lokale Verfahren (Lukas-Kanade) Globale Verfahren (Horn-Schunck) (+ kontinuierliche Ansätze: mathematische

Mehr

Kontrollstrukturen - Universität Köln

Kontrollstrukturen - Universität Köln Kontrollstrukturen - Universität Köln Mario Manno Kontrollstrukturen - Universität Köln p. 1 Was sind Sprachen Auszeichnungssprachen HTML, XML Programmiersprachen ASM, Basic, C, C++, Haskell, Java, Pascal,

Mehr

Endlicher Automat (EA)

Endlicher Automat (EA) Endlicher Automat (EA) siehe auch Formale Grundlagen 3 1 Motivation: Automaten für die Modellierung, Spezifikation und Verifikation verwenden! Definition Ein Endlicher Automat A = (S,I,Σ,T,F) besteht aus

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Entwurf robuster Regelungen

Entwurf robuster Regelungen Entwurf robuster Regelungen Kai Müller Hochschule Bremerhaven Institut für Automatisierungs- und Elektrotechnik z P v K Juni 25 76 5 OPTIMALE ZUSTANDSREGELUNG 5 Optimale Zustandsregelung Ein optimaler

Mehr

Funktionale Programmierung

Funktionale Programmierung Schleifen 1 Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 3 Teil I Jedem Anfang wohnt ein Zauber inne 4 Über mich Diplom in Informatik in Saarbrücken

Mehr

1) Einführung in die formale Verifikation

1) Einführung in die formale Verifikation 1) Einführung in die formale Verifikation GPS: Einführung in die formale Verifikation Fehlerbehaftete Systeme 9 Wofür formale Verifikation? steigender Einsatz von Computertechnologie im Alltag Internet,

Mehr

Äquivalente Grammatiken / attributierte Grammatik

Äquivalente Grammatiken / attributierte Grammatik Äquivalente Grammatiken / attributierte Grammatik Linksfaktorisierung Elimination von Linksrekursion Umwandlung von EBNF in BNF Attributierte Grammatik Semantikfunktionen und Übersetzungsschema Synthetisierte,

Mehr

(λ Ri I A+BR)v Ri = 0. Lässt sich umstellen zu

(λ Ri I A+BR)v Ri = 0. Lässt sich umstellen zu Herleitung der oppenecker-formel (Wiederholung) Für ein System ẋ Ax + Bu (B habe Höchstrang) wird eine Zustandsregelung u x angesetzt. Der geschlossene egelkreis gehorcht der Zustands-Dgl. ẋ (A B)x. Die

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-Driven Design: Ein einfaches Beispiel Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms

Mehr

Mustererkennung mit Baumautomaten

Mustererkennung mit Baumautomaten Mustererkennung mit Baumautomaten Eine Ausarbeitung von Gisse Alvarado für das Seminar Mustererkennung mit syntaktischen und graphbasierten Methoden bei Prof. Dr. W. Kurth/ Th. Mangoldt Cottbus 2006 Inhalt

Mehr

Kurs 1575, Musterlösung zur Winter Klausur 2002/03

Kurs 1575, Musterlösung zur Winter Klausur 2002/03 1 0 Kurs 1575, Musterlösung zur Klausur im Wintersemester 2002/03 1 Kurs 1575, Musterlösung zur Winter Klausur 2002/03 Aufgabe 1: Warteschlange Wer kennt das Problem nicht? Sie wollen noch schnell im Supermarkt

Mehr

XML Verarbeitung mit einer in Haskell eingebetteten DSL. Manuel Ohlendorf (xi2079)

XML Verarbeitung mit einer in Haskell eingebetteten DSL. Manuel Ohlendorf (xi2079) XML Verarbeitung mit einer in Haskell eingebetteten DSL Manuel Ohlendorf (xi2079) 2.0.200 Manuel Ohlendorf Übersicht 1 2 Einführung Datenstruktur Verarbeitung Vergleich mit anderen Verfahren Fazit 2 Übersicht

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

DATENSTRUKTUREN UND ZAHLENSYSTEME

DATENSTRUKTUREN UND ZAHLENSYSTEME DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden

Mehr

Generische Record-Kombinatoren mit statischer Typprüfung

Generische Record-Kombinatoren mit statischer Typprüfung System Generische mit statischer Typprüfung Brandenburgische Technische Universität Cottbus Lehrstuhl Programmiersprachen und Compilerbau Lehrstuhlkolloquium am 13. Januar 2010 Überblick System System

Mehr

Charakteristikenmethode im Beispiel

Charakteristikenmethode im Beispiel Charakteristikenmethode im Wir betrachten die PDE in drei Variablen xu x + yu y + (x + y )u z = 0. Das charakteristische System lautet dann ẋ = x ẏ = y ż = x + y und besitzt die allgemeine Lösung x(t)

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Klassendefinitionen verstehen

Klassendefinitionen verstehen Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen

Mehr

Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen

Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen Praktikum Funktionale Programmierung Teil 1: Lexen und Parsen Professur für Künstliche Intelligenz und Softwaretechnologie Sommersemester 2009 Überblick Teil 1: Lexen und Parsen Die Sprache LFP +C Professur

Mehr

Grundlagen der Programmierung 2. Parallele Verarbeitung

Grundlagen der Programmierung 2. Parallele Verarbeitung Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit,

Mehr

Kapitel 15: Differentialgleichungen

Kapitel 15: Differentialgleichungen FernUNI Hagen WS 00/03 Kapitel 15: Differentialgleichungen Differentialgleichungen = Gleichungen die Beziehungen zwischen einer Funktion und mindestens einer ihrer Ableitungen herstellen. Kommen bei vielen

Mehr

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse

Mehr

Logik & Semantik 7. Vorlesung Prädikatenlogik 1. Syntax der Prädikatenlogik Semantik der Prädikatenlogik: Grundbegriffe (Variablen-)Substitutionen

Logik & Semantik 7. Vorlesung Prädikatenlogik 1. Syntax der Prädikatenlogik Semantik der Prädikatenlogik: Grundbegriffe (Variablen-)Substitutionen Logik & Semantik 7. Vorlesung Prädikatenlogik 1 Syntax der Prädikatenlogik Semantik der Prädikatenlogik: Grundbegriffe (Variablen-)Substitutionen 1 Definition eines logischen Systems: Generelles Schema

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

Mehr

Tiefgreifende Prozessverbesserung und Wissensmanagement durch Data Mining

Tiefgreifende Prozessverbesserung und Wissensmanagement durch Data Mining Tiefgreifende Prozessverbesserung und Wissensmanagement durch Data Mining Ausgangssituation Kaizen Data Mining ISO 9001 Wenn andere Methoden an ihre Grenzen stoßen Es gibt unzählige Methoden, die Abläufe

Mehr

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

Themen und Schwerpunkte für die 1. Staatsprüfung (Erweiterungsprüfung, Prüfung nach LbVO)

Themen und Schwerpunkte für die 1. Staatsprüfung (Erweiterungsprüfung, Prüfung nach LbVO) Themen und Schwerpunkte für die 1. Staatsprüfung (Erweiterungsprüfung, Prüfung nach LbVO) Lehramt an Gymnasien/Lehramt an berufsbildenden Schulen Klausurtermine: September 2012 1. Berufsbegleitendes Studium

Mehr

Lernumgebungen fürs Programmieren: Karas... und Turtles

Lernumgebungen fürs Programmieren: Karas... und Turtles Lernumgebungen fürs Programmieren: Karas und die Turtles Raimond Reichert raimond.reichert@acm.org beta Eine Kernidee der Informatik: Computer formales System Intuition Formale Beschreibung Das Ziel: Algorithmisches

Mehr

Mathematische Melodieanalyse - Ein Streifzug

Mathematische Melodieanalyse - Ein Streifzug RMA - MuWi UHH WS 05/06 Mathematische Melodieanalyse - Ein Streifzug Universität Hamburg Mathematische Melodieanalyse - Einleitung Mathematische Melodieanalyse befasst sich mit der algorithmischen Analyse

Mehr