Theoretische Informatik 1



Ähnliche Dokumente
Theoretische Informatik 1

Mächtigkeit von WHILE-Programmen

Tourist Town. wenn Computer ins Schwitzen geraten. Prof. Dr. Isolde Adler IT-Girls Night

Theoretische Informatik SS 04 Übung 1

Mathematische Maschinen

Informationsblatt Induktionsbeweis

3. Ziel der Vorlesung

WS 2013/14. Diskrete Strukturen

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Zeichen bei Zahlen entschlüsseln

Der Zwei-Quadrate-Satz von Fermat

Theoretische Grundlagen der Informatik

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Übung Theoretische Grundlagen

Grundbegriffe der Informatik

Die Komplexitätsklassen P und NP

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

2. Negative Dualzahlen darstellen

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

Algorithmen & Datenstrukturen 1. Klausur

Computerarithmetik ( )

Primzahlen und RSA-Verschlüsselung

Was ist Sozial-Raum-Orientierung?

Konzepte der Informatik

Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual!

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Beweisbar sichere Verschlüsselung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Wichtige Forderungen für ein Bundes-Teilhabe-Gesetz

Java Script für die Nutzung unseres Online-Bestellsystems

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)

Grundlagen der Theoretischen Informatik, SoSe 2008

WS 2008/09. Diskrete Strukturen

Technische Informatik - Eine Einführung

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Was meinen die Leute eigentlich mit: Grexit?

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

Kapitel 1: Einführung. Was ist Informatik? Begriff und Grundprobleme der Informatik. Abschnitt 1.1 in Küchlin/Weber: Einführung in die Informatik

7 Rechnen mit Polynomen

4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04

Modellbildungssysteme: Pädagogische und didaktische Ziele

Lineare Gleichungssysteme

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Leichte-Sprache-Bilder

Grundbegriffe der Informatik

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

Lenstras Algorithmus für Faktorisierung

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Informatikgrundlagen (WS 2015/2016)

6.2 Scan-Konvertierung (Scan Conversion)

Organisatorisches. Informatik II Informationen und Daten. Organisatorisches. Organisatorisches. Rainer Schrader. 13. Oktober 2008

Regeln für das Qualitäts-Siegel

27. Algorithmus der Woche Public-Key-Kryptographie Verschlüsseln mit öffentlichen Schlüsseln

Der Gabelstapler: Wie? Was? Wer? Wo?

15 Optimales Kodieren

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

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

1.Unterschied: Die Übungen sind nicht von deinem Mathe-Lehrer...

1 topologisches Sortieren

Das Leitbild vom Verein WIR

Anmerkungen zur Übergangsprüfung

Der große VideoClip- Wettbewerb von Media Markt.

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Algorithmen und Datenstrukturen

Kommentartext Medien sinnvoll nutzen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

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

Print2CAD 2017, 8th Generation. Netzwerkversionen

Mathematischer Vorbereitungskurs für Ökonomen

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Anleitung zur Erstellung und Bearbeitung von Seiten in Typo3. Typo3. Anleitung. Wenpas Informatik

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Semantik von Formeln und Sequenzen

Theoretische Grundlagen der Informatik WS 09/10

Erstellen einer digitalen Signatur für Adobe-Formulare

10. Public-Key Kryptographie

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

SolBenefit. Photovoltaik- Anlagen- Betrachtung und -Auswertung

Hilfe-Blatt: Ausgabenkontrolle

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden.

icloud nicht neu, aber doch irgendwie anders

Übungsaufgaben. - Vorgehensweise entsprechend dem Algorithmus der schriftlichen Multiplikation

Die SPD und die Grünen machen im Niedersächsischen Landtag. Alle Menschen sollen in der Politik mitmachen können.

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

Recherche nach Stellenanzeigen in Zeitungen

Einführung in die Programmierung

15.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit

Transkript:

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 die Theoretische Informatik Probleme intuitive Berechenbarkeit Algorithmusbegriff formalisiert 3 Registermaschine: Konfigurationen RM-Berechnenbarkeit

Teilgebiete der Informatik ohne Theoretische Grundlagen Komplexitätstheorie Sprachen & Semantik Datenstrukturen Programmiersprachen Logik & Berechenbarkeit KI & Maschinelles Lernen Theoretische Informatik Automatentheorie Informatik Algorithmen Praktische Informatik Software- Technik Betriebssysteme (integr.) Schaltkreise Technische Informatik Robotik Angewandte Informatik Databases Automatisierungstechnik Netzwerke Protokolle Rechner- Architektur Medizintechnik Geoinformatik WWW & Internet

Teilgebiete der Informatik ohne Theoretische Grundlagen Theoretische Informatik 1 Inhalte Intuitive und formale Berechenbarkeit Registermaschinen (RAM) und Turingmaschinen Zeitkomplexität P, NP, NP-vollständig Probabilistische Algorithmen, BPP,ZPP Maschinelles Lernen: probably approximative correct (PAC) learning

Teilgebiete der Informatik ohne Theoretische Grundlagen Infos zur LV Homepage http://www.igi.tugraz.at/lehre/ Newsgroup news://news.tu-graz.ac.at:119/tu-graz.lv.ti1 Bücher: M. Sipser,Introduction to the Theory of Computation. PWS Publishing, Boston, 1997 A.Asteroth, Ch. Baier, Theoretische Informatiker, Pearson Studium, München, 2003 Tom M. Mitchell, Machine Learning, McGraw-Hill, 1997 Internet: Wikipedia, Google. z.b. Quantenalgorithmen

Teilgebiete der Informatik ohne Theoretische Grundlagen Softwaretechniker ohne Theoretische Informatik Nach langer Tüftellei hast Du ein Programm für das Problem XY geschrieben. Der erste Test mit Testdaten (Länge 50bit) hat funktioniert. Der Chef kommt und verlangt eine Demonstration auf realitischen Daten, also ca.10kbit. Das Programm rechnet, und rechnet, und rechnet...und Du stehst ratlos daneben. Nach ein Stunde Rechenzeit ohne Ergebnis beschließt der Chef, das Problem einem Mitarbeiter zu übertragen, der sich in Informatik auskennt. Und DU...?

Fragen an die Theoretische Informatik Probleme intuitive Berechenbarkeit Algorithmusbegriff formalisiert Fragen an die Theoretische Informatik Was sind die grundsätzlichen Fähigkeiten eines Computers? Wo liegen die Grenzen von Computern? Etwas konkreter: Was ist ein Berechnungsverfahren? Gibt es zum Probelm XY einen Berechnungsverfahren? Was ist überhaupt ein Problem? Warum sind Probleme verschieden schwer zu lösen? Ist das lösbare Problem XY auch effizient lösbar? Was heißt effizient?

Fragen an die Theoretische Informatik Probleme intuitive Berechenbarkeit Algorithmusbegriff formalisiert Verschiedene Probleme Erstelle ein sortiertes Telefonbuch! Erstelle einen Stundenplan für jede Schule, sodaß sowohl für Lehrer wie Schüler keine Lücken enstehen! Optimiere die Produktionseinteilung vom Mercedes! Optimiere den Auslieferweg eines Zustelldienstes! Wie wird das Wetter morgen? Hat die Gleichung f (x 1,..., x n ) = 0 eine Lösung? Der Computer reagiert nicht. Hat es Sinn zu warten?

Fragen an die Theoretische Informatik Probleme intuitive Berechenbarkeit Algorithmusbegriff formalisiert Intuitive Berechenbarkeit Jeder von uns hat eine gewisse Vorstellung davon, was prinzipiell berechenbare Probleme sind, und ob sie eher leicht sind oder eher schwer bzw. mühsam. Händische Addition ist leicht Matrizenmultiplikation ist deutlich mehr Arbeit. Stundenpläne werden händisch durch probieren und mit viel Erfahrung erstellt, also sehr mühsam. Mathematische Beweise sind i.a. nicht berechenbar 1 Es gibt auch Probleme, bei denen wir (noch) nicht wissen, ob sie durch ein Berechnungsverfahren gelöst werden können. 1 Sonst hätte der Beweis von Fermats letzem Satz n 3 : a, b, c N : a n + b n = c n wohl nicht fast 400 Jahre gebraucht.

Fragen an die Theoretische Informatik Probleme intuitive Berechenbarkeit Algorithmusbegriff formalisiert Intuitive Berechenbarkeit, algorithmische Lösbarbkeit 1 1 Grafik aus: Asteroth, Baier: Theoretische Informatik, Pearson Studium

Begriff Algorithmus Fragen an die Theoretische Informatik Probleme intuitive Berechenbarkeit Algorithmusbegriff formalisiert Das Zehnte Hilbert sche Problem 2 : Eine diophantische (=ganzzahlige) Gleichung mit irgendwelchen Unbekannten und mit ganzen rationalen Zahlenkoeffizienten sei vorgelegt. Man soll ein Verfahren angeben, nach welchem sich mittels einer endlichen Anzahl von Operationen entscheiden läßt, ob die Gleichung in ganzen Zahlen lösbar ist. Hilbert hat also explizit und in definierter abstrakter Form nach einem Entscheidungsalgorithmus gefragt. Tatsächlich konnte 1970 bewiesen werden, daß es keinen solchen Algorithmus geben kann. 2 David Hilbert präsentiert 1900 in Paris die 23 offenen Probleme der Mathematik

Fragen an die Theoretische Informatik Probleme intuitive Berechenbarkeit Algorithmusbegriff formalisiert Intuitive Berechenbarkeit formalisiert Verfahren, Operationen, endliche Anzahl endliche, numerierte Anweisungsliste (Programm) bedingte Verzweigung (JZERO), Sprung(GOTO) Rechenoperationen: + (Zwischen-)Ergebnisse: c(0), c(1),..., c( ) Konstanten #k, direkte Adressierung c(k) indirekte Adressierung c(c(k)) definierter Haltebefehl: END = Registermaschine (RAM)

Registermaschine: Konfigurationen RM-Berechnenbarkeit Schema einer Registermaschine (RAM) 1 Graphik aus: Asteroth, Baier: Theoretische Informatik, Pearson Studium

Registermaschine: Konfigurationen RM-Berechnenbarkeit LOAD x c(0) := v(x) STORE k c(k) := c(0) STORE k if c(k) 1 then c(c(k)) := c(0) else b := ADD x c(0) := c(0) + v(x) SUB x c(0) := max {0, c(0) v(x)} MULT x c(0) := c(0) v(x) DIV x if v(x) > 0 then c(0) := c(0) v(x) else b := GOTO k b := k JZERO k if c(0) = 0 then b := k END b := danach: b := b + 1 (außer nach Verzweigungen) Argumentwert x v(x) #k k k c(k) k c(c(k)) i N 0 : c(i) N c :N 0 N 0 :i c(i) b = HALT

Registermaschine: Konfigurationen RM-Berechnenbarkeit Ein- und Ausgabe Die Eingabe für eine RM R soll eine Liste von k ganzen Zahlen n 1,..., n k N 0 sein. c(j) := n j Alle anderen Register werden vor dem Start auf 0 gesetzt Falls R terminiert, erwarten wir das Ergebnis in einem bestimmten Register, z.b. im Accumulator c(0).

Registermaschine: Konfigurationen RM-Berechnenbarkeit Ein- und Ausgabe Definition (initiale Registerbelegung) Eine Funktion c : N 0 N 0 heißt initiale Registerbelegung mit n 1,..., n k einer RM und wird als c[n 1,..., n k ] angeschrieben, wenn { 0 : j = 0 j > k c(j) = n j : 1 j k

Registermaschine: Konfigurationen RM-Berechnenbarkeit Konfigurationen Definition (Konfiguration) Die Konfiguration einer RM ist ein Tupel κ = (b, c), wobei b N { } der aktuelle Befehlszähler ist und c N 0 N 0 den Speicherinhalt darstellt. Der Inhalt c Speichers umfasst den Akkumulator c(0) sowie die Registerzellen c(1),..., c( ) Der Zusammenhang der aufeinanderfolgenden Konfigurationen bei der schrittweisen Ausführung der RM R wird durch die sog. Konfigurationsrelation R beschrieben.

Registermaschine: Konfigurationen RM-Berechnenbarkeit Konfigurationsrelation Definition (Konfigurationsrelation R ) Sei κ = (b, c) und κ = (b, c ), dann ist κ R κ, genau dann, wenn b und R von der Konfiguration κ durch Ausführung der Programmzeile b in die Konfiguration κ übergeht. Eine terminierte Konfiguration (, c) hat keine Nachfolgekonfiguration. Definition ( n R, R ) κ 0 R κ genau dann wenn κ = κ. κ n+1 R κ gdw κ N N N 0 0 : κ n R κ κ R κ R ist die reflexive, transitive Hülle von R.

Registermaschine: Konfigurationen RM-Berechnenbarkeit Definition Die durch R berechnete partielle Funktion f R : N k N ist gegeben durch { : c N N0 0 : κ f R (n 1,..., n k ) = 0 R (, c) N c(0) : c N 0 0 : κ 0 R (, c) wobei κ 0 = (1, c[n 1,..., n k ]) die Startkonfiguration darstellt.

Registermaschine: Konfigurationen RM-Berechnenbarkeit RM-Berechenbarkeit Definition Eine partielle Funktion f : N k N wird RM-berechenbar genannt, wenn es eine Registermaschine R gibt, sodass f = f R.

Registermaschine: Konfigurationen RM-Berechnenbarkeit Beispiel: Berechne n m Startkonfiguration: q 0 = (1, c[n, m]), n, m N 0 Gesucht: Programm für R, sodaß f R (n, m) =!! n m Pseudocode für n m z = 1; while m > 0 z := z n; m := m 1; wend 1 LOAD #1 2 STORE 3 3 LOAD 2 4 JZERO 11 5 SUB #1 6 STORE 2 7 LOAD 3 8 MULT 1 9 STORE 3 10 GOTO 3 11 LOAD 3 12 END

Registermaschine: Konfigurationen RM-Berechnenbarkeit Problemcodierung Eingabewerte x 1,..., x n N Codierungen gesucht für Ganze Zahlen n i = x, n i+1 = sign(x) Rationale Zahlen Vorkommateil, Nachkommateil, Vorzeichen Zähler, Nenner, Vorzeichen Graphen G(V, E) Anzahl Knoten, quardatische Adjazenzmatrix aufzählen Adjazenzmatrix zeilenweise binär verschlüsseln Programm einer RM zeilenweise, Befehlscode + Argument 20