Automaten en Berekenbaarheid

Uit Wina Examenwiki
Naar navigatie springen Naar zoeken springen

Dit vak wordt gegeven door prof. Demoen.

Informatie over het examen

Het examen is volledig mondeling, met schriftelijke voorbereiding. De theorie is gesloten boek, de oefening is open boek (alhoewel je het boek eigenlijk niet nodig hebt)

  • Vraag 1: een 'makkelijke' theorievraag, uit het lijstje van de mogelijke examenvragen
  • Vraag 2: een 'moeilijke' theorievraag, ook ergens uit de cursus
  • Vraag 3 (open boek): oefening waarin je iets moet bewijzen

Examens

2007

15 januari (voormiddag)

  • Geef het pumping lemma voor cfg's. Gebruik het om te bewijzen dat een taal wel (tricky) en een taal niet cf is.
  • Zijn alle cfg's deterministisch? Bewijs waarom wel/niet. Het antwoord is dat bewijs op een apart blad waarin deterministische automaat voor {XiYiZi} wordt gemaakt, wat niet kan.
  • Er zijn 2 reguliere talen. Is de doorsnede van de ene taal met de reverse van de andere taal ook regulier? bewijs.

15 januari (namiddag)

  • Beschrijf in detail de transformatie van een deterministische eindige toestandsautomaat naar een equivalente deterministische eindige toestandsautomaat met een minimaal aantal toestanden. Beschrijf de notie van "equivalentie van automaten" in deze context en argumenteer waarom er wel of geen kleinere equivalente deterministische eindige toestandsautomaat bestaat. Kan een kleinere equivalent niet-deterministische eindige toestandsautomaat bestaan?
  • Beschrijf het correspondentieprobleem van Post. Argumenteer waarom het onbeslisbaar is. Is het herkenbaar? argumenteer
  • Stel L een taal met |Σ|2. Alle strings in de rest van de opgave zijn elementen van Σ*. Definiëer de afstand d(s,t) tussen de strings s=s0s1sn en t=t0t1tn als volgt: d(s,t)={i|siti} als |s|=|t|. Definiëer nu de taal L1fout = {x|aL:|a|=|x|d(a,x)1}. Bewijs nu het volgende: als L regulier is, dan is L1fout ook regulier. (Hint: vertrek van een DFA van L, en construeer een NFA met toestanden Q×{0,1})

18 januari (voormiddag)

  • enumerator machine: beschrijven, bewijzen dat herkenbare talen door enumerator ge-enumereert kunnen worden, en dat ge-enumereerde talen herkenbaar zijn. Zijn turing machines enumereerbaar? herkenbaar? Beslisbaar of <M> de beschrijving van een turing machine is.
  • bewijs in detail of REGULAR(TM) besisbaar is. Is het herkenbaar? Is het complement herkenbaar?
  • moeilijke oefening

25 januari 2007

Voormiddag Michaël:

  • Beschrijf in detail de transformatie van een niet-deterministische eindige toestandsautomaat naar een equivalente deterministische eindige toestandsautomaat. Beschrijf de notie van "equivalentie van automaten" in deze context en argumenteer waarom de transformatie "correct" is. Bespreek de uitspraak "deze transformatie is [niet] deterministisch". (kies zelf of je die "niet" wil houden of niet)
  • Bewijs dat E(tm) niet beslisbaar is. Is E(tm) herkenbaar? co-herkenbaar?
Bijvraag: kan je de stelling van rice gebruiken?
  • Gegeven: Taal L over alfabet Epsilon1 x Epsilon2. Zij P1 en P2 beide projecties van L naar een taal op Epsilon1 respectievelijk Epsilon 2. Voor P1 geldt P1 = {a|a = a1a2a3...an, Er bestaat een w € L zodat w = (a1,x1)(a2,x2)...(an,xn)}
Is P1 regulier? (Toon aan door DFA te schrijven of een tegenvoorbeeld te geven.
Helpt het als gegeven wordt dat P2 regulier is?
(Je kan een hint vragen in ruil voor een paar punten)
Hint was: beschouw een transactie van twee toestanden met daarin (ai,xi) als label op de pijl. Dan kan je deze transactie voor de machine P1 voorstellen als dezelfde toestanden maar dan met label ai. Deze automaat is wel een NDFA, want bv voor d(q0,(a,b)) = q1 en d(q0,(a,c)) = q2 krijg je d(q0,a) = {q1,q2} en dat is niet deterministisch.
Je moet nu nog bewijzen dat voor een string s die geaccepteerd word door P1 dus s = s1s2s3...sn met si € Epsilon 1 dat er een element (s1,b1)(s2,b2)...(sn,bn) bestaat in L. Dit kan je doen door elke keer een string te kiezen uit Epsilon2^n en die uit te proberen samen met s1 op de machine van L. Ooit kom je wel een juiste string tegen want Epsilon^ster is aftelbaar.

Lijst van examenvragen

Gebruik deze lijst verstandig en voorzichtig. Geen enkele poging werd gedaan om een volledige lijst op te stellen of om alle topics uit de cursus te bedekken. Er is ook geen garantie dat de vragen uit deze lijst effectief zullen gesteld worden op het examen.

  • Geef een preciese formulering van het pompend lemma voor reguliere

talen en een bewijs ervan. Geef voorbeelden waarbij je laat zien hoe je dat lemma gebruikt om te bewijzen dat een gegeven taal regulier is en om te bewijzen dat een gegeven taal niet regulier is.

  • Geef een preciese formulering van het pompend lemma voor context-vrije

talen en een bewijs ervan. Geef voorbeelden waarbij je laat zien hoe je dat lemma gebruikt om te bewijzen dat een gegeven taal context-vrij is en om te bewijzen dat een gegeven taal niet context-vrij is.

  • Beschrijf in detail de transformatie van een niet-deterministische

eindige toestandsautomaat naar een equivalente deterministische eindige toestandsautomaat. Beschrijf de notie van "equivalentie van automaten" in deze context en argumenteer waarom de transformatie "correct" is. Bespreek de uitspraak "deze transformatie is [niet] deterministisch". (kies zelf of je die "niet" wil houden of niet)

  • Beschrijf in detail de transformatie van een deterministische eindige

toestandsautomaat naar een equivalente deterministische eindige toestandsautomaat met een minimaal aantal toestanden. Beschrijf de notie van "equivalentie van automaten" in deze context en argumenteer waarom er geen kleinere equivalente deterministische eindige toestandsautomaat bestaat. Kan een kleinere equivalent niet-deterministische eindige toestandsautomaat bestaan ?

  • Bewijs dat een eindige toestandsautomaat altijd een

taal herkent die door een reguliere expressie wordt beschreven. Doe dat door een eindige toestandsautomaat te transformeren naar een gegeneraliseerde niet-deterministische eindige toestandsautomaat met slechts 2 toestanden.

  • Bespreek unie, doorsnede, complement, concatenatie van reguliere

talen, van contextvrije talen en van niet-contextvrije talen: zijn die operaties inwendig ? Geef voldoende detail in je argumentatie, eventueel voorbeelden indien nuttig.

  • Definieer de Chomsky Normaal Vorm voor CFGs. Geef de opeenvolgende

stappen in het algoritme om een CFG naar een equivalente Chomsky NF te transformeren. Beschrijf de notie van "equivalentie van automaten" in deze context en argumenteer waarom de transformatie "correct" is. Waarvoor is de Chomsky Normaal Vorm nuttig ?

  • Leg uit wat een pushdown automaat is en hoe die werkt. Laat de

constructie zien (in het algemeen) van een pushdown automaat die een gegeven contextvrije taal aanvaardt. Argumenteer de correctheid.

  • Leg uit wat een pushdown automaat is en hoe die werkt. Laat de

constructie zien (in het algemeen) van een CFG die dezelfde taal genereert als een gegeven pushdown automaat. Argumenteer de correctheid.

  • Geef de definities van "een taal wordt beslist door een Turing

machine" en van "een taal wordt herkend door een Turing machine". Bewijs dat er een niet-beslisbare taal bestaat, gebaseerd op een cardinaliteitsargument.

  • Definieer de enumerator machine. Bewijs dat elke herkenbare taal kan

ge-enumereerd worden en dat elke taal die door een enumerator wordt ge-enumereerd ook herkenbaar is. Kan elke beslisbare taal ge-enumereerd worden ? Bespreek in deze context de uitspraak "de verzameling van Turing machines is een herkenbare taal".

  • Bewijs in detail dat A_TM niet beslisbaar is - steun daarbij niet op

de stelling van Rice. Zou het helpen als het toegelaten was op de stelling van Rice te steunen. Is A_TM herkenbaar ?

  • Formuleer en bewijs in detail de stelling van Rice. Geef voorbeelden

van wanneer ze mag toegepast worden en wanneer niet - met argumentie natuurlijk.

  • Wat is een orakelmachine. Bespreek de uitspraak: "de verzameling

orakelmachines (voor een gegeven orakel) is strikt krachtiger dan de verzameling van Turing machines". Leg hierbij ook uit wat je bedoelt met "krachtiger". Kan een verzameling orakelmachines (voor bepaald gegeven orakel) alle talen beslissen ?

  • Formuleer en bespreek de stellingen van Church-Rosser. Geef daarbij

hun belang i.v.m. het het baseren van een programmeertaal op lambda-calculus. Geef de relatie met de programmeertaal Haskell.

  • Bespreek de Turing-volledigheid van Hornclauselogica. In dezelfde

context: bespreek "subsets" van Hornclauselogica die al dan niet Turing-volledig zijn. Geef de relatie met (zuivere) Prolog.