Regulære udtryk og endelige automater



Relaterede dokumenter
Regulære udtryk og endelige automater. Ugens emner

Seminar 1 Regularitet og Automater 28/1-2012

1. Seminar EVU RegAut

En karakteristik af de regulære sprog. Ugens emner. FA minimering [ ] MyHill-Nerode-sætningen en algoritme til minimering af FA er

Ja! det beviste vi uge 16+17

Regularitet & Automater Eksamensnotater

Regularitet og Automater. Tobias Brixen Q4-2012

Noter til DM517 Beregnelighed

Regularitet og Automater

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides

1. Seminar EVU RegAut

Nogle grundlæggende begreber

Grundlæggende Matematik

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik

DM517:Supplerende noter om uafgørlighedsbeviser:

Matematisk induktion

Ugens emner. Regulære sprog og digitale billeder. Adressering af områder. Et alfabet. Dette billede: kan repræsenteres af en FA med 832 tilstande

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005

Grundlæggende Matematik

Eksamensopgaver i DM17, Januar 2003

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007

t a l e n t c a m p d k Matematiske Metoder Anders Friis Anne Ryelund 25. oktober 2014 Slide 1/42

Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 24. januar 2007

Skriftlig Eksamen Beregnelighed (DM517)

K 7 - og K 4,4 -minors i grafer

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

It og informationssøgning Forelæsning november 2006 Nils Andersen. Regulære udtryk og formelle sprog

Oversættere, ugeopgave 3

Baggrundsnote om logiske operatorer

Grundlæggende køretidsanalyse af algoritmer

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Skriftlig eksamen i Datalogi

DM507 Algoritmer og datastrukturer

Sammenhængskomponenter i grafer

Matematik YY Foråret Kapitel 1. Grupper og restklasseringe.

er et helt tal. n 2 AB CD AC BD (b) Vis, at tangenterne fra C til de omskrevne cirkler for trekanterne ACD og BCD står vinkelret på hinanden.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Elementær Matematik. Mængder og udsagn

Implikationer og Negationer

Diskrete Matematiske Metoder. Jesper Lützen

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.

Skriftlig eksamen, Programmer som Data Onsdag 6. januar Spørgsmål 1 (20 %): Regulære udtryk og automater

Noget om en symmetrisk random walks tilbagevenden til udgangspunktet

1 Beregnelighed. 1.1 Disposition. 1.2 Præsentation. Def. TM. Def. RE/R. Def. 5 egenskaber for RE/R. Def. NSA. Bevis. NSA!RE. Def. SA. Bevis. SA!

Løsning af møntproblemet

Repræsentation af tal

Skriftlig Eksamen Diskret Matematik (DM528)

Funktionel afhængighed

Grafer og graf-gennemløb

Oversættere Skriftlig eksamen onsdag d. 20. april 2005

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Analyse af ombytningspuslespil

Analyse 2. Gennemgå bevis for Sætning Supplerende opgave 1. Øvelser. Sætning 1. For alle mængder X gælder #X < #P(X).

Løsning til aflevering - uge 12

Analyse af ombytningspuslespil

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig eksamen i Datalogi

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

DM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen

Eksempel på den aksiomatisk deduktive metode

Archimedes Princip. Frank Nasser. 12. april 2011

DM507 Algoritmer og datastrukturer

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Automatteori og Beregnelighed (DM17)

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2

t a l e n t c a m p d k Matematik Intro Mads Friis, stud.scient 27. oktober 2014 Slide 1/25

Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Danmarks Tekniske Universitet

Relationel Algebra...1. Indholdsfortegnelse...1. Operationer på den relationelle model...2

Skriftlig eksamen - med besvarelse Topologi I (MM508)

CPUer og maskinkode DM534. Rolf Fagerberg

6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002

Vi indleder med at minde om at ( a) = a gælder i enhver gruppe.

13 Markovprocesser med transitionssemigruppe

Danmarks Tekniske Universitet

Grafer og graf-gennemløb

DM507 Algoritmer og datastrukturer

Dat 2/BAIT6/SW4: Syntaks og semantik En manual for studerende

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Matematik. 1 Matematiske symboler. Hayati Balo,AAMS. August, 2014

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Fejlkorligerende køder Fejlkorrigerende koder

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

GEOMETRI-TØ, UGE 8. X = U xi = {x i } = {x 1,..., x n }, U α, U α = α. (X \ U α )

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Begreber til Grafen. til brug for ønske om modellering af grafobjekt.

Transkript:

Regulære udtryk og endelige automater Regulære udtryk: deklarative dvs. ofte velegnede til at specificere regulære sprog Endelige automater: operationelle dvs. bedre egnet til at afgøre om en given streng er i sproget Ethvert regulært udtryk kan oversættes til en endelig automat og omvendt (bevises næste uge...) 2

En endelig automat En endelig automat, der genkender strenge over alfabetet ={,} med ulige antal er: Automaten læser strengen ét tegn ad gangen, fra venstre mod højre Hvis automaten ender i en accept-tilstand, så accepteres(=genkendes) strengen 3

At køre en streng på en automat Eksempel: vi vil vide om strengen accepteres Vi starter i starttilstanden og læser strengen Vi ender i en ikke-accept tilstand, så strengen accepteres ikke 4

Hvad repræsenterer tilstandene? Hver tilstand repræsenterer en viden om den hidtil læste delstreng Eksempel: X Y X: der er læst et lige antal er Y: der er læst et ulige antal er 5

Formel definition af endelige automater En endelig automat (finite automaton/fa) er et 5-tupel (Q,, q, A, ) hvor Q er en endelig mængde af tilstande er et alfabet q Q er en starttilstand A Q er accepttilstande : Q Q er en transitionsfunktion 6

Eksempel Denne grafiske repræsentation af en automat: X Y svarer til 5-tuplet (Q,, q, A, ) hvor Q = {X,Y} = {,} q = X A = {Y} : Q Q er denne funktion: tilstand input X X Y Y Y X 7

Hvorfor en formel definition? Den formelle definition viser kort og præcist hvad en FA er For eksempel, en FA har endeligt mange tilstande den har præcis én starttilstand en vilkårlig delmængde af tilstandene kan være accepttilstande for enhver tilstand q og alfabetsymbol a er der én udgående transition (til tilstanden (q,a)) der er ikke noget krav om, at alle tilstande kan nås fra starttilstanden 8

Sproget af en automat 5-tupel-definitionen fortæller hvad en FA er Vi vil nu definere hvad en FA kan: En FA accepterer en streng, hvis dens kørsel fra starttilstanden ender i en accepttilstand Sproget (M) af en FA M er mængden af strenge, den accepterer M genkender sproget (M) 9

Formel definition af (M) Givet en FA M=(Q,, q, A, ), definer den udvidede transitionsfunktion *: Q * Q ved *(q, x) = q ( *(q, y), a) hvis x= hvis x=ya hvor y * og a x * accepteres af M hvis og kun hvis *(q, x) A Definer (M) = { x * x accepteres af M }

Quiz! Lad ={a,b}. Tegn en FA M så.... (M) = * a,b 2. (M) = Ø a,b a 3. (M) = {a} b a,b a,b a b 4. (M) = { x * n a (x) lige og n b (x) ulige } n a (x): ad hoc notation for antal a er i strengen x b a b b a a

Skelnelighed Givet et sprog L, hvor mange tilstande er nødvendige i en FA M hvis (M)=L? To strenge, x og y, skal ende i forskellige tilstande, hvis der er behov for at kunne skelne dem dvs. z *: (xz L yz L) (xz L yz L) *(q, x) *(q, y) 2

Definition af skelnelighed Lad L * og x,y * x og y er skelnelige mht. L hvis z *: (xz L yz L) (xz L yz L) Alternativ definition (som i bogen): Kvotientsproget L/x defineres som L/x = { z * xz L } dvs., x og y er skelnelige mht. L hvis L/x L/y z skelner x og y mht. L hvis z L/x - L/y eller z L/y - L/x 3

Eksempel Hvis L = { s {,}* s ender med } x = y = så er x og y skelnelige mht. L Bevis: z = skelner x og y dvs. hvis (Q,, q, A, ) genkender L så er *(q, x) *(q, y) 4

Nødvendigt antal tilstande i en FA Antag x, x 2,..., x n * og for ethvert par x i,x j, i j er x i og x j skelnelige mht. L Enhver FA der genkender L har mindst n tilstande Bevis (skitse): antag FA en har færre end n tilstande det medfører at i j: *(q, x i )= *(q, x j ) modstrid med at x i og x j er skelnelige mht. L 5

Eksempel : en stor automat Lad L 42 = { x {,}* x 42 og det 42. symbol fra højre i x er et } Lad x, x 2,..., x 2 42 være alle strenge af længde 42 over alfabetet {,} Disse strenge er alle parvist skelnelige mht. L 42 En automat der genkender L 42 har derfor mindst 2 42 tilstande (...hvis den overhovedet findes) 6

Eksempel 2: palindromer Lad pal = { x {,}* x=reverse(x) } Lad x og y være to vilkårlige forskellige strenge over {,} x og y er skelnelige mht. pal (bevis: se bogen...) Vi kan altså finde en vilkårligt stor mængde parvist skelnelige strenge, så pal er ikke regulært 7

Forening af regulære sprog Givet to regulære sprog, L og L 2 er L L 2 også regulært? Ja! (dvs. klassen af regulære sprog er lukket under forening) 8

Eksempel M : (strenge med lige antal er) X Y M 2 : A (strenge der ender med ) B M: (M) = (M ) (M 2 ) XA XB YA YB 9

Produktkonstruktionen Antag vi har to FA er: M = (Q,, q, A, ) M 2 = (Q 2,, q 2, A 2, 2 ) Definer en ny FA: M = (Q,, q, A, ) hvor Q = Q Q 2 q = (q, q 2 ) A = { (p, q) p A q A 2 } ((p, q), a) = ( (p, a), 2 (q, a)) produktmængden af tilstandene Der gælder nu: (M) = (M ) (M 2 ) 2

Konstruktivt bevis for korrekthed Lemma: x *: *((p, q), x) = ( *(p, x), 2 *(q, x)) (Bevis: opgave 2., induktion i x) Brug lemmaet samt definitionerne af M og ( ) 2

Nøjes med opnåelige tilstande Produktkonstruktionen bruger Q = Q Q 2 I praksis er hele tilstandsrummet sjældent nødvendigt Eksempel: M X Y : M 2 : A B M: (M) = (M ) (M 2 ) XA XB YA YB Kun tilstande, der er opnåelige fra starttilstanden er relevante for sproget! (Bevis: opg.) 22

Fællesmængde og differens Givet to regulære sprog, L og L 2. er L L 2 også regulært? 2. er L -L 2 også regulært? Ja! (dvs. klassen af regulære sprog er lukket under fællesmængde og differens) Bevis: produktkonstruktion som ved men for, vælg A = { (p, q) p A q A 2 } for -, vælg A = { (p, q) p A q A 2 } 23

Komplement Givet et regulære sprog R er R (Rs komplement) også regulært? Ja! (dvs. klassen af regulære sprog er lukket under komplement) Bevis : Vælg L = * og L 2 = R, hvorved R = L -L 2 Bevis 2: Givet en FA M = (Q,, q, A, ) hvor (M)=R Definer M = (Q,, q, Q-A, ) Derved gælder at (M )=R (hvorfor?) 24

Eksempel M: XA YA (strenge med lige antal er eller ender med ) XB YB M : (M ) = ( (M)) (strenge med ulige antal er og ender ikke med ) XA XB YA YB 25

dregaut Java-pakken Udleverede programdele: FA.java: repræsentation af FA er Alphabet.java, State.java, StateSymbolPair.java, AutomatonNotWellDefinedException.java: hjælpeklasser til FA.java 26

FA.java public class FA { public Set<State> states; public Alphabet alphabet; public State initial; public Set<State> accept; public Map<StateSymbolPair,State> transitions; }... // Q // // q Q // A Q // : Q Q et Alphabet objekt indeholder mængde af Character objekter et StateSymbolPair objekt består af et State objekt og et Character objekt 27

Nyttige metoder i FA.java FA() - konstruerer uinitialiseret FA objekt FA(Alphabet a) - konstruerer FA for det tomme sprog clone() - kloner et FA objekt checkwelldefined() - undersøger om FA objektet repræsenterer en veldefineret FA getnumberofstates() - returnerer størrelsen af states settransition(state q, char c, State p) - tilføjer en c transition fra q til p todot() - konverterer FA objekt til Graphviz dot input (til grafisk repræsentation) 28

Automater til modellering og verifikation Eksempel: en jernbaneoverskæring Tre komponenter: et tog krydser vejen kommunikerer med kontrolsystemet et kontrolsystem styrer bommen en bom Sikkerhedsegenskab: bommen er altid nede, når toget krydser vejen 29

TOG approach Modellering af systemet KONTROLSYSTEM approach BOM lower exit cross raise lower raise down exit up Begivenheder: approach: toget nærmer sig cross: toget krydser vejen exit: toget forlader området lower: besked til bommen om at gå ned raise: besked til bommen om at gå op down: bommen går ned up: bommen går op 3

Modellering som FA er Eksempel: lower, raise, down, up lower, raise, down, up approach M TOG = cross, exit exit cross lower, raise, down, up, approach, cross, exit approach, cross lower, raise, down, up approach, exit definer accepttilstande tilføj loop-transitioner så komponenterne får samme alfabet tilføj crash-tilstand og ekstra transitioner så transitionsfunktionen bliver total 3

Kombination af komponenterne Vi er interesseret i de sekvenser af begivenheder, der opfylder alle komponenterne Produktkonstruktion: (M) = (M TOG ) (M KONTROL ) (M BOM ) 32

Modellering af sikkerhedsegenskaben bommen er altid nede, når toget krydser vejen up, approach, exit, lower, raise down cross, down, approach, exit, lower, raise S = cross up cross, down, up, approach, exit, lower, raise 33

Verifikation Korrekthed: (M) ( (S)) = Ø dvs. vi skal bruge produktkonstruktion (igen) komplement algoritme til at afgøre om sproget for en given FA er tomt (uge 9) hvis (M) ( (S)) Ø: enhver streng i (M) ( (S)) svarer til et modeksempel (algoritme: uge 9) 34

Verifikation med dregaut-pakken Opbyg FA-objekter svarende til M TOG, M KONTROL, M BOM, og S Kombiner med FA.intersection() og FA.complement() Brug FA.isEmpty() og FA.getAShortestExample() Resultat: modeksempel: approach lower down up cross 35

Resume Definition af endelige automater og deres sprog Skelnelighed, hvad repræsenterer tilstandene, nødvendigt antal tilstande Produktkonstruktionen, komplement (konstruktive beviser) dregaut.fa klassen, Java-repræsentation af FA er Eksempel: automater til modellering og verifikation 36

Opgaver [Martin]: Læs, forstå og konstruer endelige automater Produktkonstruktion Skelnelige strenge Java: Studér udleverede programdele: repræsentation af FA er ekstra udleverede metoder: delta, deltastar, complement Implementér FA metoder: accepts,intersection, union, minus Opbyg en FA og vis den grafisk Ugens finurlige opgave: Vis at endelige automater kan udføre addition af binære tal Afleveringsopgave: Udfør produktkonstruktionen på to FA er + Java-impl. 37