• Keine Ergebnisse gefunden

Berechenbarkeit Vorlesung SS 15 (UL), WS 17

N/A
N/A
Protected

Academic year: 2022

Aktie "Berechenbarkeit Vorlesung SS 15 (UL), WS 17"

Copied!
148
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Berechenbarkeit Vorlesung SS 15 (UL), WS 17

Johannes Waldmann

25. Januar 2018

(2)

Inhalt und Ziel der Vorlesung

§ grundlegende Begriffe, Prinzipien und Methoden aus der Algorithmentheorie und der Komplexit ¨atstheorie

§ . . . zu einem tieferen Verst ¨andnis praktischer Problemstellungen.

(Quelle: Modulbeschreibung)

§ was sind Algorithmen?

§ wie h ¨angen verschiedene Alg.-Definitionen zusammen?

§ welche Probleme sind algorithmisch l ¨osbar?

§ . . . mit welchem Ressourcenverbrauch?

(3)

Ist jede Funktion N Ñ N berechenbar?

Nein! (Das ist ein wichtiges Resultat und wir sehen eine wichtige Beweismethode.)

§ wir z ¨ahlen alle Programmtexte auf (der Gr ¨oße nach und innerhalb einer Gr ¨oße lexikografisch), die totale

FunktionenNÑNrealisieren.

§ erhalten damit eine unendl. Folge von Funkt.f0,f1, . . ., jede berechbare Fkt. kommt in dieser Folge vor (evtl. auch mehrfach, das ist egal)

§ definiereg:NÑN:x ÞÑfxpxq `1

§ Satz:g ist nicht berechenbar.

§ Beweis (indirekt): sonstDimitfi “g, betrachtegpiq

(4)

Eigenschaften von Grammatiken

§ E3: Sprach- ¨Aquivalenz von Typ-3-Grammatiken

§ E2: Sprach- ¨Aquivalenz von Typ-2-Grammatiken gesucht ist jeweils Algorithmus mit dieser Eigenschaft:

Eingabe ist PaarpG1,G2qvon Grammatiken, Ausgabe ist 1, fallsLpG1q “LpG2q, sonst 0

praktische Motivation: Test bzw. Verkleinerung von regul ¨aren Ausdr ¨ucken, von Grammatiken (automatische Bewertung von Ubunsgaufgaben zu AFS!)¨

§ E3ist entscheidbar, siehe Vorlesung AFS

§ E2nicht entscheidbar! diese Vorlesung (aber nicht heute) Methode:Reduktion: wennE2entscheidbar, dann auch . . .

(5)

Sind diese Aufgaben gleich schwer?

(eine typische Frage der Komplexit ¨atstheorie)

§ Def. Einek-Knoten-F ¨arbung eines GraphenG“ pV,Eq ist Funktionf :V Ñ t1,2, . . . ,kumit@uv PE :fpuq ‰fpvq.

§ Def.kCOL:“die Menge der Graphen, die einek-Knoten-F ¨arbung besitzen.

§ Probleme:

§ gegebenG, entscheideGP2COL

§ gegebenG, entscheideGP3COL

§ beide Probleme sind entscheidbar (warum?)

§ f ¨ur 2COL ist effizienter Algorith. bekannt, f ¨ur 3COL nicht.

§ Methode:Reduktion: wenn man 3COL effizient l ¨osen k ¨onnte, dann auch . . .

(6)

Praktische Problemstellungen

Berechenbarkeitsmodell“Programmierparadigma

§ Registermaschine: imperatives Programmieren

§ Loop- und While-Programme: strukturiertes (imperat.) P.

§ primitiv/allgemein-rekursive Funktionen: funktionales P.

§ (uniforme) Schaltkreise: paralleles Programmieren

§ nichtdeterministische Maschinen: Suchverfahren f ¨ur jede dieser Def.:

§ exakte Beschreibung (Spezifikation) von (abstrakter) Syntax und Semantik“Interpreter-Bau

zwischen diesen Def.:

§ semantik-erhaltende ¨Ubersetzung“Compiler-Bau

(7)

Geschichte des Algorithmenbegriffs

Suche nachL ¨osungsverfahrenf ¨ur mathematische Aufgaben (symbolische Differentiation, Integration, Gleichungssysteme)

§ Wahrheit einer pr ¨adikatenlogischen Formel

§ das 10. Hilbertsche Problem (1900):

L ¨osbarkeit von Polynomgleichungen in ganzen Zahlen . . . bzw. nachBeweisen f ¨ur deren Nicht-Existenz

§ G ¨odel, Church, Turing (1936,. . . ):

. . . ist nicht entscheidbar

§ Matiasevich (1970):

. . . ist nicht entscheidbar.

(8)

Bedeutung des Algorithmenbegriffs

(nach K. Wagner: Theor. Inf., Springer 2003)

§ Die Bedeutung des Algorithmenbegriffs f ¨ur Mathematik und Informatik entspricht der Bedeutung des Begriffes der nat ¨urlichen Zahlen.

§ Die mathematische Pr ¨azisierung des Algorithmenbegriffs und die Erkenntnis der Grenzen des algorithmisch Machbaren geh ¨oren zu den wichtigsten intellektuellen Leistungen des 20. Jahrhunderts.

(9)

Literatur

(akt.) Lehrb ¨ucher

§ Juraj Hromkovic:Algorithmische Konzepte der Informatik Teubner 2001

§ Klaus Wagner:Theoretische InformatikSpringer 2003

§ Ingo Wegener:Theoretische InformatikTeubner 1992 Klassisch:

§ Hartley Rogers Jr.:Theory of Recursive Functions and Effective Computability, 1987

§ Michael Garey, David S. Johnson:Computers and IntractabilityFreeman 1979

(10)

Motivation, Eigenschaften

wir formalisieren dasimperativeProgrammieren:

§ Programmtext ist Folge von Befehlen

§ Programmausf ¨uhrung ist Folge von Zustands ¨anderungen

§ Zustand: Speicherbelegung und Befehlsnummer Eigenschaften dieses Modells:

§ ist einfach in Hardware realisierbar

(seit Jahrzehten werden Rechner so gebaut)

§ ist softwaretechnisch unzweckm ¨aßig

(der Beweis f ¨ur die Korrektheit eines Programms sieht ganz anders aus als das Programm selbst)

(11)

Semantik: Speicher

§ Speicher der Maschine besteht aus Registern (Zellen),

§ Registerinhalte sind ausN

§ Register sind numeriert durchN

§ es werden nur endlich viele Register benutzt

§ die Menge der m ¨oglichen Speicherbelegungen ist S:“ ts|sP pNÑNq,tx |spxq ‰0uist endlichu.

§ Bsp.sp0q “42,sp1q “10,@x :x ě2ñspxq “0.

§ Notation f ¨ur Speicher- ¨Anderungen:srx :“ys ist die Funktionz ÞÑ pifz “x theny elsespzqq.

§ Bsp:sr1:“8sp1q “. . . ,sr1:“8sp2q “. . .

§ U: gilt¨ sra:“bsrc :“ds “src :“dsra:“bs?

(12)

Syntax: Befehle und Programme

§ MengeBderBefehle:

IncpNq, DecN, GotopNq, GotoZpNˆNq, Stop.

§ MengePderProgramme“B˚ (Folge von Befehlen) Bsp. f ¨ur ein Programm:

[GotoZ 1 5,Dec 1,Inc 0,Inc 0,Goto 0,Stop]

(13)

Semantik: Befehle

§ KonfigurationsmengeCĂNˆS

erste Komponente ist Befehlsz ¨ahler (enth ¨alt die Nr. des n ¨achsten auszuf ¨uhrenden Befehls)

§ Ubergangsrelation des Programms¨ pist steppĎCˆC ppl,sq,pl1,s1qq Pstepp, fallslă |p|und . . .

§ wennpl Incpiq, dannl1 l`1,s1sri :“spiq `1s

§ wennpl Decpiq, dann . . .

§ wennpl Gotopkq, dann . . .

§ wennpl GotoZpi,kq, dann:

wennspiq “0, dann. . . sonst. . .

Satz: Die Relation steppist eine partielle Funktion.

(14)

Semantik: Programme

§ initiale Konfigur.Ipxqmit Eingabex “ px1, . . . ,xnq PNn: istp0,sqmitsp1q “x1, . . . ,spnq “xn,spiq “0 sonst

§ finale Konfiguration

pl,sq, wobeil ă |p| ^pl “Stop

§ die AusgabeOpl,sqeiner Konfiguration istsp0q

§ ProgrammPberechnet die partielle Funktionf :NnãÑN. Es giltpx,yq Pf gdw.

§ pIpxq,Fq Pstep˚p undF ist final undy OpFq

§ Jede solche part. Fkt. nennen wir Goto-berechenbar

§ Die Menge dieser Fkt. nennen wir GOTO U: ein¨ p, das die Funktionbpx1q “42 berechnet?

U: die Semantik des leeren Programms (mit¨ |p| “0) ist?

(15)

Ein Programm f ¨ur x ÞÑ 2x

[GotoZ 1 5,Dec 1,Inc 0,Inc 0,Goto 0,Stop]

wirklich? glauben wir das? nein. wir beweisen:

§ das Programmh ¨altf ¨ur jede Eingabe (vgl. Def. step˚p)

§ die Ausgabe istkorrekt

wir ordnen jeder Konfigurationpl,sqzu:

§ dieInvariante sp0q `2¨sp1q

§ dieSchranke sp1q

und zeigen (f ¨ur die Teilfolge aller Konfig. mitl “0):

§ die Invariante ist: 1. anfangs wahr, 2. invariant, 3. schließlich n ¨utzlich.

§ die Schranke nimmt ab (um wieviel?) und bleibtě0.

(16)

Elementare goto-berechenbare Fkt.

diese Funktionen sind goto-berechenbar:

§ jede konstante Funktion

§ die identische Funktion

§ jede Projektionpx1, . . . ,xnq ÞÑxk

§ die Addition

§ die schwache Subtraktionpx1,x2q ÞÑmaxp0,x1´x2q, Notation:x1´x2

(17)

Abschluß-Eigenschaften

§ wennf :NÑNundg:NÑNgoto-berechenbar sind, dann auchx ÞÑfpgpxqq.

Beweis:

Programm f ¨urg;R1:“R0;R0:“0; Programm f ¨urf.

U: warum¨ R0:“0?

§ wennf :N2ÑN,g1,g2:NÑNgoto-berechenbar sind, dann auchx ÞÑfpg1pxq,g2pxqq.

einfach Programm f ¨urg1, Programm f ¨urg2, . . . ? Nein.

(18)

Zusammenfassung GOTO (bis jetzt)

§ formalisiert maschinennahe imperative Programmierung (Programmausf ¨uhrung als Folge von

Speicherzustands ¨anderungen)

§ der Befehlssatz ist klein, die Ausdruckskraft scheint gering, aber immerhin . . .

§ gewisse einfache Funktionen sind in GOTO

§ GOTO ist abgeschlossen bzgl. gewisser Operatoren sp ¨ater werden wir sehen

§ die Ausdruckskraft ist tats ¨achlich sehr hoch, GOTO“Java-berechenbar“. . .

(19)

Ubungsaufgaben ¨

1. GOTO-Programme f ¨ur elementare Funktionen: in

Olat/Autotool ausprobieren. (Ggf. Highscore-Wertung f ¨ur kurze Programme.)

2. U: gilt¨ sra:“bsrc :“ds “src :“dsra:“bs?

3. Beweisen Sie: die Relation step˚pXtpC1,C2q |C2ist finalu ist eine partielle Funktion.

(Dabei Wdhlg. Begriffe und Notation f ¨ur Relationen und partielle Funktionen.)

4. SeiAdie Menge der partiellen Fkt., die durch ein Goto-Programm berechnet werden k ¨onnen, in dem der Befehl Goto nicht vorkommt. Beweisen Sie GOTO“A.

Das sind zwei Inklusionen, die eine ist trivial, f ¨ur die andere ¨ubersetzen Sie einen unbedingten in einen bedingten Sprung.

5. SeiB die Menge der partiellen Fkt., die durch ein Goto-Programm berechnet werden k ¨onnen, in dem der Befehl GotoZ nicht vorkommt (m.a.W., nur unbedingte Spr ¨unge),

Geben Sie ein Verfahren an, das entscheidet, ob ein B-Programm eine totale Funktion berechnet.

6. SeiC die Menge der partielle Ftk., die durch ein

Goto-Programm berechnet werden k ¨onnen, in dem weder Goto noch GotoZ vorkommen (m.a.W., die

Geradeaus-Programme).

Welche Geradeaus-Programme berechnen totale Funktionen?

Beweisen SieB “C. (zwei Inklusionen, d.h. zwei Compiler)

(20)

Motivation

Goto-Programme sind flach (Listen von Befehlen), haben keine sichtbare Struktur. Das ist gut f ¨ur die Hardware, schlecht f ¨ur den Programmierer.

Struktur“Hierarchie“B ¨aume.

Programme sind ab jetzt B ¨aume. (entspricht etwa dem Schritt von Assembler/Fortran zu Algol,«1960)

NB: Das ist immer noch imperative Programmierung,

deswegen immer noch schlecht f ¨ur den Programmierer (weil die Semantikdefinition einen Maschinenzustand benutzt, den man im Programm nicht sieht).

Ausweg: funktionale Programmierung (kein Zustand).

(21)

Syntax

Menge der While-ProgrammeP

§ elementare: IncN, DecN, leeres Programm: Skip

§ zusammengesetzte:

§ Nacheinander: SeqpPˆPq

§ Verzweigung: IfZpNˆPˆPq

§ Schleife: WhilepNˆPq

§ (kein Stop, kein Goto) Beispiel:

§ Whilep1,SeqpDecp1q,Incp0qqq.

§ autotool-Syntax:While 1 (Seq (Dec 1) (Inc 0))

(22)

Semantik (Prinzip, elementare Prog.)

Semantik eines ProgrammspPP

ist Relation (genauer: partielle Funktion) semp ĎSˆS auf Speicherbelegungen.

das istbig step semantics(ein Schritt!)

beachte: es gibt keinenprogram counter, diese Rolle

¨ubernimmt der Indexp.

Semantik f ¨ur elementare Programme: sempps1,s2q “

§ p“Skip^s1“s2

§ oderp“Incpiq ^s2“s1ri :“s1piq `1s

§ oderp“Decpiq ^s2“s1ri :“maxp0,s1piq ´1qs

§ oder . . . (n ¨achste Folie)

(23)

Semantik f ¨ur zusammengesetzte Prog.

sempps1,s2q “. . .

§ oderp“Seqpp1,p2q^ Ds1 :semp1ps1,s1q ^semp2ps1,s2q.

§ oderp“IfZpi,p1,p2q^

(s1piq “0^semp1ps1,s2qoders1piq ą0^semp2ps1,s2q)

§ oderp“Whilepi,qq^

(s1piq “0^s1“s2oders1piq ą0^semSeqpq,pqps1,s2q) Notationp–q ðñ semp “semq. — ¨U: Satz

§ SeqpSkip,pq –p–Seqpp,Skipq

§ SeqpSeqpp,qq,rq –Seqpp,Seqpq,rqq

§ Whilepi,pq –IfZpi,Skip,Seqpp,Whilepi,pqqq

U: IfZ wird gar nicht ben ¨otigt, da man es simulieren kann.¨

(24)

While-berechenbare Funktionen

§ initiale SpeicherbelegungIpxqf ¨ur Eingabex PNn: spiq “wenn 1ďiďn, dannxi, sonst 0.

§ Programmpberechnet partielle Funktionf :NnãÑN:

@x PNn:fpxq “y ðñ Ds:semppIpxq,sq ^y “sp0q.

§ jede so berechenbare partielle Fkt. heißt While-berechenbar.

Ubungsaufgaben:¨

§ die ¨ublichen elementaren Funktionen sindPWHILE

§ WHILE ist abgeschlossen unter Substitution Bsp:f,gPWHILEñ px ÞÑfpgpxqq PWHILE

(25)

Ein Interpreter f ¨ur WHILE

Interpreter realisiert Semantik. Echter autotool-Quelltext:

https://gitlab.imn.htwk-leipzig.de/autotool/all0/

blob/master/collection/src/While/Step.hs Konfigurationc“ pt,mqenth ¨alt

§ t (todo): Liste (Keller) von Programmen

§ m(memory): Speicherbelegung

mit der Bedeutung: wennt“ rp1, . . . ,pns, dann ist

Sptq:“Seqpp1, . . . ,Seqppn,Skipq. . .qnoch auszuf ¨uhren.

Relation (small-step semantics)Ñauf Konfigurationen.

Spezifikation (Korrektheit): semSptqpi,fq ðñ p|t| “0^i“fq _`

Dt1,m:pt,iq Ñ pt1,mq ^semSpt1qpm,fq˘ es soll gelten: Satz: semppi,fq ðñ prps,iq Ñ˚ prs,fq

(26)

Beziehungen zw. Goto- und While-B.

Satz (Ziel): f ¨ur jede part. Fkt.f gilt:

§ f ist while-berechenbar ðñ f ist goto-berechenbar.

§ ¨aquivalent, k ¨urzer: WHILE“GOTO praktisches Argument f ¨ur

”ñ“: das macht jeder Compiler (etwa von C nach Assembler/Maschinensprache)

Beweis (Ideen): folgen.

(Wenn man das genau macht, dann heißt die Vorlesung

”Compilerbau“)

(27)

Von While zu Goto (Prinzip)

wir schreiben den ¨Ubersetzer:

compile:NˆWHILEÑNˆGOTO wobei compilepa,pq “ pe,qqbedeutet:

§ das ProgrammpPWHILE wird ¨ubersetzt

§ in ein ¨aquivalentes Programmq PGOTO,

§ das auf Adresseabeginnt

§ und aufe´1 endet (d.h.e“a` |q|) dabei bedeutet

”Aquivalenz“:¨

@pPWHILE,aPN:seipe,qq “compilepa,pq,

dann@s1,s2:sempps1,s2q ðñ step˚qppa,s1q,pe,s2qq

(28)

Von While zu Goto (elementar, Seq)

einfache Programme:

§ compilepa,Skipq “ pa,rsq

§ compilepa,Incpiqq “ pa`1,rIncpiqsq.

§ compilepa,Decpiqq “ pa`1,rDecpiqsq.

zusammengesetzte:

§ compilepa,Seqpp1,p2qq “

seipm,q1q “compilepa,p1qundpe,q2q “compilepm,p2q, dannpe,q1˝q2q.

(29)

Von While zu Goto (IfZ)

Ansatz:

compile (_, IfZ i p1 p2) =>

A: GotoZ i M

compile (_, p2) ; Goto E ;

M: compile (_, p1);

E:

Realisierung:

compile (a, IfZ i p1 p2) = let (h,q2) = compile (a+1,p2)

(e,q1) = compile (h+1,p1) in (e, [GotoZ i (h+1)] ++ q2

++ [Goto e] ++ q1)

(30)

Von While zu Goto (While)

Ansatz:

compile (_, While i p) =>

A: GotoZ i E

compile (_, p) ; Goto A ;

E:

Realisierung:

compile (a, While i p) = let (h,q) = compile (a+1,p)

e = h+1

in (e, [GotoZ i e] ++ q ++ [Goto a]

(31)

Von While zu Goto (insgesamt)

Satz: F ¨ur jedes While-Programmpexistiert ein Goto-Programm q, das dieselbe partielle Funktion berechnet wiep.

( ¨aquivalente Formulierung: WHILEĎGOTO) Beweis(plan):

§ q “compilep0,pq ˝ rStops

§ Aussage folgt aus Korrektheit bzgl. der Spezifikation

@pPWHILE,aPN:seipe,qq “compilepa,pq,

dann@s1,s2:sempps1,s2q ðñ step˚qppa,s1q,pe,s2qq https://gitlab.imn.htwk-leipzig.de/autotool/all0/

blob/master/collection/src/Compiler/While_Goto.hs

(32)

Von Goto zu While

das scheint schwieriger:

§ goto-Programm“Spaghetti-Code,

§ while-Programm“strukturierter Code.

Es geht aber, und das erzeugte While-programm hat eine ganz besondere (einfache) Struktur, die sp ¨ater noch ausgenutzt wird (Kleene-Normalform-Thm)

(33)

Von Goto nach While: Ansatz

Eingabe: goto-Programmp,

Ausgabe: ¨aquivalentes While-programq

bestimmec “das erste inpnicht benutzte Register, das verwenden wir als PC. Das n ¨achste Registerhverwenden wir zum Anhalten.

Struktur vonq ist:

Inc h;

While (h) {

if (c == 0) { ... } else { if (c == 1) { ... } else {

if (c == 2) { ... } else {

.. else Skip

}

(34)

Von Goto nach While: Einzelheiten

f ¨ur Befehlpi erzeuge:if (c==i) q_i elsemitqi

§ wennpi P tIncr,Decru, dannrpi,Inccs

§ wennpi “Stop, dannrDechs

§ wennpi “Gotoplq, dannrc :“ls,

§ wennpi “GotoZpr,lq, dannIfZ r (c := l) (Inc c) U: zeige:¨ perreicht Stop ðñ q h ¨alt.

beachte dabei auch den Fall Gotol mitl ě |p|

U: hier wird¨ if(c==i)undc:“l benutzt, das kann man jeweils mit While implementieren, geht hier aber auch ohne Schleife, warum?

https://gitlab.imn.htwk-leipzig.de/autotool/all0/

blob/master/collection/src/Compiler/Goto_While.hs

(35)

Das Normalform-Theorem f ¨ur While

Vorige Konstruktion zeigt den Satz:

§ zu jedem Goto-Programm gibt es ein ¨aquivalentes While-programm (GOTOĎWHILE)

§ mitgenau einemWhile.

zusammen mit WHILEĎGOTO folgt

§ WHILE“GOTO

§ zu jedem While-Programm gibt es ein ¨aquivalentes While-Programm mit genau einem While.

”¨aquivalent““berechnet dieselbe partielle Funktion.

U: wie unterscheiden sich die Laufzeiten?¨

(36)

Motivation

§ Whilepi,qqbedeutet: solangespiq ą0 ist,qausf ¨uhren

§ es gibt While-Programme, die nicht f ¨ur jede Eingabe terminieren (es gibtf PWHILE mitf nicht total)

§ Looppi,qqbedeutet:qgenauspiqmal ausf ¨uhren (der Wert voni vorBeginn der Schleife)

§ Loop-Programme terminieren (jedef PLOOP ist total) das ist softwaretechnisch n ¨utzlich

§ aber auch eine Einschr ¨ankung:

es gibtf P pWHILEXTOTALqzLOOP

(37)

Loop-Programme

Syntax und Semantik wie While-Programme, außer:

§ (Syntax) keinWhile(i,q), sondernLoop(i,q)

§ (Semantik) wennp“Looppi,qq, dann sempps1,s2q “semsq1piqps1,s2q

der Befehlqwird genaus1piqmal ausgef ¨uhrt (der Wert von i, wenn die Schleife zu erstenmal betreten wird — egal, was sp ¨ater miti passiert)

Jede so berechenbare Fkt. heißt loop-berechenbar.

Die Menge der loop-berechenbaren Fkt. heißt LOOP.

Bsp: Addition, Subtraktion, Multiplikation, Potenz,

nÞÑnist gerade,nÞÑnist Quadratzahl,nÞÑnist prim,. . .

(38)

Loop-Programme und Softwaretechnik

§ beiLoop(i,q)wirdq genaus1piq-mal durchlaufen

§ so realisiert in der Sprache Ada

(http://www.adaic.org/resources/add_

content/standards/12rm/html/RM-5-5.html)

”A loop parameter is a constant; it cannot be updated. . . “ for X in 0 .. 10 loop P; end loop;

§ Iteration (Induktion) ¨uber (Peano-)Zahlen (Strichlisten)

§ verallgemeinert auf andere (strukturierte) Datentypen:

Rekursiosmuster (fold), Entwurfsmuster Iterator (besucht jedes Element genau einmal)

Java:for (E x : c) { .. }, C#:foreach

(39)

LOOP und WHILE

§ LOOPĎWHILEXTOTAL (Beweis: ¨Ubung)

§ WHILEXTOTALĘLOOP. Beweis:

§ L0,L1, . . . l ¨angen-lexikografische Aufz ¨ahlung aller LOOP-Programme, die einstellige Fkt. berechnen, diese Fkt. sindf0,f1, . . .

§ f ¨urd:x ÞÑfxpxq `1 gilt:d PWHILEXTOTAL Begr ¨undung: Interpreter f ¨ur LOOP-Programme

§ diesesd hat keinenL-Index (alsod RLOOP) Begr ¨undung: falls dochd fi, dann betrachtedpiq.

§ eine arithmetische Funktionf PWHILEXTOTALzLOOP:

die Ackermann-Funktion

(40)

Die Ackermann-Funktion

§ A:N2ÑN

Ap0,yq “y`1;Apx `1,0q “Apx,1q;

Apx`1,y`1q “Apx,Apx `1,yqq

§ bestimmeAp2,4q,Ap3,3q,Ap4,2q

§ Satz:@f PLOOPDx :@~y :fp~yq ďApx,maxi~yiq folgt aus

§ Lemma: (Bezeichnung maxs:“maxtspiq |i PNu)

@pPLOOPDx :@ps1,s2q Psemp:Apx,maxs1q ěmaxs2 Beweis durch Induktion ¨uber Programmtexte

(41)

Eigenschaften der Ackermann-Funktion

(. . . , die im Beweis des Lemmas ben ¨otigt werden)

§ f ¨urp“Incpiq: ( ¨Ubung)

§ f ¨urp“Seqpp1,p2qbetrachte Zust ¨andes1semÝÑp1 s1semÝÑp2 s2 und nach InduktionApx1,m1q ěm1,Apx2,m1q ěm2. Gesucht ist f ¨ur jedesx1,x2

einx mit@y :Apx,yq ěApx1,Apx2,yqq.

Wir k ¨onnenx “x1`x2`2 w ¨ahlen

(Beweis: ¨Ubung. Ben ¨otigtApx,y`1q ďApx `1,yq)

§ f ¨urp“Looppi,qq: Welche Eigenschaft wird ben ¨otigt? ( ¨U)

(42)

Ubung KW 47 ¨

1. Aufgaben zu While- und Loop-Programmen in autotool 2. SeiWSyndie Menge der While-Programme, in denen IfZ

nicht vorkommt, undWSemdie Menge der durch solche Programme berechenbaren partiellen Funktionen.

Zeigen SieWSem“WHILE.

3. Zeigen Sie f ¨ur einstellige partielle Funktionen:

f,g PWHILEñ px ÞÑfpgpxqqq PWHILE.

4. Zur Kompilation von Goto nach While:

4.1 Zeigen Sie:perreicht Stop ðñ qh ¨alt

4.2 Es werdenif (c==i)undc := lbenutzt, das kann man im Allgemeinen mit While implementieren (wie?) geht aber hier auch ohne Schleife (wie?)

4.3 Vergleichen Sie die Laufzeiten vonpundq.

5. zur Ackermann-Funktion:

5.1 Bestimmen SieAp2,4q,Ap3,3q,Ap4,2q 5.2 Aufgaben auf Folie

Eigensch. Ackermann“

(43)

Motivation

§ In vielen Anwendungen sind Daten strukturiert (z.B. Tupel, Listen, B ¨aume). Goto-Programme rechnen aber nur mit Zahlen.

§ Satz: Das ist keine Einschr ¨ankung der Allgemeinheit, denn man kann jedes strukturierte Datum in eine einzige (mglw.

große) Zahl kodieren.

§ wirdG ¨odelisierunggenannt (Kurt G ¨odel, 1906–1978)

§ anschauliches Argument: der Speicherinhalt eines PC ist eine Bitfolge, die kann man als Bin ¨ardarstellung einer Zahl auffassen. — exakte Argumente: folgen.

(44)

Kodierung von Zahlenpaaren

gesucht sind (goto-berechenbare) Funktionen

§ Konstruktor:C:N2ÑNDestruktoren:P1,P2:NÑN

§ Testfunktion:T :NÑ t0,1u

mit Spezifikation (vgl. objektorientierte Datenmodellierung)

§ @x1,x2:P1pCpx1,x2qq “x1^P2pCpx1,x2qq “x2

§ @x :Tpxq “1 ðñ Dx1,x2:x “Cpx1,x2q da gibt es viele verschiedene M ¨oglichkeiten

§ Cpx1,x2q “ px1`x2qpx1`x2`1q{2`x1

§ Cpx1,x2q “2x1p2x2`1q, ‚Cpx1,x2q “2x1 ¨3x2 U: jeweils¨ Cp2,3q,Cp3,2q,Tp10q,Tp12q,P1p12q,P2p12q, Algorithmen (Loop-Programme) f ¨urT,Pi.

(45)

Kodierung von Listen

Kostruktor:L:N˚ÑN, DestruktorenDi :N˚ ãÑN. zwei (von vielen) M ¨oglichkeiten:

§ mittels einer Paar-KodierungC L (l) = if null l then 0

else 1 + C (head l, L (tail l))

§ direkte Kodierung als Produkt von Primzahlpotenzen Lprx0,x2, . . . ,xnsq “2x0`1¨3x1`1¨ ¨ ¨ ¨ ¨ppnqxn`1. U: jeweils¨ Lprsq,Lpr5sq,Lpr2,3,0sq, Algorithmus f ¨urDi U: die Funktion¨ p:nÞÑdien-te Primzahl, also

pp0q “2,pp1q “3,pp2q “5, . . . ist While-berechenbar.

U :¨ pist Loop-berechenbar. — Hinweis: Euklid.

(46)

Kodierung von B ¨aumen

Motivation

§ allgemein: Baum“Term in einer Signatur,

§ Signatur: eine endlichen Menge von Funktionssymbolen mit zugeordneter Stelligkeit.

§ Bsp:Σ“ tpf,2q,pg,1q,pa,0qu, t “fpfpa,gpaqq,aq PTermpΣq.

Notation rootptq “f,argsptq “ rfpa,gpaqq,as.

§ wird u.a. ben ¨otigt, um (pr ¨adikatenlogische) Formeln als Zahlen zu kodieren.

Realisierung:Bptq “Cpnumprootptqq,LprBpt1q, . . . ,Bptkqsqq mit argsptq “ rt1, . . .s, Paar-KodierungC,

Listen-KodierungL, sowie Symbol-Numerierung U: Kodierung f ¨ur endliche Mengen von Zahlen¨

(47)

Kodierung von Programmen

man kann mit eben gezeigten Methoden nachNkodieren:

§ Goto-Programme

(Programm ist Liste von Befehlen, Befehl ist Tupel)

§ Maschinen-Konfigurationen

(Paar von Zahl und Speicherbelegung, diese ist Liste (!)) Damit kann man in der Sprache GOTO

einenInterpreterf ¨ur GOTO-Programme schreiben.

(48)

Ein universelles Goto-Programm

§ Insbesondere sind f ¨ur jedespdie ¨Ubergangsfunktion stepp sowie ihre transitive reflexive H ¨ulle goto-berechenbar (nach Kodierung):

§ bei Eingabe einer Kodierung vonpund einer Konfig.K kann die Folgekonfiguration berechnet werden und dies solange wiederholt werden, bis finale Konf. erreicht wird.

§ D.h. die part. Funktionφ:N2ãÑNist goto-berechenbar:

φxpyq “die Ausgabe einer Maschine, die das Programm mit Kodierungx auf Eingabe mit Kodierungy ausf ¨uhrt.

§ Das Programm f ¨urφheißtuniversell, denn es kann die RechnungjedesGoto-Programms simulieren.

(49)

Das Halteproblem

Def: das (spezielle) Halteproblem ist die Menge K0“ tx |φxpxq Óu ĎN.

(die Menge der Kodierungen von Programmen, die anhalten, wenn man sie auf

”sich selbst“, d.h. ihren eigenen Code, anwendet).

Satz: die charakteristische FunktioncK0 :NÑ t0,1uder Menge K0ist nicht goto-berechenbar.

Beweis (indirekt): falls doch, dann gibt es ein Programm, das cK0 berechnet. Es gibt dann auch ein Programm

x ÞÑwenncK0pxq “0, dann 1, sonstK(eine nicht haltende Rechnung).

Seiqder Code dieses Programms. IstqPK0? Gdw.φqpqq Ó, gdw.cK0pqq “0, gdw.qRK0.

(50)

Das Halteproblem (Folgerung)

§ Satz: es gibt FunktionenNÑN, die durch kein goto-Programm berechenbar sind.

Beweise:cK0

§ Def: das (allgemeine) Halteproblem ist die Menge K “ tCpx,yq |φxpyq Óu.

§ Satz: charakterist. Funkt.cK ist nicht goto-berechenbar.

§ Beweis: sonst k ¨onnte man auchcK0 berechnen.

Es gibt also kein allgemeines Verfahren, mit dem man entscheiden kann, ob ein Programm f ¨ur eine Eingabe nach endlich vielen Schritten h ¨alt.

(51)

Diagonalisierung

schon zweimal benutzt, und kommt noch ¨ofter:

§ f ¨ur eine MengeF von Funktionen gibt es eine Aufz ¨ahlungf0,f1,f2. . .

§ konstruiereg:x ÞÑgeeignete ¨Anderung vonfxpxq, so daßgin Aufz ¨ahlung nicht vorkommt ( Di:g“fi) Anwendungen bisher:

§ F “die totalen berechenbaren Funktionen ñes gibt totale nicht berechenbare Fkt.

§ F “die partiellen berechenbaren Funktionen ñdas Halteproblem ist nicht entscheidbar

(52)

Motivation

§ wir haben gezeigt: GOTO“WHILE

die Syntax und Semantik (Interpreter) waren jeweils spezifisch, aber wir haben Compiler konstruiert

§ Verallgemeinerung (Alonzo Church, Alan Turing) alle vern ¨unftigen Berechenbarkeitsmodelle definieren die gleiche Klasse von partiellen Funktionen

§ weitere Modelle: Wortersetzung (Turing-Maschinen), funktionale Programmierung (rekursive Fkt.)

(53)

Ubliche Namen f ¨ur Funktionenklassen ¨

§ f :N˚ãÑNistpartiell-rekursiv,f PPart:

f ist While-berechenbar (“Goto-berechenbar

“Turing-berechenbar“. . . -berechenbar“. . . )

§ f :N˚ãÑNistallgemein-rekursiv,f PAllg:

f ist partiell rekursivund total.

§ f :N˚ÑNistprimitiv-rekursiv,f PPrim:

f ist Loop-berechenbar (“. . . ) Begr ¨undung:

§ While-Schleife ðñ beliebige Rekursion

§ Loop-Schleife ðñ eingeschr ¨ankte (primitive) Rekursion

(54)

These von Church und Turing

§ ”alle intuitiv vern ¨unftigen Berechenbarkeitsmodelle definieren die gleiche Klasse von partiellen Funktionen“

§ ein Berechnungsmodell ist gegeben durch

§ eine Tupel-KodierungC

§ eine universelle Funktion (Interpreter)φ:NˆNãÑN und bestimmt Menge von in diesem Modell berechenbaren partiellen Funktionen

M “ t~x ÞÑφppCp~xqq |pPNu Ď pN˚ãÑNq

§ Die C-T-These kann man auffassen als empirische

Aussage oder als Definition (Mist vern ¨unftig ðñ es gibt beide CompilerMØWHILE)

(55)

Ein Fixpunktsatz

Satz (Stephen Kleene, 1938): Seif total und berechenbar.

Dann gibt es eini mitφi “φfpiq. Beweis:

§ bestimmeh, so daßhpxqein Index f ¨ur diese Funktion ist:

y ÞÑφφxpxqpyq.

§ Bestimmeeals einen Index f ¨urx ÞÑfphpxqq.

§ Das gesuchteiisthpeq.

U: wende Satz an auf die Funktion¨

f :x ÞÑein Index f ¨ur die konstante Funktiony ÞÑx. Der Fixpunkt-Index f ¨urf ist (indiziert) ein Programm, das seinen eigenen Quelltext ausgibt.

Geht injeder(in unserem Sinne vern ¨unftigen) Sprache!

(56)

Der Satz von Rice

Satz: jede nichttriviale semantische Eigenschaft von Programmen ist unentscheidbar.

dabei bedeuten:

§ Eigenschaft: MengeE ĎNvon G ¨odelnummern

§ nichttrivial:E ‰ H ^E ‰N

§ semantisch:@x,y :pφx “φyq ñ px PE ðñ y PEq Beispiele (semantisch oder nicht?)

§ das Programm berechnet eine totale Funktion

§ tx |dompφxq “Nu

§ die L ¨ange des Programmtextes ist eine gerade Zahl

§ tx |dompφxq “2Nu

§ die G ¨odelnummer ist gerade (2N)

(57)

Der Satz von Rice (Beweis)

§ w ¨ahley PE,nPNzE.

§ seiE entscheidbar, d.h.,cE berechenbar.

Dann ist diesesf berechenbar und total:

f :x ÞÑwenncEpxq “1, dannn, sonsty.

§ Nach Konstruktionx PE ðñ fpxq RE.

§ nach Fixpunktsatz gibt esx mitφx “φfpxq.

§ Damitx PE ðñ fpxq PE.

(58)

Busy-Beaver-Programme

§ vgl. Aufgabe autotool und ¨Ubung 5 zuBWhile.

§ ein Programm, das ziemlich lange rechnet:

Seq (Inc 1) (While 1

(Seq (Inc 1) (Seq (Inc 1)

(Seq (Inc 1) (Seq (While 2

(Seq (Dec 2) (While 1

(Seq (Inc 2)

(Seq (Inc 2) (Dec 1)))))) (Inc 2))))))

§ f ¨ur Turingmaschinen:

§ Heiner Marxen, J ¨urgen Buntrock, Attacking the Busy Beaver 5, Bulletin of the EATCS, Number 40, February 1990, pp. 247-251

https://www.drb.insel.de/˜heiner/BB/

§ Pascal Michel: Historical Survey of Busy Beavershttp:

//www.logique.jussieu.fr/˜michel/ha.html

(59)

Ubung KW48 ¨

1. Beispiel-Rechnungen (siehe Folien) zu Kodierung von Paaren, Listen, B ¨aumen

2. f ¨ur die Primzahlfunktionpgilt:pPLOOP.

Hinweis:p PWHILE ist einfach, man muß jetzt zus ¨atzlich eine Loop-berechenbare obere Schranke f ¨urppnq

angeben. Diese kann großz ¨ugig sein, z.B. aus Beweis von Euklid f ¨ur

”es gibt unendlich viele Primzahlen“.

3. Def.Tpx,y,zq:“die vom Goto-Programmx bei Eingabey nachz Schritten erreichte Konfiguration.

(genauer:x ist die Kodierung des Programmtextes,y ist die Kodierung des Eingabevektors, Ausgabe ist die Kodierung einer Konfiguration oder einer Fehlermeldung, falls Programm schon vorher gehalten hat)

T ist Loop-berechenbar.

4. zur Diagonalisierung: wende das Verfahren an auf

§ F alle linearen Funktionenx ÞÑax`bmita,bPN, gpxq “fxpxq `1

§ F alle Loop-berechenbaren Funktionen, gpxq “ pfxpxq `1qmod2

§ F “ pNÑNq, d.h., alle Funktionen (egal, ob berechenbar), gpxq “fxpxq `1.

5. Def.BWhilepxq:“die gr ¨oßte Schrittzahl aller bei leerer Eingabe haltenden While-Programme der Gr ¨oßeďx (vgl.

autotool-Aufgabe).

Beweisen Sie:BWhileist nicht berechenbar.

Hinweis: indirekt. WennBWhileberechenbar, dann Halteproblem entscheidbar.

6. Entspr.BLoop. IstBLoopPWHILE? IstBLoopPLOOP?

(Ja. Nein. Hinweis: betrachte Loop-Programm f ¨ur f :x ÞÑ1`2¨BLooppxq, rufe dieses geeignet auf.) 7. U-Aufgabe von Folie¨

”Fixpunktsatz“.

8. Geben Sie ein Programm in Java (C, Haskell,. . . ) an, das seinen eigenen Quelltext ausgibt.

(Nur Schreiben auf Standardausgabe, keine

Dateioperationen, d.h., Programm darf seinen Quelltext nicht von externem Speicher holen, sondern muß ihn selbst enthalten oder erzeugen)

Hinweis: (Garry Thompson, 1999)

http://www.nyx.net/˜gthompso/quine.htm 9. Beweisen Sie: f ¨ur jedesi PNgibt es unendlich viele Indizes (die MengeEi :“ tj|φi “φjuist unendlich) Hinweis:j PEi ist eine semantische Eigenschaft.

(60)

Motivation, Definition REC

§ allgemeines Ziel ist Einordnung der Schwierigkeit von Entscheidungsproblemen

§ nach Kodierung: Problem“TeilmengeP vonN zu entscheiden ist dann, obx PP, d.h.cPpxq “1

§ Def: REC“ tP |P ĎN,cPist berechenbaru (Name kommt von

”berechenbar durchrekursiveFkt.“)

§ Beispiele: PrimzahlenPREC,K0RREC

§ konkrete Ziele:

§ (Abschluß-)Eigenschaften von REC

§ Beweisverfahren f ¨urPPREC,PRREC

§ genauere Struktur f ¨ur 2NzREC

(61)

Abschlußeigenschaften von REC

Satz (REC ist abgeschlossen unter Booleschen Operationen):

wennA,BPREC, dann

§ AYBPREC

§ AXBPREC

§ pNzAq PREC Beweis (Beispiel):

WenncA,cBrekursive Fkt, dann auchcAYB: cAYBpxq “maxpcApxq,cBpxqq,

d.h.cAYB “SUBSTpmax,cA,cBq.

(62)

Reduktion ď

m

Zum Vergleich der algorithmischen Schwierigkeit von Probleme definiert man:

mQ(

”Pist reduzierbar aufQ“) durch:

es existiert eine berechenbare totale Funktionf :NÑNmit

@x PN:x PP ðñ fpxq PQ.

§ beachte die Richtung:P ist h ¨ochstens so schwierig wieQ

§ ”reduzieren“ bedeutet: ein Entscheidungsverfahren f ¨urP auf ein Verfahren f ¨urQzur ¨uckf ¨uhren.

§ Indexmkommt von

”many-one“-Reduktion Satz:P ďmQ^QPRECñP PREC.

Beweis: gegebencQ, konstruierecP “SUBSTp. . .q Satz ( ¨U):ďm ist transitiv

(63)

Anwendungen der Reduktion

Def (Wdhlg)

§ das allgemeine Halteproblem,K “ tCpx,yq |φxpyq Óu.

§ das spezielle Halteproblem,K0“ tx |φxpxq Óu.

Satz:K0ďmK. Beweis:x PK0 ðñ Cpx,xq PK.

Folgerung: wir hatten gezeigtK0RREC, also giltK RREC.

U: zeige¨ K ďm K0.

Wir bezeichenT “ tx |φxist totalu.

Satz:T RREC.

Beweis ( ¨U): zeigeK ďm T.

Betrachte dazu die 3-stellige (!) Fktg:px,y,zq ÞÑφxpyq und wendes12an.

(64)

Motivation, Definition RE

K0RREC,T RREC. Sind beide Probleme gleich schwer?

Nein.K0ist rekursiv aufz ¨ahlbar,T ist es nicht.

Def.PĎNheißt rekursiv aufz ¨ahlbar, fallsP “ Hoder

§ es gibt totale berechenbare Funktionf mitP “fpNq.

Im zweiten Fall istP “ tfp0q,fp1q,fp2q, . . .u. — Beachte:

§ jedes Element vonP kommt wenigstens einmal vor,

§ f ist nicht notwendig injektiv (wiederholungsfrei),

§ f ist nicht notwendig monoton.

Die Menge der rek. aufz ¨ahlbaren Mengen heißt RE.

U:¨ P PRE^P unendlichñP ist injektiv aufz ¨ahlbar

U:¨ P unendlich^P streng monoton aufz ¨ahlbarñP PREC.

(65)

Eine ¨aquivalente Charakterisierung von RE

(Wdhlg.)PPRE :P “ HoderDf PAllg:P “rngpfq Satz:P PRE ðñ Df PPart:P “dompfq

Beweis:

”ñ“.P“ H:f h ¨alt niemals.

Pwird aufgez ¨ahlt durchg:fpxq:“wennx ingp0q,gp1q, . . . vorkommt, dann 1. (sonst h ¨alt die Rechnung nicht.)

Beweis:

”ð“ trivial f ¨urPendlich.

Tabelle mitpx,yq: die Konfiguration nachy Schritten in der Rechnungfpxq(oder Markierung, daß schon fertig).

Tabelle gem ¨aß Kodierung vonN2durchlaufen.

Wenn Konfigurationpx,yqfinal, dannx ausgeben.

Anwendung:K0PRE. Beweis:K0“dompx ÞÑφxpxqq.

Bezeichnung (G ¨odelisierung for RE)Wx :“dompφxq

(66)

Abschlußeigenschaften von RE

Satz (offensichtlich):APRE,BPREñ pAYBq PRE.

Beweis: trivial wennA“ HoderB“ H.

Seif die aufz ¨ahlende Funktion f ¨urA,g die f ¨urB.

Dannhp2nq “fpnq,hp2n`1q “gpnq.

Satz (nicht offensichtlich):APRE,BPREñ pAXBq PRE.

Die Schwierigkeit ist: wenn man einx “fpnq PAhat, kann man nicht ausrechen, obx PB,

denn m ¨oglicherweise istBRREC.

Beweis: 2-dim. unendliche Tabelle,

In Zeilex, Spaltey steht Zahlenpaarpfpxq,gpyqq.

Wenn . . . , gibt . . . aus.

U: alternativer Beweis ¨uber Def.-Bereiche¨

(67)

Eine Beziehung zw. RE und REC

Satz:P PRE^pNzPq PRE ðñ PPREC Beweis:ðals ¨U. – F ¨urñ:

trivial, wennP“ HoderP“N. — ansonsten:

§ Seif eine Aufz ¨ahlung f ¨urP,g eine Aufz ¨ahlung f ¨urNzP.

§ um zu bestimmen, obx PP:

§ berechnefp0q,gp0q,fp1q,gp1q,fp2q, . . .

§ bisx erscheint

§ diese Verfahren h ¨alt. (Beweis durch Fallunterscheidung.) Diese Aussage in anderer Bezeichnung:

Def: coRE“ tP | pNzPq PREu Satz: REXcoRE“REC.

Folgerung:pNzK0q RRE.

(68)

RE und ď

m

§ Satz:P ďm Q^QPREñPPRE.

§ Beweis (Variante 1)

f die Funktion aus der Reduktionďm,Q“dompφiq.

DannP “dompx ÞÑφipfpxqq.

§ Beweis (Variante 2 – ¨Ubung) Seig die Aufz ¨ahlung f ¨urQ.

(Falls existiert. SonstQ“ H, was dann?)

Bestimme Aufz ¨ahlung f ¨urP mit 2-dim unendl. Tabelle.

Was steht in Spaltex, Zeiley, was wird ausgegeben?

U:¨ K0­ďmpNzK0q,pNzK0q ­ďmK0

(69)

Die schwersten Probleme in RE

Def:Qheißt RE-vollst ¨andig (bzgl.ďm), falls:

§ QPRE und@PPRE:P ďm Q.

Satz:K ist RE-vollst ¨andig.

Beweis: SeiP PRE, gegeben als dompφiq.

Dannx PP ðñ x Pdompφiq ðñ φipxq Ó ðñ Cpi,xq PK. Die Reduktion (ďm) benutzt also die Funktionx ÞÑCpi,xq.

Ubungen:¨

§ P ist RE-vollst ¨andigñP RREC.

§ P ist RE-vollst.^PďmQ^QPREñQist RE-vollst.

§ definiere den analogen Begriff

”REC-vollst ¨andig“. Welche analogen S ¨atze gelten? Welche Mengen sind REC-vollst?

(Zu viele, deswegen ist das nicht interessant)

(70)

Ubungsaufgaben ¨

Aufgaben f ¨ur ¨Ubung KW49/KW50 sind markiert.

Aufgaben mit (!) enthalten evtl. schwere Teilaufgaben. Bilden Sie sich trotzdem eine Meinung.

1. (KW49)ďmist: transitiv, reflexiv?, symmetrisch?

antisymmetrisch?

2. (KW 49)K ďm K0.

Musterl ¨osung: die Reduktionsfunktionf bildet Eingabex ab auf einen Index der Funktionz ÞÑφP1pxqpP2pxqq. Dann x PK ðñ φP1pxqpP2pxqq Ó ðñ φfpxqpfpxqq Ó ðñ fpxq P K0.

3. (KW 49) (!) geh ¨oren diese Mengen zu REC,RE,coRE?

tx |Wx “ Hu,tx |1“ |Wx|u,tx |Wx ist endlichu,tx | Wx ist unendlichu,tx |Wx “Nu,tCpx,yq |Wx “Wyu, dabei istCeine Paar-Kodierung.

4. (KW 49) Definition:AbB:“ tCpx,yq |x PA,y PBu.

F ¨urA,Bin REC bzw. RE (d.h., 4 F ¨alle):

istAbBin REC bzw. RE? (d.h., je 2 Fragen) Musterl ¨osung (teilw.)

§ Es gilt@APREC,BPREC:AbBPREC, denn cAbBpxq “cApP1pxqq ^cBpP2pxqq. Nach Voraussetzung sindcAundcB allgemein rekursiv, also auchcAbB.

§ Es gilt nicht@APRE,BPRE:AbBPREC.

Gegenbeispiel:AN,BK0. Dann giltK0ďmNbK0mit Reduktionsfunktionfx ÞÑCp42,xq. AusK0RREC folgt NbK0RREC.

§ Es gibt MengenAPRE,BPREzREC mitAbBPREC.

Beispiel:A“ H,BK0, dennH bK0“ H PREC 5. gibt es f ¨ur jedeA,BPRE mitAXB“ H

§ f PPart mitfpAq “ t0uundfpBq “ t1u?

§ f PAllg mitfpAq “ t0uundfpBq “ t1u? 6. f :NÑNheißtPermutation, wennf bijektiv ist.

Zeige, daß die (allgemein) rekursiven Permutationen bzgl.

Nacheinanderausf ¨uhrung eine Gruppe bilden (. . . aber die primitiv rekursiven nicht)

7. (KW 49) Jede unendliche rek. aufz ¨ahlbare Menge hat eine unendliche entscheidbare Teilmenge.

aber (!) es gibt eine unendliche Menge ohne unendliche rek. aufz ¨ahlbare Teilmenge.

8. (KW 50)

§ tx |Wx ist unendlichu ”mtx |Wx Nu

Musterl ¨osung: bezeichne die linke Seite mitA, rechte mitB.

§ Zu zeigen:AďmB. Die Reduktionsfunktionfbildetxab auf einen Index des folgenden Programms:

eÞÑbei der Diagonal-Durchquerung der Tabelle von

pa,bq ÞÑφxpaqh ¨alt nach genaubSchritten“ wird wenigstens emal True angetroffen.

DannxPA ðñ Tabelle enth ¨alt unendlich viele True ðñ φfpxqist total ðñ fpxq PB.

§ zu zeigen:BďmA. Die Reduktionsfunktionf bildetxab auf einen Index des folgenden Programms:

eÞÑfor i from 0 to e-1 doφxpiq.

DannxPBñφx totalñφfpxqtotal

undxRBñes gibt ein kleinstesimitφxpiq Ò

ñdompφfpxqq “ t0, . . . ,iuund damit endlich, alsofpxq RA.

§ pNzK0q ďmtx |Wx ist endlichu

§ tx |Wx ist endlichu ­ďmK0

§ tx |Wx ‰ Huist RE-vollst ¨andig

9. (KW 50) ZeigeM ďmpNzMq ^M PREñM PREC.

KonstruiereM mitMďm pNzMqundMRREC

(71)

Motivation Turing-Maschine

§ bisher: Rechnen mit Zahlen,

jetzt: Rechnen mit W ¨ortern (Zeichenfolgen)

§ stellt Verbindung her zw. Berechenbarkeit und Theorie der formalen Sprachen

§ liefert ein genaueres Modell zur Messung des

Ressourcenverbrauchs (in Komplexit ¨atstheorie), (Rechnen mit beliebig großen Zahlen ist zu ungenau)

§ es war nie beabsichtigt, Turing-Maschinen tats ¨achlich zu bauen (anders als bei goto-Programmen)

§ aber die Natur macht es: (Umformungen von RNA)

(72)

TM: Semantik (im Grundsatz)

Grundsatz: ein Schritt einer Rechnung ist eine lokal beschr ¨ankte Speicher- ¨Anderung.

§ Speicher ist Zustand sowie Folge von B ¨andern

§ Band ist Folge von Zellen

§ jedes Band hat eine markierte Position (Kopfposition)

§ ein Schritt besteht aus: Lesen, Schreiben, Bewegen (evtl. ¨uber den Rand, dabei wird das Band verl ¨angert)

§ Zustandsmenge ist fixiert und endlich

§ Zeichenvorrat (Zelleninhalt) ist fixiert und endlich

§ Anzahl der B ¨ander ist fixiert und endlich

§ jedes Band ist endlich, aber nicht beschr ¨ankt

(73)

TM: Syntax und Semantik (Rel. auf Konfig.)

Bezeichnungen f ¨urk-Band-Turing-Maschine:

§ endliche ZustandsmengeQ,‚endliches AlphabetΣ

§ LeerzeichenlRΣ, BezeichnungΣl“ΣY tlu

§ Band-Inhalte:BpΣq:“ tf :ZÑΣlmitf´pΣqendlichu

§ endliche Zahlk ě2 (Anzahl der B ¨ander)

Die Konfigurationsmenge einer TM istQˆ pBpΣq ˆZqk. Das Programm einer TM besteht aus

§ Initialzustandqi PQ, Finalzustandqf PQ

§ Ubergangstabelle¨ t :QˆΣklãÑQˆ pΣˆ tL,H,Ruqk Definiert Relation (partielle Funktion)ÑM auf Konfigurationen durch . . .

(74)

TM: Beispiel

§ mit 1 Arbeitsband.

§ Σ“ t0,1u, Leerzeichenl

§ Q“ ti,a,fu, initial:i, final:f

§ f ¨urx PΣ:tpi,rx,p,ysq “ pi,rpx,Rq,px,Rq,py,Hqsq tpi,rl,p,ysq “ pa,rpl,Hq,pp,Lq,py,Hqsq

f ¨urpPΣ:tpa,rx,p,ysq “ pa,rpx,Hq,pp,Lq,pp,Rqsq tpa,rx,l,ysq “ pf,rpx,Hq,pl,Hq,py,Hqsq

berechnet WortfunktionΣ˚ ÑΣ˚ :w ÞÑreversepwq

(75)

TM: Semantik (berechnete Wortfunktion)

f ¨ur TM mit Einschr ¨ankung: jede Bewegung f ¨ur Kopf 1 (Eingabe) und Kopfk (Ausgabe) istP tH,Ru

§ Eingabe ist read-only, Ausgabe ist write-only

§ restliche B ¨ander heißenArbeitsb ¨ander initiale Konfiguration f ¨ur EingabeuPΣ˚:

§ Zustandqi, Band 1 enth ¨altu(ab 0), sonst leer, K ¨opfe: 0 finale Konfiguration mit Ausgabev PΣ˚:

§ Zustandqf, Inhalt von Bandk ist. . . ,l,v,l, . . . TMMberechnetfM : Σ˚ ãÑΣ˚ mit

y “fMpxq, gdw.Dc :initialpxq Ñ˚M c^finalpcq ^outputpcq “y

(76)

TM: Semantik (berechnete Zahlfunktion)

TMMmit Alphabett1,#, . . .u(Z ¨ahlzeichen, Trennzeichen) berechnet Zahlfunktiong:NnãÑNmit

§ gpx1, . . . ,xnq “y, gdw.fMp1x1#1x2#. . .#1xnq “1y Wir nennen die so berechenbaren partiellen Funktionen Turing-berechenbar.

Genauer: Turingk :“die durch TM mitk Arbeitsb ¨andern berechenbaren partiellen Funktionen, Turing:“Ť

kě0Turingk U: Nachfolger¨ PTuring, AdditionPTuring, Multipl.PTuring Nach der These von Church und Turing ist zu erwarten:

Goto“While“Part“Turing,

Beweis durch Compiler von und nach Goto.

(77)

Turing Ď Goto

Satz:f ist TM-berechenbarñf ist Goto-berechenbar.

§ Beweis (Idee): simuliere Band mit Kopf durchpl,rq PN2, d.h. zwei Register.

§ Jede Zahl ist Wort zur Basisb“1` |Σ|.

§ Inl der Bandinhalt links vom Kopf,

inr der Bandinhalt rechts vom Kopf (gespiegelt).

§ Zeichen am Kopf lesen:r modulob.

§ Zeichenx schreiben und Kopf nach rechts:

l1 :“b¨l`x;r1“tr{bu;

§ f ¨ur diese Rechnungen braucht man noch ein Register, insgesamt:k B ¨anderñ2k`1 Register

(78)

Goto Ď Turing

Satz:f ist Goto-berechenbarñf ist Turing-berechenbar.

Beweis (Idee):

§ k RegisterÑk Arbeits-B ¨ander

§ Registerihat Inhaltx ÑArbeits-Bandi hat Inhalt 1x

§ Programmablaufsteuerung: Befehlsnummer (PC) im Zustand der TM merken

U: erg ¨anze Details zur Herstellung der Initialkonfiguration,¨ Ablesen des Resultates aus Finalkonfiguration

(79)

Simulation von Mehrbandmaschinen

Mehrere Arbeitsb ¨ander sind n ¨utzlich, aber nicht n ¨otig:

Satz:@k ě1:Turingk “Turing1. Beweis (Idee):

§ Kodiere Inhalte derk Zellen auf Positionpder Arbeitsb ¨ander in ein einziges Zeichen ausΣkl. Beachte bei Realisierung:

§ es m ¨ussen dann immer alle K ¨opfe genau untereinander stehen

§ es werden nicht die K ¨opfe, sondern die B ¨ander bewegt,

§ eine simulierte Bewegung eines Kopfes ¨andert das gesamte simulierte Band

(80)

Maschinen mit wenigen Registern

§ nach voriger Idee kann man Eingabe-, Ausgabe- und Arbeitsb ¨ander in ein einziges Band kodieren

§ diesen Bandinhalt in zwei Registernx,y verwalten

§ zur Simulation eines Schrittes (Division, Multiplikation mit

|Σ| `1) ben ¨otigt man ein drittes Registerz

§ diese drei Registerx,y,z kann man durch zwei simulieren:

inasteht immer 2x3y5z, undbzum Rechnen.

§ ñdas Halteproblem ist bereits f ¨ur While- (oder Goto-)-Programme mit 2 Registern (die nur Inc/Dec ausf ¨uhren) unentscheidbar.

§ . . . f ¨ur 1 Register entscheidbar (spezieller Kellerautomat)

(81)

Ubung TM ¨

1. Eineinseitig unendlichesBand ist ein Band, dessen Kopf nur Positioneně0 einimmt.

(bei unserer Def. der TM gilt: Ein- und Ausgabeband sind einseitig unendlich, Arbeitsb ¨ander nicht.)

Begr ¨unden Sie, daß man ein unbeschr ¨anktes (d.h.

zweiseitig unendliches) Band durch zwei einseitig unendliche B ¨ander schrittweise simulieren kann.

(”schrittweise“: ein Schritt der Original-Maschineñein Schritt in der simulierenden Maschine)

2. Wir nennen einen TM-Befehlstation ¨ar, wenn dabei alle K ¨opfe stehenbleiben.

Beweisen Sie, daß jede TM-berechenbare Wortfunktion auch durch ein TM-Programm ohne station ¨are Befehle berechnet werden kann.

Referenzen

ÄHNLICHE DOKUMENTE

Es wird vereinbart, dass diese Mittel in das Jahr 2021 übertragen und insofern zweckgebunden werden sollen, als dass die Mittel in „Maßnahmen zur Aufwertung des We- seruferparks“

Der Beirat hält gemeinsam mit der Initiative die im öffentlichen Eigentum stehende Fläche an der Stromer Straße 34 grundsätzlich für eine Verwirklichung eines solchen Projektes

A) Der Beirat bekräftigt seine Befürwortung für das Kulturprojekt in der Airport-City und würdigt das Engagement der Akteur:innen für die Kulturlandschaft der Neustadt und

Die Vertreter der Jugendinitiative berichten mittels einer Präsentation über ihren durch Beiratsmittel un- terstützten Workshop, ihre Vorstellung zur weiteren Zusammenarbeit mit

als öffentliche GoTo-Meeting-Videokonferenz (keine Anmeldung erforderlich) Informationen zu den Systemanforderungen für die Teilnahme sowie die Möglichkeit, diese automatisch

RD 90157/2021-09-01, Bosch Rexroth AG Außenzahnradpumpen | Pumpen | GoTo Europe 23. Außenzahnradpumpe High Performance

Sei B die Menge aller partiellen Funktionen, die durch ein Goto-Programm berechnet werden können, in dem der Befehl GotoZ nicht vorkommt (nur unbedingte Sprünge), Geben Sie

Es ist aber m¨ oglich und das erzeugte While-Programm hat eine besondere (einfache) Struktur, die sp¨ ater noch ausgenutzt wird (Kleene-Normalform-Theorem).. Normalform-Theorem f¨