Berechenbarkeit und Komplexität Vorlesung 11
|
|
- Monica Krüger
- vor 6 Jahren
- Abrufe
Transkript
1 Berechenbarkeit und Komplexität Vorlesung 11 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 7. Dezember 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
2 Turing-mächtige Programmiersprachen Definition Eine Programmiersprache wird als Turing-mächtig bezeichnet, wenn jede Funktion, die durch eine TM berechnet werden kann, auch durch ein Programm in dieser Programmiersprache berechnet werden kann. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
3 Die Programmiersprache WHILE Syntax Elemente eines WHILE-Programms Variablen x 1 x 1 x 3...für natürliche Zahlen Symbole ; := + Schlüsselwörter while, do, endwhile, if, then, else, endif Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
4 Die Programmiersprache WHILE Syntax Induktive Definition Induktionsanfang Zuweisung Für jedes c { 1,0,1} ist die Zuweisung x i := x j +c ein WHILE-Programm. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
5 Die Programmiersprache WHILE Syntax Induktive Definition Induktionsschritte: Hintereinanderausführung Falls P 1 und P 2 WHILE-Programme sind, dann ist auch P 1 ;P 2 ein WHILE-Programm. if-then-else-konstrukt Falls P 1,P 2 WHILE-Programme sind, dann ist auch if x i 0 then P 1 else P 2 endif ein WHILE-Programm. while-konstrukt Falls P ein WHILE-Programm ist, dann ist auch while x i 0 do P endwhile ein WHILE-Programm. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
6 Syntax durch kontextfreie Grammatik in BNF-Notation <WHILE-Prog> ::= <Wertzuweisung > <WHILE-Prog>;<WHILE-Prog> if x i 0 then <WHILE-Prog> else <WHILE-Prog> endif while x i 0 do <WHILE-Prog> endwhile Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
7 Beispiel Wir verwenden hier allgemeinere Tests und Wertzuweisungen. Diese werden später durch erlaubte Tests x i 0 und durch erlaubte Wertzuweisungen ersetzt. Wir geben den euklidischen Algorithmus als WHILE-Programm P E an. {x 1 > 0,x 2 > 0} while x 1 x 2 do if x 1 < x 2 then x 2 := x 2 x 1 else x 1 := x 2 x 1 endif endwhile {x 1 = ggt der Anfangswerte von x 1,x 2 } Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
8 Die Programmiersprache WHILE Semantik Ein WHILE-Programm P mit Variablen x 1,...x k bestimmt eine Transformation [P] : N k N k, die semantische Funktion zu P Es gilt [P](r 1,...,r k ) = (s 1,...,s k ), wenn P mit den Anfangswerten r 1,...r k der Variablen x 1,...,x k gestartet schließlich terminiert und dann s 1,...,s k die Werte der Variablen x 1,...,x k bei Termination sind. [P](r 1,...,r k ) ist undefiniert, wenn P mit den Anfangswerten r 1,...r k der Variablen x 1,...,x k gestartet nicht terminiert. Wir definieren [P] nun genau, durch Induktion über den Aufbau von P Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
9 Induktive Definition von [P] Ist P die Wertzuweisung x i := x j +1, so sei [P](r 1,...,r k ) = (r 1,...,r i 1,r j +1,r i+1,...,r k ), analog für x i := x j +0 und x i := x j 1 (mit der Konvention x y = 0 für y x). Für P = P 1 ;P 2 setzen wir die Hintereinanderausführung fest: [P](r 1,...,r k ) = [P 2 ]([P 1 ](r 1,...,r k )) Für P = if x i 0 then P 1 else P 2 endif setzen wir [P](r 1,...,r k ) = [P 1 ](r 1,...,r k ), falls r i 0, sonst = [P 2 ](r 1,...,r k ) Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
10 Semantik von while Für P = while x i 0 do P endwhile setzen wir [P](r 1,...,r k ) = [P] l (r 1,...,r k ) für das kleinste l, so dass die i-te Komponente von [P] l (r 1,...,r k ) = 0 ist, falls solch ein l existiert undefiniert, falls solch ein l nicht existiert. Hier ist [P] l die l-fache Anwendung von [P]. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
11 Ein- und Ausgabekonvention Das WHILE-Programm P habe wieder die Variablen x 1,...,x k Wir verwenden P wie folgt zur Berechung einer n-stelligen Funktion f : N n N: Die Variablen x 1,...,x n enthalten die Eingabewerte. Alle anderen Variablen x n+1,...,x k werden mit 0 initialisiert. Das Resultat eines WHILE-Programms ist die Zahl, die sich am Ende der Rechnung in der Variable x 1 ergibt. Formal: Das WHILE-Programm P bestimmt zur Stellenzahl n die Funktion f (n) P : N n N mit f (n) P (m 1,...,m n ) = ([P](m 1,...m n,0...,0)) 1 Hierbei bezeichnet (s 1...s k ) 1 die erste Komponente eines Vektors (s 1...s k ). Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
12 Ein kleines Beispiel Für das Programm P: while x 2 0 do x 1 := x 1 +1 ; x 2 := x 2 1 endwhile gilt: [P](r 1,r 2 ) = (r 1 +r 2,0) f (2) P (m 1,m 2 ) = m 1 +m 2 f (1) P (m) = m Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
13 Beispiel ggt-programm Wir betrachten das anfangs präsentierte ggt-programm P E auch für Anfangswerte von x 1,x 2, die Null sein können. Es gilt dann f (2) P E (m 1,m 2 ) = ggt(m 1,m 2 ) falls m 1,m 2 > 0 f (2) P E (m 1,m 2 ) =, falls m 1 < 0,m 2 = 0 oder m 1 = 0,m 2 > 0 f (2) P E (m 1,m 2 ) = 0, falls m 1 = m 2 = 0 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
14 Das loop-konstrukt Wir betrachten neben der while-schleife eine andere Art von Schleifenkonstrukt, die loop-schleife: loop x i do P endloop Die Ausführung ist so vereinbart: Ist r i der Anfangswert der Variablen x i, so wird P r i -mal ausgeführt. Wir erweitern die semantische Funktion [P] wie folgt: Für P = loop x i do P 0 endwhile setzen wir [P](r 1,...,r k ) = [P 0 ] r i(r 1,...,r k ) Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
15 LOOP-Programme LOOP-Programme sind definiert analog den WHILE-Programmen, jedoch mit der loop-schleife an Stelle der while-schleife. In BNF-Syntax sind die LOOP-Programme also wie folgt definiert: <LOOP-Prog> ::= <Wertzuweisung > <LOOP-Prog>;<LOOP-Prog> if x i 0 then <LOOP-Prog> else <LOOP-Prog> endif loop x i 0 do <LOOP-Prog> endloop Wir nutzen auch erweiterte WHILE-Programme, in denen sowohl loop- als auch while-schleifen erlaubt sind. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
16 LOOP-Programme: Beispiele 1 Für das LOOP-Programm P: loop x 2 do x 1 := x 1 +1 endloop gilt: [P](r 1,r 2 ) = (r 1 +r 2,r 2 ), f (2) P (r 1,r 2 ) = r 1 +r 2 2 Entsprechend berechnet das Programm loop x 2 do x 1 := x 1 1 endloop die Subtraktion (mit x y = 0 für y > 0). 3 Das Programm loop x 2 do loop x 1 do x 3 := x 3 +1 endloop endloop berechnet die Multiplikation (beachte, dass m n die n-fache Summe m+...+m ist). Verallgemeinerte Tests (bei while und if-then-else) können mit Hilfsvariablen auf Tests der urprünglichen Form x i 0 reduziert werden: x < y y x = 0 x y (y x)+(x y) 0 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
17 Ersetzbarkeit von loop durch while Satz Das loop-konstrukt ist durch while simulierbar. Beweis: Betrachte P mit x 1,...,x k Ersetze in P loop x i do P 0 endloop durch x k+1 := x i ; while x k+1 0 do x k+1 := x k+1 1;P 0 endwhile Wir behandeln nun zwei Fragen 1 Ist die Sprache der WHILE-Programme Turing-mächtig? (Antwort: ja) 2 Ist while durch loop ersetzbar? (Antwort: nein) Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
18 Die Programmiersprache WHILE Mächtigkeit Satz Die Programmiersprache WHILE ist Turing-mächtig. Genauere Formulierung (da wir über dem Bereich N arbeiten): Jede Turing-berechenbare Funktion f : N n N ist auch WHILE-berechenbar. Erinnerung: f : N n N ist Turing-berechenbar, wenn es eine TM M, gibt, die auf bin(r 1 )#...#bin(r n ) angesetzt stoppt gdw. f(r 1,...,r n ) definiert ist - und in diesem Fall mit Ausgabe bin(f(r 1,...,r n )) stoppt. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
19 Beweisansatz In einer Übungsaufgabe haben wir gezeigt, dass eine TM durch eine RAM mit konstant vielen Registern und eingeschränktem Befehlssatz simuliert werden kann. LOAD, CLOAD, STORE, CADD, CSUB, GOTO, IF c(0) 0 GOTO, END Wir müssen also nur noch zeigen, dass jede Funktion, die durch eine eingeschränkte RAM (ein RAM 0 -Programm ) berechnet werden kann, auch durch ein WHILE-Programm berechnet werden kann. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
20 Beweis Turing-Mächtigkeit von WHILE-Programmen Sei Π ein beliebiges RAM 0 -Programm, d.h. ein RAM-Programm mit eingeschränktem Befehlssatz, das aus l Zeilen besteht und neben dem Akkumulator k Register für natürliche Zahlen benutzt. Wir verwenden im WHILE-Programm die Variablen x 1,...,x k,x k+1,x k+2,x k+3 wobei wir die letzten drei schreiben als b für Befehlszähler, c 0 für Akku, z für Zero (enthält immer den Wert 0) Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
21 Beweis Turing-Mächtigkeit von WHILE-Programmen Die oben aufgelisteten RAM-Befehle werden nun in Form von konstant vielen Zuweisungen der Form x i := x j +c mit c {0,1} implementiert. Der RAM-Befehl LOAD i wird beispielsweise ersetzt durch c 0 := x i ; b := b +1 Der RAM-Befehl CLOAD i wird analog ersetzt durch c 0 := z; c 0 := c 0 +1;...; c 0 := c 0 +1; }{{} i mal b := b +1 Die RAM-Befehle STORE, CADD, CSUB und GOTO lassen sich leicht auf ähnliche Art realisieren. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
22 Beweis Turing-Mächtigkeit von WHILE-Programmen Den RAM-Befehl IF c(0) 0 GOTO j ersetzen wir wie folgt: if c 0 0 then b := 0;b := b +1;...; b := b +1 }{{} j mal else b := b +1 endif Den RAM-Befehl END ersetzen wir durch b := 0. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
23 Beweis Turing-Mächtigkeit von WHILE-Programmen Jede Zeile des RAM-Programms wird nun wie oben beschrieben in ein WHILE-Programm transformiert. Das WHILE-Programm für Zeile i bezeichnen wir mit P i. Wir betten P i in ein WHILE-Programm P i mit der folgenden Semantik ein: Falls b = i dann führe P i aus. Wie kann man P i implementieren? Übungen... Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
24 Beweis Turing-Mächtigkeit von WHILE-Programmen Nun fügen wir die WHILE-Programme P 1,...,P l zu einem WHILE-Programm P zusammen: b := 1; while b 0 do endwhile P 1 ;...;P l P berechnet dieselbe Funktion wie Π. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7. Dezember / 24
Mä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
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
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Turing-Maschine, Berechenbarkeit INSTITUT FÜR THEORETISCHE 0 KIT 07.11.2011 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen
MehrÜbung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie
Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per
MehrTheoretische 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
MehrEinführung in die Theoretische Informatik
Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie
MehrEinfü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
MehrLehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup
Universität Dortmund Lehrstuhl Informatik VI Grundzüge der Informatik * WS 28/29 Prof. Dr. Joachim Biskup Leitung der Übungen: Arno Pasternak Lösungs-Ideen Übungsblatt 6 A: Grammatiken, Syntaxdiagramme
MehrAlgorithmentheorie. 13 - Maximale Flüsse
Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk
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
MehrSatz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich
Herbrand-Strukturen und Herbrand-Modelle Sei F eine Aussage in Skolemform. Dann heißt jede zu F passende Struktur A =(U A, I A )eineherbrand-struktur für F, falls folgendes gilt: 1 U A = D(F ), 2 für jedes
MehrSpezifikation 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
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
MehrZusammenfassung Grundzüge der Informatik 4
Zusammenfassung Grundzüge der Informatik 4 Sommersemester 04 Thorsten Wink 21. September 2004 Version 1.2 Dieses Dokument wurde in L A TEX 2εgeschrieben. Stand: 21. September 2004 Inhaltsverzeichnis 1
MehrGrundlagen 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
MehrEntwurf von Algorithmen - Kontrollstrukturen
Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer
MehrSOI 2013. Die Schweizer Informatikolympiade
SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen
Mehr1 Syntax von Programmiersprachen
1 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ): formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmier-Sprache Festlegung, wie Programme
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch
MehrGrammatiken. Einführung
Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische
MehrBrainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen
Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit
MehrWortproblem für kontextfreie Grammatiken
Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?
MehrAssembler-Programmierung
Assembler-Programmierung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Assembler-Programmierung 1/48 2012-02-29 Assembler-Programmierung
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
MehrJava-Programmierung mit NetBeans
Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
MehrInformationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins
Mehr32. Algorithmus der Woche Kreise zeichnen mit Turbo Programmoptimierung: Wie kann man die Zahl der Rechenoperationen minimieren?
32. Algorithmus der Woche Kreise zeichnen mit Turbo Programmoptimierung: Wie kann man die Zahl der Rechenoperationen minimieren? Autor Leif Kobbelt, RWTH Aachen Dominik Sibbing, RWTH Aachen Hast Du schon
MehrFormale Sprachen, reguläre und kontextfreie Grammatiken
Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache
MehrÜbersicht Programmablaufsteuerung
Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen
MehrVBA mit Excel. Einführung VBA mit Excel. Einführung
VBA mit Excel Einführung Die Programmiersprache VBA (Visual Basic for Applications) gewinnt zunehmend an Bedeutung, weil alle MSOfficeProgramme von VBA unterstützt werden. VBA ist aus der sehr viel mächtigeren
MehrProzeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen
Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von
MehrKapitel 2: Formale Sprachen Gliederung
Gliederung 0. Einleitung und Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. Chomsky-Grammatiken 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen
MehrEinfache Rechenstrukturen und Kontrollfluss II
Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative
MehrEinführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)
Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff
MehrStephan Brumme, SST, 2.FS, Matrikelnr. 70 25 44
Aufgabe 33 a) Der Pseudobefehl move $rd,$rs wird als addu $rd,$0,$rs übersetzt. Dabei macht sich SPIM zunutze, dass das Register $0 immer Null ist. Somit wird das Register $rd ersetzt durch $rd=0+$rs=$rs,
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Kapitel 6: Induktives Vorgehen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische
Mehr22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet
22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet Autor Volker Claus, Universität Stuttgart Volker Diekert, Universität Stuttgart Holger Petersen, Universität Stuttgart
MehrErster Kontakt mit Java und Pseudocode
Erster Kontakt mit Java und Pseudocode CoMa-Übung II TU Berlin 23.10.2013 CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 1 / 27 Themen der Übung 1 Java auf meinem Rechner 2
Mehr2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik
Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,
MehrDiskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de
Diskrete Strukturen und Logik WiSe 2007/08 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Diskrete Strukturen und Logik Gesamtübersicht Organisatorisches Einführung Logik & Mengenlehre
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
MehrEntscheidungsprobleme. 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,
MehrAusarbeitung 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
MehrErster Bug: eine Motte
SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte
MehrKapitel 5: Applikative Programmierung
Kapitel 5: Applikative Programmierung In der applikativen Programmierung wird ein Programm als eine mathematische Funktion von Eingabe-in Ausgabewerte betrachtet. Das Ausführen eines Programms besteht
MehrGrundlagen der Informatik II. Teil I: Formale Modelle der Informatik
Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende
Mehreffektives Verfahren ~ Algorithmus (Al Chwarismi) Regelsystem, Methode, Rezept, Gebrauchsanleitung Programm (griech. προγραφω, vor-schreiben)
effektive Verfahren Ein Verfahren ist effektiv, wenn es für jeden Fall, der in einem zuvor abgegrenzten Bereich von eindeutigen Unterscheidungen auftreten kann, eine eindeutige und ausführbare Handlungsanweisung
MehrSWE1 / Übung 2 (19.10.2011)
SWE1 / Übung 2 (19.1.211) Simulation von Algorithmen Testen, Testplan Beispiel arithmetische Ausdrücke Handsimulation von Algorithmen Man versteht einen Algorithmus (insbesonders einen "Fremden"), wenn
MehrFormale Sprachen. Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen. Rudolf Freund, Marian Kogler
Formale Sprachen Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen Rudolf Freund, Marian Kogler (http://xkcd.com/208) Gültige Adressen: Favoritenstraße 9, 1040 Wien Reumannplatz
MehrÜbersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15
Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen
MehrVisual Basic / EXCEL / Makroprogrammierung Unterrichtsreihe von Herrn Selbach
Visual Basic / EXCEL / Makroprogrammierung Unterrichtsreihe von Herrn Selbach Übungsaufgaben zum Kapitel 1 1. Aufgabe In einer EXCEL Tabelle stehen folgende Zahlen: Definiere einen CommandButton, der diese
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
Mehr1. LPC - Lehmanns Programmier Contest - Lehmanns Logo
Aufgabe ist die Entwicklung einer vereinfachten Variante der beliebten Programmiersprache Logo. Die Aufgabe ist in drei Stufen zu erledigen, von der wir zunächst nur die erste Stufe bekannt geben. Die
MehrOft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein.
Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein. 3 1384788374932954500363985493554603584759389 mod 28374618732464817362847326847331872341234 Wieso kann ein
MehrAlso kann nur A ist roter Südler und B ist grüner Nordler gelten.
Aufgabe 1.1: (4 Punkte) Der Planet Og wird von zwei verschiedenen Rassen bewohnt - dem grünen und dem roten Volk. Desweiteren sind die Leute, die auf der nördlichen Halbkugel geboren wurden von denen auf
MehrProgrammierung in Python
Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P
MehrCodierungstheorie Rudolf Scharlau, SoSe 2006 9
Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets
MehrSprachbeschreibung und Erweiterung
Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen
MehrTheorie der Informatik (CS206) Fortsetzung LOOP-Programme, primitiv-rekursive Funktionen
Theorie der Informatik (CS206) Fortsetzung LOOP-Programme, primitiv-rekursive Funktionen 26. März 2012 Proff Malte Helmert und Christian Tschudin Departement Mathematik und Informatik, Universität Basel
MehrAlgorithmen und Berechnungskomplexität I
Institut für Informatik I Wintersemester 2010/11 Organisatorisches Vorlesung Montags 11:15-12:45 Uhr (AVZ III / HS 1) Mittwochs 11:15-12:45 Uhr (AVZ III / HS 1) Dozent Professor für theoretische Informatik
MehrÜbung 8: VB-Programmierung: Aufgabe
Übung 8: VB-Programmierung: Aufgabe Sachverhalt: Erstellen Sie ein fehlerfrei lauffähiges Programm in Visual Basic zu folgendem Algorithmus: Berechnung des Benzinverbrauchs Eingabewerte: - KM-Stand alt
MehrSoftwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
MehrLösungsblatt zur Vorlesung. Kryptanalyse WS 2009/2010. Blatt 6 / 23. Dezember 2009 / Abgabe bis spätestens 20. Januar 2010, 10 Uhr (vor der Übung)
Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May Mathias Herrmann, Alexander Meurer Lösungsblatt zur Vorlesung Kryptanalyse WS 2009/2010 Blatt 6 / 23. Dezember
MehrTheoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19
Inhalt 1 inführung 2 Automatentheorie und ormale prachen Grammatiken Reguläre prachen und endliche Automaten Kontextfreie prachen und Kellerautomaten Kontextsensitive und yp 0-prachen 3 Berechenbarkeitstheorie
Mehr4 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
MehrE-PRIME TUTORIUM Die Programmiersprache BASIC
E-PRIME TUTORIUM Die Programmiersprache BASIC BASIC Beginner s All-purpose Symbolic Instruction Code symbolische Allzweck-Programmiersprache für Anfänger Design-Ziel klar: Eine einfache, für Anfänger geeignete
MehrÜbung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrFehlerkorrektur Bild 3.190 Demoprozessor
7 Prozessor 3 0 Flags C V N Z A IP 0 SP AB 8 MS W/R DB 4 00h..6Fh Daten Speicher 70h..70h PA 71h..71h PB 72h..73h PC 74h..76h PD 80h..FFh Programm Speicher Fehlerkorrektur Bild 3.190 Demoprozessor Die
MehrKlausur für Studiengänge INF und IST
Familienname: Matrikelnummer: Studiengang: (bitte ankreuzen) INF IST MED Vorname: Email-Adresse: Immatrikulationsjahr: Klausur für Studiengänge INF und IST sowie Leistungsschein für Studiengang Medieninformatik
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Automat versus Computer Ein Automat ist eine Maschine,
MehrFallunterscheidung: if-statement
Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0
MehrÜbungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c
Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c 1 Transportbefehle 1.1 Verwendung nur Akku und Register (R0, R1,... R7) 1.1.1 Kopieren Sie den Wert aus Register1 nach
MehrHEUTE. Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: Was ist Effizienz? vollständige Induktion
17.11.04 1 HEUTE 17.11.04 3 Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: was ist Effizienz? vollständige Induktion JAVA: Arrays die for -Schleife die Sprunganweisungen break und continue
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Anweisungen... 4-2 4.1 Strukturierte Programmierung... 4-2 4.1.1 Geschichte... 4-2 4.1.2 Strukturierung im Kleinen... 4-2 4.2 Einige Beispielanwendungen... 4-4 4.2.1 Addierer (do-schleife)...
MehrKapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen
reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung
MehrFehler in numerischen Rechnungen
Kapitel 1 Fehler in numerischen Rechnungen Analyse numerischer Rechnungen: - Welche möglichen Fehler? - Einfluss auf Endergebnis? - Nicht alles in der Comp.Phys./Numerical Analysis dreht sich um Fehler
MehrKap 4. 4 Die Mikroprogrammebene eines Rechners
4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)
MehrP r o g r a m m a b l a u f s t e u e r u n g
Jede Programmiersprache braucht Konstrukte zur Steuerung des Programmablaufs. Grundsätzlich unterscheiden wir Verzweigungen und Schleifen. Schleifen dienen dazu, bestimmte Anweisungen wiederholt auszuführen,
MehrEntscheidungsbä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
MehrNoch 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
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
MehrPropädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik
MehrSeminar Komplexe Objekte in Datenbanken
Seminar Komplexe Objekte in Datenbanken OPTICS: Ordering Points To Identify the Clustering Structure Lehrstuhl für Informatik IX - Univ.-Prof. Dr. Thomas Seidl, RWTH-Aachen http://www-i9.informatik.rwth-aachen.de
MehrÜbung 4: Schreiben eines Shell-Skripts
Aufgabenteil 1 Ziel der Übung Übung 4: Schreiben eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende
MehrProgrammierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.
1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache
MehrLösungen zu Kapitel 7
Lösungen zu Kapitel 7 Lösung zu Aufgabe 1: Nach Definition 7.1 ist eine Verknüpfung auf der Menge H durch eine Abbildung : H H H definiert. Gilt H = {a 1,..., a m }, so wird eine Verknüpfung auch vollständig
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
MehrExcel Funktionen durch eigene Funktionen erweitern.
Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion
MehrZur 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
Mehr6 3 1 7 5 9 2 4 8 Geben Sie dazu jedes Mal, wenn sie die Zeile 15 passieren, die aktuelle Feldbelegung an. Der Anfang wurde bereits gemacht.
Aufgabe 2: ALI von der Hochsprache zur Maschinenebene a) Schreiben Sie ein Pascal- sowie das zugehörige RePascal-PROGRAM Quadratsumme, welches nach Eingabe einer natürlichen Zahl n die Summe der ersten
MehrEinführung in das Programmieren mit VBA
Einführung in das Programmieren mit VBA Unterrichtseinheiten, mit dem Ziel den Schülern die typischen Denkweisen der Informatik näher zu bringen. Vorraussetzungen: Die Beispiele sind so ausgelegt, dass
Mehr5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)
5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!
MehrZusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1
Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 1 Wir betrachten die folgende Signatur
Mehr8 Diskrete Optimierung
8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von
MehrPHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54
PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten
MehrProgrammieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff
Programmieren in C Rekursive Funktionen Prof. Dr. Nikolaus Wulff Rekursive Funktionen Jede C Funktion besitzt ihren eigenen lokalen Satz an Variablen. Dies bietet ganze neue Möglichkeiten Funktionen zu
Mehr