CD5560 Formella språk, automater och beräkningsteori 1 Laboration 3 1.1 Uppgift 1 Låt T vara följande accepterande TM: Deluppgift: a Beskriv med hjälp av ett matematiskt uttryck av typen L(T ) = {12n+4 0n |n ≥ 0} språket L(T ) som ovanstående TM uttrycker. b Vad är syftet med tillstånden Q0 och Q1 ? Hur skulle T fungera om Q0 och Q1 togs bort och starttillståndet istället blev Q2 ? c Skapa en restriktionsfri grammatik G sådan att L(G) = L(T ). d Välj en valfri sträng w sådan att w ∈ L(G), |w| ≥ 6. Visa hur w produceras av G steg för steg. Deluppgift c löses och sparas sedan i filen ‘uppgift1-c.jff’. Deluppgift a, b, d löses och sparas som en vanlig textfil (vilken skapas med till exempel Notepad) vid namn ‘uppgift1-svar.txt’. Markera noggrant vilket svar som hör till vilken deluppgift. Tänk på att i en textfil så finns inte alla matematiska symboler tillgängliga så istället för t.ex. L(N ) = {12n+4 0n |n ≥ 0} så skriver man: L(N) = {1^(2n+4)0^n | n >= 0} 1.2 Uppgift 2 Skapa restriktionsfria grammatiker för följande språk: 1 a {an bn cn dn |n ≥ 0} b {ww|w ∈ {x, y, z}∗ } Deluppgift a, b löses och sparas sedan i filerna ‘uppgift2-a.jff’ respektive ‘uppgift2-b.jff’. 1.3 Uppgift 3 Skapa Turingmaskiner enligt nedanstående beskrivningar: a En Turingmaskin som beräknar funktionen F (x) = x + 1 för x som är ett binärt tal sådant att x ≥ 0. När slutresultatet finns (ensamt) på tapen ska tapepekaren placeras på tecknet längst till vänster och maskinen gå i accepterande läge. b En Turingmaskin med 2-tapes där varje tape innehåller ett binärt tal. Maskinen accepterar om båda tapes innehåller samma binära tal. c En Turingmaskin som beräknar funktionen F (x) = x ∗ 1000 + 1 för x som är ett binärt tal sådant att x ≥ 0. Alla talen i funktionsbeskrivningen är binära! I klartext kan alltså funktionen beskrivas: Ta in ett binärt tal. Multiplicera talet med åtta och addera ett till denna summa. Returnera detta tal. När slutresultatet finns (ensamt) på tapen ska tapepekaren placeras på tecknet längst till vänster och maskinen gå i accepterande läge. Deluppgift a, b, c löses och sparas sedan i filerna ‘uppgift3-a.jff’, ‘uppgift3-b.jff’ respektive ‘uppgift3-c.jff’ 1.4 Uppgift 4 Skapa ett valfritt Lindenmayer-system (L-System) i JFLAP. För inspiration rekommenderas ‘http://en.wikipedia.org/wiki/Lindenmayer_system’. Uppgiften sparas till filen ‘Uppgift4.jff’. 2