INF 2080 – vår 2015

1 - hrj
1

Følger Sipsers bok tett både i stoff og
oppgaver.
◦ Tirsdag –forelesninger, nytt stoff
◦ Onsdag – eksempler og utfyllende stoff
◦ Torsdag – oppgaver fra uka før



Start: kapittel 1 (2uker), 2 (2uker) ,3 (2uker)
,4 (1uke)
Bakgrunn INF 1080 og kapittel 0
Mye stoff på nettet
2


Gammel diskusjon – analog versus digital
Våre maskiner bruker stringer i et alfabet
◦ INN: ord
◦ Prosessering: vandring mellom tilstander
◦ UT: ja/nei

Alt er endelig – alfabetet, stringene,
tilstandene
tilstander
ord
Ja/nei
3









Alfabet – ikke-tom endelig mengde Σ
Symboler – elementene fra alfabetet a ∈ Σ
String over et alfabet (ord)
abrakadabra
Stringen leses fra venstre mot høyre
Den tomme stringen ε
Delstring
Den omvendte stringen
Konkatenering av x og y skrevet xy
Lengden av x
|x|
4
1.
2.
3.
4.
5.
Q - endelig mengde tilstander
Σ - alfabet
δ: Q x Σ → Q - transisjonsfunksjon
q0 ∈ Q - start tilstand
F ⊆ Q - de aksepterende tilstandene
En DFA beskrives gjerne ved et diagram
 Tilstandene er sirkler
 Transisjonene er piler mellom sirklene
 Start – sirkel med pil inn
 Aksepterende tilstand – dobbelt sirkel
5

Alfabet a,b
a
a
b
Ikke akseptert
abba
baba
Akseptert
aaa
baaa
b
a
a
b
b
6


Kreativ prosess – mange veier til målet
Tenk deg selv som turingmann 
◦ Hva må jeg vite underveis for å regne
◦ Mer presist – tenk deg at beregningen blir stoppet. Hva
trenger du vite for å fortsette beregningen. Dette kalles
ofte kontinuasjonen.
◦ Tilstandene = Kontinuasjonene


Tilstandene = Hukommelse av automaten
Enkle mekanismer kan ha mange tilstander. Med
2 muligheter for 256 deler får vi 2256 tilstander –
omtrent som antall atomer i universet
7





Språk – mengde av ord
Regulære språk – mengde av ord akseptert av
en DFA
Hvilke språk er regulære ?
Er noen av våre vanlige språk ikke regulære ?
Et eksempel er språket av velformete
parenteser. Dette skal vi vise senere.
8

Tillater to ting utover det vi gjør med DFA
◦ I en NFA en tilstand kan ha 0,1 eller flere piler med
et gitt symbol
◦ Kan ha tom transisjon markert med pil med
symbolet ε. Denne transisjonen kan brukes uten
noen input.


For gitt ord kan vi ha mange forskjellige
kjøringer
Et ord blir akseptert om en av disse
kjøringene ender i en aksepterende tilstand.
9




Makrotilstand = Delmengde av tilstander
I en DFA med et symbol vil transisjonene gi
overgang fra en tilstand til neste tilstand
I en NFA med et symbol vil transisjonene gi
overgang fra en makrotilstand til neste
makrotilstand
I en NFA vil det bli akseptering om en av
tilstandene i makrotilstanden er aksepterende
10

Gitt en NFA, vi kan finne en DFA som gjør det
samme
◦ De har samme alfabet
◦ Makrotilstandene til NFA’en blir tilstandene til
DFA’en
◦ Transisjonene til makrotilstandene av NFA’en er
deterministiske og brukes som transisjonene av
tilstandene i DFA’en

Vi får en eksponensiell vekst i antall tilstander
11





Et regulært språk er gitt ved en DFA
For å få komplement – bytt om de
aksepterende og de ikke-aksepterende
tilstandene
Ingen vekst i antall tilstander
For å få komplementet av en NFA trenger en
først gjøre den om til en DFA og deretter ta
komplementet.
Eksponensiell vekst i antall tilstander
12


To automater A og B med samme alfabet.
Bruker så den tomme transisjonen ε til å gi
◦ Ny start S
◦ Tom transisjon fra S til start i A
◦ Tom transisjon fra S til start i B

Dette gir en NFA som gir union av de
språkene for A og B. NFA’en kan gjøres om til
en DFA – om en vil.
13


Gitt automater A og B
Får konkatenering AB ved å knytte de
aksepterende tilstandene i A med starten i B
med tomme transisjoner
14



Gitt automat A . Kleene stjerne er automaten
A* som svarer til ε ∪ A ∪ AA ∪ AAA ∪ ……..
Her er ε en automat for den tomme stringen
Konstruer A* fra A ved først å ha en ny
aksepterende start, knytte den til den gamle
ikke-aksepterende starten med en tom
transisjon og deretter knytte de aksepterende
tilstandene i A med tomme transisjoner
også til den gamle starten – men her må en
være forsiktig (se boka!)
15