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

Programmieren Formulierung eines Algorithmus in einer Programmiersprache

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

Mehr

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at

Einfache 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

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

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. 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:

Mehr

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20 Suche in Spielbäumen Suche in Spielbäumen KI SS2011: Suche in Spielbäumen 1/20 Spiele in der KI Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche Einschränkung von Spielen auf: 2 Spieler:

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum 4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.

Mehr

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung Funktionale Programmierung 1 Funktionale Programmierung: Vorlesungsüberblick 1. Funktionale Programmierung Prinzipien funktionaler Programmierung Funktionale Programmierung in prozeduralen Sprachen Rekursive

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

t 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 )

t 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

Mehr

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Copyright 2014 Delta Software Technology GmbH. All Rights reserved. Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für

Mehr

Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen

Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Was bisher geschah Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Syntax: Signatur Semantik: Axiome (FOL-Formeln, meist

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

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

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

Informationsblatt Induktionsbeweis

Informationsblatt 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

Mehr

Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen

Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen Rev. 1152 1 [23] Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen Christoph Lüth & Dennis Walter Universität Bremen Wintersemester 2010/11

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische 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

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

8.6.1 Erwartungswert eines beliebigen Operators O 8.6.2 Beispiel: Erwartungswert des Impulses eines freien Teilchens

8.6.1 Erwartungswert eines beliebigen Operators O 8.6.2 Beispiel: Erwartungswert des Impulses eines freien Teilchens phys4.013 Page 1 8.6.1 Erwartungswert eines beliebigen Operators O 8.6.2 Beispiel: Erwartungswert des Impulses eines freien Teilchens phys4.013 Page 2 8.6.3 Beispiel: Orts- und Impuls-Erwartungswerte für

Mehr

Markus Pister (Autor) Integration formaler Fehlereinflussanalyse in die Funktionsentwicklung bei der Automobilindustrie

Markus Pister (Autor) Integration formaler Fehlereinflussanalyse in die Funktionsentwicklung bei der Automobilindustrie Markus Pister (Autor) Integration formaler Fehlereinflussanalyse in die Funktionsentwicklung bei der Automobilindustrie https://cuvillier.de/de/shop/publications/1145 Copyright: Cuvillier Verlag, Inhaberin

Mehr

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004 Use Cases Die Sicht des Nutzers Fortgeschrittenenpraktikum SS 2004 Gunar Fiedler Lehrstuhl für Technologie der Informationssysteme Kontakt: fiedler@is.informatik.uni-kiel.de Use Cases 2 Was ist ein Use

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

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

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

Whitebox-Tests: Allgemeines

Whitebox-Tests: Allgemeines -Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

SWP Prüfungsvorbereitung

SWP Prüfungsvorbereitung 20. Juni 2011 1 Grammatiken 2 LL(1) 3 EXP 4 Datentypen 5 LP Grammatiken Angabe Erstellen Sie First- und Follow-Mengen aller Non-Terminale der folgenden Grammatik. S a S S B y B A C A A b b A x A ɛ C c

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Gesicherte Prozeduren

Gesicherte Prozeduren Gesicherte Prozeduren Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln zurückgeliefert.

Mehr

Erwin Grüner 09.02.2006

Erwin 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

Mehr

Jan Parthey, Christin Seifert. 22. Mai 2003

Jan Parthey, Christin Seifert. 22. Mai 2003 Simulation Rekursiver Auto-Assoziativer Speicher (RAAM) durch Erweiterung eines klassischen Backpropagation-Simulators Jan Parthey, Christin Seifert jpar@hrz.tu-chemnitz.de, sech@hrz.tu-chemnitz.de 22.

Mehr

Gliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme

Gliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme Gliederung Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Einführung Sprachmittel Sommer 2011, 20. Juni 2011,

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

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

Mehr

Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung;

Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung; Mehr Prolog Prolog bietet mehr an, z.b.: Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung; Mehr extra-logische Prädikate,

Mehr

Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9

Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9 Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9 Prof. Dr. W. Conen Version 1.0c Januar 2009 Genereller Ablauf der Suche Gegeben: Variablen X, Domains D, Constraints R (explizit

Mehr

Information Systems Engineering Seminar

Information Systems Engineering Seminar Information Systems Engineering Seminar Algorithmische Prüfung der Planarität eines Graphen Marcel Stüttgen, 22.10.2012 FH AACHEN UNIVERSITY OF APPLIED SCIENCES 1 Planarität - Definition Ein Graph heißt

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Code-Erzeugung aus UML-Klassendiagrammen

Code-Erzeugung aus UML-Klassendiagrammen Dominik 09.03.2009 Universität Ulm Gessenharter Inst. f. Programmiermethodik und Compilerbau Code-Erzeugung aus UML-Klassendiagrammen Theorie und Praxis Seite 2 REConf 2009 München Dominik Gessenharter

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data 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

Mehr

ALP I. Funktionale Programmierung

ALP I. Funktionale Programmierung ALP I Funktionale Programmierung Sortieren und Suchen (Teil 1) WS 2012/2013 Suchen 8 False unsortiert 21 4 16 7 19 11 12 7 1 5 27 3 8 False sortiert 2 4 6 7 9 11 12 18 21 24 27 36 Suchen in unsortierten

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Binärbäume als weiteres Beispiel für abstrakte Datentypen in PVS mit in Knoten gespeicherten Werten vom Typ T:

Binärbäume als weiteres Beispiel für abstrakte Datentypen in PVS mit in Knoten gespeicherten Werten vom Typ T: Binäre Bäume Binärbäume als weiteres Beispiel für abstrakte Datentypen in PVS mit in Knoten gespeicherten Werten vom Typ T: BinTree [T: TYPE]: DATATYPE empty: empty? node (key: T, left:bibtree, right:bibtree):

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme Sei K ein Körper, a ij K für 1 i m, 1 j n. Weiters seien b 1,..., b m K. Dann heißt a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2... a m1

Mehr

Kevin Caldwell. 18.April 2012

Kevin Caldwell. 18.April 2012 im Rahmen des Proseminars Numerische Lineare Algebra von Prof.Dr.Sven Beuchler 18.April 2012 Gliederung 1 2 3 Mathematische Beschreibung von naturwissenschaftlich-technischen Problemstellungen führt häufig

Mehr

> Mozilla Firefox 3. Browsereinstellungen optimieren. Übersicht. Stand Juli 2009. Seite. Inhalt. 1. Cache und Cookies löschen

> Mozilla Firefox 3. Browsereinstellungen optimieren. Übersicht. Stand Juli 2009. Seite. Inhalt. 1. Cache und Cookies löschen > Mozilla Firefox 3 Browsereinstellungen optimieren Übersicht Inhalt Seite 1. Cache und Cookies löschen 2. Sicherheits- und Datenschutzeinstellungen 2 4 Stand Juli 2009 1. Cache und Cookies löschen Jede

Mehr

Generatives Programmieren

Generatives Programmieren Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare

Mehr

183.580, WS2012 Übungsgruppen: Mo., 22.10.

183.580, WS2012 Übungsgruppen: Mo., 22.10. VU Grundlagen digitaler Systeme Übung 2: Numerik, Boolesche Algebra 183.580, WS2012 Übungsgruppen: Mo., 22.10. Aufgabe 1: Binäre Gleitpunkt-Arithmetik Addition & Subtraktion Gegeben sind die Zahlen: A

Mehr

Anforderungen an die HIS

Anforderungen an die HIS Anforderungen an die HIS Zusammengefasst aus den auf IBM Software basierenden Identity Management Projekten in NRW Michael Uebel uebel@de.ibm.com Anforderung 1 IBM Software Group / Tivoli Ein Feld zum

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. 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

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

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS 12. - Ohne Gewähr -

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS 12. - Ohne Gewähr - PRÜFUNG FÜR ELEKTROINGENIEURE Softwaretechnik I Musterlösung SS 12 - Ohne Gewähr - LfdNr. Thema Punkte Zeitbedarf in min 1 Analyse und Entwurf 15 30 2 Basistechniken und Test 15 30 3 Projektmanagement

Mehr

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Eine Firma stellt USB-Sticks her. Sie werden in der Fabrik ungeprüft in Packungen zu je 20 Stück verpackt und an Händler ausgeliefert. 1 Ein Händler

Mehr

Die reellen Lösungen der kubischen Gleichung

Die reellen Lösungen der kubischen Gleichung Die reellen Lösungen der kubischen Gleichung Klaus-R. Löffler Inhaltsverzeichnis 1 Einfach zu behandelnde Sonderfälle 1 2 Die ganzrationale Funktion dritten Grades 2 2.1 Reduktion...........................................

Mehr

Lehrpläne NRW Sek.stufe 2. Lernen im Kontext

Lehrpläne NRW Sek.stufe 2. Lernen im Kontext Lehrpläne NRW Sek.stufe 2 Lernen im Kontext Fachliche Inhalte Lernziele Informatik NRW Fähigkeit, komplexe Zusammenhänge mit gedanklicher Schärfe zu durchdringen (Problemanalyse) Überblick über unterschiedliche

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

Künstliche Intelligenz Maschinelles Lernen

Künstliche Intelligenz Maschinelles Lernen Künstliche Intelligenz Maschinelles Lernen Stephan Schwiebert Sommersemester 2009 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Maschinelles Lernen Überwachtes Lernen

Mehr

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i

Mehr

gallestro BPM - weit mehr als malen...

gallestro BPM - weit mehr als malen... Ob gallestro das richtige Tool für Ihr Unternehmen ist, können wir ohne weitere rmationen nicht beurteilen und lassen hier die Frage offen. In dieser rmationsreihe möchten wir Ihre Entscheidungsfindung

Mehr

2. Lernen von Entscheidungsbäumen

2. Lernen von Entscheidungsbäumen 2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse

Mehr

Grammatiken. Einführung

Grammatiken. 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

Mehr

Seminar Business Intelligence Teil II. Data Mining & Knowledge Discovery

Seminar Business Intelligence Teil II. Data Mining & Knowledge Discovery Seminar Business Intelligence Teil II Data Mining & Knowledge Discovery Was ist Data Mining? Sabine Queckbörner Was ist Data Mining? Data Mining Was ist Data Mining? Nach welchen Mustern wird gesucht?

Mehr

Wissensbasierte Systeme

Wissensbasierte Systeme WBS4 Slide 1 Wissensbasierte Systeme Vorlesung 4 vom 03.11.2004 Sebastian Iwanowski FH Wedel WBS4 Slide 2 Wissensbasierte Systeme 1. Motivation 2. Prinzipien und Anwendungen 3. Logische Grundlagen 4. Suchstrategien

Mehr

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word Anleitung zum erstellen einer PDF-Datei aus Microsoft Word 1. Vorbereitung des PCs Um dem Tutorial folgen zu können müssen folgende Programme auf Ihrem PC installiert sein: Ghostskript 8.64: Ghostskript

Mehr

Bitte wenden. Name: KURSARBEIT NR. 4 (10 DIFF GA) 18.06.2002. Seite 1

Bitte wenden. Name: KURSARBEIT NR. 4 (10 DIFF GA) 18.06.2002. Seite 1 Aufgabe 1: Gegeben ist das folgende Programm: PR figur :n :Länge WH 3 [ VW :Länge WENN :n>1 DANN ( RE 90 figur :n-1 :Länge/2 RW :Länge Seite 1 Zeichne das Bild, welches beim Aufruf der Prozedur mit figur

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Bearbeiten elektronische Rechnungen (Invoices)

Bearbeiten elektronische Rechnungen (Invoices) Bearbeiten elektronische Rechnungen (Invoices) 1. Zweck des Programms: Die elektronischen Rechnungen können zur Zeit für folgenden Bereiche genutzt werden:.. Anzeige der Rechnungen mit den relevanten Werten..

Mehr

DIFFERENTIALGLEICHUNGEN

DIFFERENTIALGLEICHUNGEN DIFFERENTIALGLEICHUNGEN GRUNDBEGRIFFE Differentialgleichung Eine Gleichung, in der Ableitungen einer unbekannten Funktion y = y(x) bis zur n-ten Ordnung auftreten, heisst gewöhnliche Differentialgleichung

Mehr

Wortproblem für kontextfreie Grammatiken

Wortproblem 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?

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Kapitel MK:IV. IV. Modellieren mit Constraints

Kapitel MK:IV. IV. Modellieren mit Constraints Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren

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

Texte verstehen lernen

Texte verstehen lernen Jiirgen Grzesik Texte verstehen lernen Neurobiologie und Psychologie der Entwicklung von Lesekompetenzen durch den Erwerb von textverstehenden Operationen Waxmann Miinster / New York Miinchen / Berlin

Mehr

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Summenbildung in Bauteiltabellen mit If Then Abfrage

Summenbildung in Bauteiltabellen mit If Then Abfrage Summenbildung in Bauteiltabellen mit If Then Abfrage Die in Bauteiltabellen ausgelesenen Werte lassen sich in jeder Spalte als Summe berechnen. So können selbstverständlich die Flächen der in der Tabelle

Mehr

Die Verbindung von Linearer Programmierung und Graphentheorie

Die Verbindung von Linearer Programmierung und Graphentheorie Die Verbindung von Linearer Programmierung und Graphentheorie Definition 5.9. Ein kombinatorisches Optimierungsproblem entspricht einem LP, bei dem statt der Vorzeichenbedingungen x i 0 Bedingungen der

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München MANUEL KALLWEIT & FABIAN KINDERMANN Literaturempfehlung: Vorlesungsskript von Heidrun Kolinsky zu FORTRAN 90/95: http://www.rz.uni-bayreuth.de/lehre/fortran90/vorlesung/index.html Schmitt, Günter (1996):

Mehr

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben Technische Universität Kaiserslautern Prof Dr Sven O Krumke Dr Sabine Büttner MSc Marco Natale Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben Aufgabe 1 (Konvertieren

Mehr

Eine Logikschaltung zur Addition zweier Zahlen

Eine 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

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen. R. Brinkmann http://brinkmann-du.de Seite 1 13.0.010 Lineare Gleichungen Werden zwei Terme durch ein Gleichheitszeichen miteinander verbunden, so entsteht eine Gleichung. Enthält die Gleichung die Variable

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

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema 2x 4 + x 3 + x + 3 div x 2 + x 1 = 2x 2 x + 3 (2x 4 + 2x 3 2x 2 ) x 3 + 2x 2 + x + 3 ( x

Mehr

Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll. Aufgabe 1 Transferfragen (Lösungsvorschlag)

Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll. Aufgabe 1 Transferfragen (Lösungsvorschlag) Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll Lösungsvorschläge der Klausur zu Einführung in die Informatik II Aufgabe 1 Transferfragen (Lösungsvorschlag)

Mehr

WS 2008/09. Diskrete Strukturen

WS 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

Mehr

S7-Hantierungsbausteine für R355, R6000 und R2700

S7-Hantierungsbausteine für R355, R6000 und R2700 S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über

Mehr

Was können Schüler anhand von Primzahltests über Mathematik lernen?

Was können Schüler anhand von Primzahltests über Mathematik lernen? Was können Schüler anhand von Primzahltests über Mathematik lernen? Innermathematisches Vernetzen von Zahlentheorie und Wahrscheinlichkeitsrechnung Katharina Klembalski Humboldt-Universität Berlin 20.

Mehr

Motivation. Motivation

Motivation. Motivation Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2012 Universität Duisburg-Essen Was sind nebenläufige Systeme? Ganz allgemein: Systeme, bei denen mehrere Komponenten/Prozesse nebenläufig arbeiten

Mehr

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt

Rekursionen. 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

Mehr

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP) Enterprise Applikation Integration und Service-orientierte Architekturen 09 Simple Object Access Protocol (SOAP) Anwendungsintegration ein Beispiel Messages Warenwirtschaftssystem Auktionssystem thats

Mehr

Algorithmen mit Python

Algorithmen mit Python Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World

Mehr

Grundlagen der Programmierung (Vorlesung 14)

Grundlagen der Programmierung (Vorlesung 14) Grundlagen der Programmierung (Vorlesung 14) Ralf Möller, FH-Wedel Vorige Vorlesung Verifikation von Anweisungen und Anweisungsfolgen Schleifen Inhalt dieser Vorlesung Funktionen und Prozeduren Lernziele

Mehr

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in

Mehr

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

Mehr