• Keine Ergebnisse gefunden

Berechenbarkeit und Komplexit¨at Vorlesung 1

N/A
N/A
Protected

Academic year: 2022

Aktie "Berechenbarkeit und Komplexit¨at Vorlesung 1"

Copied!
31
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Berechenbarkeit und Komplexit¨at Vorlesung 1

Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7

RWTH Aachen

13. Oktober 2014

(2)

Thema der Vorlesung

Unter welchen Grundgesetzen arbeitet die Informatik?

Welche prinzipiellen Grenzen gibt es f¨ur den Einsatz von Algorithmen?

Welche Probleme sind mit Algorithmen / Programmen l¨osbar?

Welche nicht?

Zwei Aspekte:

Prinzipielle L¨osbarkeit (“Berechenbarkeit”) L¨osbarkeit mit praktisch vertretbarem Aufwand (“Komplexit¨at”)

(3)

Stellung in der Informatik

Berechenbarkeit:

Kernresultate in den 1930’er und 1940’er Jahren Komplexit¨at: 1970’er Jahre

Fundament der Wissenschaft Informatik

(4)

Vorgehensweise und Methoden

Vorgehensweise:

Mathematisch pr¨azise Formulierungen Training in pr¨azisen Argumentationen Methoden:

Wechselseitige Simulation von Rechnermodellen Problemreduktionen

(5)

Plan heute und Freitag

1 Organisatorisches

2 Algorithmische Probleme

3 Begriff “Algorithmus”

4 Pr¨azisierung durch das Modell der Turingmaschine

(6)

Vorlesungstermine

montags 10.15 - 11.45

an ausgew¨ahlten Terminen freitags 12.15 - 13.45 (siehe Vorlesungsplan auf der BuK-Webseite)

(7)

Organisation von ¨ Ubungen und Klausur

Zulassung und Leistungsnachweis:

mindestens 50 Punkte

4 Punkte f¨ur das korrekte L¨osen der ausgezeichneten Ubungsaufgaben¨

2 Punkte f¨ur das Vortragen einer L¨osung in den Ubungsgruppen¨

90 Punkte in der Pr¨asenz¨ubung im Januar

Aktueller Punktestand kann ¨uber L2P abgerufen werden

(8)

Ubungsbl¨atter ¨

Ver¨offentlichung: Mittwochs um 14:00 Uhr 1. Blatt wird am 15. Oktober ver¨offentlicht

Abgabe: am darauffolgenden Mittwoch um 14:00 Uhr im Sammelkasten am Lehrstuhl f¨ur Informatik 1 (Erdgeschoss des Geb¨audes E1 im Informatikzentrum, vor der T¨ure des Lehrstuhls auf der linken Seite)

Ubungen k¨onnen in Gruppen bis zu drei Personen abgegeben¨ werden.

Bonuspunkte:

Ubungspunkte werden im kleinen Umfang in der¨ Bachelorklausur ber¨ucksichtigt:

Bei 50 + 10k erworbenen ¨Ubungspunkten f¨urk ∈ {1, ...,6}

werdenk Punkte angerechnet.

(9)

Pr¨ufungen

9. Januar: Pr¨asenz¨ubung 27. Februar: Bachelorklausur 26. M¨arz: Wiederholungsklausur Anmeldung:

Ubung: ¨uber CampusOffice bis¨ 17. Oktober um 10:00 Uhr Zuteilung zu den ¨Ubungsgruppen wird am 17. Oktober bekannt gegeben

Erste ¨Ubungen finden in der Woche 20.-24. Oktober statt.

Klausur: ¨uber CampusOffice bis 21. November Homepage:

http://www-i1.informatik.rwth-aachen.de/Lehre/WS1415/VBuK.php Fragen an: buk-i1@cs.rwth-aachen.de

(10)

Was ist ein Problem ?

Informelle Umschreibung des BegriffesProblem:

F¨ur gegebene Eingaben (oder ohne Eingabe gestartet)

soll der Algorithmus ...

... bestimmte Ausgaben produzieren.

Wir ben¨otigen pr¨azisere Definitionen ...

(11)

Etappen

1 Pr¨azise Festlegung, was ein “Berechnungsproblem” ist.

2 Merkmale von Algorithmen: Was macht einen Algorithmus aus?

3 Angabe eines speziellen Typs von Algorithmus

(Turingmaschine), mit dem man alle denkbaren Algorithmen simulieren kann.

Sp¨ater: Angabe von Berechnungsproblemen, die sich nicht durch Algorithmen l¨osen lassen.

(12)

Berechnungsprobleme

EinBerechnungsproblem verlangt die Transformation oder die Erzeugung von Daten.

Hier beschr¨anken wir uns auf Daten, die durch W¨orter dargestellt sind.

Alternative:Algorithmen ¨uber nat¨urlichen Zahlen.

Wegen Korrespondenz W¨orter↔ Zahlen kein wesentlicher Unterschied.

Wir stellen eine gew¨unschte Datentransformation durch eine Wortfunktion dar.

(13)

Alphabete und W¨orter

Ein- und Ausgaben sind W¨orter ¨uber einem Alphabet Σ.

H¨aufig benutzt: Σbool ={0,1}, Σtast als Alphabet der Symbole auf einer Standardtastatur.

Σk ist die Menge aller W¨orter der L¨ange k, z.B.

{0,1}3 = {000,001,010,011,100,101,110,111}

Das leere Wort, also das Wort der L¨ange 0, bezeichnen wir mit ǫ, d.h. Σ0 ={ǫ}.

Σ =S

k∈N0Σk ist derKleenesche Abschlussvon Σ.

Die W¨orter in Σ lassen sich in kanonischer Reihenfolge auflisten, der L¨ange nach, und bei gleicher L¨ange lexikographisch:

ε,0,1,00,01,10,11,000,001,010,011,100,101, . . .

(14)

Berechnungsprobleme: Beispiele

Beispiel 1: Division durch 7

Zu Dezimalzahl finde den Quotienten durch 7 ohne Rest.

Wortfunktion:

f1 :{0, . . . ,9} → {0, . . . ,9}.

(Wir setzenf1(ε) =ε. Analog auch in den weiteren Beispielen.)

Beispiel 2: Teilbarkeit durch 7

Zu Dezimalzahl entscheide, ob sie durch 7 teilbar ist.

Wortfunktion:

f2 :{0, . . . ,9} → {0,1}

mitf2(u) = 1 falls Dezimalzahl u durch 7 teilbar, sonst = 0.

(15)

Weitere Beispiele

Beispiel 3: Primfaktorzerlegung

Zu einer Dezimalzahl finde ihre Primfaktorzerlegung.

Beispiel: 1207→2|2|2|3|5.

Wortfunktion:

f3 :{0, . . . ,9} 7→ {0, . . . ,9,|}.

Beispiel 4: Teilerfremdheit

Zu zwei Dezimalzahlen teste, ob sie teilerfremd sind.

Beispiel: 20,217→1 (teilerfremd); 20,257→0 (nicht teilerfremd).

Wortfunktion:

f4 : ({0, . . . ,9}#{0, . . . ,9} → {0,1}.

(16)

Entscheidungsprobleme als Sprachen

Beispiele 2 und 4 sind Ja-Nein-Fragen.

Derartige Entscheidungsproblemesind von der Form f : Σ → {0,1}, wobei wir 0 als

”Nein“ und 1 als

”Ja“

interpretieren.

Sei L=f1(1)⊆Σ die Menge derjenigen Eingaben, die mit

”Ja“ beantwortet werden.

L ist eine Teilmenge der W¨orter ¨uber dem Alphabet Σ. Eine solche Teilmenge wird allgemein als Sprachebezeichet.

Wir geben drei weitere Entscheidungsprobleme an.

(17)

Ein Graphenproblem

Graphzusammenhang

Problemstellung: F¨ur einen gegebenen GraphenG soll bestimmt wer- den, obG zusammenh¨angend ist.

Der GraphG liege dabei in einer geeignete Kodierungcode(G)∈Σ vor, z.B. als bin¨ar kodierte Adjazenzmatrix.

Die zu diesem Entscheidungsproblem geh¨orende Sprache ist L = { w ∈Σ | ∃ Graph G:w =code(G) und

G ist zusammenh¨angend} .

(18)

Nullstellen von Polynomen

Hilberts 10.Problem

Zu einem Polynomp(x1, . . . ,xn) ¨uberZentscheide, ob es eine Null- stelle (z1, . . . ,zn)∈Zn gibt.

Beispiele

3x1+x2−x12

x22

7→1 (denn (z1,z2) = (0,0) ist Nullstelle).

x12

+ 17→0.

Wir geben Polynome als W¨orter vor, etwa in der LaTeX-Notation.

Entsprechende Sprache: Menge der W¨orter ¨uber Σtast, die ein Polynom mit Nullstelle darstellen.

(19)

Programmtermination

Termination von Java-Programmen

Zu einem Java-Programm mit integer-Eingabevariablen teste, ob es f¨ur Eingabe 0 terminiert.

Zugeh¨orige Sprache: Menge der W¨orter ¨uber Σtast, die ein Java-Programm darstellen, welches mit 0 initialisiert terminiert.

(20)

Zentrale Fragestellung

Welche Funktionen sind durch einen Algorithmus berechenbar?

bzw.

Welche Sprachen kann ein Algorithmus entscheiden?

Wir m¨ussen kl¨aren, was eigentlich ein Algorithmus ist.

(21)

Algorithmen

verarbeiten Eingabew¨orter schrittweise;

sind durch endlichen Text eindeutig festgelegt;

liefern bei Termination eine Ausgabe.

Der AlgorithmusA arbeite ¨uber dem Alphabet Σ.

Wir ordnen jedem AlgorithmusAeine FunktionfA zu:

TerminiertA bei Eingabew mit Ausgabev, so setzen wir fA(w) =v

TerminiertA bei Eingabew nicht, so seifA(w) undefiniert, und wir schreiben fA(w) =⊥

(22)

Partielle und totale Funktionen

Eine Funktionf mit Argumenten inM und Werten in N heißt partielle Funktion vonM nach N.

Notation:f :M N

Def(f) ={m∈M |f(m) ist definiert}

“Definitionsbereich von f”

Bild(f) ={n ∈N| ∃m∈M :f(m) =n}

“Bildbereich vonf”

GiltDef(f) =M, nennen wir f total (aufM) und schreiben f :M →N

(23)

Funktion f

A

Die durchA¨uber Σ berechnete Funktion fA : Σ Σ ist wie folgt definiert:

Der Definitionsbereich von fA ist die Menge derw ∈Σ, so dass Abei Eingabe vonw terminiert.

F¨ur w ∈Def(fA) istfA(w) die Ausgabe, dieA nach Eingabe von w bei Termination liefert.

Eine Funktionf heißt (im intuitiven Sinne) berechenbar, wenn ein AlgorithmusA existiert mitf =fA.

(24)

Beispiele berechenbarer Funktionen

Σ ={0,1}

1 die Funktion f1 : Σ→Σ mit

f1(w) = 0 falls|w|gerade, f1(w) = 1, falls |w|ungerade

2 die partielle Funktion f2 : Σ Σ mit

f2(w) = 0 falls|w|gerade, f2(w) undefiniert, falls |w| ungerade

3 die Konstanteε, also die Funktion f3: Σ →Σ mit f3(w) =ε

4 die ¨uberall undefinierte Funktion f4: Σ Σ mit f4(w) =⊥f¨ur alle w ∈Σ

(25)

Entscheidungsalgorithmen

berechnen einen Spezialfall totaler Funktionen, n¨amlich solche mit den Werten 0 und 1.

Ein EntscheidungsalgorithmusA ¨uber Σ definiert somit die Sprache LA ={w ∈Σ|A mit Eingabew liefert Ausgabe 1}

Eine SpracheL heißt entscheidbar, falls ein EntscheidungsalgorithmusA existiert mitL=LA.

(26)

Aufz¨ahlungsalgorithmen

Andere Variante von “Algorithmus”:

Astartet ohne Eingabe, terminiert nicht, und gibt nach und nach W¨orter aus (in irgendeiner Reihenfolge, eventuell mit

Wiederholungen)

Man fasst die Menge der ausgegebenen W¨orter zur SpracheL(A) zusammen.

Eine WortmengeL heißtaufz¨ahlbar, wenn es einen Aufz¨ahlungsalgorithmusA gibt mitL=L(A).

(27)

Beispiele aufz¨ahlbarer Sprachen

1 ¨uber dem Alphabet{0,1,2, . . . ,9}:

die Menge der Primzahlen in Dezimaldarstellung

2 ¨uber dem Alphabet Σtast:

die Menge der Polynome p(x) mit ganzzahligen Koeffizienten, die eine Nullstelle inZ haben

(28)

Aufz¨ahlung der Polynome p ( x ) mit Nullstelle

Wir nutzen die kanonische Reihenfolge der W¨orter ¨uber Σtast und extrahieren daraus eine Liste aller Polynome in x mit Koeffizienten in Z:p0(x),p1(x),p2(x), . . .

Wir nutzen daneben die folgende Reihenfolge ganzer Zahlen z: 0,1,−1,2,−2,3, . . .

Wir erstellen ein unendliches zweidimensionales Diagramm, das f¨ur alle Kombinationen (i,z) jeweils den Wert pi(z) enth¨alt.

Der gesuchte Aufz¨ahlungsalgorithmus geht im

Diagonalverfahren (siehe n¨achste Folie) alle Stellen (i,z) des Diagramms durch, berechnet jeweilspi(z) und gibt dannpi aus, wenn sich pi(z) = 0 ergibt.

Auf diese Weise entsteht eine Liste derjenigen pi(x), die eine Nullstelle in Zhaben.

(29)

Diagonalverfahren

(30)

Vier Typen von Algorithmen

Algorithmen zur Berechnung partieller Funktionen Algorithmen zur Berechnung totaler Funktionen Entscheidungsalgorithmen

(zur Bestimmung der Mitgliedschaft von W¨orten in Sprachen) Aufz¨ahlungsalgorithmen

(zur Erzeugung der Elemente von Sprachen) Das ist nicht alles.

Beispiel:

Reaktive nicht-terminierende Verfahren (wie Kommunikationsprotokolle), die w¨ahrend ihres nicht abbrechenden Laufes immer wieder Eingaben entgegennehmen und immer wieder Ausgaben liefern.

(31)

Die Kernfrage

Welche Funktionen sind berechenbar?

Welche Mengen sind entscheidbar, welche aufz¨ahlbar?

Wenn man f¨ur eine Funktion f einen Algorithmus angibt, dann ist die Berechenbarkeit klar.

Wie kann man nachweisen, dass eine Funktion f nicht berechenbar ist?

Man muss gegen alle denkbaren Algorithmen argumentieren.

Wie kann man sich einen ¨Uberblick ¨uber “alle denkbaren Algorithmen” verschaffen?

Dies ist eine Kernfrage der Informatik.

Referenzen

ÄHNLICHE DOKUMENTE

Falls dieses Zeichen eine 1 ist, so l¨osche es, gehe nach links, und wechsel in den Zustand

Beweis: Die Menge aller TM ¨uber {0, 1} ist abz¨ahlbar, also auch die Menge der TM, die eine Sprache

Trivial sind die Eigenschaften “M hat endlich viele Zust¨ande” oder. “M hat

Auf diese Weise entsteht die “arithmetische Hierarchie”, eine Abstufung der unentscheidbaren Sprachen nach wachsender logischer Komplexit¨ at. Auf der n-ten Stufe sind Sprachen

Wir m¨ussen also nur noch zeigen, dass jede Funktion, die durch eine eingeschr¨ankte RAM berechnet werden kann, auch durch ein WHILE-Programm berechnet werden kann... Beweis

Wir zeigen jetzt, dass sogar bei der Berechnung totaler Funktionen das while-Konstrukt nicht durch loop ersetzt werden kann.. Dazu betrachten wir

NP ist die Klasse der Entscheidungsprobleme, die durch eine NTM M erkannt werden, deren worst case Laufzeit t M (n) polynomiell beschr¨ankt ist. NP steht dabei f¨ur

CLIQUE ist NP-vollst¨andig... Identifiziere Literale und Knoten, d.h. Zwei Knoten werden durch eine Kante verbunden, wenn.. 1) die assoziierten Literale geh¨oren zu