Chuch-Turing-Tesen¶
Læringsmål¶
- Forstå ækvivalensen mellem de udvidede turing-maskin-modeller og den oprindelige Turing-maskin-model
- Forstå Church-Turing-tesen og hvad dens forudsætninger er.
- Forstå at der er en dualitet mellem beslutningsproblemer og medlemskab af sprog
- Andvende dualiteten mellem beslutningsproblemer og sprog til at oversætte instanser af det ene begreb til instanser af det andet.
- Forstå strengbeskrivelses-notation og dens rolle og kunne anvende den til at oversætte beslutningsproblemer til sprog.
Flere Bånd?¶
Overføringsfunktion: $$ \delta: Q \times \Gamma^k \longrightarrow Q \times (\Gamma \times {L,R})^k $$
Simulering af en k-bånds TM med ét Bånd¶
Prikkerne markerer læsehovedets placering
Simulering af et skridt:
- Scan den ikke-blanke del af båndet, og find ud af hvad prikkerne peger på (Husk det vhja. tilstand)
- Flytte prikker og erstat tegn sådan som k-bånds-maskinen ville kræve det.
- Skub indhold mod højre, om nødvendigt
Sætning¶
Hvis et sprog L kan genkendes af en k-bånds-TM, kan L også genkendes af en 1-bånds-TM.
- Flere bånd betyder ikke noget for regnekraft!
Nondeterminisme¶
Overføringsfunktion for NTM: $$ \delta : Q \times \Gamma \longrightarrow \mathcal{P}(Q \times \Gamma) $$
Eksempel¶
$$ \delta(q_8, a)={(q_9,b,R),(q_7, a,R)} $$
Accept¶
Definition
En NTM M accepterer en streng, hvis der i beregningstræet for strengen forekommer en konfiguration hvis tilstand er q_{accept}
Simulering af NTM¶
Sker ved at gennemvandre beregningstræet og lede efter en accepterende konfiguration
Problem: NTM'er kan gå i uendelig løkke, så grene i træet KAN være uendeligt lange!
Løsning:
Idé: Brug breddesøgning
På input w
- Kopier w over på bånd 1
- For k=0,1,2,...
- Kopier input fra bånd 1 til bånd 2
- Generer næste indexfølge af længde k
- Simuler en beregning på bånd 2 svarende til indexfølgen på bånd 3
- Hvis beregningen besøger q_{accept}: accepter!
Sætning¶
Hvis L kan genkendes af en NTM, kan L genkendes af en TM!
- Vigtigt af flere grunde:
- Nondeterminisme giver ikke øget regnekraft
- Vi må godt gøre brug af nondeterminisme!
Enumerator¶
TM'er som sproggenkendere:
TM'er som sproggeneratorer (enumerator):
Sætning¶
L er et genkendeligt
\Updownarrow
\exists enumerator E så E outputter L (L_{output}(E)=L)
Se bevis i Lektion 2, afsnit 4
Andre Modeller for Beregnelighed¶
Alle modeller for beregnelighed vi kender i dag, er højest lige så stærke som Turing Maskiner.
- Inklusive programmeringssprog
Church-Turing-tesen¶
Enhver model for beregnelighed vil være højest lige så stærk som TM-modellen, hvis ellers den er rimelig.
- Kan ikke bevises (ikke en matematisk sætning)
- Kan potentielt modbevises.
Konsekvenser¶
- Alle varianter af TM'er er nyttige, når vi skal vise at et sprog er genkendeligt
- Pseudokode er nok til at beskrive en TM's adfærd
Beslutningsproblemer og Sprog¶
Beslutningsproblemer:
- Ja-nej-spørgsmål
- Eksempler:
- Givet en graf G, er G sammenhængende?
- Givet et tal n, er n et primtal?
- Givet en TM M og et input w, vil M acceptere w?
De understregede elementer er parametre / input i problemet.
Sprog \leftrightarrow Beslutningsproblem
Et hvert beslutningsproblem kan formuleres som et sprog. Og til hvert sprog er der et beslutningsproblem:
- Givet w, er w\in L?
Eksempel¶
"Givet G, er G da en sammenhængende graf?"
<G>: Strengrepræsentationen af G
Problem svarer til:
$$
CONN={
Altså
Et beslutningsproblem kan afgøres med en algoritme hvis, det tilsvarende sprog er afgørbart!