제3장. regular languages 와sclab.yonsei.ac.kr/courses/07am/chap03.pdf · 2007. 3. 29. ·...

19
3. Regular Languages Regular Grammars 학습목표 Finite Automata 이외에 Regular Language를 표현하는 방법으로 Regular ExpressionRegular Grammar에대 해 학습하고 3가지가 동일함을 이해한다

Upload: others

Post on 18-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

제 3장. Regular Languages 와Regular Grammars

학습목표

Finite Automata 이외에 Regular Language를표현하는방법으로 Regular Expression과 Regular Grammar에대

해학습하고 3가지가동일함을이해한다

Page 2: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

개요

grammarsregularsexpressionregular

waysconcisemoreneed:NFAorDFAmethodsnDescriptio

nfa)or(dfaaccepterfinite:? languageregular L

⎯→⎯⋅

∃⋅ 하나라을언제

Concise but important practical applications

Page 3: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

Regular Expressions

},,,,,,,,,{)( }{}{

},,{,}{),,,),(,

L

U

aabcaaabcbcbcaabcaabcabcaclosurestarbca

cbacbaaaa

λ=+→−

++→→

∗⋅+∑∈

∗의

⎜⎜⎜

⋅+→

∑∈⋅

nsapplicatioofno.finitebyRE primitivefromdrivediffRE:string3.RE:)(,,,RE:,2.

sexpressionregular primitive:,,.1:

11212121 rrrrrrrraDef λφ

REREnot⎩

⎨⎧

+++⋅⋅+

=∑∗

:)(:)()(

},,{)ba

ccbacba

φ예

그렇다면주어진 RE가나타내는언어는무엇인가?

RE의기본정의에대해서알아보자

Page 4: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

RE이나타내는언어

}{:.3}{:.2

setempty:.1

withassociatedlanguages:)(:

aa

rrLDef

λλφ

⎜⎜⎜⎜⎜

=

==⋅=+

∗∗ ))(()(.7

)())((.6)()()(.5

)()()(.4

11

11

2121

2121

rLrL

rLrLrLrLrrLrLrLrrL U

=+⋅∗ ))(() baaL예 )()( * baLaL +))()(())(( bLaLaL U∗=

},{},,,,{ baaaaaaa Lλ=

},,,,,,,{ LL aababbaaaaaa=

cba ⋅++>⋅>∗:precedence)cf

상식적인간단한정의!

Page 5: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

RE이나타내는언어: 예

regular:)()(,},{)1

bbabarba

++=

=∑∗

bbbaar ∗∗= )()()2 예

}zeroseconsecutivofpaironeleastathas:{)(}1,0{)3

wwrL ∗∑∈=

=∑예

}zeroseconsecutivofpairnohas:{)()4 wwrL ∗∑∈=예

반대는어렵다

}orbyterminated},{onstringsall{ },,,,,,{)(

bbababbbbaabbaabbarL

== L

}0,0:{)( 122 ≥≥= + mnbarL mn

∗∗ ++=→ )10(00)10(r

좀연습이필요합니다

languagesame)0()011(

)0(1)0()0111(⎟⎟⎠

++=→

+++=→∗

∗∗∗∗

λ

λλ

rr

0으로끝나는경우1로만된경우

Page 6: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

RE: Homework (Exercises 3.1)

- 5 (4) : n과m각각이짝수인경우와홀수인경우로나누면…

- 10 (9) : 세가지 case로나누어서생각해봅시다.

- 16 (14) : 쉬운문제부터어려운문제로나갑니다. 할수있는만큼만.

- 24, 25 (22, 23) : 응용문제

Page 7: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

Connection between RE and RL)((NFA)DFA rLr ⎯⎯⎯ →⎯

Generating labels of all walks

from q0 to any final state

:

)(}{}{:regular:)(acceptsNFA:1.3Thm

21

M

rrLaλφLPf.rLr

+∃→⋅

prove by induction on no. of operators

λ a λ

λ

λ

λ

λλ λ:

)()(: 121

M

rLrrLL ∗

λ

λ

λ λ

Page 8: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

)()() λ++= ∗∗ babbar예

λ

bλ λ

λ

b

a a

b λ λλ

λ

: book keeping problem (existence of cycles)

Finding NFA for L(r): 예

Regular Expressions Regular Languages : easy!!

그반대는 : Find RE capable of generating labels of all the walks fromq0 to any final state

새로운표현법이필요하겠군!

Page 9: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

subsetsgeneratedallofunionlanguagefullREwithlabeledareedges:graphtransitiondGeneralize

=⋅

)예 a+b

c*a∗∗∗ ++ cbaaa )(:

q

qqqqq jiji

removingbystateless

onewithGTGequivalent:},,{},,,{GTGofeEquivalenc

LL ⎯→⎯

neither final nor initial

e

qi qj

d

a

q

b

c ce*d

qi qj

ce*bae*d

ae*b

RE RL: GTG이용 (1)

RL GTG 변환 RE

Page 10: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

RE RL: GTG이용 (2)

FqMpfrLLrL

∉=∃→⋅

0&statefinaloneonlyhavingLacceptsthatNFA:.)(such that RE:2.3Thm

∗∗∗ += )(: 213421 rrrrrrr

prove by induction on no. of states in GTG

∗∗∗∗ ++=∴ )()( bababaabbr

q0

r1

qf

r4r3

r2

q0

a

q1b

a,b

q2

b ba

ab*bq0

a+bb+ab*a

q2

)예

이와 equivalent한 GTG로변환해가면서최종GTG를얻음

복잡해보이지만단순변환과정을실수없이하는연습이필요함

Page 11: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

RE의응용예

table)n(transitioDFANFARE:programnrecognitiopatternEDITORUNIX://

editingtext:nApplicatio)

categories several of one object togiven a assigning : matchingpattern})9,,0{},,,{(:integersPascal

→→∗

−=−+=⋅ ∗

caba

dssdd

state reduction

Page 12: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

RE/RL: Homework (Exercises 3.2)

- 4 (a), (b) : 쉽지만끈기를필요로하는변환문제

- 10 : NFA로부터 RE구하기연습

- 16 (17) : 그냥생각만해보고실제로하지는말것. 매우어려운문제!

Page 13: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

Regular Grammars : RG RL

xABxA

ifPSTVGxAxBA

ifPSTVGDef

→→

−=→→

−=⋅

sproductionalllinearleft:),,,(

sproductionalllinearright:),,,(:

NFA

EDdED d⎯→⎯→

left)orrightlyconsistent side,right in variable(onelinearleftorlinearrighteither:grammarregular −−−

Page 14: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

Regular Grammars: 예

⎜⎜⎜

→→→

AbBaBAAS

λ|

2) 예

not regular

⎜⎜⎜

→→→

aSSabSS

abSSaabSS

2

211

1

|

|)1 예 aabr ∗=− )(:linearright

+==− )(*)(:linearleft abaababar

side)right on variableonemost(atgrammarlinearbut

Page 15: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

babVVaVVGGL

| ),(acceptsFA that )

01

10

→→=예

))(( abaabL ∗∴

regular:)(linearright:),,,(:3.3Thm GLPSTVG ⎯→⎯−=⋅},{ 10 LVV=

0V

lnjii vVVvVVvV →→→ ,,, 210 L

dEDabcdEabcD

→⇒

var.onemostright:formSentential

)(

possible

byacceptedisSupposeii)

byacceptedis),(such thatpatha),(Supposei)

statefinal:),(:

),(:.

21212110

21

0

2121

2121

GLw

vvvvVvvvVvvVvV

vvvvwMw

MwwVVGLw

VaaaVaaaV

VaaaVVaaaVpf

lkkkji

lk

f

fmimi

jmijmi

∈∴

⇒⇒⇒⇒

=

∴∈∃∈

=→

=→

LL

L

LL

LL

δ

δ

δ

RG RL증명Right-linear grammar의 derivation을표현하는 NFA 구축

D Ed

V0 V1 Vfb

ab

a

Page 16: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

)(

),(,),(

,),(

,),(:

instringeverygenerate)

in

inin),(

},,,{with),,,(},,,{},,,,{

acceptsthat DFA:),,,,(.)(such that),,,(linearrightregular:4.3Thm

0

00

2110

0

GLw

Fqaqqaq

qaq

qaqM

LaaaawLGi

qFq

PqaqMqaq

qSqqVPSVGaaaqqqQLFqQMpf

GLLPSVGL

flt

tks

rjp

pi

lkji

kk

kjikji

n

mn

∈∴

∈==

=

=

∈=

⎜⎜⎝

→⎯→⎯

→⎯→⎯=

==∑==∑=

∑==∑=−⎯→⎯⋅

δδ

δ

δ

λ

δ

δ

M

L

L

LL

lkji

flkji

tkji

rjipi

aaaa

qaaaaqaaaqaaqaqG

L

L

L

⇒⇒∗

0

,onconstructiby

RG RL증명 (1) state variablesymbol terminal

DFA Grammar

Page 17: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

flkji qaaaaqGLwifii =∈ ∗ ),(),() 0 Lδ

grammarlinearright)() −∗aaabL예

λ→

→→→→

f

f

q

aqqbqqaqqaqq

2

22

21

10

Fq

qaqqbqqaqqaq

f

f

====

}{),(}{),(}{),(}{),(

2

22

21

10

δδδδ

RG RL증명 (2)

Left-linear grammar인경우는어떻게될까?

Page 18: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

regular:))((

regular:)(linearright:regular:)(

))(()(

|:linearright

|:linearleft.)(such that linearleftregular:5.3Thm

R

R

RR

GL

GLGGL

GLGL

vBvAG

vBvAGpfGLLGiffL

)

))Q

)

)

→−∴

=

→−⇒

→−=−∃⋅

grammarregularlanguageregular)(such that grammarregularregular:6.3Thm

≡⇒=∃⋅ GLLGiffL

총정리증명

Regular language를표현하는방법- DFA’s, NFA’s- Regular expressions- Regular grammars

Power면에서동등

RE

DFA or NFA

RG

1 2

3 4

Page 19: 제3장. Regular Languages 와sclab.yonsei.ac.kr/courses/07AM/chap03.pdf · 2007. 3. 29. · 제3장.Regular Languages 와 Regular Grammars 학습목표 Finite Automata 이외에Regular

RG : Homework (Exercises 3.3)

- 1, 2 : 가장 typical한기계적변환연습

- 10 (9) : left-linear grammar의연습