slides6 - KU Leuven

advertisement
Automaten en Berekenbaarheid
Bart Demoen
KU Leuven
2016-2017
Les 6: 91-109
encodering, universele TM, niet-beslisbaarheid
de enumerator, voorbeelden
AB’16
Terminologie
I
I
I
I
I
2/16
taal L ⊆ Σ∗ of eigenschap (van natuurlijke getallen)
N ∼ {0, 1}∗
eigenschap priem → taal van priemgetallen
beslisbare taal of eigenschap (decidable, enumerable)
herkenbaar (recognisable, semi-decidable, recursive
enumerable)
AB’16
Encodering
I
I
uitspraak de priemgetallen zijn beslisbaar is juist maar
vaag
beslisbaar gaat over talen, dus ...
I
I
I
3/16
Σ vastleggen
en hoe N met overeenkomt met strings uit Σ∗
dat is de encodering van het probleem
NIET ELKE ENCODERING IS OK !
I
I
I
de grootte van Σ heeft geen belang (zelf uitwerken): heeft
enkel belang voor de complexiteit
extra info toevoegen is slecht (zie cursustekst)
N voorstellen als bitstrings zonder leidende nul (behalve
voor zero) is ok: je kan beslissen of iets een getal voorstelt
AB’16
Universele Turingmachines
I
I
I
4/16
bv. de universele TM-simulator in Prolog, maar dan
m.b.v. een TM
veronderstelt een encodering van een TM (want input
voor UTM)
nodig te verstaan: samenstelling van 2 (of meer) TMs
waarbij
I
I
I
de ene de andere oproept
de ene de andere simuleert (en nog andere dingen doet)
(vroeger al) parallelle uitvoering en combineren resultaat
goeie raad: raak gewoon aan een TM die als input dient voor
een andere TM ... of zichzelf (?)
pas op: er bestaan hele kleine UTMs !
AB’16
Onze eerste niet-beslisbare talen I
5/16
Het Halting-probleem is niet beslisbaar:
I HTM = {< M, s > |s ∈
/ ∞M } of M stopt op s
I deze Haskell functie stopt bij deze gegeven invoer
I HTM is herkenbaar: informele beschrijving van een
herkenner H voor HTM
I
I
I
I
H(< M, s >) simuleert M op s
als M in zijn qa komt, dan stopt H in zijn eigen accepttoestand
als M in zijn qr komt, dan stopt H in zijn eigen accepttoestand
als M oneindig doorloopt, dan doet H dat ook
bewijs steunt op het acceptatieprobleem voor TMs
het Halting-probleem is niet co-herkenbaar
AB’16
Onze eerste niet-beslisbare talen II
Het Acceptance-probleem is niet beslisbaar:
I
I
ATM = {< M, s > |s ∈ LM } of M accepteert s
bewijs gebruikt diagonalisatie - een geflipte machine
gebruikt zichzelf als input - en contradictie
Stel nu dat HTM beslisbaar is, dan kan je een beslisser voor
ATM bouwen, en dat kan niet ... dus HTM is niet beslisbaar.
AB’16
6/16
De enumeratormachine
...
7/16
...
x
q
δ(q,x)
ga naar q’
schrijf y op band
schrijf z op output
beweeg leeskop naar
Links
Rechts
blijf Staan
outputband
I
I
I
I
TM met extra toestand qe : schrijf $ en ga naar qs
signatuur δ is Q × Γ → Q × Γ × Γ × {L, R, S}
beetje zoals een transducer
L wordt door E geënumeerd indien elke string van L op de
output verschijnt (tussen twee markers) en geen andere
ON COMPUTABLE NUMBERS, WITH AN APPLICATION
TO THE ENTSCHEIDUNGSPROBLEM
Alan Turing, nov 1936
AB’16
De link tussen herkennen en enumereren
I
een herkenbare taal is enumereerbaar en
omgekeerd
I
I
gegeven een TM (= herkenner !) voor L, maak een
enumerator voor L
gegeven een enumerator L, maak een herkenner voor L
beetje tricky omdat het Halting probleem niet
beslisbaar is
klassieke tuyau :-)
sommige reële getallen zijn berekenbaar, de meeste
niet
AB’16
8/16
Ivm RegLan is zowat alles beslisbaar ...
I
I
I
9/16
ADFA =
{hD, si|D is een DFA, en D accepteert s}
ANFA =
{hN, si|N is een NFA, en N accepteert s}
ARegExp = {hRE , si|RE is een reguliere expressie,
en RE genereert s}
Een DFA-simulator is handig !
en de stellingen/algoritmen om van
RE → NFA → DFA → DFAmin te gaan
AB’16
3 populaire vragen over talen ...
I
I
I
is de taal leeg ?
bevat de taal de lege string ? (of een andere willekeurige
string)
zijn twee talen gelijk ? (hoe zijn ze gegeven ?)
Voor reguliere talen ...
I
I
I
10/16
EDFA = {hDFAi|LDFA = φ}
ESDFA = {hDFAi| ∈ LDFA }
EQDFA = {hDFA1 , DFA2 i|LDFA1 = LDFA2 }
zijn alle beslisbaar ...
subtiel maar verschillend: elke RegLan is beslisbaar
AB’16
Context-vrije talen ...
I
I
I
11/16
ACFG = {hG , si|G is een CFG , en s ∈ LG } is beslisbaar
ECFG = {hG i|G is een CFG , en LG = φ} is beslisbaar
ESCFG = {hG i|G is een CFG , en ∈ LG } is beslisbaar
EQCFG is niet beslisbaar - wel co-herkenbaar: dat laatste moet
je zelf kunnen bewijzen
AB’16
Ivm type 0 ...
12/16
I
ETM = {hMi|M is een TM, en LM = φ} is niet beslisbaar
I
REGULARTM = {hMi|M is een TM, en LM ∈ RegLan}
is niet beslisbaar
I
EQTM is niet beslisbaar
zet deze uitspraken over naar de context van je favoriete
(Turing-complete) programmeertaal
AB’16
De lineaire begrensde automaat I
I
I
I
I
I
I
een TM die niet meer plaats mag gebruiken dan de
inputstring
beslist context-sensitieve talen
verrassing: het Halting-probleen voor LBAs is beslisbaar
inzicht: slechts een eindig aantal configuraties mogelijk
een simulator-TM telt hoeveel stappen al gedaan zijn
indien meer dan # configuraties, dan lus
dus: ook ALBA is beslisbaar1
1
versta je dit echt ?
AB’16
13/16
De lineaire begrensde automaat II
14/16
en toch is ELBA = {M|M is een LBA die de lege taal bepaalt}
niet beslisbaar:
I
I
I
we kunnen een LBA maken die een computation history
van een TM op een gegeven string nakijkt en accepteert
als die eindigt in de qa
als die LBA iets accepteert, dan is de taal van die TM niet
leeg
dus: ELBA beslissen geeft een beslisser voor ETM en dat
kan niet
AB’16
interludium ...
15/16
Details in de cursustekst (p107-108) ...
I
I
I
wat beslist/herkend kan worden hangt af van de plaats in
de Chomsky hiërarchie
maar niet altijd hetzelfde (AX , HX , ESX , EX , AllX ...)
ook welke algebraische operaties inwendig zijn hangt af
van die plaats
lees zeker de tekst over aftelbaar versus effectief
aftelbaar/opsombaar - voor ons, informaticawetenschappers, is
de laatste notie de belangrijkste
de stelling over herkenbaar ↔ enumereerbaar toont o.a. dat
veel (de meeste ?) verzamelingen niet opsombaar zijn
AB’16
Belangrijk: kennen en kunnen.
16/16
I terminologie correct kunnen gebruiken
I het begrip (redelijke) encodering kunnen uitleggen en van een encodering
kunnen argumenteren waarom die redelijk is of niet
I begrijpen en kunnen uitleggen wat een UTM is en hoe die werkt, in het
bijzonder wat de invoer en uitvoer is
I alle stellingen en gevolgen 8.* kunnen formuleren in woorden en formeel
bewijzen, in het bijzonder de constructie van diverse hulpmachines kunnen
uitleggen, en wanneer die gebeurt
I de definitie en werking van een enumeratormachine kunnen geven/uitleggen;
stelling 9.1: de bewering ervan (in het grijze vak) kunnen uitleggen, en het
bewijs reproduceren
I de algemene problematiek van beslisbaarheid van talen gelinkt aan de groepen
uit de Chomsky hiërarchie kunnen uitleggen
I alle stellingen 10.*: in woorden kunnen formuleren en bewijzen
I alle stellingen 11.* (behalve 11.7): in woorden kunnen formuleren en bewijzen;
voor 11.6 is de vage constructie in de cursustekst voldoende
I de definitie van IsInTM,S als taal kunnen uitleggen en er gebruik van kunnen
maken in voorbeelden
I de definitie van LBA kunnen geven en uitleggen
I het onderscheid tussen aftelbaar en opsombaar kunnen uitleggen/bewijzen,
voorbeelden ervan geven
AB’16
Download