GTI. Hannes Diener. 18. Juni. ENC B-0123,
|
|
- Inge Schmidt
- vor 7 Jahren
- Abrufe
Transkript
1 GTI Hannes Diener ENC B-0123, 18. Juni 1 / 32
2 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5. Auflage, von der 4. Auflage sind mehrere in der Unibib ausleihbar). 2 / 32
3 Kommen wir als nächstes zu unserem zweiten Ansatz zur Berechenbarkeit. Diesmal werden wir Berechenbarkeit über eine idealisierte (und extrem vereinfachte) Programmiersprache definieren. 3 / 32
4 Definieren wir zunächst die Syntax; d.h. wie unsere Programme formal aufgebaut sein müssen. Unsere Programme sind aus folgenden syntaktischen 1 Komponenten aufgebaut: Variablen: x 0, x 1,... Konstanten: 0, 1,... Trennsymbole: ; := Operationssymbole: +, Schlüsselwörter: LOOP, DO, END 1 Prinzipiell ist dies kein Alphabet, selbst wenn wir z.b. LOOP als ein Symbol auffassen. Das Problem ist, daß es unendlich viele Variablen und Konstanten gibt. Hier kann man sich mit dem folgendem angedeuteten Trick behelfen: Als Variablen verwenden wir x, x,.... Auf diese Weise benötigt man nur zwei Symbole x, zur Darstellung aller Variablen. 4 / 32
5 LOOP-Programme sind jetzt induktiv definiert 2 : Jede Zuweisung der Form x i := x j + c und x i := x j c ist ein LOOP-Programm. Sind P 1 und P 2 LOOP-Programme, so auch P 1 ; P 2 Ist x i eine Variable und P ein LOOP-Programm, so ist LOOP x i DO P END ein LOOP-Programm. 2 In einer Übung werden Sie eine alternative Definition über eine Grammatik definieren. 5 / 32
6 LOOP-Programme sind bis zu dieser Stelle vollkommen bedeutungslos. 3 D.h. zunächst nur formale Wörter ohne Bedeutung. Ihre Semantik müssen wir ihnen als nächstes geben. 3 Wortspiel 6 / 32
7 Definition Eine Speicherbelegung σ ist eine totale Funktion mit Werten in den natürlichen Zahlen definiert auf der Menge aller Variablen {x 0, x 1,... }. Ist σ nur auf endlich vielen Werten x i1,..., x ik nicht null 4, so schreiben wir in Zeichen Also z.b. [x i1 σ(x i1 ),..., x ik σ(x ik )]. [x 1 5, x 3 42, x 42 3]. Des Weiteren sei σ[x i n] die Speicherbelegung, die definiert ist durch { σ(x j ) falls i j σ[x i n](x j ) = n sonst. 4 D.h. also daß z.b. [x 1 3](x 5) = 0. 7 / 32
8 Wir können nun induktiv eine Übergangsrelation definieren, welche beschreibt, welchen Effekt LOOP-Programme auf Speicherbelegungen hat. Sei hierfür LOOP die Menge aller LOOP-Programme und S die Menge aller Speicherbelegungen. Dann ist (LOOP S) S definiert durch Ist P eine Zuweisung der Form x i := x j + c, so ist P σ σ[x i n], wobei n = σ(x j ) + c. Ist P eine Zuweisung der Form x i := x j c, so ist P σ σ[x i n], wobei n = max{σ(x j ) c, 0}. 8 / 32
9 Gilt P 1 σ σ und P 2 σ σ, so gilt auch P 1 ; P 2 σ σ Ist P von der Form LOOP x i DO Q END, σ(x i ) = n und so gilt Q; Q;... Q σ σ }{{} n mal P σ σ. Man beachte, daß Q zwar die Variable x i verändern darf, dies aber keinen Einfluss darauf hat, wie oft Q durchlaufen wird. 9 / 32
10 Satz Sei P ein Programm und σ eine Speicherbelegung. Dann gibt es genau eine Speicherbelegung σ, so daß P σ σ. Insbesondere gilt dies natürlich, wenn σ eine Start-Speicherbelegung ist. 10 / 32
11 Bevor wir wieder formal einen entsprechenden Berechenbarkeitsbegriff einführen ein Beispiel Sei P = LOOP x 1 DO x 2 := x END; x 1 := x Des Weiteren sei σ 1 = [x 1 3, x 2 2] Dann gilt, mit obiger Definition: (x 2 := x 2 + 1) σ 1 σ 1 [x 2 3] (x 2 := x 2 + 1) σ 1 [x 2 3] σ 1 [x 2 4] Zusammen also (x 2 := x 2 + 1); (x 2 := x 2 + 1) σ 1 σ 1 [x 2 4] 11 / 32
12 Etwas weniger ausführlich machen wir weiter: (x 2 := x 2 +1); (x 2 := x 2 +1); (x 2 := x 2 +1) σ 1 σ 1 [x 2 5] Also, da σ 1 (x 1 ) = 3 LOOP x 1 DO x 2 := x END; σ 1 σ 1 [x 2 5] In einem letzten Schritt P σ 1 [x 1 5, x 2 5] 12 / 32
13 In der Variable x 1 steht also nach Ausführen des Programms P eine 5, was genau die Summe von 2 und 3 entspricht. Allgemein kann man leicht beweisen, daß P [x 1 m, x 2 n] [x 1 m + n, x 2 m + n]. In gewisser Weise berechnet das Programm P also die Addition! 13 / 32
14 In gewisser Weise berechnet das Programm P also die Addition! In welcher Weise genau? Definition Die von P berechnete (k-stellige) Funktion P k : N k N ist definiert durch P k (n 1,..., n k ) = σ (x 1 ), wobei σ die nach obigen Satz die eindeutige Speicherbelegung ist, für die gilt, daß P [x 1 n 1,..., x k n k ] σ 14 / 32
15 Beobachtung Für ein LOOP-Programm P ist P k eine totale Funktion Dies ist schon ein erster Hinweis, daß der Begriff der LOOP-Berechenbarkeit nicht unserem intuitiven Begriff der Berechenbarkeit entspricht, da wir in der Einführung ja gesagt hatten, daß es auch partielle berechenbare Funktionen gibt. 15 / 32
16 Natürlich definieren wir Definition Eine Funktion f : N k N ist LOOP-berechenbar, wenn es ein LOOP-Programm P gibt, so daß P k = f. 16 / 32
17 Syntaktischer Zucker: Normalerweise enthalten imperative Programmiersprachen bedingte Anweisungen. Diese können wir mit einem Trick simulieren (d.h. wir müssen diese nicht extra zu unserer Sprache hinzufügen). Hierzu sei für ein LOOP-Programm P und eine Variable x i IF x i THEN P END die abkürzende Schreibweise für x j := 1; LOOP x i DO x j := 0 END; LOOP x j DO P END; x j := 0; wobei x j eine Variable ist, die nicht in P vorkommt. 17 / 32
18 Syntaktischer Zucker: Dies hat genau den gewünschten Effekt: Gilt P σ σ und ist σ(x i ) = 0, so kann man leicht zeigen, daß IF x i = 0 THEN P END σ σ Für σ(x i ) 0 kann man analog zeigen, daß IF x i = 0 THEN P END σ σ 18 / 32
19 Mit diesen syntaktischen Kohlenhydraten gestärkt können wir jetzt leicht zeigen: Satz Die Addition, (abgeschnittene) Subtraktion, Differenz, Multiplikation, Division (ohne Rest) und die Mod-Funktion (der Rest einer Division) sind alle LOOP berechenbar. 19 / 32
20 Einschub: λ Notation. In der Definition Sei f eine Funktion, definiert durch f (n) = n ist der Name f der Funktion ja eigentlich irrelevant; insbesondere, wenn wir uns später nicht mehr darauf beziehen. Die Lösung sind anonyme Funktionen in Churchs Lambda-Notation: λx.t(x) wobei x eine Variable und t ein Term ist, und für die Funktion steht, die jedes x auf t(x) abbildet. Also in unserem Beispiel λn.n / 32
21 Einschub: λ Notation. In der Definition Sei f eine Funktion, definiert durch f (n) = n ist der Name f der Funktion ja eigentlich irrelevant; insbesondere, wenn wir uns später nicht mehr darauf beziehen. Die Lösung sind anonyme Funktionen in Churchs Lambda-Notation: λx.t(x) wobei x eine Variable und t ein Term ist, und für die Funktion steht, die jedes x auf t(x) abbildet. Also in unserem Beispiel λn.n Diese Notation macht auch den Unterschied zwischen Termen und Funktionen klarer. 20 / 32
22 Mehr Syntaktischer Zucker: Ist P ein Programm, so steht der Ausdruck x j := P(x i1,..., x ik ) abkürzend für das Programm x j1 := x 1 ; x 1 := x i1 ;... ; x jk := x k ; P; x j := x 1 ; x 1 := x j1 ;... x k := x jk wobei die Variablen x j1,..., x jk frische Variablen sind, d.h. nirgendwo sonst verwendet werden. Sei beispielsweise ADD das oben behandelte erste Beispiel eines LOOP-Programms. So können wir nun auch, mit etwas Streuen von syntaktischen Zucker, auch Befehle wie x 4 := ADD(x 1, x 2 ) verwenden. 21 / 32
23 LOOP Funktionen sind ausserdem unter einer Vielzahl von Operationen abgeschlossen. Z.B. Fallunterscheidung: Lemma Sind f, g, h : N N LOOP-berechenbar, so auch die Funktion F : N N definiert durch { g(n) falls h(x) = 0 F (n) = f (n) falls h(x) 0 LOOP berechenbar. Beispiel: Die 3n + 1 Funktion. 22 / 32
24 Noch ein weiteres Beispiel: Beispiel Die Fakultätsfunktion λn.n! ist LOOP-berechenbar. 23 / 32
25 Dies ist ein Spezialfall der folgenden primitiven Rekursion Ist h : N 2 N eine Funktion und g N ein Wert, und sei f : N N definiert durch f (0) = g und f (n + 1) = h(n, f (n)); Satz Ist h LOOP berechenbar, so auch die Funktion f. 24 / 32
26 Mehr noch: wir können alles natürlich noch von k Parametern abhängen lassen. Also Definition Sind h : N k+2, g : N k N und f : N k+1 N Funktionen, so daß f (0, y 1,..., y k ) = g(y 1,..., y k ) f (n + 1, y 1,..., y k ) = h(n, f (n, y 1,..., y k ), y 1,..., y k ). So sagen wir, daß f durch primitive Rekursion aus g und h hervorgeht. Satz LOOP-Programme sind unter primitiver Rekursion abgeschlossen; d.h. sind f, g, h wie oben und g, h LOOP-berechenbar, so ist auch f LOOP-berechenbar. 25 / 32
27 WHILE-Programme weiteres Konstrukt. Wie schon angedeutet umfasst der Begriff der LOOP-Berechenbarkeit nicht alle intuitiv berechenbaren Funktionen (konkretes Beispiel später in Form der Ackermann-Funktion). Wir erweitern deshalb unsere Programmiersprache um ein 26 / 32
28 Definition Die Menge der WHILE-Programme ist genauso definiert wie die LOOP-Programme, aber zusätzlich ist auch, wenn P ein WHILE-Programm ist und x i eine Variable, so ist auch WHILE x i 0 DO P END ein WHILE-Programm. 27 / 32
29 Die Semantik der WHILE-Programme ist auch definiert wie die der LOOP-Programme, allerdings gilt zusätzlich: Sind σ 1, σ 2,..., σ n Speicherbelegungen so daß σ j (x i ) 0 für j < n und σ n (x i ) = 0 und P σ j σ j+1 für j < n, so gilt WHILE x i 0 DO P END σ 1 σ n. Ist σ eine Speicherbelegung, so daß σ(x i ) = 0, so gilt WHILE x i 0 DO P END σ σ. 28 / 32
30 Beobachtung LOOP-Schleifen können durch WHILE-Schleifen ersetzt werden. 29 / 32
31 Alle Beobachtungen über LOOP-Programme übertragen sich analog auch auf WHILE-Programme. Mit einer Ausnahme: Beispiel Es gibt WHILE-Programme P und Speicherbelegungen σ, so daß es keine Speicherbelegung σ gibt, mit P σ σ. Trotzdem gilt noch die Eindeutigkeit. Satz Ist P ein WHILE-Programm σ, σ Speicherbelegungen mit P σ σ, so ist σ eindeutig. 30 / 32
32 Definition Die von einem WHILE-Programm P berechnete (k-stellige) partielle Funktion P k : N k N ist definiert durch P k (n 1,..., n k ) = { σ (x 1 ) falls P [x 1 n 1,..., x k n k ] σ falls es kein solches σ gibt., Natürlich definieren wir auch hier Definition Eine partielle Funktion f : N k N ist WHILE-berechenbar, wenn es ein WHILE-Programm P gibt, so daß P k = f. 31 / 32
33 Beispiel Die Funktion sqrt : N N definiert durch { n falls n Qudratzahl ist sqrt(n) = sonst ist WHILE-berechenbar. 32 / 32
LOOP-Programme: Syntaktische Komponenten
LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=
Mehr1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit
Die Programmiersprache LOOP (i) Syntaktische Komponenten: Variable: x 0, x 1, x 2,... Konstanten: 0, 1, 2,... Trennsymbole: ; := Operationszeichen: + Schlüsselwörter: LOOP DO END (ii) LOOP-Programme: Wertzuweisungen:
MehrSyntax von LOOP-Programmen
LOOP-Berechenbarkeit Syntax von LOOP-Programmen Definition LOOP-Programme bestehen aus: Variablen: x 0, x 1, x 2, x 3,... Konstanten: 0, 1, 2, 3,... Trennsymbolen:; und := Operationen: + und Befehlen:
MehrTheoretische Informatik SS 03 Übung 3
Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige
MehrPrimitiv rekursive und µ-rekursive Funktionen
Primitiv rekursive und µ-rekursive Funktionen Loop-, While- und Goto-Programme sind vereinfachte imperative Programme und stehen für imperative Programmiersprachen, bei denen Programme als Folgen von Befehlen
MehrRekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen
Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N induktiv
MehrTheoretische Informatik II
Theoretische Informatik II Einheit 4.2 Rekursive Funktionen 1. Primitiv- und µ-rekursive Funktionen 2. Analyse und Programmierung 3. Äquivalenz zu Turingmaschinen Berechenbarkeit auf N ohne Maschinenmodelle
MehrTheorie der Informatik
Theorie der Informatik 13. LOOP-, WHILE- und GOTO-Berechenbarkeit Malte Helmert Gabriele Röger Universität Basel 9. April 2014 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale
MehrBerechenbarkeits- und Komplexitätstheorie
Berechenbarkeits- und Komplexitätstheorie Verschiedene Berechenbarkeitsbegriffe, Entscheidbarkeit von Sprachen, Wachstumsordnungen und Komplexitätsklassen Inhaltsübersicht und Literatur Verschiedene Berechenbarkeitsbegriffe:
MehrPrimitive Rekursion. Basisfunktionen: Konstante Funktion: const 3 3 (1,1, pr 1,3(g,h) (1,1)) Projektion: proj 3 (1,1, pr. Komposition: comp 3,2
Primitive Rekursion Basisfunktionen: Konstante Funktion: const Stelligkeit. Wert des Ergebnisses. Unabhängig von den Parametern. const (,, pr,(g,h) (,)) Stelligkeit. Projektion: proj Gibt die Komponente
MehrEinführung in die Theoretische Informatik
Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm
MehrMächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrTheorie der Informatik
Theorie der Informatik 15. primitive Rekursion und µ-rekursion Malte Helmert Gabriele Röger Universität Basel 22. April 2015 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale
Mehr(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie
(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie 1) Schreiben Sie ein LOOP-Programm, das die Funktion f: N \ {0} N, f (n) = n n berechnet. Sie dürfen in Ihrem Programm die Multiplikation
MehrGTI. µ-rekursive Funktionen. Hannes Diener. 20. Juni 2. Juli. ENC B-0123,
GTI µ-rekursive Funktionen Hannes Diener ENC B-0123, diener@math.uni-siegen.de 20. Juni 2. Juli 1 / 31 µ-rekursive Funktionen Kommen wir als nächstes zu unserem dritten Ansatz zur Berechenbarkeit. Diesmal
Mehr4. Induktives Definieren - Themenübersicht
Induktives Definieren 4. Induktives Definieren - Themenübersicht Induktives Definieren Natürliche Zahlen Operationen auf natürlichen Zahlen Induktive Algorithmen Induktiv definierte Mengen Binärbäume Boolesche
MehrTheoretische Informatik SS 03 Übung 4
Fakten aus Übung 3 Theoretische Informatik SS 03 Übung 4 In Übung 3 wurden einigen Fakten bewiesen, die für diese Übung benötigt werden. Folgende Konstrukte können mit LOOP-Programmen simuliert werden:
MehrMitschrift BFS WS 13/14
Mitschrift BFS WS 13/14 Stand: 4. Juni 2014 Dieses Skript zum Teil Primitive und µ-rekursion der Vorlesung Berechenbarkeit und Formale Sprachen im Wintersemester 2013/14 bei Prof. Wanka wurde von untenstehenden
Mehr1 falls n ein Anfangsabschnitt der Dezimalbruchentwicklung von π ist, f(n) = 0 sonst
21 2 Berechenbarkeit Dieses Kapitel entspricht im Wesentlichen dem Kapitel 2 (Berechenbarkeitstheorie) in [9] Jeder, der programmieren kann, weiß, dass es so etwas wie einen intuitiven Berechenbarkeitsbegriff
MehrDef.: Die Menge der LOOP-Programme ist induktiv wie folgt definiert:
3. LOOP-, WHILE- und GOTO-Berechenbarkeit 3.1 LOOP-Programme Komponenten: Variablen: x 0, x 1, x 2,, y, z, Konstanten: 0, 1, 2, Trennsymbole: ; := Operationszeichen: +, - Schlüsselwörter: LOOP, DO, END
MehrBerechenbarkeitsmodelle
Berechenbarkeit 2 Endliche Automaten erkennen nicht alle algorithmisch erkennbaren Sprachen. Kontextfreie Grammatiken erzeugen nicht alle algorithmisch erzeugbaren Sprachen. Welche Berechnungsmodelle erlauben
MehrRekursive Funktionen Basisfunktionen
Rekursive Funktionen Basisfunktionen die nullstellige Funktion Z, die den konstanten Wert 0 liefert, die Funktion S : N N, bei der jeder natürlichen Zahl ihr Nachfolger zugeordnet wird, die Funktion P
MehrEinführung in die Informatik I (autip)
Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis
MehrDie Ackermannfunktion
Die Ackermannfunktion Slide 1 Die Ackermannfunktion Hans U. Simon (RUB) Email: simon@lmi.rub.de Homepage: http://www.ruhr-uni-bochum.de/lmi Die Ackermannfunktion Slide 2 Eine Frage zu Anfang Ist jede intuitiv
MehrEinführung in die Informatik I
Einführung in die Informatik I Berechenbarkeit und Komplexität Prof. Dr. Nikolaus Wulff Berechenbarkeit Im Rahmen der Turingmaschine fiel zum ersten Mal der Begriff Berechenbarkeit. Ein Funktion f heißt
MehrC.3 Funktionen und Prozeduren
C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens
MehrZahlen und elementares Rechnen
und elementares Rechnen Christian Serpé Universität Münster 7. September 2011 Christian Serpé (Universität Münster) und elementares Rechnen 7. September 2011 1 / 51 Gliederung 1 2 Elementares Rechnen 3
MehrALP I Rekursive Funktionen
ALP I Rekursive Funktionen SS 2011 Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle Text λ-kalkül Kombinatorische Logik Allgemein rekursive
MehrBerechenbarkeit. Script, Kapitel 2
Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen
Mehr6. Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen
6. Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N
MehrDie Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
MehrZahlen und elementares Rechnen (Teil 1)
und elementares Rechnen (Teil 1) Dr. Christian Serpé Universität Münster 6. September 2010 Dr. Christian Serpé (Universität Münster) und elementares Rechnen (Teil 1) 6. September 2010 1 / 40 Gliederung
MehrKontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
MehrAutomaten und Formale Sprachen
Automaten und Formale Sprachen Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2011/12 WS 11/12 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien
MehrInterpreter - Gliederung
Institut für Informatik Ludwig-Maximilian Universität Interpreter - Gliederung Programmiersprache Syntax Konkrete Syntax Abstrakter Syntax Baum (Abstrakte Syntax) Parser Syntaktische Struktur einer Sprache
MehrAusgewählte unentscheidbare Sprachen
Proseminar Theoretische Informatik 15.12.15 Ausgewählte unentscheidbare Sprachen Marian Sigler, Jakob Köhler Wolfgang Mulzer 1 Entscheidbarkeit und Semi-Entscheidbarkeit Definition 1: L ist entscheidbar
MehrFunktionale 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
MehrLineare Abhängigkeit
Lineare Abhängigkeit Vorbemerkung. Es sei X eine Menge. Eine Familie von Elementen von X ist eine Abbildung I X, i x i. I heißt dabei Indexmenge. Man verwendet dabei oft die Schreibweise (x i ) oder (x
MehrDie Church-Turing-These
Die Church-Turing-These Elmar Eder () Die Church-Turing-These 1 / 12 Formale Systeme Formale Systeme µ-partiellrekursive Funktionen Logikkalküle SLD-Resolution (Prolog) Chomsky-Grammatiken Turing-Maschinen
MehrAlgorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,
MehrKapitel 4. Induktive Definitionen und Beweise
Kapitel 4 Induktive Definitionen und Beweise Bei der Definition der Semantik der Programmiersprache IMP haben wir an vielen verschiedenen Stellen induktive Definitionen benutzt: angefangen bei der Syntax
MehrAxiomatische Beschreibung der ganzen Zahlen
Axiomatische Beschreibung der ganzen Zahlen Peter Feigl JKU Linz peter.feigl@students.jku.at 0055282 Claudia Hemmelmeir JKU Linz darja@gmx.at 0355147 Zusammenfassung Wir möchten in diesem Artikel die ganzen
MehrMathematik für Naturwissenschaftler I WS 2009/2010
Mathematik für Naturwissenschaftler I WS 2009/2010 Lektion 4 23. Oktober 2009 Kapitel 1. Mengen, Abbildungen und Funktionen (Fortsetzung) Berechnung der Umkehrfunktion 1. Man löst die vorgegebene Funktionsgleichung
Mehrkontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung
Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben
Mehr1 Potenzen und Polynome
1 Potenzen und Polynome Für eine reelle Zahl x R und eine natürliche Zahl n N definieren wir x n := x x x... x }{{} n-mal Einschub über die bisher aufgetretenen mathematischen Symbole: Definition mittels
MehrPrimitiv rekursive und µ-rekursive Funktionen
Primitiv rekursive und µ-rekursive Funktionen Slide 1 Primitiv rekursive und µ-rekursive Funktionen Hans U. Simon (RUB) Email: simon@lmi.rub.de Homepage: http://www.ruhr-uni-bochum.de/lmi Primitiv rekursive
MehrÜbung Theoretische Grundlagen
Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrEinführung in die Theoretische Informatik
echnische Universität München Fakultät für Informatik Prof. obias Nipkow, Ph.D. ascha öhme, Lars Noschinski ommersemester 2011 Lösungsblatt 5 6. Juni 2011 Einführung in die heoretische Informatik Hinweis:
MehrAlgorithmen und Programmierung
Algorithmen und Programmierung Kapitel 5 Formale Algorithmenmodelle A&P (WS 14/15): 05 Formale Algorithmenmodelle 1 Überblick Motivation Formale Algorithmenmodelle Registermaschine Abstrakte Maschinen
MehrGrundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben
Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten
MehrSprachen und Programmiersprachen
Sprachen und Programmiersprachen Natürliche Sprachen versus Programmiersprachen / Spezifikationssprachen Syntax legt die grammatikalische Korrektheit fest. Semantik legt die Bedeutung von syntaktisch korrekten
MehrII. Grundlagen der Programmierung
II. Grundlagen der Programmierung II.1. Zahlenssteme und elementare Logik 1.1. Zahlenssteme 1.1.1. Ganze Zahlen Ganze Zahlen werden im Dezimalsstem als Folge von Ziffern 0, 1,..., 9 dargestellt, z.b. 123
Mehr6 F O R M A L E S P R A C H E N. 6.1 formale sprachen
6.1 formale sprachen 6 F O R M A L E S P R A C H E N Eine natürliche Sprache umfasst mehrere Aspekte, z. B. Aussprache und Stil, also z. B. Wortwahl und Satzbau. Dafür ist es auch notwendig zu wissen,
MehrSWP 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
MehrKapitel 4: Syntaxdiagramme und Grammatikregeln
4. Syntaxdiagramme und Grammatikregeln 4-1 Objektorientierte Programmierung (Winter 2006/2007) Kapitel 4: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische
MehrDifferenzengleichungen. und Polynome
Lineare Differenzengleichungen und Polynome Franz Pauer Institut für Mathematik, Universität Innsbruck Technikerstr. 13/7, A-600 Innsbruck, Österreich franz.pauer@uibk.ac.at 1 Einleitung Mit linearen Differenzengleichungen
MehrStatt (r s) schreiben wir in Zukunft meistens rs, gelegentlich auch (r; s).
14 2 REGULÄRE AUSDRÜCKE 2 Reguläre Ausdrücke Wir wollen (i.a. unendliche) Sprachen mit endlichen Mitteln darstellen, z.b. durch Grammatiken, nach denen die Sätze der Sprache gebildet werden dürfen. Es
MehrWerkzeuge zur Programmentwicklung
Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul
MehrInduktive Beweise und rekursive Definitionen
Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1
Mehr1.2 Eigenschaften der ganzen Zahlen
Lineare Algebra I WS 2015/16 c Rudolf Scharlau 13 1.2 Eigenschaften der ganzen Zahlen Dieser Abschnitt handelt von den gewöhlichen ganzen Zahlen Z und ihren Verknüpfungen plus und mal. Man kann die natürlichen
MehrJAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
MehrTheoretische Informatik 1
Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung
Mehr2 ZAHLEN UND VARIABLE
Zahlen und Variable 2 ZAHLEN UND VARIABLE 2.1 Grundlagen der Mengenlehre Unter einer Menge versteht man die Zusammenfassung von unterscheidbaren Objekten zu einem Ganzen. Diese Objekte bezeichnet man als
MehrEinfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at
Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache
MehrÜbung zu Grundbegriffe der Informatik. Simon Wacker. 15. November 2013
Übung zu Grundbegriffe der Informatik Simon Wacker 15. November 2013 Vollständige Induktion über die Wortlänge Es sei B ein Alphabet. Dann ist B = n N 0 B n. Für jedes Wort w B sei A w eine Aussage, die
MehrInduktive Beweise und rekursive Definitionen
Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1
MehrAlphabet, formale Sprache
n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l
MehrReelle Zahlen, Gleichungen und Ungleichungen
9 2. Vorlesung Reelle Zahlen, Gleichungen und Ungleichungen 4 Zahlenmengen und der Körper der reellen Zahlen 4.1 Zahlenmengen * Die Menge der natürlichen Zahlen N = {0,1,2,3,...}. * Die Menge der ganzen
Mehr9 Theoretische Informatik und Compilerbau
9 Theoretische Informatik und Compilerbau Theoretische Informatik und Mathematik schaffen die Basis für viele der technischen Entwicklungen, die wir in diesem Buch besprechen. Die boolesche Algebra (S.
MehrTheoretische Informatik
Theoretische Informatik Lektion 10: Entscheidbarkeit Kurt-Ulrich Witt Wintersemester 2013/14 Kurt-Ulrich Witt Theoretische Informatik Lektion 10 1/15 Inhaltsverzeichnis Kurt-Ulrich Witt Theoretische Informatik
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
Mehr3. Mathematische Maschinen
3. Mathematische Maschinen Bei den Anforderungen an Algorithmen im letzten Paragraphen haben wir bemerkt, dass ein Algorithmus im Prinzip von einer Maschine ausgeführt werden kann. Umgekehrt kann solch
MehrEinführung in die Informatik I
Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen
MehrZahlensysteme. Formale Methoden der Informatik WiSe 2008/2009 Folie 1 (von 54)
Zahlensysteme Formale Methoden der Informatik WiSe 28/29 Folie (von 54) Teil I: Zahlensysteme. Einführung und Zahlensysteme 2. Zahlensysteme / Algorithmik 3. Zahlendarstellung im Rechner Franz-Josef Radermacher,
MehrImperative vs. Funktionale Programmierung
Beispiel: Entwerfe eine Funktion, die testet, ob eine Zahl n eine Primzahl ist oder nicht. Beobachtung: (1) Wenn n Primzahl ist, ist die Menge der Teiler von n leer. (2) Die Menge der Teiler von n sind
MehrTheoretische Informatik Mitschrift
Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=
MehrSchleifenanweisungen
Schleifenanweisungen Bisher: sequentielle Abarbeitung von Befehlen (von oben nach unten) Nun: Befehle mehrfach ausführen (= Programmschleife): for-anweisung - wenn feststeht, wie oft z.b.: eine Berechnung
MehrDipl.-Ing. Halit Ünver Datenbanken/Künstliche Intelligenz FAW/n. Zahlensysteme
Dipl.-Ing. Halit Ünver 7.. Datenbanken/Künstliche Intelligenz FAW/n Zahlensysteme Seite Zahlensysteme Dipl.-Ing. Halit Ünver 7.. Inhalt I. Informatik und Zahlen für Wirtschaftswissenschaftler? II. III.
MehrMotivation natürliche Sprachen
Motivation natürliche Sprachen (Satz) (Substantivphrase)(Verbphrase) (Satz) (Substantivphrase)(Verbphrase)(Objektphrase) (Substantivphrase) (Artikel)(Substantiv) (Verbphrase) (Verb)(Adverb) (Substantiv)
MehrVorkurs Mathematik 1
Vorkurs Mathematik 1 Einführung in die mathematische Notation Konstanten i komplexe Einheit i 2 + 1 = 0 e Eulersche Zahl Kreiszahl 2 Einführung in die mathematische Notation Bezeichner Primzahlen, Zähler
MehrI. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.
I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten
MehrDr. Monika Meiler. Inhalt
Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8
Mehrκ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).
5. Graphenprobleme Im folgenden bezeichnen G = (E, K) einen endlichen Graphen mit der Eckenmenge E und der Kantenmenge K. G kann ungerichtet, gerichtet, schlicht oder nicht schlicht sein. 5.1 Spannende
Mehr$Id: reihen.tex,v /06/12 10:59:50 hk Exp $ unendliche Summe. a 1 + a 2 + a 3 +.
Mathematik für Informatiker B, SS 202 Dienstag 2.6 $Id: reihen.tex,v.8 202/06/2 0:59:50 hk Exp $ 7 Reihen Eine Reihe ist eine unendliche Summe a + a 2 + a 3 +. Die Summanden a i können dabei reell oder
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrFormale Grundlagen 2008W. Vorlesung im 2008S Institut für Algebra Johannes Kepler Universität Linz
Formale Grundlagen Institut für Algebra Johannes Kepler Universität Linz Vorlesung im 2008S http://www.algebra.uni-linz.ac.at/students/win/fg Inhalt Definition Sei A eine Menge und ɛ A A A eine zweistellige
MehrAbschluss unter Operationen
Abschluss unter Operationen Definition Definition: Es seien L eine Menge von Sprachen und τ eine n-stellige Operation, die über Sprachen definiert ist. Dann heißt L abgeschlossen unter τ, wenn für beliebige
MehrSatz 18 (Satz von der totalen Wahrscheinlichkeit)
Ausgehend von der Darstellung der bedingten Wahrscheinlichkeit in Gleichung 1 zeigen wir: Satz 18 (Satz von der totalen Wahrscheinlichkeit) Die Ereignisse A 1,..., A n seien paarweise disjunkt und es gelte
MehrLösungsvorschläge Blatt Z1
Theoretische Informatik Departement Informatik Prof. Dr. Juraj Hromkovič http://www.ita.inf.ethz.ch/theoinf16 Lösungsvorschläge Blatt Z1 Zürich, 2. Dezember 2016 Lösung zu Aufgabe Z1 Wir zeigen L qi /
Mehr1 Modulare Arithmetik
$Id: modul.tex,v 1.11 2012/04/16 19:15:39 hk Exp $ $Id: gruppen.tex,v 1.11 2012/04/17 10:30:56 hk Exp $ 1 Modulare Arithmetik 1.3 Restklassen Wir waren gerade damit beschäftigt eine Beispiele zum Rechnen
Mehr5 Grundlagen der Zahlentheorie
5 Grundlagen der Zahlentheorie 1 Primfaktorzerlegung Seienm, n N + := {k N k > 0} Man schreibt n n, gesprochen m teilt n oder m ist ein Teiler von n, wenn es eine positive natürliche Zahl k gibt mit mk
Mehr3 Vom Zählen zur Induktion
7 3 Vom Zählen zur Induktion 3.1 Natürliche Zahlen und Induktions-Prinzip Seit unserer Kindheit kennen wir die Zahlen 1,, 3, 4, usw. Diese Zahlen gebrauchen wir zum Zählen, und sie sind uns so vertraut,
MehrMotivation. Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik. Motivation - Beispiel. Motivation - Beispiel
Motivation Formale Grundlagen der Informatik 1 Kapitel 19 & Die ist eine Erweiterung der Aussagenlogik. Sie hat eine größere Ausdrucksstärke und erlaub eine feinere Differenzierung. Ferner sind Beziehungen/Relationen
MehrProgrammieren lernen mit Groovy Rekursion Rekursion und Iteration
Programmieren lernen mit Groovy Rekursion Seite 1 Rekursion Rekursion Ursprung lat. recurrere ~ zurücklaufen rekursive Definition Definition mit Bezug auf sich selbst Beispiel Fakultätsfunktion n! 0! =
MehrC- Kurs 04 Anweisungen
C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa@k.uni- leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm
MehrDemo für
SUMMENZEICHEN Regeln und Anwendungen Gebrauchs des Summenzeichens mit Aufgaben aus vielen Bereichen für Angela Datei Nr. 4 Stand:. Oktober INTERNETBIBLIOTHEK FÜR SCHULMATHEMATIK Demo für 4 Summenzeichen
MehrDie primitiv rekursiven Funktionen
Priv.-Doz. Dr.rer.nat.habil. Karl-Heinz Niggl Technische Universität Ilmenau Fakultät IA, Institut für Theoretische Informatik Fachgebiet Komplexitätstheorie und Effiziente Algorithmen J Die primitiv rekursiven
MehrDer λ-kalkül. Frank Huch. Sommersemester 2015
Der λ-kalkül Frank Huch Sommersemester 2015 In diesem Skript werden die Grundlagen der Funktionalen Programmierung, insbesondere der λ-kalkül eingeführt. Der hier präsentierte Stoff stellt einen teil der
Mehr