Reguliere talen

Preview:

DESCRIPTION

Reguliere talen. Reguliere grammatica: versimpelde Contextvrije grammatica Finite-state Automaton: andere manier om een taal te beschrijven Reguliere Expressie nog een andere manier. Alle drie kunnen ze dezelfde talen beschrijven. triviaal. Stelling 12. onmogelijk. triviaal. Stelling 13. - PowerPoint PPT Presentation

Citation preview

Reguliere talen

Reguliere grammatica:versimpelde Contextvrije grammatica

Finite-state Automaton:andere manier om een taal te beschrijven

Reguliere Expressienog een andere manier

Alle drie kunnen zedezelfde talen beschrijven

Reguliere talen: overzicht

RGDefinitie 8 +9

DFADefinitie 1 +3

NFADefinitie 4 +6

REDefinitie 14+15

Stelling 13

Stelling 12

Stelling 7

triviaal

ZRGDefinitie (11)

Stelling 11

triviaal

CFGDefinitie 2.5+7

triviaal

onmogelijk

Stelling 16

Stelling 17

DFA: DeterministischeFinite-state Automaton

…bestaat uit 5 onderdelen: Alfabet: X eindige

verzameling

Toestanden: Q eindige verzameling

Transitiefunctie: d :: QXQ Start-toestand: S Q Eind-toestanden: F Q

Voorbeeld DFA

Alfabet {a, b, c} Toestanden

{S,X,Y,Z} Transitiefunctie

d S a = Zd S b = Xd S c = Sd X a = Yd Y c = Z

Start S Eind {Z}

S Z

X Y

a

b

a

c

c

Runnen van een DFA

Waar kom je uitbeginnend in Sals je de lettersvan een string accepteert?

S Z

X Y

a

b

a

c

c

run :: (QXQ) Q [X] Q run d q [ ]=run d q (x:xs)=

qrun d (d q x) xsrun = foldl

Definitie 3Taal van een DFA

Zij DFA = ( X, Q, d, S, F)

de taal van DFA

is

{ z X* | run d S z F }

L(DFA)

NFA: Non-deterministischeFinite-state Automaton

…bestaat uit 5 onderdelen: Alfabet: X eindige

verzameling

Toestanden: Q eindige verzameling

Transitiefunctie: d :: QXQ Start-toestand: S Q Eind-toestanden: F Q

{Q}en:

Voorbeeld DFA

Alfabet {a, b, c} Toestanden

{S,X,Y,Z} Transitiefunctie

d S a = Zd S b = Xd S c = Sd X a = Yd Y c = Z

Start S Eind {Z}

S Z

X Y

a

b

a

c

c

Voorbeeld NFA

Alfabet {a, b, c} Toestanden

{S,X,Y,Z} Transitiefunctie

d S a = {Z} d S b = {X} d S c = {S} d X a = {Y, S} d Y c = {Z}

Start {S} Eind {Z}

S Z

X Y

a

b

a

c

c

a

Runnen van een NFA

Waar kan je uitkomenbeginnend in één van de Sals je de letters van een string accepteert?

run :: (QX{Q}) {Q} [X] {Q} run d qs [ ]=run d qs (x:xs)

=

qsrun d (stap d qs x) xsrun d qs = foldl (stap d) qs

stap d qs a = { r | q qs, r d q a }

Definitie 6Taal van een NFA

Zij NFA = ( X, Q, d, S, F)

de taal van NFA

is

Dus: Je kunt uitkomen in een eindtoestand

{ z X* | q S, run d q z F }

L(NFA)

StellingDFA en NFA even krachtig

Bewijs: Geef me een DFA

dan construeer ik een NFA met dezelfde taal

Geef me een NFAdan construeer ik een DFA met dezelfde taal

Triviaal(gebruik overal singleton-verzamelingen)

Stelling 7

S

Z

SX

SY

X

SXY

XY

Y

XZ

SZ

SXZ

ZY

XYZ

SYZ

SXYZ

Bewijs stelling 7Constructie NFA DFA

S Z

X Y

a

b

a

c

c

a ab

a

c

enzovoort…

a

b

c

a

b

c

S

Z

SY

X

SZ

Bewijs stelling 7Constructie NFA DFA

S Z

X Y

a

b

a

c

c

a ab

a

c

a

b

c

a

b

c

S Z

SY

X SZ

Bewijs stelling 7Constructie NFA DFA

S Z

X Y

a

b

a

c

c

a

c

a

b

c

aaa

bb

c

Met als elementen: A w

waarbij A N w (NT)*

DefinitieGrammatica

Een grammatica bestaat uit (T, N, R, S)

Het alfabet T eindig Hulpsymbolen N eindig

TN=Ø Productieregels R eindig Een startsymbool S één S N

Definitie 8CFG/RG/ZRG Grammatica

Regels van de vorm Aw met A N en

Contextvrije grammatica (CFG)

Reguliere grammatica (RG)

Zeer reguliere grammatica (ZRG)

w (NT)*

w T* N?

A NA w

w T+ N?

w = en A=S

Stelling 12L(NFA) L(RG)

Geef me een NFAdan construeer ik een RG met dezelfde taal Alfabet Terminal symbolen Toestanden Nonterminal symbolen Start-toestand Start-symbool Transitiefunctie Regels

Z

X Ya

X a Y

Z

Stelling 11L(RG) L(ZRG)

Geef me een RG, en ik hervorm z’n regels Voor elke

voeg toeY * Z

Z w Y w Verwijde

ralle

U V

Z wY

Voor elkevoeg toeZ w

Y

Verwijderalle voor U SU

T

S

Stelling 13L(ZRG) L(NFA)

Geef me een ZRG, en ik construeer een NFA

T N R

S

X Q d

S F

A w BC w

{ wT* | w deel van R}

N {}

A Bw

C w

{S}

S

{ wT* | w deel van R}T

Stelling 13aL(ZRG) L(NFA)

Geef me een ZRG, en ik construeer een NFA

T X

… met hetzelfde alfabet:

vervang

door

X Ya b c

Xa

X’b

X”c

Y

(en een paar extra toestanden)

Reguliere Expressie

Makkelijke manier om snel eveneen reguliere taal te definiëren

zonder toestanden en transitiefuncties…

zonder nonterminals en herschrijfregels…

…maar met een éénregelige formule!

Definitie 14Reguliere Expressie

Reguliere expressie RET over alfabet T is:

als aTa als R,SRETR+S als R,SRETR S als RRETR* als RRET(R)

% @ Ø {}{a}

L(R) L(S)

L(R) L(S)

L(R) *

L(R)

… en beschrijfteen taal:

en 15

worden inde praktijk

niet gebruikt…

…want wiewil dit nou…

StellingRE en RG even krachtig

Bewijs: Geef me een RE

dan construeer ik een RG met dezelfde taal

Geef me een RGdan schrijf ik een RE met dezelfde taal

Stelling 16

Stelling 17 (via 11, 13, 7)

…maar anderslukt dit niet!

S S1

S

S S1

S S1

S S2S

Stelling 16L(RE) L(RG) Geef me een RE, en ik construeer

met inductie een RG

% @ a u+v u v u*

S aS1 … X bYY acZ

S2 …

S2 …S1 …

S2

S2

S1 …X bYY acZ

SS

Stelling 17L(DFA) L(RE)

Geef me een DFA, en ik schrijf een RE

S

C

A

B

a

b

c

S = aA + bB + cCA = …B = …C = …

Stelsel recursieve vergelijkingen

+ @

A=z(x+y) A=zx+zyA=xA+z A=x* z

Oplossen met behulp van

Reguliere talen: overzicht

RGDefinitie 8 +9

DFADefinitie 1 +3

NFADefinitie 4 +6

REDefinitie 14+15

Stelling 13

Stelling 12

Stelling 7

triviaal

ZRGDefinitie (11)

Stelling 11

triviaal

CFGDefinitie 2.5+7

triviaal

onmogelijk

Stelling 16

Stelling 17

Recommended