Theoretische Informatik 1

Ähnliche Dokumente
Mächtigkeit von WHILE-Programmen

Theoretische Informatik 1

Theoretische Grundlagen der Informatik

GTI. Hannes Diener. 6. Juni Juni. ENC B-0123, diener@math.uni-siegen.de

Einführung in die Theoretische Informatik

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

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

5. Varianten des Turingmaschinen-Konzeptes I: Varianten der Programmstruktur

Zusammenfassung Grundzüge der Informatik 4

Algorithmen und Programmierung

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

3. Ziel der Vorlesung

Theoretische Informatik 2

Wortproblem für kontextfreie Grammatiken

Entwurf von Algorithmen - Kontrollstrukturen

Geben Sie dazu jedes Mal, wenn sie die Zeile 15 passieren, die aktuelle Feldbelegung an. Der Anfang wurde bereits gemacht.

Algorithmen und Programmieren II Einführung in Python

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

Komplexität und Komplexitätsklassen

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung in die Informatik Grammars & Parsers

Grammatiken und die Chomsky-Hierarchie

Assembler-Programmierung

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

SOMA Reverse Engineering

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2.11 Kontextfreie Grammatiken und Parsebäume

Theoretische Informatik SS 04 Übung 1

Konfiguration einer TM als String schreiben: Bandinschrift zwischen den Blank-Zeichen Links von der Kopfposition Zustand einfügen.

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Theoretische Informatik

VBA-Programmierung: Zusammenfassung

Programmierung und Modellierung

Grundlagen der Informatik III Wintersemester 2010/2011

3. Turingmaschinen FORMALISIERUNG VON ALGORITHMEN. Turingmaschinen Registermaschinen Rekursive Funktionen UNTERSCHEIDUNGSMERKMALE DER ANSÄTZE:

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

Stephan Brumme, SST, 2.FS, Matrikelnr

Sin-Funktion vgl. Cos-Funktion

Kurs 1613 Einführung in die imperative Programmierung

Übersetzung von Struktogrammen nach VBA

Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen

Zum Einsatz von Operatoren im Informatikunterricht

Reguläre Sprachen Endliche Automaten

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken

Zur drittletzten Zeile scrollen

Technische Informatik 2 Adressierungsarten

Übungsaufgaben und Lösungen. zur Vorlesung. Theoretische Grundlagen der Informatik

How-To-Do. BASIC-Skript Beispiele

Ideen der Informatik. Wie funktionieren Computer? Kurt Mehlhorn

Die Mikroprogrammebene eines Rechners

1 Vom Problem zum Programm

Theoretische Informatik I

Kurs 1575, Musterlösung zur Winter Klausur 2003/04

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Algorithmen II Vorlesung am

Kapitel 11: Wiederholung und Zusammenfassung

SWP Prüfungsvorbereitung

THEORETISCHE INFORMATIK

Einführung in die Programmierung WS 2014/ Algorithmus, Berechenbarkeit und Programmiersprachen 2-1

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

Einführung in die Informatik und Medieninformatik

Einführung in die Informatik

Technische Informatik 1

VHDL Verhaltensmodellierung

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014

Seminar Finanzmathematik

BTree.dll - Balancierte und verkettete Bäume. Ecofor. BTree.dll. Realisiert mit Microsoft Visual Studio /9

Kapitel 7: Formaler Datenbankentwurf

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

Theoretische Grundlagen der Informatik

Grundlagen: Algorithmen und Datenstrukturen

Mikroprozessortechnik. 03. April 2012

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Automaten und formale Sprachen: Vorlesungsskript G. Brewka, A. Nittka

Compiler und Codegenerierung. Hw-Sw-Co-Design

Vorlesung Theoretische Informatik

Programmieren mit dem Java-Hamster-Modell. VP Orientierung Informatik WS 2008/09 H.Hagenauer

Methodische Grundlagen des Software Engineering - Übung 9

Theoretische Informatik 2

Motivation. Formale Grundlagen der Informatik 1 Kapitel 10. Motivation. Motivation. Bisher haben wir mit TMs. Probleme gelöst/entschieden/berechnet.

Zweite Möglichkeit: Ausgabe direkt auf dem Bildschirm durchführen:

Die Komplexitätsklassen P und NP

Zwei Ziegen und ein Auto

Aufgabe 5 Excel 2013 (Fortgeschrittene)

Informatik I WS 07/08 Tutorium 24

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013

E-PRIME TUTORIUM Die Programmiersprache BASIC

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Methoden des Algorithmenentwurfs Kapitel 2.2: Randomisierte Online Algorithmen

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

Softwaretechnik 1 Tutorium

Transkript:

Theoretische Informatik 1 Teil 4 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007

Übersicht 1 Turingmaschinen Mehrband-TM Kostenmaße Komplexität 2

Mehrband-TM Kostenmaße Komplexität Mehrband-TM k Köpfe, also pro Schritt k Symbole veränderbar 1 Schritt = jeder Kopf bewegt sich Köpfe bewegen sich unanbhängig voneinander! Übergangsfunktion δ wird aufgeblasen k-band DTM ist also schneller als 1-Band DTM

Mehrband-TM Kostenmaße Komplexität Aquivalenz k-dtm und 1-DTM

Mehrband-TM Kostenmaße Komplexität Kostenmaße bei Eingabe w Definition (Zeitkosten bei Eingabe w) Die Funktion t T (w) : Σ N { } gibt die Länge des (endlichen) Berechnungspfades der TM T bei der Eingabe w an, oder, wenn dieser Berechnungspfad unendlich ist. Definition (Platzkosten bei Eingabe w) Die Funktion s T (w) : Σ N { } gibt die Anzahl der Bandquadrate an, die während der Berechnug der TM T bei Eingabe von w besucht werden. Satz (Platzkosten sind beschränkt durch Zeitkosten) T : w Σ : s T (w) t T (w) + 1

Mehrband-TM Kostenmaße Komplexität Komplexität einer DTM Definition (Zeitkomplexität) Die Zeitkomplexität einer DTM T (in Abhängigkeit der Länge der Eingabe) ist definiert als T T (n) = max w Σ : w n t T (w) Definition (Platzkomplexität) Die Platzkomplexität einer DTM T (in Abhängigkeit der Länge der Eingabe) ist definiert als S T (n) = max w Σ : w n s T (w) Satz (Platzkomplexität ist kleiner als Zeitkomplexität) T : n N : S T (n) T T (n) + 1

RM: Programm mit p Befehlen, Speicher c(0)... c(m) 4-Band DTM: Σ = {0, 1, #}, Γ = {0, 1, #, } Band 1: Eingabe, Band 3: Ausgabe Band 4: Nebenrechnungen Band2: ###0#c(0)##...##bin(m)#bin(c(m))### Q = Q 0 Q 1... Q p Q p+1 Q 0 -Zustände übersetzen Eingabe in Registerstruktur Q p+1 -Zustände übertragen Ergebnis c(0) auf Band 3 Q i, 1 i p simuliert Befehl i

274: ADD *24 = Q 274 1 suche ##11000#x# auf Band 2 (9q s) 2 kopiere x von Band 2 bis # auf Band 4 (1q) 3 suche ##x#y# auf Band 2 (4q s) 4 kopiere y von Band 2 bis # auf Band 4 (1q) 5 Rewind Band 2 zum Ende des Accumulators (6q s) 6 Addiere bitweise Accumulator zu Band 4 (2q) 7 Ersetzte Accumulator durch Inhalt von Band 4 (4q s) Q 274 umfasst also 27 Einzelzustände Details der Zustände siehe Übungsstunde

, Codierung Zentrale Frage: Wie wird das Band dargestellt? Variante 1: Ein Register pro Bandfeld, startend bei c(10): Bandfelder nummerieren:..., F 2, F 1, F 0, F 1, F 2,... Kopfposition: c(1), Inhalt: c(c(1)) F k c(10 + 2k), F 0 c(10), F k c(10 + 2k 1) Rechts: = 2; Links: = 2 IF c(1) mod 2=1 THEN c(1)=c(1)+ ELSE c(1)=c(1)- IF c(1)=8 THEN c(1)=11 ELSEIF c(1)=9 THEN c(1)=10 Nachteil: indirekte Adressierung notwendig

, Codierung Variante 2: 2 Stacks in je einem Register Stack L in c(3) ist Bandinhalt links vom Kopf Stack R in c(4) ist Bandinhalt rechts vom Kopf Symbol unter dem Kopf in c(2) aktueller Zustand in c(1) α 0 α 1 α n c(3) = a 0 + a 1 Γ +... + a n Γ n 1 pushl: c(3)=c(3)* Γ + c(2) popl: c(2)=c(3) mod Γ ; c(3)=c(3) div Γ ebenso für PushR und PopR mit c(4)

, Algorithmus δ(q 1, α 1 ) = (q 1, α 1, R) δ(q 2, α 2 ) = (q 2, α 2, L) δ(q 3, α 3 ) = (q 3, α 3, L), q 3 F LOOP: IF c(1)=q 1 AND c(2)= α 1 THEN c(1)=q 1 ; c(2)= α 1 ;PushL;PopR; GOTO LOOP; IF c(1)=q 2 AND c(2)= α 2 THEN c(1)=q 2 ; c(2)= α 2 ;PushR;PopL; GOTO LOOP; IF c(1)=q 3 AND c(2)= α 3 THEN c(1)=q 3 ; c(2)= α 3 ;PushR;PopL; GOTO ACCEPTED;... GOTO REJECTED ACCEPTED:

Äquivalenz RM und DTM Satz Zu jeder Registermaschine R gibt es eine Turingmaschine T, sodaß für die jeweils berechneten (partiellen) Funktionen gilt: f R (n 1,..., n k ) = bin 1 (f T (bin(n 1 )#bin(n 2 )#... #bin(n k ))) Satz Zu jeder Turingmaschine T gibt es eine Registermaschine R, sodaß für die jeweils berechneten (partiellen) Funktionen gilt: f T (w) = π (f R (τ (w)))

Kosten der Simulation Gegeben: RM mit Komplexität T R (n) Gesucht: T T (n) der äquivalenten DTM Satz T T (n) = O ( T 2 R (n)) Gegeben: DTM mit Komplexität T T (n) Gesucht: T R (n) der simulierenden RM Satz T R (n) = O ( T 2 T (n))