• Keine Ergebnisse gefunden

Darstellung von Daten

N/A
N/A
Protected

Academic year: 2022

Aktie "Darstellung von Daten"

Copied!
17
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Was bisher geschah

Wiederholung Berechnungsmodell DTM (deterministische Turing-Maschine)

I DefinitionM = (X,Q,Γ, δ,q0,2) I Konfigurationen

I Konfigurationenfolgen (Berechnungen) I Akzeptanz durch Halt

I Nebenwirkung: ¨Anderung des Bandinhaltes

I Berechnung von Funktionen X →Γ durch DTM I Berechnung von Funktionen N→N durch DTM I Beispiele

I Transformationen zwischen Darstellungen nat¨urlicher Zahlen

(2)

Darstellung von Daten

I DTM k¨onnen Zeichenketten akzeptieren und manipulieren (Nebenwirkung der Ausf¨uhrung)

I Zeichenketten ¨uber (endlichem) AlphabetAk¨onnen als Zahlen zur Basis |A|oder |A|+ 1 interpretiert werden.

Besipiele f¨ur Bedeutungen von Zeichenketten:

I W¨orter aus Sprachen I Zahlen

I Darstellung strukturierter Daten, z.B.

I Tupel, I Listen, I aume, I Graphen, I NFA, TM, . . .

I Konfigurationen, Konfigurationenfolgen I Programmtexte,

I . . .

29

(3)

Darstellung von Zahlen als Zeichenketten

I nat¨urliche Zahlen: Un¨ar-, Bin¨ar-, . . . -Darstellung I ganze, gebrochene Zahlen: Paare nat¨urlicher Zahlen

mit um Trennzeichen erweitertem Alphabet,

z.B. 2/3 codiert durch Paar (2,3) in Un¨ardarstellung mit Trennzeichen 0 : 110111

I ¨ubliche Approximationen reeller Zahlen durch Maschinenzahlen

(4)

Darstellung von Zeichenketten als nat¨ urliche Zahlen

Darstellung des Alphabets (endliche Menge):

1. (beliebige) Reihenfolge der Symbole inAfestlegen:

A={a1, . . . ,a|A|}

2. Nummerierung der Symbole:

Zuordnung ∀i∈ {1, . . . ,|A|}:c(ai) =iN

3. zur Weiterverarbeitung: Un¨ardarstellungc0 :A1 mit

∀i∈ {1, . . . ,|A|}:c0(ai) = 1i Beispiel:A={♣,♠,♥,♦},

Nummerierungc:ANmitc(♣) = 1,c(♠) = 2,c(♥) = 3,c(♦) = 4 undc0:A1+mitc0(♣) = 1,c0(♠) = 11,c0(♥) = 111,c0(♦) = 1111 Darstellung von W¨ortern w Auber endlichem Alphabet¨ A:

1. Nummerierung und Un¨ardarstellung der Alphabet-Symbole (s.o.), 2. Verkettung mit 0 als Trennsymbol

c0(w) =c0(w1. . .w|w|) =c0(w1)0c0(w2)0. . .0c0(w|w|)

3. Durch Interpretation der Zeichenkettec0(w)∈ {0,1} als Bin¨arzahl wirdw die eindeutige Zahlc00(w)Nzugeordnet.

Beispiel:c0(♣♥♠) = 10111011,c00(♣♥♠) = 187

31

(5)

Darstellung strukturierter Daten

I direkte Darstellung c :D →A der einfachen Datend ∈D (oder Numerierung in Un¨ardarstellung analog Alphabet) I Codierung von Paaren, Tupeln, Listen (x1, . . . ,xn) als W¨orter

z.B. (5,♥,2,1)7→11111101110111011

I Schachtelungen z.B. durch neue oder mehrfache Trennzeichen z.B. (5,(♥,2),1)7→111111•1110111•11 oder

(5,(♥,2),1)7→1111110011101110011

(6)

Beispiel: Darstellung von Graphen

(endliche gerichtete) GraphenG = (V,E) mitE V ×V Idee:

BetrachteV als Alphabet undE als Folgen der L¨ange 2 ¨uberV I (beliebige) Reihenfolge der Knoten festlegen V ={v1, . . . ,v|V|} I Numerieren der Knoten, z.B. un¨ar:cV :V 1 mit

∀i∈ {1, . . . ,|V|}:cV(vi) = 1i+1

I Darstellung der Kanten:cE(u,v) =cV(u)0cV(v)

I c(G) =cV(v1)0· · ·0cV(v|V|)000cE(u1,v1)00· · ·00cE(u|E|,v|E|) oder

I Darstellung jedes Knotensv V als Paar

(cV(v), Darstellung der Liste der Namen aller Nachbarn) (ggf. als Tupel mit weiteren Daten, z.B. Schl¨ussel)

I c(G) = Darstellung vonG Graph als Codierung der Liste aller Knoten (Adjazenzliste)

oder . . .

33

(7)

Darstellung von TM

Darstellung jeder TMM = (X,Q,Γ, δ,q0,2) als (endliches) Wort ¨uber dem endlichen Alphabet

X0 =XΓQ∪ {L,R,N}∪ KlammernTrennzeichen m¨oglich Die Menge aller solcher Darstellungen von TM ist eine Sprache ¨uberX0.

Darstellung von0 TM als{0,1}-Folge:

I Alphabet, Zust¨ande, Richtungen in Un¨arcodierung (aus 1) I Trennzeichen als Folgen aus 0

UA: Hat die Sprache aller¨ {0,1}-Folgen, die in dieser Darstellung korrekte Codierungen von TM sind, einen Chomsky-Typ? Falls ja, welchen?

(8)

Beispiel: Darstellung von TM

Darstellung von TM als Wort aus{0,1}

Beispiel: TMM = (X,Q,Γ, δ,q0,2) in{0,1} mit I X ={1}, Γ ={1,2} mitc(1) = 1,c(2) = 11

I Q ={q0,q1} mit Startzustandq0:c(q0) = 1,c(q1) = 11 I B ={L,R,N}mitc(L) = 1,c(R) = 11,c(N) = 111 I δ={(2,q0,1,q1,R),(2,q1,1,q0,L),(1,q0,1,q1,L)}

ur jeden ¨Ubergangu= (a,p,b,q,r)δ:

Darstellung :c(u) =c(a)0c(p)0c(b)0c(q)0c(r) c(2,q0,1,q1,R) = 11

|{z}2

0 1

|{z}q0

0 1

|{z}

1

0 11

|{z}q1

0 11

|{z}

R

c(2,q1,1,q0,L) = 11011010101 c(1,q0,1,q1,L) = 1010101101 Darstellung der TMM gen¨ugt):

c(M) = c(2,q0,1,q1,R)00c(2,q1,1,q0,L)00c(1,q0,1,q1,L)

= 1101010110110011011010101001010101101

35

(9)

Darstellung von TM-Konfigurationen

Konfigurationen einer TMM = (X,Q,Γ, δ,q0,2):

upv ∈Γ×Q×Γ

I Darstellung von u und v als{0,1}-Folgen (wie bisher) I Darstellung von p als Un¨arzahl

I Markierung der Kopfposition (Position der als Zustand zu interpretierenden Zeichenkette)

z.B. durch doppeltes Trennzeichen nach Zustand

Beispiel: TM von voriger Folie Startkonfiguration 2

|{z}u

q0 11

|{z}

v

7→ 11

|{z}

c(u)

0 1

|{z}

c(q0)

00 1010

| {z }

c(v)

(10)

G¨ odelisierung

(Kurt G¨odel 1906 - 1978)

I Die bisher vorgestellten Codierungenc ordnen jedem Elementx der darzustellenden Menge (Graphen, TM, Konfigurationen, . . . ) ein eindeutigesWortc(x)∈ {0,1} zu.

I Interpretation der Zeichenkette c(x)∈ {0,1} als Bin¨arzahl ordnet jedem Elementx der darzustellenden Menge eineeindeutige nat¨urliche Zahlc0(x)Nzu.

1. Beide Funktionenc undc0 sind injektiv und algorithmisch berechenbar.

2. Es l¨asst sich algorithmisch feststellen, ob ein Wortw ∈ {0,1}(eine ZahlnN) die Darstellung eines Elementes ist. ( ¨UA: Wie?) 3. Die Umkehrfunktionen c−1:c(X)X undc0−1:c0(X)X sind

injektiv.

Aus jeder korrekten Darstellung l¨asst sich das Elementx eindeutig algorithmisch berechnen.

Solche Funktionenc undc0 heißen odelisierungen.

ur jede G¨odelisierungc heißtc(x)odelnummerdes Elementesx.

37

(11)

Darstellung von Problemen als Sprachen

Aufgaben (Probleme): Zuordnung zwischen I Eingaben

I passenden Ausgaben (oft strukturierte Daten)

Aufgabe: Abbildung = Menge von Paaren (Eingabe, Ausgabe) (¨ubliche Codierungen)

Spezialfall Entscheidungsprobleme: Ausgabe∈ {0,1}

I definiert eine Eigenschaft auf der Menge aller Eingaben I repr¨asentiert durch Urbild der 1

I charakteristische Funktion der Menge der Eingaben mit dieser Eigenschaft

(12)

Aufgaben und Instanzen – Beispiele

I Enthaltensein in einer Folge (von Elementen des Typs E) Aufgabe: F ={((x1, . . . ,xn),y)E×E |

∃k ∈ {1, . . . ,n}:xk =y} Menge aller Paare ((x1, . . . ,xn),y) mit

y ∈ {x1, . . . ,xn}

Instanz: ((1,3,4,6),4) (Gilt ((1,3,4,6),4)F? ) Ja, ((1,3,4,6),4)F, weil 4∈ {1,3,4,6}

osungsverfahren: (beliebiges) Suchverfahren in Folgen I SAT (Erf¨ullbarkeitsproblem der Aussagenlogik)

Aufgabe: SAT =AL|Mod(ϕ)6=∅}

Menge aller erf¨ullbaren aussagenlogischen Formeln Instanz: ¬a(abc)∧ ¬c∧ ¬b

(Gilt (¬a(abc)∧ ¬c∧ ¬b)SAT ?) Nein, weil Mod(ϕ) =

osungsverfahren (Entscheidungsverfahren):

I semantisch: Wahrheitswerttabellen I syntaktisch: Kalk¨ule, z.B. Resolution,

¨aquivalente Umformungen von . . . zu . . .

39

(13)

Beispiel: Graphen-Probleme

I k-F¨arbung eines Graphen G = (V,E):

Abbildung f :V → {1,2, . . . ,k}

I F¨arbungf von G = (V,E) ist konfliktfrei gdw. ∀xy ∈E :f(x)6=f(y)

kCOL ={G | ∃f :f ist konfliktfreie k-F¨arbung vonG } Hamilton-Kreis inG = (V,E):

Kreis inG durch alle Knoten inV

HC={G |G ist ungerichteter Graph undG enth¨alt Hamilton-Kreis} (Hamiltonian Circuit)

DHC={G |G ist gerichteter Graph undG enth¨alt gerichteten Kreis durch alle Knoten} (Directed HC)

(14)

Codierung in nat¨ urlichen Zahlen

DTM akzeptieren / manipulieren Zeichenketten.

Die meisten Berechenbarkeitsmodelle (z.B. Programme, rekursive Funktionen) rechnen aber mit nat¨urlichen Zahlen.

Satz: Das ist keine Einschr¨ankung der Allgemeinheit,

denn man kann jedes strukturierte Datum in eine einzige nat¨urliche Zahl codieren.

Vorgehen wie in den vorangegangenen Beispielen:

1. Darstellung als Zeichenkettec(d)∈ {0,1} 2. Interpretation von c(d) als Bin¨arzahlc0(d)∈N

Bei Berechnungen mit Zahlen ist der Umweg ¨uber Zeichenketten oft zu aufwendig.

deshalb gesucht:

direkte Codierung und Decodierung strukturierter Daten in nat¨urlichen Zahlen

41

(15)

Codierung von Zahlenpaaren

gesucht sind (TM-)berechenbare Funktionen Konstruktor: C :N2→N

Destruktoren: P1,P2:N→N Testfunktion: T :N→ {0,1}

mit den folgenden Eigenschaften (Spezifikation):

∀x1,x2 ∈N : P1(C(x1,x2)) =x1

∀x1,x2 ∈N : P2(C(x1,x2)) =x2

∀x ∈N : T(x) = 1 ↔ ∃x1,x2 ∈N:x =C(x1,x2) verschiedene M¨oglichkeiten, z.B.:

I C(x1,x2) = (x1+x2)(x1+x2+ 1)/2 +x1

I C(x1,x2) = 2x1(2x2+ 1), I C(x1,x2) = 2x1·3x2

UA: jeweils¨ C(2,3),C(3,2),T(10),T(12),P1(12),P2(12),

(16)

Codierung von Listen

Konstruktor L:N →N Destruktoren Di :N→N. zwei (von vielen) M¨oglichkeiten:

I mittels einer Paar-Codierung C IA: L([]) = 0

IS: ∀aN∀w N:L([a]w) =C(a+ 1,L(w)) I direkte Kodierung als Produkt von Primzahlpotenzen

L([x0,x1, . . . ,xn]) = 2x0+1·3x1+1· · · · ·p(n)xn+1. UA: jeweils¨ L([]),L([5]),L([2,3,0]), Algorithmus f¨urDi UA: die Funktion¨ p :n7→ dien-te Primzahl, also p(0) = 2,p(1) = 3,p(2) = 5, . . . ist While-berechenbar.

43

(17)

Codierung von B¨ aumen

Motivation

I allgemein: Baum = Term in einer Signatur,

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

I Bsp: Σ ={(f,2),(g,1),(a,0)}, t =f(f(a,g(a)),a)∈Term(Σ).

Notation root(t) =f,args(t) = [f(a,g(a)),a].

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

Realisierung:B(t) =C(num(root(t)),L([B(t1), . . . ,B(tk)])) mit args(t) = [t1, . . .], Paar-Kodierung C,

Listen-KodierungL, sowie Symbol-Nummerierung

Referenzen

ÄHNLICHE DOKUMENTE

Zeige, dass F p mit diesen Verkn¨ upfungen ein K¨

Im bubble sort Algorithmus durchlaufen wir die Liste von links nach rechts und vergleichen das jeweils aktuelle Element mit seinem rechten Nachbar.. Falls die beiden

Sie erwartet als Argument eine quadra- tische n × n-Matrix, auf deren Elementen die Gauß-Elimination mit Spaltenpivotierung zur Zerlegung P A = LR ohne zus¨ atzlichen Speicher f¨ ur

Beobachtung: untere Grenze für Anzahl Blätter eines Suchbaums zu gegebener Höhe erlaubt Abschätzung der maximalen Höhe eines Suchbaums zu gegebener

Schlüssel im linken Teilbaum v.left von v sind kleiner als v.key Schlüssel im rechten Teilbaum v.right von v sind grösser als

Aufzählen von Schlüssel in aufsteigender Anordnung Nächst kleinerer Schlüssel zu gegebenem Schlüssel...

Falko Lorenz, Karin Halupczok SoSe 2013. Abgabetermin:

Die Differenz aus 45 und 22 ist der Subtrahend in einer Differenz, wo der Minuend die Summe aller nat¨ urlichen Zahlen von 1 bis 20 ist.. Berechne die