Regulære udtryk og endelige automater. Ugens emner

Relaterede dokumenter
Regulære udtryk og endelige automater

1. Seminar EVU RegAut

Seminar 1 Regularitet og Automater 28/1-2012

Ja! det beviste vi uge 16+17

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

Regularitet & Automater Eksamensnotater

Regularitet og Automater. Tobias Brixen Q4-2012

Noter til DM517 Beregnelighed

Regularitet og Automater

1. Seminar EVU RegAut

DM517:Supplerende noter om uafgørlighedsbeviser:

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

Eksamensopgaver i DM17, Januar 2003

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

Skriftlig Eksamen Beregnelighed (DM517)

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides

Matematisk induktion

Nogle grundlæggende begreber

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!

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

Skriftlig Eksamen Automatteori og Beregnelighed (DM17)

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

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

Grundlæggende Matematik

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

Sammenhængskomponenter i grafer

Grafer og graf-gennemløb

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

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Grundlæggende Matematik

Baggrundsnote om logiske operatorer

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

Kursusgang Rekursive definitioner. 14. april Mystiske eksempler. Hvad er en rekursiv definition egentlig? Partielle ordninger

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

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

Oversættere, ugeopgave 3

DM507 Algoritmer og datastrukturer

Skriftlig eksamen i Datalogi

Implikationer og Negationer

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Strings and Sets: set complement, union, intersection, etc. set concatenation AB, power of set A n, A, A +

DATALOGISK INSTITUT, AARHUS UNIVERSITET

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

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Grafer og graf-gennemløb

13 Markovprocesser med transitionssemigruppe

Grundlæggende køretidsanalyse af algoritmer

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Løsning af møntproblemet

Skriftlig Eksamen Beregnelighed (DM517)

Elementær Matematik. Mængder og udsagn

Skriftlig Eksamen Diskret Matematik (DM528)

GEOMETRI-TØ, UGE 6. . x 1 x 1. = x 1 x 2. x 2. k f

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

Analyse af ombytningspuslespil

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

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

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

Diskrete Matematiske Metoder. Jesper Lützen

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

Løsning til aflevering - uge 12

DM507 Algoritmer og datastrukturer

Grafer og graf-gennemløb

DM507 Algoritmer og datastrukturer

Skriftlig eksamen i Datalogi

DM507 Algoritmer og datastrukturer

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

Archimedes Princip. Frank Nasser. 12. april 2011

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Fejlkorligerende køder Fejlkorrigerende koder

CPUer og maskinkode DM534. Rolf Fagerberg

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

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

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Repræsentation af tal

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

= λ([ x, y)) + λ((y, x]) = ( y ( x)) + (x y) = 2(x y).

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

DM507 Algoritmer og datastrukturer

Funktionel afhængighed

Programmering og Problemløsning, 2017

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

Fejlkorligerende køder Fejlkorrigerende koder

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

Kalkulus 2 - Grænseovergange, Kontinuitet og Følger

Bevisteknikker. Bevisteknikker (relevant både ved design og verifikation) Matematisk induktion. Matematisk induktion uformel beskrivelse

Eksempel på den aksiomatisk deduktive metode

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

Matematisk modellering og numeriske metoder. Lektion 16

Matematiske metoder - Opgavesæt

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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

Transkript:

Ugens emner Endelige automater [Martin, kap. 3.2-3.5] endelige automater og deres sprog skelnelighed produktkonstruktionen Java: dregaut.fa klassen automater til modellering og verifikation 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 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 3 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 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 5 6 Eksempel Hvorfor en formel definition? 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 X Y input X Y Y X 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 7 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 L(M) af en FA M er mængden af strenge, den accepterer M genkender sproget L(M) Formel definition af L(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 L(M) = { x Σ* x accepteres af M } 9 Quiz! Skelnelighed Lad Σ={a,b}. Konstruér en FA M så.... L(M) = Σ* a,b Givet et sprog L, hvor mange tilstande er nødvendige i en FA M hvis L(M)=L? 2. L(M) = Ø 3. L(M) = {a} a,b a,b 4. L(M) = { x Σ* n a (x) lige og n b (x) ulige } b a a,b a b a b b a b a To strenge, x og y, skal ende i forskellige tilstande, hvis der er behov for at kunne skelne dem dvs., δ*(q, x) δ*(q, y) hvis z Σ*: (xz L yz L) (xz L yz L) 2

Definition af skelnelighed Lad L Σ* og x,y Σ* Kvotientsproget L/x defineres som L/x = { z Σ* xz L } 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 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) 3 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 Eksempel : en stor automat Lad L 42 = { x {,}* x 42 og det 42. symbol fra højre i x er et } Enhver FA der genkender L har mindst n tilstande Bevis (skitse): antag FA en har færre 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 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) 5 6

Eksempel 2: palindromer Lad pal = { x {,}* x=reverse(x) } Lad x og y være 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 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) 7 8 Eksempel Produktkonstruktionen M : (strenge med lige antal er) X Y Antag vi har to FA er: M = (Q, Σ, q, A, δ ) M 2 = (Q 2, Σ, q 2, A 2, δ 2 ) M 2 : (strenge der ender med ) M: L(M) = L(M ) L(M 2 ) A B XA XB YA YB 9 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)) Der gælder nu: L(M) = L(M ) L(M 2 ) produktmængden af tilstande 2

Konstruktivt bevis for korrekthed Lemma: x Σ*: δ*((p, q), x) = (δ *(p, x), δ 2 *(q, x)) (Bevis: opgave 3.32, induktion i x) Brug lemmaet samt definitionerne af M og L( ) 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: L(M) = L(M ) L(M 2 ) XA XB YA YB 2 Kun tilstande, der er opnåelige fra starttilstanden er relevante for sproget! (Bevis: opg. 3.29) 22 Snitmæ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 snit og differens) Bevis: produktkonstruktion som ved men for, vælg A = { (p, q) p A q A 2 } for-, vælga = { (p, q) p A q A 2 } 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 L(M)=R Definer M = (Q, Σ, q, Q-A, δ) Derved gælder at L(M )=R 23 24

Eksempel dregaut Java-pakken M: (strenge med lige antal er eller ender med ) XA YA Udleverede programdele: FA.java: repræsentation af FA er XB YB M : L(M ) = (L(M)) (strenge med ulige antal er og ender ikke med ) XA XB YA YB Alphabet.java, State.java, StateSymbolPair.java, AutomatonNotWellDefinedException.java: hjælpeklasser til FA.java 25 26 FA.java Nyttige metoder i 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 FA() - konstruerer uinitialiseret FA objekt FA(Alphabet a) -konstruererfa for det tomme sprog clone() -kloneret 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) 27 28

Automater til modellering og verifikation Modellering af systemet 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 TOG KONTROLSYSTEM approach approach exit cross raise lower exit 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 raise BOM lower up down 29 3 Modellering som FA er Kombination af komponenterne Eksempel: lower, raise, down, up approach lower, raise, down, up Vi er interesseret i de sekvenser af begivenheder, der opfylder alle komponenterne M TOG = cross, exit lower, raise, down, up, approach, cross, exit exit approach, cross lower, raise, down, up cross approach, exit Produktkonstruktion: L(M) = L(M TOG ) L(M KONTROL ) L(M BOM ) definer accepttilstande tilføj loop-transitioner så komponenterne får samme alfabet tilføj crash-tilstand og ekstra transitioner så transitionsfunktionen bliver total 3 32

Modellering af sikkerhedsegenskaben bommen er altid nede, når toget krydser vejen Verifikation Korrekthed: L(M) (L(S)) = Ø S = up, approach, exit, lower, raise cross down up cross, down, approach, exit, lower, raise dvs. vi skal bruge produktkonstruktion (igen) komplement algoritme til at afgøre om sproget for en given FA er tomt (uge 9) cross, down, up, approach, exit, lower, raise hvis L(M) (L(S)) Ø: enhver streng i L(M) (L(S)) svarer til et modeksempel (algoritme: uge 9) 33 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 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 35 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 37