제3장. regular languages 와sclab.yonsei.ac.kr/courses/07am/chap03.pdf · 2007. 3. 29. ·...
TRANSCRIPT
제 3장. Regular Languages 와Regular Grammars
학습목표
Finite Automata 이외에 Regular Language를표현하는방법으로 Regular Expression과 Regular Grammar에대
해학습하고 3가지가동일함을이해한다
개요
grammarsregularsexpressionregular
waysconcisemoreneed:NFAorDFAmethodsnDescriptio
nfa)or(dfaaccepterfinite:? languageregular L
⎯→⎯⋅
∃⋅ 하나라을언제
①
②
③
Concise but important practical applications
Regular Expressions
},,,,,,,,,{)( }{}{
},,{,}{),,,),(,
L
U
aabcaaabcbcbcaabcaabcabcaclosurestarbca
cbacbaaaa
λ=+→−
++→→
∗⋅+∑∈
∗의
예
⎜⎜⎜
⎝
⎛
⋅+→
∑∈⋅
∗
nsapplicatioofno.finitebyRE primitivefromdrivediffRE:string3.RE:)(,,,RE:,2.
sexpressionregular primitive:,,.1:
11212121 rrrrrrrraDef λφ
REREnot⎩
⎨⎧
+++⋅⋅+
=∑∗
:)(:)()(
},,{)ba
ccbacba
φ예
그렇다면주어진 RE가나타내는언어는무엇인가?
RE의기본정의에대해서알아보자
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
상식적인간단한정의!
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로만된경우
RE: Homework (Exercises 3.1)
- 5 (4) : n과m각각이짝수인경우와홀수인경우로나누면…
- 10 (9) : 세가지 case로나누어서생각해봅시다.
- 16 (14) : 쉬운문제부터어려운문제로나갑니다. 할수있는만큼만.
- 24, 25 (22, 23) : 응용문제
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 ∗
λ
λ
λ λ
)()() λ++= ∗∗ 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
새로운표현법이필요하겠군!
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
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를얻음
복잡해보이지만단순변환과정을실수없이하는연습이필요함
RE의응용예
table)n(transitioDFANFARE:programnrecognitiopatternEDITORUNIX://
editingtext:nApplicatio)
categories several of one object togiven a assigning : matchingpattern})9,,0{},,,{(:integersPascal
→→∗
−=−+=⋅ ∗
caba
dssdd
예
Lλ
state reduction
RE/RL: Homework (Exercises 3.2)
- 4 (a), (b) : 쉽지만끈기를필요로하는변환문제
- 10 : NFA로부터 RE구하기연습
- 16 (17) : 그냥생각만해보고실제로하지는말것. 매우어려운문제!
Regular Grammars : RG RL
xABxA
ifPSTVGxAxBA
ifPSTVGDef
→→
−=→→
−=⋅
sproductionalllinearleft:),,,(
sproductionalllinearright:),,,(:
NFA
EDdED d⎯→⎯→
left)orrightlyconsistent side,right in variable(onelinearleftorlinearrighteither:grammarregular −−−
Regular Grammars: 예
⎜⎜⎜
⎝
⎛
→→→
AbBaBAAS
λ|
2) 예
not regular
⎜⎜⎜
⎝
⎛
→→→
→
aSSabSS
abSSaabSS
2
211
1
|
|)1 예 aabr ∗=− )(:linearright
+==− )(*)(:linearleft abaababar
side)right on variableonemost(atgrammarlinearbut
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
)(
),(,),(
,),(
,),(:
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
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인경우는어떻게될까?
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
RG : Homework (Exercises 3.3)
- 1, 2 : 가장 typical한기계적변환연습
- 10 (9) : left-linear grammar의연습