Automatteori






Eit døme på ein enkel automat. Automatteori er studiet av dei matematiske eigenskapane til slike automatar. Denne automaten aksepterer alle strengar av 0-ar og 1-ar med eit partal av 0-ar.


I teoretisk datavitskap og diskret matematikk er automatteori studiet av abstrakte maskinar og dei problema dei er i stand til å løyse. Automat kjem frå det greske ordet αὐτόματα som tyder «sjølvhandlande».


Figuren til høgre illustrerer ein endeleg tilstandsmaskin, ein vanleg automattype. Denne automaten består av tilstandar (vist ved sirklane i figuren) og overgangar (vist ved pilane). Når automaten ser eit inn-symbol, skjer ein overgang (eller eit hopp) til ein annan tilstand, avhengig av overføringsfunksjonen (som gir ein ny tilstand basert på ein gammal tilstand og eit symbol).


Automatteori er nært knytt til teoriar om formelle språk, og automatar er ofte klassifisert etter klassen av formelle språk dei er i stand til å kjenne att.




Innhaldsliste






  • 1 Grunnleggjande skildring


    • 1.1 Formell skildring




  • 2 Klassar av automatar


    • 2.1 Endelege tilstandsautomatar


    • 2.2 Automatar med minne


    • 2.3 Formelle språk gjenkjent av automattypane




  • 3 Bruksområde


  • 4 Bakgrunnsstoff


  • 5 Litteratur


  • 6 Kjelder





Grunnleggjande skildring |


Dei følgjande avsnitta introduserer automatar ved hjelp av ein av dei «enklaste» variantane: endelege tilstandsmaskinar (eng. finite state machine, FSM).


Ein FSM er ein maskin som les (ein streng av) symbol som input og hoppar gjennom ei serien av tilstandar, etter ein overføringsfunksjon (som kan bli uttrykt som ein tabell). I den vanlege «Mealy-varianten» av FSM-ar, kan overføringsfunksjonen fortelje maskinen kva tilstand han skal gå til i neste steg, gjeve ein tilstand og eit symbol.


Input blir lese, symbol for symbol, til det er lese til slutt (vi kan tenke på input som ein tape med eit ord skrive på tapen, ordet er lese med automaten sitt lesehovud, som flyttar seg framover på tapen, og les eit symbol i gangen. Med ein gong (mogleg) input er lese, eller brukt opp, seier vi at automaten har stoppa.


Avhengig av tilstanden automaten stoppar i, seier vi at automaten aksepterer eller forkastar input. Viss han stoppar i ein aksepterande tilstandaksepterer automaten ordet. Viss automaten stopper i ein forkastande tilstand er ordet forkasta. Mengda av alle orda som automaten aksepterer kallar vi det formelle språket som denne automaten aksepterer.



Formell skildring |


Vi definerer først ein del konsept




Symbol 

Ein arbitrær storleik som har meining for eller effekt på maskinen.

Ord 

ein finitt streng som blir danna med samanstilling av symbol etter kvarandre.

Alfabet 

eit finitt sett av symbol.

Språk 

Eit sett av ord som er danna av symbola i eit alfabet. Språket kan (men treng ikkje) vere infinitt.

Automat 

formelt er ein automat representert av 5-tupel Q,Σ,S0,F⟩{displaystyle langle Q,Sigma ,delta ,S_{0},Frangle }, der:


  • Q er ei endeleg mengd av tilstandar.

  • ∑ er ei endeleg mengd av symbol, denne mengda kallar vi alfabetet til det språket som automaten aksepterer.

  • δ er overføringsfunksjonen, for endelege tilstandsmaskinar går han frå tilstandar og symbol til tilstandar:

δ:Q×ΣQ.{displaystyle delta :Qtimes Sigma rightarrow Q.}
Denne funksjonen kan me enkelt utvida, slik at han, i staden for å ta berre eitt symbol frå alfabetet, tar ein streng av symbol, og gjev attende den tilstanden automaten vil stå etter at han har prosessert input. Dette kan vi skrive som

δ^:Q×ΣQ.{displaystyle {hat {delta }}:Qtimes Sigma ^{star }rightarrow Q.}

der ∑* er Kleene-lukkinga av ∑.

Definisjonen av δ er litt meir komplisert for ikkje-endelege automatar.


  • S0 er starttilstanden, altså den tilstanden automaten er i når input enno ikkje er prosessert( S0∈ Q).

  • F er ei mengd med tilstandar i Q (dvs. F⊂Q), som vi kallar aksepterande tilstandar.



Med alt dette definert kan vi seie at språket L{displaystyle L}, akseptert av ein deterministisk endeleg tilstandsautomat M=⟨Q,Σ,S0,F⟩{displaystyle M=langle Q,Sigma ,delta ,S_{0},Frangle } er:


L={w∈Σ^(S0,w)∈F}{displaystyle L={win Sigma ^{star }|{hat {delta }}(S_{0},w)in F}}

Det er med andre ord mengda av alle orda w, over alfabetet Σ{displaystyle Sigma }, som, viss vi gjev det som input til M vil få M til å gå til ein aksepterande tilstand frå F.



Klassar av automatar |


Avhengig av kva me utstyrer ein automat med, vil dei få ulike eigenskapar og vera i stand til å gjenkjenna ulike typar formelle språk.


Fordelen med enklare automatar er at dei ofte er enklare å implementera i dataprogram, enklare å avlusa, og at det finst provbart raskare algoritmar for køyring, og algoritmar som kontrollerer om dei kjem til å stoppa eller ikkje.


Ulempen er altså at visse formelle språk ikkje lar seg gjenkjenna av dei enklare automatane, t.d. vil ein maskin utan minne ikkje kunna sjekka om ein vilkårleg lang streng med parentesar er balanserte.



Endelege tilstandsautomatar |


Dette er tre typar av endelege tilstandsautomatar:




Deterministiske endelege tilstandsautomatar (DFA) 

Kvar tilstand i ein slik automat har ei overføring for kvart symbol i alfabetet.


Ikkje-deterministiske endelege tilstandsautomatar (NFA) 

Kvar tilstand i ein slik automat har ei overføring for kvart symbol i alfabetet, eller kan ha fleire moglege overføringar for eit symbol. Automaten aksepterer eit ord viss det finst minst ein sti frå S0 til ein tilstand i F som er merkt med, eller resulterer i, input-ordet. Viss ei overføring er udefinert, slik at automaten ikkje veit korleis han skal halde fram med å lese input, blir ordet forkasta.


Ikkje-deterministiske endelege tilstandsautomatar (NFA), med ε overføringar (FND-ε eller ε-NFA) 

I tillegg til å vere i stand til å hoppe til andre (eller ingen) symbol. Med andre ord: viss ein tilstand har overgangar som er merkte med ϵ{displaystyle epsilon }, så kan NFA-en vere i kva tilstand som helst som automaten kjem til med ϵ{displaystyle epsilon }-overgangar, direkte eller via andre tilstandar med ϵ{displaystyle epsilon }-overgangar. Mengda av tilstandar me kan nå med denne metoden frå ein tilstand q, kallar vi ϵ{displaystyle epsilon }-lukkinga av q.


Det er mogleg å vise at alle desse automatane kan akseptere dei same språka. Det er alltid mogleg å konstruere ein DFA M' som aksepterer det same språket som det ein NFA M gjer.



Automatar med minne |


Mengda av språk akseptert av automatane som er skildra ovanfor, kallar vi mengda av regulære språk. Kraftigare automatar kan akseptere meir kompliserte språk. Slike automatar er m.a.




pushdown-automatar (PDA) 

Slike maskinar er identiske med DFAar (eller NFAar), med det unntaket at dei i tillegg kan ha minne i form av ein stabel. Overgangsfunksjonen δ{displaystyle delta } er avhengig av symbolet eller symbola på toppen av stabelen, og spesifiserer korleis stabelen skal endrast for kvar overgang. PDA-ar aksepterer kontekst-frie språk.


Turingmaskinar 

Dette er dei kraftigaste datamaskinene. Dei har eit uavgrensa minne, i form av ein tape, og eit lesehovud som kan lese og endre tapen, og kan flytte seg i begge retningane av tapen. Turingmaskinar er ekvivalent til algoritmar, og er det teoretiske grunnlaget for moderne datamaskiner. Turingmaskiner godtek rekursivt teljelege språk.


Lineært bunde automatar (LBA)

Ein LBA er ein avgrensa Turingmaskin; i staden for ein uendeleg tape har tapen ein storleik som er proporsjonell til storleiken på input-strengen. LBA-ar godtek kontekstsensitive språk.


Alle automatane over kan implementerast med fysiske datamaskinar, viss me ser forbi kravet til uavgrensa minne i turingmaskinar. Det finst matematiske modellar for endå kraftigare automatar, t.d. Büchi-automatar som kan gjenkjenna uendelege strengar (og representerer aksept ved å gå innom aksepterande tilstandar uendeleg mange gongar), men desse kan av naturlege grunnar ikkje implementerast i fysiske datamaskinar.



Formelle språk gjenkjent av automattypane |


Dette er ei ufullstendig liste over automattypar og kva formelle språk dei kan gjenkjenna:



































Automat
Gjenkjente språk

Ikkje-deterministisk/Deterministisk endeleg tilstandsmaskin (FSM)

regulære språk

Deterministisk pushdown-automat (DPDA)

deterministiske kontekstfrie språk

Pushdown-automat (PDA)

kontekstfrie språk.

Lineært bunden automat (LBA)

kontekstsensitive språk.

Turingmaskin

rekursivt teljelege språk
Deterministiske Büchi-automat

ω-grense-språk
Ikkje-deterministisk Büchi-automat, Rabin-automat, Streett-automat, Parity-automat, Muller-automat

ω-regulære språk


Bruksområde |


Automatar blir brukt i mange ulike samanhengar.


Innanfor språkteknologi er dei brukt til å modellere naturleg språk.





Bakgrunnsstoff |


  • Visual Automata Simulator


Litteratur |



  • John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman - Introduction to Automata Theory, Languages, and Computation (2nd Edition)


  • Michael Sipser (1997). Introduction to the Theory of Computation. PWS Publishing. ISBN 0-534-94728-X.  Part One: Automata and Languages, chapters 1–2, pp.29–122. Section 4.1: Decidable Languages, pp.152–159. Section 5.1: Undecidable Problems from Language Theory, pp.172–183.

  • Roche, E., & Schabes, Y. (Eds.). (1997). Finite-state language processing. MIT press.



Kjelder |



  • Delar av denne artikkelen bygger på «Automata theory» frå Wikipedia på engelsk, den 17. september 2006.










































Automatteori: formelle språk og formell grammatikk

Chomsky-
hierarkiet


Grammatikkar

Språk

Minimal
automat

Type-0

Uavgrensa

Rekursivt nummererbare

Turingmaskin
(ikkje med)
(ikkje noko felles namn)

Rekursive

Decider
Type-1

Kontekst-sensitiv

Kontekst-sensitive

Lineært bunde
Type-2

Kontekst-fri

Kontekst-fri

Pushdown
Type-3

Regulær

Regulær

Finitt

Kvar kategori av språk eller grammatikkar er eit ordentleg subsett av kategorien rett over han.






Popular posts from this blog

Olav Thon

Waikiki

Hudsonelva