MTL Slide
MTL Slide
2
ﻓﺼﻞ ﺍﻭﻝ
• ﻣﺠﻤﻮﻋﻪ ): (Set
ﺩﺳﺘﻪ ﺍﻱ ﺍﺯ ﻋﻨﺎﺻﺮ ﺑﺪﻭﻥ ﻫﻴﭻ ﺳﺎﺧﺘﺎﺭﻱ،ﺻﺮﻓﺂً ﻋﻀﻮ ﻣﺠﻤﻮﻋﻪ ﻫﺴﺘﻨﺪ.
• ﻧﻤﺎﻳﺶ ﻣﺠﻤﻮﻋﻪ:
}… }, {a,b,ﺯﻭﺝ ; { i : i>0 , iﻣﺠﻤﻮﻋﻪ ﺟﻬﺎﻧﻲ )(Uﻭ ﻣﺠﻤﻮﻋﻪ ﺗﻬﻲ )(ø
• ﺣﺎﺻﻠﻀﺮﺏ ﺩﻛﺎﺭﺗﻲ:
4
ﻓﺼﻞ ﺍﻭﻝ
• ﺗﻮﺍﺑﻊ ): (Function
• F : S1 → S2؛ ﺩﺍﻣﻨﻪ ﻭ ﺑﺮﺩ ) (Domain & Range؛ ﺯﻭﺝ ﻫﺎﻱ ﻣﺮﺗﺐ ﻳﻜﻲ ﺍﺯ ﺭﻭﺷﻬﺎﻱ ﻧﻤﺎﻳﺶ ﺗﺎﺑﻊ .
• ﺍﮔﺮ ﺩﺍﻣﻨﻪ ﺗﺎﺑﻊ Fﻣﺴﺎﻭﻱ S1ﺑﺎﺷﺪ ﺑﻪ ﺁﻥ ﺗﺎﺑﻊ ﻛﻠﻲ ﻳﺎ ﺗﺎﻡ ) (Total Functionﻣﻲﮔﻮﻳﻨﺪ ﻭ ﺩﺭ ﻏﻴﺮ ﺍﻳﻦ
ﺻﻮﺭﺕ ﺗﺎﺑﻊ ﺟﺰﺋﻲ ) (Partial Functionﻣﻲ ﮔﻮﻳﻨﺪ.
5
ﻓﺼﻞ ﺍﻭﻝ
• ﻣﺜﺎﻝ :ﺭﺍﺑﻄﻪ ﻫﻢ ﺍﺭﺯﻱ ﺭﺍ ﺑﺮﺭﺳﻲ ﻛﻨﻴﺪ؟ ﺭﺍﺑﻄﻪ ﻫﻢ ﺍﺭﺯﻱ ﺍﺳﺖ.
• ﻣﻔﺎﻫﻴﻢ :
ﺭﺍﻩ ) ، (Walkﺟﺎﺩﻩ ،ﻣﺴﻴﺮ )(Path
ﻣﺴﻴﺮ ﺳﺎﺩﻩ ﻣﺴﻴﺮ
V1 V2 V3 ﻃﻮﻗﻪ
6
ﻓﺼﻞ ﺍﻭﻝ
• ﺩﺭﺧﺖ:
ﮔﺮﺍﻑ ﺟﻬﺖ ﺩﺍﺭﻱ ﻛﻪ ﭼﺮﺧﻪ ﻧﺪﺍﺭﺩ ؛ ﺭﻳﺸﻪ ) ،(Rootﺳﻄﺢ )) (Levelﺳﻄﺢ ﺭﻳﺸﻪ ﺻﻔﺮ( ،ﻭ
ﺍﺭﺗﻘﺎﻉ ).(Height
ﺩﺭﺧﺘﻬﺎﻱ ﺑﺎﻳﻨﺮﻱ ) (Binary tree؛ ﻭﺍﻟﺪ ) ، (Parentﺑﭽﻪ ). (Left & Right Child) (Child
7
ﻓﺼﻞ ﺍﻭﻝ
• ﺭﻭﺵ ﻫﺎﻱ ﺍﺛﺒﺎﺕ :ﺍﺳﺘﻘﺮﺍء ،ﺑﺮﻫﺎﻥ ﺧﻠﻒ.
• ﻣﺜﺎﻝ :
ﺛﺎﺑﺖ ﻛﻨﻴﺪ ﺩﺭ ﺩﺭﺧﺘﻬﺎﻱ ﺑﺎﻳﻨﺮﻱ ﺑﺎ ﺍﺭﺗﻔﺎﻉ nﺩﺍﺭﺍﻱ 2nﺑﺮگ ﺧﻮﺍﻫﻴﻢ ﺑﻮﺩ؟ ) ﺑﻪ ﺭﻭﺵ ﺍﺳﺘﻘﺮﺍء(
8
ﻓﺼﻞ ﺍﻭﻝ
ﺑﺮﺍﻱ ﺳﺎﺧﺘﻦ ﻳﻚ ﺩﺭﺧﺖ ﺑﺎﻳﻨﺮﻱ ﺑﺎ ﺍﺭﺗﻔﺎﻉ n+1ﺍﺯ ﺩﺭﺧﺘﻲ ﺑﺎ ﺍﺭﺗﻔﺎﻉ ، nﻣﻴﺘﻮﺍﻧﻴﻢ ﺣﺪﺍﻛﺜﺮ ﺩﻭ ﺑﺮگ
ﺑﻪ ﻫﺮ ﺑﺮگ ﺩﺭﺧﺖ ﺑﺎ ﺍﺭﺗﻔﺎﻉ ،nﺍﺿﺎﻓﻪ ﻧﻤﺎﻳﻴﻢ.
ﻋﺪﺩ ﮔﻮﻳﺎ ﻧﻴﺴﺖ ؟ )ﺑﻪ ﺭﻭﺵ ﺑﺮﻫﺎﻥ ﺧﻠﻒ( • ﻣﺜﺎﻝ :ﺛﺎﺑﺖ ﻛﻨﻴﺪ ﻛﻪ
ﻋﺪﺩ ﮔﻮﻳﺎ ﻋﺪﺩﻱ ﺍﺳﺖ ﻛﻪ ﻣﻴﺘﻮﺍﻧﺪ ﺑﺼﻮﺭﺕ ﻳﻚ ﻋﺪﺩ ﻛﺴﺮﻱ ﻧﻮﺷﺘﻪ ﺷﻮﺩ ﺑﻄﻮﺭﻳﻜﻪ ﺻﻮﺭﺕ ﻭ
ﻣﺨﺮﺝ ﺁﻥ ﻋﺎﻣﻞ ﻣﺸﺘﺮﻙ ) (Common Factorﻧﺪﺍﺷﺘﻪ ﺑﺎﺷﺪ.
9
ﻓﺼﻞ ﺍﻭﻝ
ﻫﻤﻮﺍﺭﻩ ﺯﻭﺝ
ﻫﻤﻮﺍﺭﻩ ﺯﻭﺝ
10
ﻓﺼﻞ ﺍﻭﻝ
• ﻣﻔﺎﻫﻴﻢ ﺍﺳﺎﺳﻲ ﺩﺭ ﺗﺌﻮﺭﻱ ﻣﺤﺎﺳﺒﺎﺕ :
ﺯﺑﺎﻧﻬﺎ ،ﮔﺮﺍﻣﺮﻫﺎ ،ﺁﺗﺎﻣﺎﺗﺎ )ﻣﺎﺷﻴﻦ ﻫﺎ(.
• ﺯﺑﺎﻧﻬﺎ :
• ﻣﻔﺎﻫﻴﻢ ﭘﺎﻳﻪ :ﻧﺸﺎﻧﻪ ﻫﺎﻱ ﺍﻟﻔﺒﺎ ) String ; Alphabetﺭﺷﺘﻪ ﺩﻧﺒﺎﻟﻪ ﻣﺘﻨﺎﻫﻲ ﺍﺯ ﻧﺸﺎﻧﻪ ﻫﺎﻱ
ﺍﻟﻔﺒﺎﺳﺖ( ; ﺍﻟﺤﺎﻕ ﺭﺷﺘﻪ ﻫﺎ ).(Concatenation
… ∑= {a,b} → String : abab , bba , aa ,
) (Suffix Substringﺯﻳﺮ ﺭﺷﺘﻪ ﭘﺴﻮﻧﺪ (Prefix Substring) , vﺯﻳﺮ ﺭﺷﺘﻪ ﭘﻴﻮﻧﺪ u → wﺭﺷﺘﻪ
ﻳﻚ ﺍﻟﻔﺒﺎ ﺑﺎﺷﺪ ∑* ،ﻣﺠﻤﻮﻋﻪ ﺗﻤﺎﻡ ﺭﺷﺘﻪ ﻫﺎﻳﻲ ﺍﺳﺖ ﻛﻪ ﺑﺎ ﺍﺗﺼﺎﻝ ﺻﻔﺮ ﻳﺎ ﺑﻴﺸﺘﺮ ﺍﺯ ∑ • ﺍﮔﺮ
ﺣﺮﻭﻑ ∑ ﺑﺪﺳﺖ ﺁﻳﺪ(∑*є λ) .
•ﮔﺮﭼﻪ ∑ ﻣﺘﻨﺎﻫﻲ ﺍﺳﺖ ،ﻭﻟﻲ *∑ ∑+ ,ﻧﺎﻣﺘﻨﺎﻫﻲ ﻫﺴﺘﻨﺪ )ﻋﺪﻡ ﻣﺤﺪﻭﺩﻳﺖ ﺭﻭﻱ ﻃﻮﻝ ﺭﺷﺘﻪ ﻫﺎ(.
∑+ }= ∑*- {λ
12
ﻓﺼﻞ ﺍﻭﻝ
• ﻳﻚ ﺯﺑﺎﻥ ﺯﻳﺮ ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ *∑ ﺍﺳﺖ .ﻳﻚ ﺭﺷﺘﻪ ﺩﺭ ﺯﺑﺎﻥ ،Lﻳﻚ ﺟﻤﻠﻪ )(Sentence
ﻣﻲ ﺑﺎﺷﺪ.
• ﻣﺜﺎﻝ :
}∑ = {a,b ﻣﺠﻤﻮﻋﻪ } {a,aa,aabﻳﻚ ﺯﺑﺎﻥ ﻣﺘﻨﺎﻫﻲ →
• ﺍﻛﺜﺮ ﺯﺑﺎﻧﻬﺎﻱ ﻗﺎﺑﻞ ﺍﺳﺘﻔﺎﺩﻩ ،ﻣﺘﻨﺎﻫﻲ ﻫﺴﺘﻨﺪ ﻭ ﭼﻮﻥ ﺯﺑﺎﻧﻬﺎ ﻣﺠﻤﻮﻋﻪ ﻫﺴﺘﻨﺪ ،ﻟﺬﺍ ﻋﻤﻠﻴﺎﺕ
ﺍﺟﺘﻤﺎﻉ ،ﺍﺷﺘﺮﺍﻙ ﻭ ﺗﻔﺎﺿﻞ ﺩﻭ ﺯﺑﺎﻥ ﻗﺎﺑﻞ ﺗﻮﺻﻴﻒ ﺍﺳﺖ.
13
ﻓﺼﻞ ﺍﻭﻝ
14
ﻓﺼﻞ ﺍﻭﻝ
• ﮔﺮﺍﻣﺮﻫﺎ :
ﺗﻌﺮﻳﻒ ﺻﻮﺭﻱ ﻳﺎ ﺭﺳﻤﻲ ﮔﺮﺍﻣﺮ ): (Formal Definition
) : G = (V,T,S,Pﮔﺮﺍﻣﺮ G
ﻣﺠﻤﻮﻋﻪ ﻣﺘﻨﺎﻫﻲ ﺍﺯ ﻣﺘﻐﻴﺮﻫﺎ ﻣﺠﻤﻮﻋﻪ ﻣﺘﻨﺎﻫﻲ ﺍﺯ ﻗﻮﺍﻧﻴﻦ
ﺑﺎﻳﺴﺘﻲ ﻓﺮﺽ ﺷﻮﺩ ﻛﻪ ﻣﺠﻤﻮﻋﻪ ﻫﺎﻱ Tﻭ Vﻏﻴﺮ ﺗﻬﻲ ﻭ ﻣﺠﺰﺍ )ﺟﺪﺍ ﺍﺯ ﻫﻢ( ﻣﻲ ﺑﺎﺷﻨﺪ.
ﻗﻮﺍﻧﻴﻦ ﺭﺍ ﻣﻴﺘﻮﺍﻥ ﺑﻪ ﺗﻌﺪﺍﺩ ﺩﻟﺨﻮﺍﻩ ﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩ ﺗﺎ ﺭﺷﺘﻪ ﻣﻮﺭﺩ ﻧﻈﺮ ﺑﺪﺳﺖ ﺁﻳﺪ.
w1 → w2 → …. → wn )ﻣﻲ ﮔﻮﻳﻴﻢ wnﺍﺯ w1ﻣﺸﺘﻖ ﺷﺪﻩ ﺍﺳﺖ(.
15
ﻓﺼﻞ ﺍﻭﻝ
16
ﻓﺼﻞ ﺍﻭﻝ
• ﻣﺜﺎﻝ :ﮔﺮﺍﻣﺮ Gﺑﻪ ﺷﻜﻞ ﺯﻳﺮ ﻭﺟﻮﺩ ﺩﺍﺭﺩ .ﺯﺑﺎﻥ ﺁﻧﺮﺍ ﺑﻴﺎﺑﻴﺪ؟
S → Ab
P A → aAb
A→λ
17
ﻓﺼﻞ ﺍﻭﻝ
• ﻣﺜﺎﻝ ∑ = {a,b} :ﻭ ) na(wﻭ ) nb(wﺗﻌﺪﺍﺩ aﻫﺎ ﻭ bﻫﺎ ﺩﺭ ﺭﺷﺘﻪ wﺍﺳﺖ ﻭ ﮔﺮﺍﻣﺮ G
ﺑﻪ ﺷﻜﻞ ﺯﻳﺮ ﻭﺟﻮﺩ ﺩﺍﺭﺩ :
S → SS
S→λ
P: })L(G) = {w : na(w) = nb(w
S → aSb
S → bSa
• ﻣﻴﺘﻮﺍﻥ ﺑﻪ ﻛﻤﻚ ﺍﺳﺘﻘﺮﺍء ﺛﺎﺑﺖ ﻛﺮﺩ ﻛﻪ Lﺯﺑﺎﻥ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺗﻮﺳﻂ ﮔﺮﺍﻣﺮ Gﻣﻴﺒﺎﺷﺪ.
18
ﻓﺼﻞ ﺍﻭﻝ
• ﺁﺗﺎﻣﺎﺗﺎ ):(Automata
• ﺁﺗﺎﻣﺎﺗﺎ :ﻣﺪﻝ ﺍﻧﺘﺰﺍﻋﻲ ﺍﺯ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻛﻪ ﺩﺍﺭﺍﻱ
ﻣﻜﺎﻧﻴﺰﻡ ﺯﻳﺮ ﺍﺳﺖ :
.1ﻭﺭﻭﺩﻱ :ﺭﺷﺘﻪ ﺍﻟﻔﺒﺎ ؛ ﺩﺭ ﻓﺎﻳﻞ ﻭﺭﻭﺩﻱ )ﻫﺮ ﻧﺸﺎﻧﻪ
ﺩﺭ ﻫﺮ ﺳﻠﻮﻝ( ؛ ﺗﺸﺨﻴﺺ ﺍﻧﺘﻬﺎﻱ ﻭﺭﻭﺩﻱ.
• ﻛﺎﺭﺑﺮﺩ : 1
ﺑﺮﺍﻱ ﺯﺑﺎﻥ ﻫﺎﻱ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ،ﻛﺎﻣﭙﺎﻳﻠﺮ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮﺩ .ﻛﺎﻣﭙﺎﻳﻠﺮ ﻧﻴﺎﺯ ﺑﻪ ﺗﻌﺮﻳﻒ ﺩﻗﻴﻖ ﻭ
ﺭﺳﻤﻲ ﺁﻥ ﺯﺑﺎﻥ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺩﺍﺭﺩ .ﻟﺬﺍ ﻣﻲ ﺗﻮﺍﻥ ﺩﺭ ﺯﺑﺎﻥ ﻫﺎﻱ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ،ﺍﺯ ﮔﺮﺍﻣﺮ
ﻳﺎ ﺁﺗﺎﻣﺎﺗﺎ ﺑﺮﺍﻱ ﭘﺬﻳﺮﺵ ﻳﺎ ﻋﺪﻡ ﭘﺬﻳﺮﺵ ﻳﻚ ﻗﻄﻌﻪ ﻛﺪ ﺗﻮﺳﻂ ﺁﻥ ﺯﺑﺎﻥ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ
ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﻮﺩ.
21
ﻓﺼﻞ ﺍﻭﻝ
: Acceptor ﻣﺜﺎﻝ
ﮔﺮﺍﻣﺮ ﻭ ﺁﺗﺎﻣﺎﺗﺎﻱ ﻣﺮﺑﻮﻁ ﺑﻪ ﻣﺠﻤﻮﻋﻪ ﻣﺘﻐﻴﺮ ﻫﺎﻱ ﺯﺑﺎﻥ ﭘﺎﺳﻜﺎﻝ ﺭﺍ ﺑﺮﺭﺳﻲ ﻧﻤﺎﻳﻴﺪ؟
<id> → <Letter><A>|<Underline><A>
<A> → <Letter><A>|<Digit><A>|<Underline><A>|λ
<Letter> → A|B|…|Z|a|b|…|z|
<Digit> → 0|1|…|9
Underline
<Underline> → _ or Letter
1 2
ً ﻣﺜﻼ: a0 ﺍﺷﺘﻘﺎﻕ ﻣﺮﺑﻮﻁ ﺑﻪ ﻣﺘﻐﻴﺮ States : digit Letter or digit
1) Start or underline
2) Acceptor 3
3) Not Acceptor
Letter or digit
« » ﺁﺗﺎﻣﺎﺗﺎﻱ ﭘﺬﻳﺮﻧﺪﻩ
or underline
22
ﻓﺼﻞ ﺍﻭﻝ
ﻛﺎﺭﺑﺮﺩ : 2
ﻃﺮﺍﺣﻲ ﺭﻗﻤﻲ ؛ ﺁﺗﺎﻣﺎﺗﺎ ﺩﺭ ﻃﺮﺍﺣﻲ ﺭﻗﻤﻲ ،ﺗﻮﺻﻴﻒ ﻋﻠﻤﻲ ﺑﺴﻴﺎﺭ ﺳﻄﺢ ﺑﺎﻻﻳﻲ ﺍﺯ ﻳﻚ ﻣﺪﺍﺭ
ﻣﻨﻄﻘﻲ ﻭ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﻣﻨﻄﻘﻲ ﺁﻥ ﺑﺎ ﺗﺮﺍﺗﺮﻳﺴﺘﻮﺭ ،ﮔﻴﺖ ﻭ ﻓﻠﻴﭗ ﻓﻼپ ﺍﺳﺖ.
• ﻣﺜﺎﻝ :Transducer
ﺩﺭﺟﻤﻊ ﻛﻨﻨﺪﻩ ﺑﺎﻳﻨﺮﻱ ) ،(Full Adderﺑﺮﺍﻱ ﺳﺎﺩﮔﻲ ﻛﺎﺭ ،ﻓﺮﺽ ﺑﺮ ﻓﻘﻂ ﺍﻋﺪﺍﺩ ﻣﺜﺒﺖ ﺍﺳﺖ.
23
ﻓﺼﻞ ﺍﻭﻝ
• ﺗﻤﺮﻳﻦ ﻫﺎﻱ ﻣﻬﻢ ﻓﺼﻞ ﺍﻭﻝ :
24
ﻓﺼﻞ ﺍﻭﻝ
ﮔﺮﺍﻣﺮﻱ ﭘﻴﺪﺍ ﻛﻨﻴﺪ ؟، ( ﺑﺮﺍﻱ ﻫﺮ ﻳﻚ ﺍﺯ ﺯﺑﺎﻧﻬﺎﻱ ﺯﻳﺮ2
S → AbB ﻳﺎ S → aSb|B L1 = {anbm : n ≥ 0 , m>n} ( ﺍﻟﻒ
)ﺍﻟﻒ A → aAb|λ B → bB|b
B → bB|λ
SAS
L1* ( ﺝ
S → SS|A|λ
)ﺝ A → aAb| bB
B → bB|λ
25
ﻓﺼﻞ ﺍﻭﻝ
L = {w : |w| mod 3 ≥ |w| mod 2} .{ = ∑ ﭘﻴﺪﺍ ﻛﻨﻴﺪa} ﺭﺍ ﺭﻭﻱL ( ﮔﺮﺍﻣﺮ ﺯﺑﺎﻥ3
S → aB|aaB|A
B → aaaB|λ
A → aaaaaaA|λ . ﺑﺎﺷﺪ3k+2 ﻭ ﻳﺎ3k+1 ﻭ ﻳﺎ6k ﺑﺎﻳﺴﺘﻲ ﺑﻪ ﺻﻮﺭﺗﻬﺎﻱ
26
ﻓﺼﻞ ﺍﻭﻝ
27
ﻓﺼﻞ ﺍﻭﻝ
(5ﻳﻚ ﺗﺮﺍﮔﺰﺍﺭ ﺑﺮﺍﻱ ﺭﻣﺰﮔﺸﺎﻳﻲ ﺭﺷﺘﻪ ﻫﺎ ﺭﻭﻱ } {0,1ﺑﻪ ﭘﻴﺎﻡ ﺍﺻﻠﻲ ﺑﺴﺎﺯﻳﺪ ؟
ﺭﻣﺰ ﮔﺸﺎﻳﻲ ﻛﺪﻫﺎﻱ ﻋﺪﺩﻱ ﺑﻪ ﺣﺮﻓﻲ ) . (ASCIIﺩﻭ ﺍﻟﻔﺒﺎﻱ } {a,b,c,dﻭ }{0,1ﺭﺍ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻛﻪ ﻳﻚ ﺭﻣﺰ
ﮔﺬﺍﺭﻱ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﺩﺍﺭﺩ :
a → 00
b → 01
010011 → bad
c → 10
d → 11 q
q1 q0
29
ﻓﺼﻞ ﺩﻭﻡ
• ﺁﺗﺎﻣﺎﺗﺎﻱ ﻣﺘﻨﺎﻫﻲ : FA -
ﺁﺗﺎﻣﺎﺗﺎﻱ ﻣﺘﻨﺎﻫﻲ ) (Finite Automataﺩﺍﺭﺍﻱ ﺣﺎﻓﻈﻪ ﻣﻮﻗﺖ ﻧﻴﺴﺖ .ﺑﻨﺎﺑﺮﺍﻳﻦ ﺩﺭ ﺑﻪ ﻳﺎﺩﺁﻭﺭﺩﻥ
ﺍﻃﻼﻋﺎﺕ ﺩﺭ ﻃﻮﻝ ﻣﺤﺎﺳﺒﻪ ﻣﺸﻜﻞ ﺩﺍﺷﺘﻪ ﻭ ﻣﻘﺪﺍﺭ ﻛﻤﻲ ﺍﻃﻼﻋﺎﺕ ﻣﻲ ﺗﻮﺍﻧﺪ ﺩﺭ ﻭﺍﺣﺪ ﻛﻨﺘﺮﻝ
ﻧﮕﻬﺪﺍﺭﻱ ﺷﻮﺩ ﻛﻪ ﺁﻥ ﻫﻢ ﺑﺼﻮﺭﺕ ﻗﺮﺍﺭ ﮔﺮﻓﺘﻦ ﺩﺭ ﻳﻚ ﻭﺿﻌﻴﺖ ﺍﻧﺠﺎﻡ ﻣﻲ ﺷﻮﺩ.
)M = (Q , ∑ , δ , q0 ,F
ﻣﺠﻤﻮﻋﻪ ﻣﺘﻨﺎﻫﻲ ﺍﺯ ﻭﺿﻌﻴﺖ ﻫﺎﻱ ﺩﺍﺧﻠﻲ ﻣﺠﻤﻮﻋﻪ ﻭﺿﻌﻴﺖ ﻫﺎﻱ ﻧﻬﺎﻳﻲ F Q
)(States
ﻭﺿﻌﻴﺖ ﺍﻭﻟﻴﻪ q0 є Q
ﻣﺠﻤﻮﻋﻪ ﺍﻟﻔﺒﺎﻱ ﻭﺭﻭﺩﻱ
Q × ∑ → Qﺗﺎﺑﻊ ﺗﻐﻴﻴﺮ ﺣﺎﻟﺖ
)(Transition Function
30
ﻓﺼﻞ ﺩﻭﻡ
)}M = ({q0 , q1 , q2 } , {0,1} , δ , q0 , {q1 • ﻣﺜﺎﻝ :
• ﻧﻤﺎﻳﺶ ﻳﻚ DFAﺑﻪ ﺻﻮﺭﺕ ﻳﻚ ﮔﺮﺍﻑ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ ﺍﺳﺖ ﻛﻪ ﺭﺃﺳﻬﺎﻱ ﺁﻥ ﻭﺿﻌﻴﺖ ﻫﺎ
ﻭ ﻳﺎﻝ ﻫﺎﻱ ﺁﻥ ﺣﺮﻭﻑ ﻭﺭﻭﺩﻱ ﻫﺴﺘﻨﺪ ﻭ ﺩﺍﺭﺍﻱ | |Qﺭﺃﺱ ﺍﺳﺖ.
0 1
0
0
q0 q1 q2
1 1
31
ﻓﺼﻞ ﺩﻭﻡ
( ﺭﺍ ﺑﻪ ﺻﻮﺭﺕExtended Transition Function) • ﻣﻴﺘﻮﺍﻥ ﺗﺎﺑﻊ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ ﺗﻮﺳﻌﻪ ﻳﺎﻓﺘﻪ
. ﺗﻌﺮﻳﻒ ﻧﻤﻮﺩδ* : Q × ∑* → Q
: • ﺗﻌﺮﻳﻒ ﺑﺎﺯﮔﺸﺘﻲ
δ*(q , λ) = q , ∀q є Q , w є ∑* , a є ∑
δ*(q , wa) = δ (δ*(q , w) , a)
ً ﻣﺜﻼ:
δ (q0 , a) = q1 ﺑﻨﺎ ﺑﻪ ﺗﻌﺮﻳﻒ ﺑﺎﺯﮔﺸﺘﻲ δ*(q0 , ab) = δ(δ* (q0 , a) ,b)
δ (q1 , b) = q2 δ*(q0 , a) = δ(δ* (q0 , λ) ,a) = δ (q0 , a) = q1
δ*(q0 , ab) = q2 δ*(q0 , ab) = δ (q1 , b) = q2
32
ﻓﺼﻞ ﺩﻭﻡ
• ﺯﺑﺎﻧﻬﺎﻱ : DFA
ﺯﺑﺎﻥ ﻳﻌﻨﻲ ﻣﺠﻤﻮﻋﻪ ﺗﻤﺎﻣﻲ ﺭﺷﺘﻪ ﻫﺎﻳﻲ ﻛﻪ ﺗﻮﺳﻂ ﺁﺗﺎﻣﺎﺗﺎ ﭘﺬﻳﺮﻓﺘﻪ ﻣﻴﺸﻮﺩ ﻭ ﺯﺑﺎﻧﻬﺎﻱ ﭘﺬﻳﺮﻓﺘﻪ ﺷﺪﻩ
ﺗﻮﺳﻂ DFAﺑﻨﺎﻡ ) M (Q , ∑ , δ , q0 , Fﻣﺠﻤﻮﻋﻪ ﺗﻤﺎﻣﻲ ﺭﺷﺘﻪ ﻫﺎ ﺑﺮﻭﻱ ﺍﻟﻔﺒﺎﻱ ∑ ﺍﺳﺖ.
}L(M) = {w є ∑* : δ* (q0 ,w) є F
}L(M) = {w є ∑* : δ* (q0 ,w) ∉ F
• ﻣﺜﺎﻝ DFA :ﺯﻳﺮ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ :
: q2ﻭﺿﻌﻴﺖ ﺗَﻠﻪ )(Trap State
q0
b q1 a,b q2 a,b
a
}L(M) = {anb : n ≥ 0
33
ﻓﺼﻞ ﺩﻭﻡ
• ﻗﻀﻴﻪ :
ﻳﻚ DFAﺑﻨﺎﻡ ) M = (Q , ∑ , δ , q0 , Fﺩﺍﺭﻳﻢ ﻭ GMﮔﺮﺍﻑ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ ﻣﺮﺑﻮﻁ ﺑﻪ
ﺁﻥ ﻣﻲﺑﺎﺷﺪ.
ﺑﺮﺍﻱ ﻫﺮ qi , qj є Qﻭ *∑ w єﺩﺍﺭﻳﻢ ، δ*(qi,w) = qjﺍﮔﺮ ﻭ ﻓﻘﻂ ﺍﮔﺮ ﻳﻚ ﺭﺍﻩ ﺑﺎ ﺑﺮﭼﺴﺐ
wﺍﺯ qiﺑﻪ qjﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ.
• ﻣﺜﺎﻝ :ﻳﻚ DFAﻃﺮﺍﺣﻲ ﻛﻨﻴﺪ ﻛﻪ ﺗﻤﺎﻣﻲ ﺭﺷﺘﻪ ﻫﺎﻱ ﺭﻭﻱ ﺍﻟﻔﺒﺎﻱ } {0,1ﺭﺍ ﺑﺠﺰ ﺭﺷﺘﻪ
ﻫﺎﻳﻲ ﻛﻪ ﺣﺎﻭﻱ ﺭﺷﺘﻪ " "001ﺑﺎﺷﺪ ﺑﭙﺬﻳﺮﺩ ؟
1
0
λ 0 0 00 1 001 0,1
1
0
• DFAﺑﺨﺎﻃﺮ ﻣﻲﺁﻭﺭﺩ ﻛﻪ ﻭﺭﻭﺩﻱ ﻗﺒﻠﻲ ﭼﻪ ﺑﻮﺩﻩ ،ﺍﻣﺎ ﻧﻪ ﺍﺯ ﻃﺮﻳﻖ ﺣﺎﻓﻈﻪ ،ﺑﻠﻜﻪ ﺍﺯ ﻃﺮﻳﻖ
ﻭﺿﻌﻴﺘﻲ ﻛﻪ ﺩﺭ ﺁﻥ ﻗﺮﺍﺭ ﺩﺍﺭﺩ.
34
ﻓﺼﻞ ﺩﻭﻡ
• ﺧﺎﻧﻮﺍﺩﻩ ﺯﺑﺎﻧﻬﺎﻳﻲ ﻛﻪ ﺗﻮﺳﻂ DFAﺑﻪ ﻧﺎﻡ Mﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ،ﺯﺑﺎﻥ ﺁﻥ ) L = L(Mﺍﺳﺖ.
• ﺯﺑﺎﻥ Lﻣﻨﻈﻢ ﺍﺳﺖ ﺍﮔﺮ ﻭ ﻓﻘﻂ ﺍﮔﺮ DFAﺑﻨﺎﻡ Mﺑﺎﺷﺪ ﺑﻄﻮﺭﻳﻜﻪ ). L = L(M
35
ﻓﺼﻞ ﺩﻭﻡ
• ﻣﺜﺎﻝ :ﻧﺸﺎﻥ ﺩﻫﻴﺪ ﻛﻪ }*} L2 = {awaawa : w є {a,bﻣﻨﻈﻢ ﺍﺳﺖ ؟
}*}L = {awa : w є {a,b
ﻛﺎﻓﻲ ﺍﺳﺖ DFAﺁﻥ ﺭﺍ ﻃﺮﺍﺣﻲ ﻛﻨﻴﻢ .
a a
q0 a q2 q3
a q4 q5 a
b b
L2 : b b b
q1 a,b
• ﻧﻜﺘﻪ …, L4 , L3 , L2 , L :ﻣﻨﻈﻢ ﻫﺴﺘﻨﺪ.
36
ﻓﺼﻞ ﺩﻭﻡ
ﭘﺬﻳﺮﻧﺪﻩ ﻣﺘﻨﺎﻫﻲ ﻧﺎﻣﻌﻴﻦ : (Nondeterministic Finite Acceptor) NFA -
)M = (Q , ∑ , δ , q0 , F
δ : Q × (∑ ∪ {λ}) → 2Q
ﻫﻤﺎﻥ ﺗﻌﺮﻳﻒ DFA
• ﺗﻔﺎﻭﺗﻬﺎﻱ NFAﻭ : DFA
(1ﻭﺿﻌﻴﺖ ﺑﻌﺪﻱ ﺩﺭ NFA؛ ﻣﺜﻼً )δ(q1,a) = (q0,q2
(2ﺩﺭ λ ،NFAﺑﻪ ﻋﻨﻮﺍﻥ ﻭﺭﻭﺩﻱ ﻗﺎﺑﻞ ﻗﺒﻮﻝ ﺍﺳﺖ ﻭ ﺑﺎ ﻭﺭﻭﺩﻱ λﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ ﺍﻧﺠﺎﻡ ﻣﻲ ﮔﻴﺮﺩ.
(3ﺩﺭ ،NFAﻣﻤﻜﻦ ﺍﺳﺖ ﻣﺜﻼً ) δ(q1,aﺗﻬﻲ ﺑﺎﺷﺪ ﻭ ﻫﻴﭻ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺘﻲ ﺑﺮﺍﻱ aﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ.
ﻫﻤﺎﻧﻨﺪ NFA ،DFAﻧﻴﺰ ﺑﺎ ﻳﻚ ﮔﺮﺍﻑ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ ﻗﺎﺑﻞ ﻧﻤﺎﻳﺶ ﺑﻮﺩﻩ ﻭﻣﻴﺘﻮﺍﻧﺪ ﺭﺷﺘﻪ ﺍﻱ ﺭﺍ ﺑﭙﺬﻳﺮﺩ.
37
ﻓﺼﻞ ﺩﻭﻡ
38
ﻓﺼﻞ ﺩﻭﻡ
39
ﻓﺼﻞ ﺩﻭﻡ
• ﺯﺑﺎﻥ ﻣﻮﺭﺩ ﻗﺒﻮﻝ ﻳﻚ NFAﺑﻨﺎﻡ ) M = (Q , ∑ , δ , q0 , Fﻋﺒﺎﺭﺗﺴﺖ ﺍﺯ :
40
ﻓﺼﻞ ﺩﻭﻡ
ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎﻱ ﺭﻗﻤﻲ )ﺩﻳﺠﻴﺘﺎﻟﻲ( ﻛﺎﻣﻼ ﻣﻌﻴﻦ ﻫﺴﺘﻨﺪ .ﻭﺿﻌﻴﺖ ﺁﻧﻬﺎ ﺩﺭ ﻫﺮ ﺯﻣﺎﻥ ﺍﺯ ﺭﻭﻱ ﻭﺭﻭﺩﻱ ﻭ
ﻭﺿﻌﻴﺖ ﺍﻭﻟﻴﻪ ﻗﺎﺑﻞ ﭘﻴﺶ ﺑﻴﻨﻲ ﺍﺳﺖ .
41
ﻓﺼﻞ ﺩﻭﻡ
• ﻣﺎﺷﻴﻦ ﻫﺎﻱ ﻧﺎﻣﻌﻴﻦ ﻣﻴﺘﻮﺍﻧﻨﺪ ﺑﻌﻨﻮﺍﻥ ﻣﺪﻝ ﺑﺮﺍﻱ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻫﺎﻱ ﺟﺴﺘﺠﻮ ﺑﺎ ﺑﺎﺯﮔﺸﺖ ﺑﻪ ﻋﻘﺐ
ﻋﻤﻞ ﻛﻨﻨﺪ) .ﺩﺭ ﻣﺴﺎﺋﻞ ﻋﺪﻡ ﻗﻄﻌﻴﺖ (Nondeterministic
• ﻋﺪﻡ ﻗﻄﻌﻴﺖ ﻣﻜﺎﻧﻴﺰﻡ ﻣﻮﺛﺮﻱ ﺑﺮﺍﻱ ﺗﻮﺻﻴﻒ ﺯﺑﺎﻧﻬﺎﻱ ﭘﻴﭽﻴﺪﻩ ﺍﺳﺖ .ﻳﻚ ﮔﺮﺍﻣﺮ ﻧﻴﺰ ﺩﺍﺭﺍﻱ
• ﺗﻔﺎﻭﺕ ﻋﻤﺪﻩﺍﻱ ﺑﻴﻦ NFAﻭ DFAﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ ﻭ ﺑﻌﻀﻲ ﻧﺘﺎﻳﺞ ﺭﺍ ﺑﺎ NFAﺑﻬﺘﺮ ﺍﺯ DFA
42
ﻓﺼﻞ ﺩﻭﻡ
DFA NFA
0 0
q0 q1 1 q2 0,1 q0 q1 0,1 q2 0,1
1 1
0 λ
}L(M) = {(10)n : n≥0
ﺩﺭ ﻫﺮ ﺩﻭ ﺁﺗﺎﻣﺎﺗﺎ
43
ﻓﺼﻞ ﺩﻭﻡ
• NFAﺯﻳﺮ ﺭﺍ ﺑﻪ DFAﺗﺒﺪﻳﻞ ﻧﻤﺎﻳﻴﺪ ؟
b
q0
a q1 λ q2
a
44
ﻓﺼﻞ ﺩﻭﻡ
}δ ({q1 , q2} , a) = {q1 , q2 } : {q1 , q2ﭼﻮﻥ ﺑﺎ λﻣﻴﺘﻮﺍﻥ ﺑﻴﻦ ﺁﻧﻬﺎ ﺣﺮﻛﺖ ﻛﺮﺩ.
45
ﻓﺼﻞ ﺩﻭﻡ
•ﺭﻭﺍﻝ ﺗﺒﺪﻳﻞ NFAﺑﻪ : DFA
(1ﻳﻚ ﮔﺮﺍﻑ GDﺑﺎ ﺭﺃﺱ } {q0ﺳﺎﺧﺘﻪ ﻭ ﺑﻌﻨﻮﺍﻥ ﺭﺃﺱ ﺍﺑﺘﺪﺍﻳﻲ DFAﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ.
(2ﮔﺎﻣﻬﺎﻱ ﺯﻳﺮ ﺭﺍ ﺗﻜﺮﺍﺭ ﻛﻨﻴﺪ ﺗﺎ ﻫﻴﭻ ﻳﺎﻟﻲ ﻛﻢ ﻧﺒﺎﺷﺪ.
(2-1ﻫﺮ ﻳﻚ ﺍﺯ ﺭﺋﻮﺱ } {qi,qj,…,qkﺍﺯ GDﺭﺍ ﻛﻪ ﻳﺎﻝ ﺧﺮﻭﺟﻲ ﺑﺮﺍﻱ ∑ aєﻧﺪﺍﺭﺩ ،ﺑﮕﻴﺮﻳﺪ.
(2-2ﺑﺮﺍﻱ ﺁﻥ ) δ*(qi,a), δ*(qj,a),…, δ*(qk,aﺭﺍ ﻣﺤﺎﺳﺒﻪ ﻛﻨﻴﺪ.
(2-3ﺍﺟﺘﻤﺎﻉ ﺗﻤﺎﻡ ﺍﻳﻦ * δﻫﺎ ﺭﺍ ﭘﻴﺪﺍ ﻛﺮﺩﻩ ﻭ ﻣﺠﻤﻮﻋﻪ } {ql,qm,…,qnﺭﺍ ﺗﺸﻜﻴﻞ ﺩﻫﻴﺪ.
(2-4ﻳﻚ ﺭﺍﺱ ﺑﻨﺎﻡ } {ql,qm,…,qnﺑﺮﺍﻱ GDﺑﺴﺎﺯﻳﺪ )ﺍﮔﺮ ﺍﺯ ﻗﺒﻞ ﻣﻮﺟﻮﺩ ﻧﻴﺴﺖ(.
(2-5ﺑﻪ GDﻳﻚ ﻳﺎﻝ ﺍﺯ } {qi,qj,…,qkﺑﻪ } {ql,qm,…,qnﺍﺿﺎﻓﻪ ﻧﻤﺎﻳﻴﺪ ﻭ ﺁﻧﺮﺍ a
ﻧﺎﻣﮕﺬﺍﺭﻱ ﻛﻨﻴﺪ.
46
ﻓﺼﻞ ﺩﻭﻡ
• ﻧﻜﺘﻪ :
ﺣﻠﻘﻪ ﺑﺎﻻ ﻣﺘﻨﺎﻫﻲ ﺍﺳﺖ ﻭ ﻫﺮ ﺑﺎﺭ ﻛﻪ ﺗﻜﺮﺍﺭ ﻣﻲ ﮔﺮﺩﺩ ،ﻳﻚ ﻳﺎﻝ ﺑﻪ GDﺍﺿﺎﻓﻪ ﻣﻲ ﮔﺮﺩﺩGD .
ﺣﺪﺍﻛﺜﺮ ﺩﺍﺭﺍﻱ |∑|| 2|Qﻳﺎﻝ ﺍﺳﺖ ﻭ ﻳﻚ ﻣﻘﺪﺍﺭ ﻣﺘﻨﺎﻫﻲ ﺍﺳﺖ.
N
47
ﻓﺼﻞ ﺩﻭﻡ
• ﻣﺜﺎﻝ :ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺭﻭﺍﻝ NFA ،ﻱ ﺯﻳﺮ ﺭﺍ ﺑﻪ DFAﺗﺒﺪﻳﻞ ﻧﻤﺎﻳﻴﺪ ؟
0
0,1 q1 0,1 q2 1
q0
48
ﻓﺼﻞ ﺩﻭﻡ
ﻳﻚ ﻭﺿﻌﻴﺖ ﺟﺪﻳﺪ ﺑﻨﺎﻡ } {q0,q1,q2ﺑﺎ ﻳﺎﻝ 0ﺍﻳﺠﺎﺩ ﻣﻲﮔﺮﺩﺩ ﻳﻌﻨﻲ ﺑﺮﺍﻱ )(a=0 , i=0 , j=0
49
ﻓﺼﻞ ﺩﻭﻡ
{q0}
0 1
{q0,q1} {q1}
0 1 0,1
Ø
0,1
50
ﻓﺼﻞ ﺩﻭﻡ
δ*D ({q0,q1,q2} , 0) = {q0,q1,q2}
51
ﻓﺼﻞ ﺩﻭﻡ
DFA
)L(Regular ↔ FA
NFA
)L2,L3,…, Ln (Regular
)L(Regular
)LR (Regular
52
ﻓﺼﻞ ﺩﻭﻡ
• ﻛﺎﻫﺶ ﺗﻌﺪﺍﺩ ﻭﺿﻌﻴﺖ ﻫﺎﻱ : FA
ﻳﻚ DFAﺯﺑﺎﻥ ﻣﻨﺤﺼﺮ ﺑﻔﺮﺩﻱ ﺭﺍ ﻣﻲ ﭘﺬﻳﺮﺩ ،ﺍﻣﺎ ﻋﻜﺲ ﺁﻥ ﺻﺤﺖ ﻧﺪﺍﺭﺩ ﻭ DFAﻫﺎﻱ
ﻣﺨﺘﻠﻔﻲ ﻣﻲ ﺗﻮﺍﻧﻨﺪ ﺑﺎ ﺗﻌﺪﺍﺩ ﻭﺿﻌﻴﺘﻬﺎﻱ ﻣﺘﻔﺎﻭﺕ ﺩﺍﺭﺍﻱ ﻳﻚ ﺯﺑﺎﻥ ﺑﺎﺷﻨﺪ .ﺑﺮﺍﻱ ﺍﺳﺘﻔﺎﺩﻩ
ﺑﻬﻴﻨﻪ ﺍﺯﺣﺎﻓﻈﻪ ،ﻣﻄﻠﻮﺑﺴﺖ ﺗﺎ ﺟﺎﻳﻲ ﻛﻪ ﺍﻣﻜﺎﻥ ﺩﺍﺭﺩ ﺗﻌﺪﺍﺩ ﻭﺿﻌﻴﺖ ﻫﺎ ﺭﺍ ﻛﺎﻫﺶ ﺩﻫﻴﻢ.
•ﺭﺍﺑﻄﻪ ﺍﺩﻏﺎﻡ ﭘﺬﻳﺮﻱ ﻳﻚ ﺭﺍﺑﻄﻪ ﻫﻢ ﺍﺭﺯﻱ ﺍﺳﺖ )ﺍﮔﺮ qﻭ pﺍﺩﻏﺎﻡ ﭘﺬﻳﺮ ﻭ rﻭ qﺑﺎ ﻫﻢ
ﺍﺩﻏﺎﻡ ﭘﺬﻳﺮ ﺑﺎﺷﻨﺪ ،ﺁﻧﮕﺎﻩ rﻭ pﻧﻴﺰ ﺍﺩﻏﺎﻡ ﭘﺬﻳﺮﻧﺪ(.
•ﻳﻜﻲ ﺍﺯ ﺭﺍﻫﻬﺎﻱ ﻛﺎﻫﺶ ﻭﺿﻌﻴﺘﻬﺎﻱ ﻳﻚ DFAﻳﺎﻓﺘﻦ ﻭﺿﻌﻴﺘﻬﺎﻱ ﺍﺩﻏﺎﻡ ﭘﺬﻳﺮ ﻭ ﺗﺮﻛﻴﺐ
ﺁﻧﻬﺎﺳﺖ .ﺣﺎﻝ ﺑﻪ ﭼﻨﺪ ﺭﻭﺵ ﻣﺨﺘﻠﻒ ﺍﺩﻏﺎﻡ ﻛﺮﺩﻥ ﻭﺿﻌﻴﺘﻬﺎ ﻣﻲ ﭘﺮﺩﺍﺯﻳﻢ.
q1 1
0 0
0 1
q0 q2 q4 0/1
1 0
1
q3
1 ﻧﺪﺍﺭﺩ
ﺑﺎ ﺭﺷﺘﻪ ﻭﺭﻭﺩﻱ
ﺯﻭﺝ )(q2,q4) (a δ(q1,0)=q2
ﭼﻭﻥ )(q2,q4 ﺯﻭﺝ ﻫﺎﻱ ﺍﺩﻏﺎﻡ ﻧﺎﭘﺬﻳﺮ
0 δ(q3,0)=q2 ﺍﺩﻏﺎﻡ ﻧﺎﭘﺬﻳﺮ ﺍﺳﺖ )(q1,q4) , (q3,q4
δ(q4,0)=q4
1 ﻧﺪﺍﺭﺩ
ﺑﺎ ﺭﺷﺘﻪ ﻭﺭﻭﺩﻱ
ﺯﻭﺝ )(q1,q4) (a δ (q0,0)=q1
ﭼﻭﻥ )(q1,q4 ﺯﻭﺝ ﻫﺎﻱ ﺍﺩﻏﺎﻡ ﻧﺎﭘﺬﻳﺮ
0 δ (q2,0)=q1 ﺍﺩﻏﺎﻡ ﻧﺎﭘﺬﻳﺮ ﺍﺳﺖ )(q0,q4) , (q2,q4
δ (q4,0)=q4
ﻓﺼﻞ ﺩﻭﻡ
ﺭﻭﺍﻝ ﻛﺎﻫﺶ :
}) = {(q0,q1) , (q0,q2) , (q0,q3) , (q0,q4) , (q1,q4) , (q2,q4) , (q3,q4ﻣﺠﻤﻮﻋﻪ ﺍﺩﻏﺎﻡ ﻧﺎﭘﺬﻳﺮ
• ﻗﻀﻴﻪ :
ﺍﮔﺮ ﻳﻚ DFAﺑﻪ ﻧﺎﻡ Mﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﻢ ،ﺭﻭﺍﻝ ﻛﺎﻫﺶ ﻳﻚ DFAﺩﻳﮕﺮ ﺑﻪ ﻧﺎﻡ Mﻣﻲ ﺩﻫﺪ
ﺑﻄﻮﺭﻳﻜﻪ ) L(M) = L(Mﻋﻼﻭﻩ ﺑﺮﺁﻥ Mﻣﻴﻨﻴﻤﺎﻝ ﺍﺳﺖ ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﻛﻪ ﻫﻴﭻ DFAﺩﻳﮕﺮﻱ
ﺑﺎ ﺗﻌﺪﺍﺩ ﻛﻤﺘﺮﻱ ﻭﺿﻌﻴﺖ ﻛﻪ ) L(Mﺭﺍ ﺑﭙﺬﻳﺮﺩ ،ﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ.
ﻓﺼﻞ ﺩﻭﻡ
b b
b
a a
q0 q1 q2
a
b
q1
b
a a
q0 a
q2 b
ﻓﺼﻞ ﺩﻭﻡ
b
a q2
q0 q1
a
c
ﻳﺎ
c,λ
ﻓﺼﻞ ﺩﻭﻡ
0 1
q0 q1 q2 0
0/λ 0/1
ﻓﺼﻞ ﺩﻭﻡ
}{q0
0 1
}{q0
1
0 }{q0,q1,q2 } {q1,q2 1 0/1
0
66
ﻓﺼﻞ ﺳﻮﻡ
r123.r45
ﻓﺼﻞ ﺳﻮﻡ
• ﺯﺑﺎﻧﻬﺎﻱ ﻣﺮﺗﺒﻂ ﺑﺎ ﻋﺒﺎﺭﺍﺕ ﻣﻨﻈﻢ :
• ﺍﮔﺮ rﻳﻚ ﻋﺒﺎﺭﺕ ﻣﻨﻈﻢ ﺑﺎﺷﺪ L(r) ،ﺭﺍ ﺯﺑﺎﻥ ﻣﺮﺗﺒﻂ ﺑﺎ rﻣﻲ ﮔﻮﺋﻴﻢ.
• ﺯﺑﺎﻥ ) L(rﻛﻪ ﺑﺎ ﻋﺒﺎﺭﺕ ﻣﻨﻈﻢ rﻧﺸﺎﻥ ﺩﺍﺩﻩ ﻣﻲ ﺷﻮﺩ ،ﺑﺎ ﻗﻮﺍﻋﺪ ﺯﻳﺮ ﺗﻌﺮﻳﻒ ﻣﻲ ﮔﺮﺩﺩ :
Ø (1ﻳﻚ ﻋﺒﺎﺭﺕ ﻣﻨﻈﻢ ﺍﺳﺖ )ﻣﺠﻤﻮﻋﻪ ﺗﻬﻲ(.
ﻣﺜﺎﻝ :ﻋﺒﺎﺭﺕ ، r = (aa)*(bb)*bﻣﺠﻤﻮﻋﻪ ﺗﻤﺎﻣﻲ ﺭﺷﺘﻪ ﻫﺎﻳﻲ ﺑﺎ ﺗﻌﺪﺍﺩ ﺯﻭﺝ aﻭ ﺑﺪﻧﺒﺎﻝ
ﺁﻥ ﺗﻌﺪﺍﺩ ﻓﺮﺩ bﺍﺳﺖ .ﺑﻪ ﻋﺒﺎﺭﺕ ﺩﻳﮕﺮ :
}L(r) = {a2n b2m+1 : n≥0 , m≥0
ﻗﻀﻴﻪ :ﺍﮔﺮ rﻳﻚ ﻋﺒﺎﺭﺕ ﻣﻨﻈﻢ ﺑﺎﺷﺪ ﺁﻧﮕﺎﻩ ﻳﻚ DFAﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻛﻪ ) L(rﺭﺍ ﻣﻲ ﭘﺬﻳﺮﺩ ﻭ ﺩﺭ
ﻧﺘﻴﺠﻪ ) L(rﻳﻚ ﺯﺑﺎﻥ ﻣﻨﻈﻢ ﺍﺳﺖ.
ﻓﺼﻞ ﺳﻮﻡ
ﻳﻚ NFAﺑﻴﺎﺑﻴﺪ ﻛﻪ ) L(rﺭﺍ ﺩﺭ ﺟﺎﻳﻲ ﻛﻪ ) r = (a + bb)*(ba*+ λﺑﺎﺷﺪ ،ﺭﺍ ﺑﭙﺬﻳﺮﺩ ؟ ﻣﺜﺎﻝ :
ﺑﺎﻳﺴﺘﻲ ﺁﺗﺎﻣﺎﺗﺎﻱ ﻣﺮﺑﻮﻁ ﺑﻪ ) L(a+bbﻭ ﻣﺮﺑﻮﻁ ﺑﻪ ) L(ba*+ λﺭﺍ ﺑﺴﺎﺯﻳﻢ.
a
*)M1:L(a+bb b b
λ
a λ
ﻓﺼﻞ ﺳﻮﻡ
ﻭ ﺳﭙﺲ ﺁﻥ ﺩﻭ ﺭﺍ ﺗﺮﻛﻴﺐ ﻧﻤﺎﺋﻴﻢ.
λ
a
b b λ λ λ
b λ
a
λ
λ
a
ﻣﺜﺎﻝ :ﺷﻜﻞ ﺯﻳﺮ ﻳﻚ ﮔﺮﺍﻑ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ ﻋﺎﻡ ﺭﺍ ﻧﺸﺎﻥ ﻣﻴﺪﻫﺪ.
*c
a+b
)*L(a*+a*(a+b)c
ﻣﻲ ﺗﻮﺍﻥ ﺑﺮﭼﺴﺐ aﺭﺍ ﺑﻪ * aﺗﺒﺪﻳﻞ ﻛﺮﺩ ﻭ ﺗﻔﺴﻴﺮﻫﺎﻱ ﻣﺘﻔﺎﻭﺗﻲ ﺭﺍ ﺍﺭﺍﺋﻪ ﺩﺍﺩ.
ﮔﺮﺍﻑ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺘﻲ ﺑﻪ ﺷﻜﻞ ﺯﻳﺮ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻛﻪ ﻭﺿﻌﻴﺖ qﻧﻪ ﻭﺿﻌﻴﺖ ﺍﻭﻟﻴﻪ ﺍﺳﺖ ﻧﻪ
ﻭﺿﻌﻴﺖ ﻧﻬﺎﻳﻲ.
ﻣﻴﺨﻮﺍﻫﻴﻢ ﮔﺮﺍﻑ ﻣﻌﺎﺩﻟﻲ ﺑﺎ ﻳﻚ ﻭﺿﻌﻴﺖ ﻛﻤﺘﺮ ﻛﻪ ﺑﺎ ﺣﺬﻑ qﺑﺪﺳﺖ ﻣﻲ ﺁﻳﺪ ،ﭘﻴﺪﺍ ﻛﻨﻴﻢ.
ce*d
d e c
qj qj
qi q qj
ae*b
a ce*b
b ae*d
ﻓﺼﻞ ﺳﻮﻡ
ﻗﻀﻴﻪ :ﺍﮔﺮ Lﻳﻚ ﺯﺑﺎﻥ ﻣﻨﻈﻢ ﺑﺎﺷﺪ ،ﺁﻧﮕﺎﻩ ﻳﻚ ﻋﺒﺎﺭﺕ ﻣﻨﻈﻢ rﻭﺟﻮﺩ ﺩﺍﺭﺩ ،ﺑﻄﻮﺭﻳﻜﻪ
)L = L(r
ﻣﺜﺎﻝ NFA :ﺷﻜﻞ ﺯﻳﺮ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ .ﮔﺮﺍﻑ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ ﻋﺎﻡ ﭘﺲ ﺍﺯ ﺣﺬﻑ q1
ﺧﻮﺍﻫﺪ ﺑﻮﺩ :
a
b ab*b
q1 q2 q0 q2 a+b
q0
b
ﺑﻌﻨﻮﺍﻥ ﻣﺜﺎﻝ :ﻣﺠﻤﻮﻋﻪ ﻛﻠﻴﻪ ﺍﻋﺪﺍﺩ ﺻﺤﻴﺢ ﺩﺭ ﺯﺑﺎﻥ ﭘﺎﺳﻜﺎﻝ ﺭﺍ ﻣﻴﺘﻮﺍﻥ ﺑﺎ ﻋﺒﺎﺭﺕ ﻣﻨﻈﻢ *، Sdd
ﻛﻪ ﺩﺭ ﺁﻥ ﻋﻼﻣﺖ ) Sﺑﺎ ﻣﻘﺎﺩﻳﺮ} ،({+، -، λﻭ dﻳﻚ ﺭﻗﻢ ﺍﺯ ﻣﻴﺎﻥ ﺍﺭﻗﺎﻡ 0ﺍﻟﻲ 9ﻣﻲ ﺑﺎﺷﺪ.
ﻳﻜﻲ ﺍﺯ ﻛﺎﺭﺑﺮﺩ ﻫﺎﻱ ﺗﻄﺒﻴﻖ ﺍﻟﮕﻮ ،ﻭﻳﺮﺍﻳﺶ ﻣﺘﻮﻥ ﺍﺳﺖ .ﻛﻠﻴﻪ ﻭﻳﺮﺍﻳﺸﮕﺮﻫﺎ ﺍﻣﻜﺎﻥ ﺟﺴﺘﺠﻮﻱ ﻳﻚ ﻓﺎﻳﻞ ﻣﺜﺎﻝ :
ﺑﺮﺍﻱ ﻳﺎﻓﺘﻦ ﻳﻚ ﺭﺷﺘﻪ ﺍﺯ ﺣﺮﻭﻑ ﺭﺍ ﻓﺮﺍﻫﻢ ﻣﻲ ﻛﻨﺪ .ﺑﻌﻨﻮﺍﻥ ﻣﺜﺎﻝ ،ﺩﺭ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ Unixﺩﺳﺘﻮﺭ ، /aba*c/
ﺑﻌﻨﻮﺍﻥ ﺩﺳﺘﻮﺭ ﺟﺴﺘﺠﻮﻱ ﻓﺎﻳﻞ ﺑﺮﺍﻱ ﻳﺎﻓﺘﻦ ﺍﻭﻟﻴﻦ ﻣﻮﺭﺩ ﺍﺯ ﺭﺷﺘﻪ abﻭ ﺑﺪﻧﺒﺎﻝ ﺁﻥ ﻫﺮ ﺗﻌﺪﺍﺩ aﻭ ﺑﺪﻧﺒﺎﻝ ﺁﻥ
ﻳﻚ cﺗﻔﺴﻴﺮ ﻣﻲ ﺷﻮﺩ.
ﺩﺭ ﻛﺎﺭﺑﺮﺩ ﻫﺎﻱ ﺩﻳﮕﺮﻱ ﻛﻪ ﺍﻟﮕﻮ ﻫﺎ ﭘﻴﭽﻴﺪﻩ ﺗﺮ ﻭ ﻧﺎ ﻣﺤﺪﻭﺩ ﻫﺴﺘﻨﺪ ،ﺍﻟﮕﻮ ﻫﺎ ﺍﺯ ﻗﺒﻞ ﻣﻌﻴﻦ ﻧﺒﻮﺩﻩ ﻭ ﺩﺭ ﺯﻣﺎﻥ
ﺍﺟﺮﺍ ﺍﻳﺠﺎﺩ ﻣﻲ ﺷﻮﻧﺪ.
ﺍﮔﺮ ﺍﻟﮕﻮﻫﺎ ﺑﻮﺍﺳﻄﻪ ﻋﺒﺎﺭﺍﺕ ﻣﻨﻈﻢ ﻣﺸﺨﺺ ﺷﻮﻧﺪ ،ﺁﻧﮕﺎﻩ ﺑﺮﻧﺎﻣﻪ ﺗﻄﺒﻴﻖ ﺍﻟﮕﻮ ﻣﻲ ﺗﻮﺍﻧﺪ ﺍﻳﻦ ﻋﺒﺎﺭﺕ ﺭﺍ ﺑﻪ NFA
ﺗﺒﺪﻳﻞ ﻛﻨﺪ ﻭ ﺳﭙﺲ ﻣﻴﺘﻮﺍﻥ ﻃﺒﻖ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻫﺎﻱ ﺑﻴﺎﻥ ﺷﺪﻩ NFA ،ﺭﺍ ﺑﻪ DFAﺗﺒﺪﻳﻞ ﻭ ﻛﺎﻫﺶ ﺩﺍﺩ .ﺍﺯ ﻳﻚ
DFAﺩﺭ ﻗﺎﻟﺐ ﻳﻚ ﺟﺪﻭﻝ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ ﻣﻴﺘﻮﺍﻥ ﻳﻚ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺗﻄﺒﻴﻖ ﺍﻟﮕﻮ ﺳﺎﺧﺖ.
ﻓﺼﻞ ﺳﻮﻡ
ﮔﺮﺍﻣﺮ G1ﻳﻚ ﮔﺮﺍﻣﺮ ﺧﻄﻲ ﭼﭗ ﻭ ﺑﻨﺎﺑﺮﺍﻳﻦ ﻳﻚ ﮔﺮﺍﻣﺮ ﻣﻨﻈﻢ ﺑﺎ ﺯﺑﺎﻥ )*) L(aab(abﻣﻲ ﺑﺎﺷﺪ.
ﮔﺮﺍﻣﺮ G2ﻣﻨﻈﻢ ﻧﻴﺴﺖ ،ﺯﻳﺮﺍ ﻧﻪ ﺧﻄﻲ ﭼﭗ ﻭ ﻧﻪ ﺧﻄﻲ ﺭﺍﺳﺖ ﺍﺳﺖ ،ﻭﻟﻲ ﻳﻚ ﮔﺮﺍﻣﺮ ﺧﻄﻲ
ﺍﺳﺖ.
ﮔﺮﺍﻣﺮ ﺧﻄﻲ ) (Linear Grammarﮔﺮﺍﻣﺮﻱ ﺍﺳﺖ ﻛﻪ ﺩﺭ ﺁﻥ ﺣﺪﺍﻛﺜﺮ ﻳﻚ ﻣﺘﻐﻴﺮ ﻣﻲ ﺗﻮﺍﻧﺪ ﺩﺭ
ﺳﻤﺖ ﺭﺍﺳﺖ ﻳﻚ ﻗﺎﻧﻮﻥ ﻳﺎﻓﺖ ﺷﻮﺩ .ﺑﻨﺎﺑﺮﺍﻳﻦ ﻫﺮ ﮔﺮﺍﻣﺮ ﺧﻄﻲ ،ﻣﻨﻈﻢ ﻧﻴﺴﺖ ،ﻭﻟﻲ ﻫﺮ ﮔﺮﺍﻣﺮ ﻣﻨﻈﻢ
ﺧﻄﻲ ﺍﺳﺖ.
ﻓﺼﻞ ﺳﻮﻡ
ﻧﺘﻴﺠﻪ :ﺑﺮﺍﻱ ﻫﺮ ﺯﺑﺎﻥ ﻣﻨﻈﻢ ،ﻳﻚ ﮔﺮﺍﻣﺮ ﻣﻨﻈﻢ ﻭﺟﻮﺩ ﺩﺍﺭﺩ.
:ﺍﮔﺮ) G = (V،T،S،Pﻳﻚ ﮔﺮﺍﻣﺮ ﺧﻄﻲ ﺭﺍﺳﺖ ﺑﺎﺷﺪ ،ﺁﻧﮕﺎﻩ) L(Gﻳﻚ ﺯﺑﺎﻥ ﻣﻨﻈﻢ ﺍﺳﺖ. ﻗﻀﻴﻪ
ﻳﻚ ﺁﺗﺎﻣﺎﺗﺎﻱ ﻣﺘﻨﺎﻫﻲ ﺑﺴﺎﺯﻳﺪ ﻛﻪ ﺯﺑﺎﻧﻲ ﺭﺍ ﻛﻪ ﺗﻮﺳﻂ ﮔﺮﺍﻣﺮ ﺯﻳﺮ ﺗﻮﻟﻴﺪ ﻣﻴﺸﻮﺩ ،ﺑﭙﺬﻳﺮﺩ؟ ﻣﺜﺎﻝ :
a b
ﮔﺮﺍﻣﺮ ﺧﻄﻲ ﺭﺍﺳﺖ NFA V0 V1 Vf
(2ﺑﺮﺍﻱ ﻫﺮ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺘﻲ ﻣﺎﻧﻨﺪ δ(qi,aj) = qkﺍﺯ ، Mﻗﺎﻧﻮﻥ ﺯﻳﺮ ﺭﺍ ﺑﻪ Pﺍﺿﺎﻓﻪ ﻛﻨﻴﺪ.
qi ajqk
qk λ
ﻓﺼﻞ ﺳﻮﻡ
δ(q0,a)=[q1] q0aq1
ﮔﺮﺍﻣﺮ ﺧﻄﻲ ﺭﺍﺳﺖ
δ(q1,a)=[q2] q1aq2
S aA
δ(q2,b)=[q2] q2bq2 A aB
B bB|a
δ(q2,a)=[qf] q2aqf
qf∈F qfλ
q0 a q1 a q2 a qf
b
ﻓﺼﻞ ﺳﻮﻡ
• ﻗﻀﻴﻪ :
ﺯﺑﺎﻥ Lﻣﻨﻈﻢ ﺍﺳﺖ ،ﺍﮔﺮﻭﻓﻘﻂ ﺍﮔﺮ ﻳﻚ ﮔﺮﺍﻣﺮ ﺧﻄﻲ ﭼﭗ Gﺑﺎﺷﺪ ﺑﻄﻮﺭﻳﻜﻪ ).L=L(G
• ﻗﻀﻴﻪ :
ﺯﺑﺎﻥ Lﻣﻨﻈﻢ ﺍﺳﺖ ،ﺍﮔﺮﻭﻓﻘﻂ ﺍﮔﺮﮔﺮﺍﻣﺮﻣﻨﻈﻤﻲ ﻣﺎﻧﻨﺪ Gﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﻢ ﺑﻄﻮﺭﻳﻜﻪ ).L=L(G
• ﺑﺮﺍﻱ ﺗﻮﺻﻴﻒ ﺯﺑﺎﻥ ﻫﺎﻱ ﻣﻨﻈﻢ ﺍﺯ ﺭﺍﻫﻬﺎﻱ ﻣﺨﺘﻠﻒ ﻛﻪ ﻋﺒﺎﺭﺗﻨﺪﺍﺯ DFA :ﻫﺎ،
NFAﻫﺎ ،ﻋﺒﺎﺭﺍﺕ ﻣﻨﻈﻢ ﻭﮔﺮﺍﻣﺮﻫﺎﻱ ﻣﻨﻈﻢ ،ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﻛﻨﻴﻢ .ﺍﻳﻦ ﺭﻭﺵ ﻫﺎ
ﺩﺍﺭﺍﻱ ﺍﺭﺗﺒﺎﻁ ﺯﻳﺮ ﻫﺴﺘﻨﺪ :
ﺝ( ﺭﺷﺘﻪ ﻫﺎﻳﻲ ﻛﻪ ﻃﻮﻝ ﺗﻤﺎﻡ ﺩﻧﺒﺎﻟﻪ ﻫﺎﻱ aﺁﻧﻬﺎ ﻣﻀﺎﺭﺏ 3ﺑﺎﺷﻨﺪ:
*)(b+c+aaa
ﻓﺼﻞ ﺳﻮﻡ
b
b
q0 q2
q1
a
ﻓﺼﻞ ﺳﻮﻡ
(4ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ ﻋﺎﻡ ﺯﻳﺮ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻭ ﺳﭙﺲ ﮔﺮﺍﻑ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ ﻋﺎﻡ ﻣﻌﺎﺩﻝ
ﺁﻥ ﺭﺍ ﺑﺎ ﻛﺎﻫﺶ ﻳﻚ ﻭﺿﻌﻴﺖ ﺑﻴﺎﺑﻴﺪ ؟
a
λ
q0 q1 q2 bb
a+b ab
a
a
q0 q2 ab+bb
(a+b)ab
a
ﻓﺼﻞ ﺳﻮﻡ
(5ﺑﺮﺍﻱ ﺯﺑﺎﻥ ﭘﺬﻳﺮﻓﺘﻪ ﺷﺪﻩ ﺗﻮﺳﻂ ﺁﺗﺎﻣﺎﺗﻮﻥ ﺯﻳﺮ ،ﻋﺒﺎﺭﺕ ﻣﻨﻈﻤﻲ ﺑﻴﺎﺑﻴﺪ؟
b b
q0 q1 q2
a a
b
bb
ﮔﺮﺍﻑ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ q0 q2 ba
ﻋﺎﻡ ﺑﺎ ﺩﻭ ﻭﺿﻌﻴﺖ b+aa
ab
*)*)*)((ab)*((aa+b)(ba)*(bb
ﻋﺒﺎﺭﺕ ﻣﻨﻈﻢ
*))(ab+(b+aa)(ba)*(bb
ﻓﺼﻞ ﺳﻮﻡ
(6ﻳﻚ DFAﻃﺮﺍﺣﻲ ﻛﻨﻴﺪ ﻛﻪ ﺯﺑﺎﻥ ﭘﺬﻳﺮﻓﺘﻪ ﺷﺪﻩ ﺗﻮﺳﻂ ﮔﺮﺍﻣﺮ ﺯﻳﺮ ﺭﺍ ﺗﻮﻟﻴﺪ ﻛﻨﺪ ؟
S Ab|D
A Abb|Ba
B Baa| λ
D Dbb|E | λ
E Eaa| λ
ﻓﺼﻞ ﺳﻮﻡ
(9ﻳﻚ ﮔﺮﺍﻣﺮ ﻣﻨﻈﻢ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺗﻤﺎﻡ ﺍﻋﺪﺍﺩ ﺣﻘﻴﻘﻲ ﭘﺎﺳﻜﺎﻝ ﺭﺍ ﺗﻮﻟﻴﺪ ﻛﻨﺪ ؟
w = a1 a2 …. an
)h(w) = h(a1 ) h(a2) …. h(an
: • ﻣﺜﺎﻝ
: ﻓﺮﺽ ﻛﻨﻴﺪ
{
h(a) = dbcc
∑= {a , b} , Г= {b,c,d} , h(b) = bdc
r = (a+b*)(aa)*
• ﻗﻀﻴﻪ :
ﻫﺮﮔﺎﻩ Lﻳﻚ ﺯﺑﺎﻥ ﻣﻨﻈﻢ ﺑﺎﺷﺪ ،ﻫﻤﺮﻳﺨﺘﻲ hﺯﺑﺎﻥ Lﻫﻢ ﻣﻨﻈﻢ ﻣﻲ ﺑﺎﺷﺪ.
ﺑﻪ ﻋﺒﺎﺭﺕ ﺩﻳﮕﺮ ،ﺧﺎﻧﻮﺍﺩﻩ ﺯﺑﺎﻥ ﻫﺎﻱ ﻣﻨﻈﻢ ﺗﺤﺖ ﻫﺮ ﻫﻤﺮﻳﺨﺘﻲ ﺩﻟﺨﻮﺍﻩ ﺑﺴﺘﻪ ﺍﺳﺖ.
} L 1/ L2 = { x| xy є L1 , y є L2
ﻓﺼﻞ ﭼﻬﺎﺭﻡ
} L1 = { an bm | n ≥ 1 , m ≥ 0 } ∪ { ba
} L2 = { bm | m ≥1
} L1 / L2 = { an bm | n ≥ 1 , m ≥ 0
ﺑﺎﺷﺪ ،ﺑﻪ ﻳﻚ ﻭﺿﻌﻴﺖ ﻧﻬﺎﻳﻲ ﻭﺟﻮﺩﺩﺍﺭﺩ ﻳﺎ ﺧﻴﺮ .ﺍﮔﺮ ﻭﺟﻮﺩﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ،ﻫﺮﺭﺷﺘﻪ Xﺍﮔﺮ ﺑﺮﺍﺑﺮ ﺑﺎ
) δ(q0,xﺑﺎﺷﺪ ،ﺩﺭ L1 / L2ﺧﻮﺍﻫﺪﺑﻮﺩ.
ﻓﺼﻞ ﭼﻬﺎﺭﻡ
• ﻟﺬﺍ ﻫﺮﻳﻚ ﺍﺯ ﻭﺿﻌﻴﺖ ﻫﺎﻱ q0ﺍﻟﻲ q5ﺭﺍ ﺗﺴﺖ ﻣﻲ ﻛﻨﻴﻢ ﺗﺎ ﺭﺍﻫﻲ ﺑﺎ ﺑﺮﭼﺴﺐ
} bb*) {bm|m≥1ﻳﺎ ) ((b+ﺑﻪ ﻳﻜﻲ ﺍﺯ ﻭﺿﻌﻴﺖ ﻫﺎﻱ }{q1 , q2 , q4
) (Acceptorﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻳﺎ ﺧﻴﺮ ،ﻛﻪ ﻓﻘﻂ q2ﻭ q1ﻭﺍﺟﺪ ﺷﺮﺍﻳﻂ ﻫﺴﺘﻨﺪ.
DFA → L1 a
a b
q0 q1 q2 b
a b b
q0 q1 q2 b a
∪
b a,b
q3 q5
a,b
a
b a
q4 q0 q1 q2
ﻓﺼﻞ ﭼﻬﺎﺭﻡ
DFA → L1\ L2
a a b
q0 q1 q2 b
a b
q0 q1 q2 b a
b
b a
a q3
b
q3 q5 a,b
a
a,b
ﺳﺎﺩﻩ ﺍﻭﻟﻴﻪDFA
∪
q4 b a
q0 q1 q2
ﻓﺼﻞ ﭼﻬﺎﺭﻡ
ﺩﺭﻣﺜﺎﻝ ﻓﻮﻕ L1ﻭ L2ﺯﺑﺎﻧﻬﺎﻱ ﻣﻨﻈﻢ ﻣﻲ ﺑﺎﺷﻨﺪ ﻭﻟﺬﺍ ﻃﺒﻖ ﻗﻀﻴﻪ ﺯﻳﺮ L1 / L2 ،ﻧﻴﺰ
ﻣﻨﻈﻢ ﺧﻮﺍﻫﺪ ﺑﻮﺩ.
• ﻗﻀﻴﻪ :
ﺍﮔﺮ L1ﻭ L2ﺯﺑﺎﻥ ﻫﺎﻱ ﻣﻨﻈﻢ ﺑﺎﺷﻨﺪ ،ﺁﻧﮕﺎﻩ L1 / L2ﻧﻴﺰ ﻣﻨﻈﻢ ﻣﻲ ﺑﺎﺷﺪ .ﺑﻌﺒﺎﺭﺕ ﺩﻳﮕﺮ :
»ﺧﺎﻧﻮﺍﺩﻩ ﺯﺑﺎﻥ ﻫﺎﻱ ﻣﻨﻈﻢ ﺗﺤﺖ ﺧﺎﺭﺝ ﻗﺴﻤﺖ ﺭﺍﺳﺖ ﻧﺴﺒﺖ ﺑﻪ ﻳﻚ ﺯﺑﺎﻥ ﻣﻨﻈﻢ ﺩﻳﮕﺮ ﺑﺴﺘﻪ ﺍﺳﺖ«.
b a
q0 q1 q2 a
q3
a,b
(a*) : L(M0) ∩ L2 = ø
(a*b) : L(M1) ∩ L2 = {a}
(a*baa*) : L(M2) ∩ L2 = {a}
(a*bb(a+b)*) : L(M3) ∩ L2 = ø
ﻓﺼﻞ ﭼﻬﺎﺭﻡ
ﺑﻨﺎﺑﺮﺍﻳﻦ ﺯﺑﺎﻥ ﭘﺬﻳﺮﻓﺘﻪ ﺷﺪﻩ ﺗﻮﺳﻂ L1 / L2ﻋﺒﺎﺭﺕ ﻣﻨﻈﻢ ﺯﻳﺮ ﺧﻮﺍﻫﺪﺑﻮﺩ :
b a
q0 q1 q2 a
b
}∀qєQ = {q0,q1,q2,q3
q3
a,b ) ab* (L2ﺑﺮﭼﺴﺐ }F={q1,q2
}F = {q2
ﻓﺼﻞ ﭼﻬﺎﺭﻡ
• ﻗﻀﻴﻪ :
ﺍﮔﺮ ﺯﺑﺎﻥ ﻣﻨﻈﻢ Lﺑﺮﺭﻭﻱ ﺍﻟﻔﺒﺎﻱ Σﺑﺼﻮﺭﺕ ﻧﻤﺎﻳﺶ ﺍﺳﺘﺎﻧﺪﺍﺭﺩ ﻭ * W∈Σﺩﺍﺩﻩ ﺷﺪﻩ ﺑﺎﺷﺪ،
ﺍﻟﮕﻮﺭﻳﺘﻤﻲ ﺑﺮﺍﻱ ﺗﻌﻴﻴﻦ ﺍﻳﻨﻜﻪ Wﺩﺭ Lﺍﺳﺖ ﻳﺎ ﺧﻴﺮ ،ﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻛﻪ ﺑﺪﺍﻥ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻋﻀﻮﻳﺖ ﮔﻮﻳﻨﺪ.
• ﻗﻀﻴﻪ :
ﺑﺮﺍﻱ ﺗﻌﻴﻴﻦ ﺗﻬﻲ ﺑﻮﺩﻥ ،ﻣﺘﻨﺎﻫﻲ ﻳﺎ ﻏﻴﺮ ﻣﺘﻨﺎﻫﻲ ﺑﻮﺩﻥ ﻳﻚ ﺯﺑﺎﻥ ﻣﻨﻈﻢ ﻛﻪ ﺑﺎ ﻧﻤﺎﻳﺶ ﺍﺳﺘﺎﻧﺪﺍﺭﺩ ﺩﺍﺩﻩ
ﺷﺪﻩ ﺍﺳﺖ ،ﺍﻟﮕﻮﺭﻳﺘﻤﻲ ﻭﺟﻮﺩﺩﺍﺭﺩ.
• ﺍﺛﺒﺎﺕ :
(1ﺍﮔﺮ ﻣﺴﻴﺮ ﺳﺎﺩﻩ ﺍﻱ ﺍﺯ ﺭﺃﺱ ﺍﺑﺘﺪﺍﻳﻲ DFAﺑﻪ ﻫﺮﻳﻚ ﺍﺯ ﺭﺃﺱ ﻫﺎﻱ ﻧﻬﺎﻳﻲ ﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ،ﺯﺑﺎﻥ
ﻏﻴﺮ ﺗﻬﻲ ﺍﺳﺖ .
(2ﺗﻤﺎﻣﻲ ﺭﺋﻮﺳﻲ ﺭﺍ ﻛﻪ ﺑﺮ ﭘﺎﻳﻪ ﻳﻚ ﭼﺮﺧﻪ ﻫﺴﺘﻨﺪ ﺭﺍ ﭘﻴﺪﺍ ﻧﻤﻮﺩﻩ ،ﺍﮔﺮ ﺍﻳﻦ ﺭﺋﻮﺱ ﺑﺮﺭﻭﻱ ﻳﻜﻲ ﺍﺯ
ﻣﺴﻴﺮ ﻫﺎﻱ ﺭﺃﺱ ﻣﺒﺪﺃ ﺑﻪ ﻳﻚ ﻣﺒﺪﺃ ﺑﻪ ﻳﻚ ﺭﺃﺱ ﻧﻬﺎﻳﻲ ﺑﺎﺷﻨﺪ ،ﺯﺑﺎﻥ ﻣﺘﻨﺎﻫﻲ ﺍﺳﺖ ﻭ ﺩﺭ ﻏﻴﺮ ﺍﻳﻨﺼﻮﺕ
ﻏﻴﺮ ﻣﺘﻨﺎﻫﻲ ﺍﺳﺖ .
ﻓﺼﻞ ﭼﻬﺎﺭﻡ
• ﻗﻀﻴﻪ :
• ﺍﮔﺮ ﺩﻭﺯﺑﺎﻥ L1ﻭ L2ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﻧﻤﺎﻳﺶ ﺍﺳﺘﺎﻧﺪﺍﺭﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﻢ ،ﺁﻧﮕﺎﻩ ﺍﻟﮕﻮﺭﻳﺘﻤﻲ ﺑﺮﺍﻱ ﺗﻌﻴﻴﻦ
ﺍﻳﻨﻜﻪ ﺁﻳﺎ L1 = L2ﺍﺳﺖ ﻳﺎ ﺧﻴﺮ ،ﻭﺟﻮﺩ ﺩﺍﺭﺩ.
ﺍﻣﺎﭼﻮﻥ Mﻋﺒﺎﺭﺕ an bnﺭﺍﻣﻲ ﭘﺬﻳﺮﺩ ﺑﺎﻳﺪ ، δ*(q,bn ) = qf∈Fﻟﺬﺍ ﺧﻮﺍﻫﻴﻢ ﺩﺍﺷﺖ :
ﻛﻪ ﺍﻳﻦ ﺧﻼﻑ ﻓﺮﺽ ﺍﻭﻟﻴﻪ ﺍﺳﺖ M .ﺩﺭﺻﻮﺭﺗﻲ an bnﺭﺍﻣﻲ ﭘﺬﻳﺮﺩ ﻛﻪ n = mﺑﺎﺷﺪ.
ﺑﻌﺒﺎﺭﺗﻲ ﺩﻳﮕﺮ :ﻳﻚ ﺁﺗﺎﻣﺎﻱ ﻣﺘﻨﺎﻫﻲ ﻛﻪ ﺩﺍﺭﺍﻱ ﺣﺎﻓﻈﻪ ﺍﻱ ﻣﺤﺪﻭﺩ ﺍﺳﺖ ،ﻭﺑﺮﺍﻱ ﺍﻳﻨﻜﻪ an bn
ﺭﺍ ﺑﭙﺬﻳﺮﺩ ،ﻧﻴﺎﺯ ﺑﻪ ﺣﺎﻓﻈﻪ ﻧﺎﻣﺘﻨﺎﻫﻲ ﺩﺍﺭﺩ .
ﻓﺼﻞ ﭼﻬﺎﺭﻡ
• ﻗﻀﻴﻪ :
ﺍﮔﺮ Lﻳﻚ ﺯﺑﺎﻥ ﻧﺎﻣﺘﻨﺎﻫﻲ ﺑﺎﺷﺪ ،ﺁﻧﮕﺎﻩ m≥0ﻭﺟﻮﺩﺩﺍﺭﺩ ﺑﻪ ﻃﻮﺭﻳﻜﻪ ﻫﺮﺭﺷﺘﻪ
، (|w|≥m) w∈Lﻣﻴﺘﻮﺍﻧﺪ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﺗﺠﺰﻳﻪ ﮔﺮﺩﺩ :
W = xyz → |xy| ≤ m → |y|≥1
)…Wi = xyiz (i = 0,1,
ﻣﻲ ﮔﻮﻳﻴﻢ ﺭﺷﺘﻪ ﻭﺳﻄﻲ ) ( yﺗﺰﺭﻳﻖ ﺷﺪﻩ ﺍﺳﺖ .
ﻓﺼﻞ ﭼﻬﺎﺭﻡ
ﻓﺮﺽ ﻣﻲ ﻛﻨﻴﻢ Lﻣﻨﻈﻢ ﺍﺳﺖ .ﻣﻘﺪﺍﺭ mﻣﺠﻬﻮﻝ ﺍﺳﺖ ﺍﻣﺎ ﻫﻤﻮﺍﺭﻩ ﻣﻲ ﺗﻮﺍﻧﻴﻢ m = nﺍﻧﺘﺨﺎﺏ ﻧﻤﺎﺋﻴﻢ.
ﺑﻨﺎﺑﺮﺍﻳﻦ ﺯﻳﺮ ﺭﺷﺘﻪ yﺑﺎﻳﺴﺘﻲ ﻓﻘﻂ ﺍﺯ aﺗﺸﻜﻴﻞ ﺷﺪﻩ ﺑﺎﺷﺪ.
ﻓﺮﺽ ﻛﻨﻴﻢ ، |y|= kﺁﻧﮕﺎﻩ ﺭﺷﺘﻪ ﺍﻱ ﻛﻪ ﺑﻪ ﺍﺯﺍﻱ i = 0ﺩﺭ ﻣﻌﺎﺩﻟﻪ )w0= am-k bm ، (Wi = xyiz
ﺑﺪﺳﺖ ﻣﻲ ﺁﻳﺪ ﻛﻪ ﻗﻄﻌﺎً ﺩﺭ Lﻧﻴﺴﺖ ﻭﻣﻐﺎﻳﺮ ﺑﺎ ﻟﻢ ﺗﺰﺭﻳﻖ ﺍﺳﺖ ﻭ Lﻣﻨﻈﻢ ﻧﻴﺴﺖ.
ﻓﺼﻞ ﭼﻬﺎﺭﻡ
ﻣﺜﺎﻝ :ﻧﺸﺎﻥ ﺩﻫﻴﺪ ﻛﻪ ﺯﺑﺎﻥ }) ، L ={w∈Σ | na(w) < nb(wﺑﺎ ﻓﺮﺽ } ، Σ={a,bﻣﻨﻈﻢ ﻧﻴﺴﺖ ؟
ﺗﻌﺩﺍﺩ a,b
→ y = ak , 1 ≤ k ≤ mﺍﻧﺘﺨﺎﺏ ﺣﺎﻭﻱ ﻓﻘﻂ y : a
wi = xyiz
|y| ≥ 1 , |xy| ≤ m
ﺯﺑﺎﻥ ﻫﺎﻱ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﺩﺭ ﺯﺑﺎﻥ ﻫﺎﻱ ﺑﺮﻧﺎﻣﻪ ﺳﺎﺯﻱ ﻭ ﻛﺎﻣﭙﺎﻳﻠﺮﻫﺎ ﻛﺎﺭﺑﺮﺩ ﻓﺮﺍﻭﺍﻧﻲ ﺩﺍﺭﺩ.
ﺑﺎﺷﻨﺪ ﻭ ﺯﺑﺎﻥ Lﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﺍﺳﺖ ،ﺍﮔﺮﻭ ﻓﻘﻂ ﺍﮔﺮ ﮔﺮﺍﻣﺮ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ Gﻣﻮﺟﻮﺩ ﺑﺎﺷﺪ ﺑﻄﻮﺭﻳﻜﻪ ).L = L(G
ﻫﺮ ﮔﺮﺍﻣﺮ ﻣﻨﻈﻢ ،ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﺍﺳﺖ ﻭ ﺩﺭ ﻧﺘﻴﺠﻪ ﺯﺑﺎﻥ ﻣﻨﻈﻢ ﻧﻴﺰ ،ﺯﺑﺎﻥ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﺍﺳﺖ .ﻭﻟﻲ ﺯﺑﺎﻥ
} L = {an bn | n ≥ 0ﻣﻨﻈﻢ ﻧﻴﺴﺖ ،ﻭﻟﻲ ﺑﺎ ﮔﺮﺍﻣﺮ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻨﻲ ﺑﻮﺟﻮﺩ ﻣﻲ ﺁﻳﺪ.
ﺑﻨﺎﺑﺮ ﺍﻳﻦ :ﺯﺑﺎﻥ ﻫﺎﻱ ﻣﻨﻈﻢ ﺯﻳﺮﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﺯﺑﺎﻥ ﻫﺎﻱ ﻣﺴﺘﻘﻞ ﺍﺯﻣﺘﻦ ﺍﺳﺖ.
ﺩﺭ ﮔﺮﺍﻣﺮﻫﺎﻱ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﻣﻲ ﺗﻮﺍﻥ ﺟﺎﻳﮕﺰﻳﻨﻲ ﻣﺘﻐﻴﺮﻫﺎﻱ ﺳﻤﺖ ﭼﭗ ﻳﻚ ﻗﺎﻧﻮﻥ ﺭﺍ ﺩﺭ ﻫﺮ ﺯﻣﺎﻧﻲ ﻛﻪ ﺍﻳﻦ
ﻣﺘﻐﻴﺮ ﺩﺭ ﻳﻚ ﺷﻜﻞ ﺟﻤﻠﻪ ﺍﻱ ﺩﻳﺪﻩ ﻣﻲ ﺷﻮﺩ ،ﺍﻧﺠﺎﻡ ﺩﺍﺩ ،ﻭ ﺍﻳﻦ ﺑﺴﺘﮕﻲ ﺑﻪ ﺑﻘﻴﻪ ﺷﻜﻞ ﺟﻤﻠﻪ ﻧﺪﺍﺭﺩ) .ﻣﺠﺎﺯ ﺑﻪ
ﺍﻧﺘﺨﺎﺏ ﻓﻘﻂ ﻳﻚ ﻣﺘﻐﻴﺮ ﺩﺭ ﺳﻤﺖ ﭼﭗ ﻗﺎﻧﻮﻥ ﻫﺴﺘﻴﻢ(.
ﻓﺼﻞ ﭘﻨﺠﻢ
ﺩﻭ ﮔﺭﺍﻣﺭ ﻓﻭﻕ ،ﮔﺭﺍﻣﺭﻫﺎی ﻣﺳﺗﻘﻝ ﺍﺯ ﻣﺗﻥ ﻭ ﺧﻁﯽ ﺍﻧﺩ :ﮔﺭﺍﻣﺭﻫﺎی ﻣﻧﻅﻡ ﻭﺧﻁﯽ،
ﻣﺳﺗﻘﻝ ﺍﺯ ﻣﺗﻥ ﻫﺳﺗﻧﺩ ،ﻭﻟﯽ ﻳﮏ ﮔﺭﺍﻣﺭ ﻣﺳﺗﻘﻝ ﺍﺯ ﻣﺗﻥ ،ﻟﺯﻭﻣﺎ ﺧﻁﯽ ﻭ ﻳﺎ ﻣﻧﻅﻡ ﻧﻳﺳﺕ.
ﻓﺼﻞ ﭘﻨﺠﻢ
ﺯﺑﺎﻥ Lﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﺍﺳﺖ . ﻣﺜﺎﻝ :
} L (G) = { an bm | n ≠ m
ﻏﻴﺮﺧﻄﻲ ﻏﻴﺮﺧﻄﻲ
S AS1 S S1 B
→ n > mﺣﺎﻟﺕ → n < mﺣﺎﻟﺕ
S1 aS1b| λ S1 aS1b| λ
A aA|a B bB|b
S AS1 | S1B
S1 aS1b| λ
A aA|a
B bB|b
ﮔﺮﺍﻣﺮ Gﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﺍﺳﺖ. ﻣﺜﺎﻝ :
)G = ({S},{a,b},S,P
→ P : S → SS | aSb | bSa | λ
} )L (G) = { w ∈ {a,b}* | na(w) = nb(w
ﺍﺭﺗﺒﺎﻁ ﺍﻳﻦ ﮔﺮﺍﻣﺮ ﺩﺭ ﺯﺑﺎﻧﻬﺎﻱ ﺑﺮﻧﺎﻣﻪ ﺳﺎﺯﻱ ﺍﺳﺖ ،ﻫﻨﮕﺎﻣﻲ ﻛﻪ ﺩﺭ ﻋﺒﺎﺭﺍﺕ ﻣﺎﻧﻨﺪ ،(((a+b)-c)/d)*e :ﺗﻌﺪﺍﺩ ( ﻭ ) ﺑﺎﻳﺴﺘﻲ ﻳﻜﺴﺎﻥ ﺑﺎﺷﺪ.
ﻓﺼﻞ ﭘﻨﺠﻢ
• ﺍﺷﺘﻘﺎﻕ ﻫﺎﻱ ﭼﭗ ﻭ ﺭﺍﺳﺖ :
ﺯﺑﺎﻥ ﻫﺎﻱ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﻛﻪ ﺧﻄﻲ ﻧﻴﺴﺘﻨﺪ ← ﺍﺷﺘﻘﺎﻕ ﻫﺎ ،ﺣﺎﻭﻱ ﺟﻤﻠﻪ ﻫﺎﻳﻲ ﺑﺎ ﺑﻴﺶ ﺍﺯ ﻳﻚ ﻣﺘﻐﻴﺮ ﻫﺴﺘﻨﺪ .
ﻣﺜﺎﻝ :
)G = ({S,A,B},{a,b},S,P
S → AB
P A → aaA | λ
B → Bb | λ
A
ﺩﺭﺧﺖ ﺍﺷﺘﻘﺎﻕ ﻗﺎﻧﻮﻥ A → abABcﺑﻪ ﺷﻜﻞ ﺯﻳﺮ ﺍﺳﺖ ﻣﺜﺎﻝ :
ﺭﺷﺘﻪ ﺍﻱ ﻛﻪ ﺍﺯﺧﻮﺍﻧﺪﻥ ﺑﺮگ ﻫﺎﻱ ﺩﺭﺧﺖ ﺍﺯ ﭼﭗ ﺑﻪ ﺭﺍﺳﺖ ،ﭘﺲ ﺍﺯﺣﺬﻑ ﻫﺎ ﺑﺪﺳﺖ ﻣﻲ ﺁﻳﺪ ،ﺣﺎﺻﻞ ﺩﺭﺧﺖ ﮔﻮﻳﻨﺪ.
S
S
a A B
a A B
b B b A
b B b
λ b B b
ﺩﺭﺧﺕ ﺍﺷﺗﻘﺎﻕ ﺟﺯﺋﯽ
ﺩﺭﺧﺕ ﺍﺷﺗﻘﺎﻕ G
λ
ﻓﺼﻞ ﭘﻨﺠﻢ
L (G) = { w ∈ {a,b}* | na(w) = nb(w) } S : ﻣﺜﺎﻝ
S → aSb | bSa | SS | λ S S
a S b λ
ﺍﺷﺘﻘﺎﻕ ﭼﭗ b S a
a S b
λ
ﻓﺼﻞ ﭘﻨﺠﻢ
ﻗﻀﻴﻪ :
،ﻳﻚ ﺩﺭﺧﺖ ﺑﺎ ﻓﺮﺽ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﺑﻮﺩﻥ ﮔﺮﺍﻣﺮ ) ، G = (V,T,S,Pﺑﻪ ﺍﺯﺍﻱ ﻫﺮ
ﺍﺷﺘﻘﺎﻕ ﺑﺮﺍﻱ Gﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻛﻪ ﺣﺎﺻﻞ ﺁﻥ Wﺍﺳﺖ ﻭ ﺑﺎﻟﻌﻜﺲ.
ﺍﮔﺮ tGﻳﻚ ﺩﺭﺧﺖ ﺍﺷﺘﻘﺎﻕ ﺟﺰﺋﻲ ﺑﺮﺍﻱ Gﺑﺎ ﺭﻳﺸﻪ ﻱ Sﺑﺎﺷﺪ ،ﺁﻧﮕﺎﻩ ﺣﺎﺻﻞ tGﻳﻚ ﺷﻜﻞ ﺟﻤﻠﻪ ﺍﻱ
ﺍﺯ Gﻣﻲ ﺑﺎﺷﺪ.
ﻓﺼﻞ ﭘﻨﺠﻢ
ﺩﺭ ﺩﻭﺭ ﺍﻭﻝ ،ﻫﻤﻪ ﻱ ﻗﻮﺍﻧﻴﻨﻲ ﻛﻪ ﺑﻪ ﺷﻜﻞ S → xﻫﺴﺘﻨﺪ ،ﻣﻴﺎﺑﻴﻢ .ﺍﮔﺮ ﻫﻴﭻ ﻳﻚ ﺑﺎ wﺍﻧﻄﺒﺎﻕ ﻧﺪﺍﺷﺖ ،ﺁﻧﮕﺎﻩ :
ﺩﺭ ﺩﻭﺭ ﺩﻭﻡ ،ﻫﻤﻪ ﻱ ﻗﻮﺍﻧﻴﻨﻲ ﻛﻪ ﻗﺎﺑﻞ ﺍﻋﻤﺎﻝ ﺑﺮ ﺭﻭﻱ ﻣﺘﻐﻴﺮ ﭼﭗ ﻫﻤﻪ ﻱ xﻫﺎ ﺍﺳﺖ ،ﻣﻴﺎﺑﻴﻢ.
ﺍﻳﻦ ﺭﻭﺵ ،ﻳﻚ ﺍﺷﺘﻘﺎﻕ ﭼﭗ ﺍﺯ wﺍﺭﺍﺋﻪ ﻣﻲ ﻛﻨﺪ .ﺍﻳﻦ ﺭﻭﺵ ،ﺭﻭﺵ ﭘﻮﻳﺶ ﺟﺴﺘﺠﻮﻱ ﻛﺎﻣﻞ ﺍﺳﺖ ﻭ ﻧﻮﻋﻲ ﭘﻮﻳﺶ
ﺑﺎﻻ ﺑﻪ ﭘﺎﻳﻴﻦ )ﺭﻳﺸﻪ ﺑﻪ ﺑﺮگ ﻫﺎ( ﻣﻲ ﺑﺎﺷﺪ .
ﻓﺼﻞ ﭘﻨﺠﻢ
ﻫﻤﺎﻧﻄﻮﺭ ﻛﻪ ﻣﺸﺎﻫﺪﻩ ﻣﻲ ﺷﻮﺩ ،ﺍﻳﻦ ﺭﻭﺵ ﺩﺍﺭﺍﻱ ﻣﺸﻜﻞ ﺍﺳﺖ .ﻣﺸﻜﻞ ﻧﺎﻣﻌﻴﻦ ﺑﻮﺩﻥ ﻭﻋﺪﻡ ﺗﻮﻗﻒ ﺁﻥ ﺍﺳﺖ.
ﻣﺸﻜﻞ ﻗﺎﻧﻮﻥ S → λﻣﻴﺒﺎﺷﺪ .ﺍﺯ ﺍﻳﻦ ﻗﺎﻧﻮﻥ ﺑﺮﺍﻱ ﻛﺎﻫﺶ ﻃﻮﻝ ﺷﻜﻞ ﻫﺎﻱ ﺟﻤﻠﻪ ﺍﻱ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻴﺸﻮﺩ ،ﻭﻟﻲ ﺑﻪ ﺳﺎﺩﮔﻲ
ﻧﻤﻴﺘﻮﺍﻥ ﺗﺸﺨﻴﺺ ﺩﺍﺩ ﻛﻪ ﭼﻪ ﺯﻣﺎﻧﻲ ﺑﺎﻳﺪ ﺗﻮﻗﻒ ﻛﺮﺩ .ﺑﻨﺎﺑﺮﺍﻳﻦ ﻗﻮﺍﻧﻴﻦ A → B , A → λﺭﺍ ﻧﺒﺎﻳﺪ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﻢ.
ﻓﺼﻞ ﭘﻨﺠﻢ
ﺑﺎ ﻓﺮﺽ ﮔﺮﺍﻣﺮ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﺑﻮﺩﻥ ) G = (V,T,S,Pﻛﻪ ﻫﻴﭻ ﻗﺎﻧﻮﻧﻲ ﺑﻪ ﺷﻜﻞ ﻗﻀﻴﻪ :
A → λﻭ ﻳﺎ ، A → Bﺑﻄﻮﺭﻳﻜﻪ ، A,B ∊ Vﻧﺪﺍﺭﺩ .ﺭﻭﺵ ﭘﻮﻳﺶ ﺟﺴﺘﺠﻮﻱ ﻛﺎﻣﻞ ﺑﺼﻮﺭﺕ ﺍﻟﮕﻮﺭﻳﺘﻤﻲ
ﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻛﻪ ﺑﻪ ﺍﺯﺍﻱ ﻫﺮ ∊ ، wﻳﺎ ﻳﻚ ﭘﻮﻳﺶ ﺍﺯ wﺗﻮﻟﻴﺪ ﻣﻴﻜﻨﺪ ﻭ ﻳﺎ ) w ∉ L(Gﻧﺨﻮﺍﻫﺪ ﺑﻮﺩ.
ﺍﺳﺖ ،ﭘﻮﻳﺶ ﻣﻲ ﻛﻨﺪ. ﺍﻳﻦ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻫﺮ ﺭﺷﺘﻪ ) w ∊ L(Gﺭﺍ ﺩﺭ ﺗﻌﺪﺍﺩ ﻣﺮﺍﺣﻠﻲ ﻛﻪ ﻣﺘﻨﺎﺳﺐ ﺑﺎ
ﻣﺜﺎﻝ :
1) S → aSbSSc S-Grammar
2) S → aS|bSS|aSS|c ﺗﻜﺮﺍﺭ ﺯﻭﺝ )(S,a
ﻓﺼﻞ ﭘﻨﺠﻢ
ﮔﺮﺍﻣﺮ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ Gﺭﺍ ﺩﺭ ﺻﻮﺭﺗﻲ ﮔﻨﮓ ﻣﻲ ﮔﻮﺋﻴﻢ ﻛﻪ ﻳﻚ ) w ∊ L(Gﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ
ﺑﺎﺷﺪ ،ﻛﻪ ﺣﺪﺍﻗﻞ ﺩﻭ ﺩﺭﺧﺖ ﺍﺷﺘﻘﺎﻕ ﻣﺘﻔﺎﻭﺕ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ.
E E
E + E E * E
E I I E + E
E * E c a I I
I I
b c
a b
ﻓﺼﻞ ﭘﻨﺠﻢ
ﺍﻭﻟﻮﻳﺖ ﻭ ﺗﻘﺪﻡ ﻋﻤﻠﮕﺮﻫﺎ: ﺭﺍﻩ ﺣﻞ
a
ﻓﺼﻞ ﭘﻨﺠﻢ
ﺑﻌﻀﻲ ﺍﺯ ﺯﺑﺎﻧﻬﺎ ﺫﺍﺗﺎ ﮔﻨﮓ ﻫﺴﺘﻨﺪ ﻭ ﮔﺮﺍﻣﺮ ﻏﻴﺮﮔﻨﮕﻲ ﺑﺮﺍﻱ ﺁﻧﻬﺎ ﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ.
ﺯﺑﺎﻥ } ، L = {an bn cm} U {an bm cmﺑﺎﻓﺮﺽ ، m,n >= 0ﻣﺴﺘﻘﻞ ﺍﺯﻣﺘﻦ ﻭ ﺫﺍﺗﺎ ﮔﻨﮓ ﺍﺳﺖ . ﻣﺜﺎﻝ :
: BNF • ﻧﻤﺎﺩ
< expression > ::= < term > | < expression > + < term >
< term > ::= < factor > | < term > * < factor >
< if-statement > ::= if < expression > < then – clouse > < else – clouse >
ﻓﺼﻞ ﭘﻨﺠﻢ
: • ﺗﻤﺮﻳﻨﺎﺕ ﻓﺼﻞ ﭘﻨﺠﻢ
S aSb|aA|bB
1) L = { an bm | n ≠ m -1 } A aA|λ
B bB|λ
S aSc|A
3) L = { an bm ck | k = m + n } A bAc|λ
ﻓﺼﻞ ﭘﻨﺠﻢ
S aSb|aAb
5) L = { an ww R bn | w ∈ (a,b)* & n >= 1 }
A aAa|bAb|λ
ﻓﺼﻞ ﭘﻨﺠﻢ
(6ﻧﺸﺎﻥ ﺩﻫﻴﺪ ﻛﻪ ﺯﺑﺎﻥ ﺯﻳﺮ ﻣﺴﺘﻘﻞ ﺍﺯﻣﺘﻦ ﺍﺳﺖ؟
S AB
∈ L = { uvwv | u,v,w
R & (a,b)+ } |u|=|w|=2 A aa|bb|ab|ba
B aBa|bBb|aAa|bAb
(8ﻳﻚ ﮔﺮﺍﻣﺮ ﻏﻴﺮﮔﻨﮓ ﺍﺭﺍﺋﻪ ﺩﻫﻴﺪ ﻛﻪ ﻣﺠﻤﻮﻋﻪ ﺗﻤﺎﻡ ﻋﺒﺎﺭﺍﺕ ﻣﻨﻈﻢ ﺭﻭﻱ ﺑﺮﺍﻱ ﺯﺑﺎﻥ } Σ = {a,bﺭﺍ ﺗﻮﻟﻴﺪﻛﻨﺪ؟
S T|S+T
T F|T.F
F I |(S)|S*|S+
I a|b|λ
ﻓﺼﻞ ﭘﻨﺠﻢ
ﺩﺭ ﭘﺎﺳﻜﺎﻝ ﺍﺭﺍﺋﻪ ﺩﻫﻴﺪ؟while ﺑﺮﺍﻱBNF ( ﻳﻚ ﻋﺒﺎﺭﺕ9
<while exp> ::= while <compare exp> do begin <expression> end ;
<compare exp> ::= <compare exp> and <compare exp> | <compare exp> or <compare exp>
<compare exp> ::= not <compare exp>
<compare exp> ::= ( <compare exp> )
<compare exp> ::= <expression> <compare sign> <expression>
<compare sign > ::= > | >= | < | <= | = | <>
<expression> ::= <expression> <expression> | <variable> := <expression> ;
<expression> ::= <expression> <sign> <expression>
<sign> ::= + | - | * | / | div | mod
<expression> ::= <variable> | <numeric>
<expression> ::= ( <expression> )
<variable> ::= <alphabet> <var>
<alphabet> ::= A | … | Z | a |… | z
<var> ::= <digit> <var>
<var> ::= _ <var> | λ
<numeric> ::= <digit > <numeric> | <digit>
<digit > ::= 0 | 1 | 2 | … | 9
ﻓﺻﻝ ﺷﺷﻡ
ﺳﺎﺩﻩ ﺳﺎﺯﻱ ﮔﺮﺍﻣﺮﻫﺎﻱ ﻣﺴﺘﻘﻞ ﺍﺯﻣﺘﻦ
ﻭ ﻓﺮﻡ ﻫﺎﻱ ﻧﺮﻣﺎﻝ
ﻓﺼﻞ ﺷﺸﻢ
ﻫﺪﻑ :
ﺗﺒﺪﻳﻞ ﮔﺮﺍﻣﺮﻫﺎﻱ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﺑﻪ ﮔﺮﺍﻣﺮﻫﺎﻱ ﻣﻌﺎﺩﻟﻲ ﻛﻪ ﻣﺤﺪﻭﺩﻳﺖ ﻫﺎﻱ ﺧﺎﺻﻲ ﺭﺍ ﺭﻋﺎﻳﺖ ﻧﻤﺎﻳﻨﺪ.
ﺩﺭ ﻳﻚ ﮔﺮﺍﻣﺮ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ،ﻫﺮ ﻗﺎﻧﻮﻧﻲ ﻛﻪ ﺑﻪ ﺷﻜﻞ A → λﺑﺎﺷﺪ ،ﻗﺎﻧﻮﻥ λﮔﻮﻳﻨﺪ.
ﻫﺮ ﻣﺘﻐﻴﺮﻱ ﻣﺎﻧﻨﺪ Aﻛﻪ ﺑﺮﺍﻱ ﺁﻥ ﺍﺷﺘﻘﺎﻕ A →…→ λﻣﻤﻜﻦ ﺑﺎﺷﺪ Nullable ،ﮔﻮﻳﻨﺪ.
ﻳﻚ ﮔﺮﺍﻣﺮ ﻣﻴﺘﻮﺍﻧﺪ ﺯﺑﺎﻧﻲ ﺭﺍ ﻛﻪ ﺣﺎﻭﻱ λﻧﺒﺎﺷﺪ ،ﺗﻮﻟﻴﺪ ﻛﻨﺪ ﻭ ﺩﺭ ﻋﻴﻦ ﺣﺎﻝ ﺩﺍﺭﺍﻱ ﻗﻮﺍﻧﻴﻦ λﻳﺎ ﻣﺘﻐﻴﺮﻫﺎﻱ
Nullableﺑﺎﺷﺪ.
ﻓﺼﻞ ﺷﺸﻢ
S ABb|λ S Abb|Ab|Bb|b|AB|A|B|λ
P1 A aA|λ Ṕ1 A aA|a
B bB|λ B bB|b
S aS1b S aS1b|ab
P2 Ṕ2
S1 aS1b|λ S1 aS1b|ab
ﻓﺼﻞ ﺷﺸﻢ
(2ﻗﺎﻧﻮﻥ ﺟﺎﻳﮕﺰﻳﻨﻲ ﺳﻮﺩﻣﻨﺪ :ﺣﺬﻑ ﺑﻌﻀﻲ ﺍﺯ ﻗﻮﺍﻧﻴﻦ ﻧﺎﻣﻄﻠﻮﺏ ﻛﻪ ﺗﻨﻬﺎ ﺑﺨﺎﻃﺮ ﻛﺎﻫﺶ ﺗﻌﺪﺍﺩ ﻗﻮﺍﻧﻴﻦ ﺻﻮﺭﺕ
ﻧﻤﻲ ﭘﺬﻳﺮﺩ.
ﮔﺮﺍﻣﺮ ﻣﺴﺘﻘﻞ ﺍﺯﻣﺘﻦ ) G=(V,T,S,Pﺑﺎ ﻗﻮﺍﻧﻴﻦ A x1Bx2ﺭﺍ ﺩﺭﻧﻈﺮﮔﺮﻓﺘﻪ ﻭﻓﺮﺽ ﻧﻤﺎﻳﻴﺪ ﻛﻪ ﻗﻀﻴﻪ :
B y1|y2|…|ynﻣﺠﻤﻮﻋﻪ ﻛﻠﻴﻪ ﻗﻮﺍﻧﻴﻦ Pﻛﻪ Bﺭﺍ ﺩﺭﺳﻤﺖ ﭼﭗ ﺧﻮﺩ ﺩﺍﺭﺩ ،ﺑﺎﺷﻨﺪ.
(3ﺣﺬﻑ ﻗﻮﺍﻧﻴﻦ ﺑﻲ ﻓﺎﻳﺪﻩ :ﺑﺮﺍﻱ ﺑﻲ ﻓﺎﻳﺪﻩ ﺑﻮﺩﻥ ﻳﻚ ﻗﺎﻧﻮﻥ ﺑﻪ ﺩﻭ ﺩﻟﻴﻞ ﻧﻴﺎﺯﺩﺍﺭﻳﻢ .ﺍﻭﻻ ،ﻣﻨﺠﺮﺑﻪ ﺗﻮﻟﻴﺪ ﺭﺷﺘﻪ ﺍﻱ
ﺩﺭﺯﺑﺎﻥ ﻧﺸﻮﺩ .ﺛﺎﻧﻴﺎ ،ﺍﺯ ﻭﺿﻌﻴﺖ ﺷﺮﻭﻉ ﻗﺎﺑﻞ ﺩﺳﺘﻴﺎﺑﻲ ﻧﺒﺎﺷﺪ.
ﻗﻀﻴﻪ :ﺑﺎﻓﺮﺽ ﻣﺴﺘﻘﻞ ﺑﻮﺩﻥ ﺍﺯﻣﺘﻦ ﮔﺮﺍﻣﺮ ) ، G=(V,T,S,Pﻣﺘﻐﻴﺮ A∈Vﺭﺍ ﻣﻔﻴﺪ ﮔﻮﻳﻴﻢ ،ﺍﮔﺮ ﻭ ﻓﻘﻂ ﺍﮔﺮ
ﺣﺪﺍﻗﻞ ﻳﻚ ) w∈L(Gﺑﺎﺷﺪ ،ﺑﻄﻮﺭﻳﻜﻪ x,y∈(V U T)* , S → xAy → w :
ﻣﺘﻐﻴﺮﻱ ﻛﻪ ﻗﺎﺑﻞ ﺍﺳﺘﻔﺎﺩﻩ ﻧﺒﺎﺷﺪ ،ﺑﻲ ﻓﺎﻳﺪﻩ ) ، (Uselessﻭ ﻗﻮﺍﻧﻴﻨﻲ ﻛﻪ ﺩﺍﺭﺍﻱ ﻣﺘﻐﻴﺮ ﺑﻲ ﻓﺎﻳﺪﻩ ﺑﺎﺷﺪ ،ﻗﺎﻧﻮﻥ ﺑﻲ
ﻓﺎﻳﺪﻩ ﻧﺎﻣﻴﺪﻩ ﻣﻲ ﺷﻮﺩ.
ﺑﺎ ﺣﺮﻛﺖ ﺍﺯ Sﺑﻪ ﻃﺮﻑ Aﻭ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻗﺎﻧﻮﻥ S → Aﻫﻴﭻ ﺭﺷﺘﻪ ﺍﻱ ﺩﺭﮔﺮﺍﻣﺮ S aSb|A|λ
A aA
ﻣﺜﺎﻝ :
ﺗﻮﻟﻴﺪ ﻧﺨﻮﺍﻫﺪ ﺷﺪ .ﻳﻌﻨﻲ ،ﺑﻮﺩﻥ ﻳﺎ ﻧﺒﻮﺩﻥ ﻣﺘﻐﻴﺮ Aﻭ ﻗﺎﻧﻮﻥ ﻣﺮﺑﻮﻃﻪ ﺍﺵ ،ﻫﻴﭻ ﺗﺎﺛﻴﺮﻱ ﺭﻭﻱ ﺯﺑﺎﻥ ﻧﺪﺍﺭﺩ ﻭ ﻣﻲ ﺗﻮﺍﻥ ﺁﻥ ﺭﺍ
ﺣﺬﻑ ﻛﺮﺩ.
ﻓﺼﻞ ﺷﺸﻢ
SA
ﻗﺎﻧﻮﻥ ، B → bAﻫﻴﭻ ﻣﺴﻴﺮﻱ ﺍﺯ ﻭﺿﻌﻴﺖ ﺷﺮﻭﻉ Sﺑﻪ ﻣﺘﻐﻴﺮ Bﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ. ﺩﺭﮔﺮﺍﻣﺮ A aA|λ ﻣﺜﺎﻝ :
B bA
ﻟﺬﺍ ﺑﻮﺩﻥ ﻭ ﻧﺒﻮﺩﻥ ﻗﺎﻧﻮﻥ ﻣﺮﺑﻮﻃﻪ ﺍﺵ ،ﻫﻴﭻ ﺗﺎﺛﻴﺮﻱ ﺭﻭﻱ ﺯﺑﺎﻥ ﻧﺪﺍﺭﺩ ﻭ ﻣﻲ ﺗﻮﺍﻥ ﺁﻥ ﺭﺍ ﺣﺬﻑ ﻧﻤﻮﺩ .ﻣﺘﻐﻴﺮ Bﺑﻲ ﻓﺎﻳﺪﻩ ﻭ
ﻗﺎﻧﻮﻥ ، B → bAﻗﺎﻧﻮﻥ ﺑﻲ ﻓﺎﻳﺪﻩ ﻣﻲ ﺑﺎﺷﺪ.
S aS|A
)G1 = ({S,A,B},{a},S,P1 P1 Aa
B aa
ﻓﺼﻞ ﺷﺸﻢ
(2ﺷﻨﺎﺳﺎﻳﻲ ﻣﺘﻐﻴﺮﻫﺎﻳﻲ ﻛﻪ ﺍﺯ ﻭﺿﻌﻴﺖ ﺷﺮﻭﻉ ﻗﺎﺑﻞ ﺩﺳﺘﻴﺎﺑﻲ ﻧﺒﺎﺷﻨﺪ.
ﮔﺮﺍﻑ ﻭﺍﺑﺴﺘﮕﻲ G1 S A B ﻣﺘﻐﻴﺮ Bﺑﻲ ﻓﺎﻳﺪﻩ ﺍﺳﺖ.
ﺑﺎ ﻓﺮﺽ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﺑﻮﺩﻥ ﮔﺮﺍﻣﺮ ) ، G=(V,T,S,Pﮔﺮﺍﻣﺮﻱ ﻣﻌﺎﺩﻝ ﮔﺮﺍﻣﺮ Gﺑﻨﺎﻡ ﻗﻀﻴﻪ :
ﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻛﻪ ﺩﺍﺭﺍﻱ ﻫﻴﭻ ﻣﺘﻐﻴﺮ ﻳﺎ ﻗﺎﻧﻮﻥ ﺑﻲ ﻓﺎﻳﺪﻩ ﻧﻴﺴﺖ.
ﻓﺼﻞ ﺷﺸﻢ
S AS|AAS
A SA|aa ﺩﺭ ﻓﺮﻡ ﻧﺮﻣﺎﻝ ﭼﺎﻣﺴﻜﻲ ﺍﺳﺖ ﻭ ﮔﺮﺍﻣﺮ
S AS|a
ﮔﺮﺍﻣﺮ A SA|b ﻣﺜﺎﻝ :
)ﺩﺭﺍﻳﻥ ﻣﺛﺎﻝ ،ﮔﺭﺍﻣﺭ ﺩﺍﺭﺍی ﻗﻭﺍﻧﻳﻥ λﻭ ﻳﮑﻪ ﻧﻳﺳﺕ(. ﺩﺭ ﻓﺮﻡ ﻧﺮﻣﺎﻝ ﭼﺎﻣﺴﻜﻲ ﻧﻴﺴﺖ.
ﻗﻀﻴﻪ :ﻫﺮ ﮔﺮﺍﻣﺮ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ) G=(V,T,S,Pﻛﻪ ﺩﺭ ﺁﻥ ) λ∉L(Gﺑﺎﺷﺪ ،ﺩﺍﺭﺍﻱ ﮔﺮﺍﻣﺮ ﻣﻌﺎﺩﻝ
) Ĝ =(V,T,S,Pﺩﺭ ﻓﺮﻡ ﻧﺮﻣﺎﻝ ﭼﺎﻣﺴﻜﻲ ﺍﺳﺖ.
ﻓﺼﻞ ﺷﺸﻢ
n=1ﺍﮔﺮ )ﭼﻮﻥ ﻗﺎﻧﻮﻥ ﻳﻜﻪ ﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ( ﺗﺮﻣﻴﻨﺎﻝ X1 ﻗﺎﻧﻮﻥ ﺩﺭ P1ﻗﺮﺍﺭ ﻣﻲ ﮔﻴﺮﺩ
n>=2ﺍﮔﺮ Ba , ∀ a∈Tﺗﻌﺮﻳﻒ ﻣﺘﻐﻴﺮ ﺟﺪﻳﺪ
ﻗﺎﻧﻮﻥ ﺩﺭ ∀ P1 A X1X2…Xn ﻗﺎﻧﻮﻥ ﺩﺭ P1ﻗﺮﺍﺭ ﻣﻲ ﮔﻴﺮﺩ A C1C2…Cn
ﻣﺘﻐﻴﺮ ∀ Ba ﻗﺎﻧﻮﻥ ﺩﺭ P1ﻗﺮﺍﺭ ﻣﻲ ﮔﻴﺮﺩ Ba a
Xi∈Vﺍﮔﺭ Ci = Xi
Xi∈aﺍﮔﺭ Ci = Ba
ﺍﻳﻦ ﻗﺴﻤﺖ ﺍﺯ ﺍﻟﮕﻮﺭﻳﺘﻢ ،ﺗﻤﺎﻣﻲ ﺗﺮﻣﻴﻨﺎﻟﻬﺎ ﺭﺍ ﺍﺯ ﻗﻮﺍﻧﻴﻨﻲ ﻛﻪ ﺳﻤﺖ ﺁﻧﻬﺎ ﻃﻮﻝ ﺑﺰﺭﮔﺘﺮ ﺍﺯ ﻳﻚ ﺩﺍﺭﺩ ،ﺑﺎ ﺟﺎﻳﮕﺰﻳﻨﻲ ﺁﻧﻬﺎ ﺑﺎ
ﻣﺘﻐﻴﺮﻫﺎﻱ ﺟﺪﻳﺪ ،ﺣﺬﻑ ﻣﻲ ﻛﻨﺪ .
) A C1C2…Cn (Ci∈Viﻳﺎ G1: A a
)L(G) = L(G1
ﻓﺼﻞ ﺷﺸﻢ
oﮔﺎﻡ ﺩﻭﻡ :
ﺍﺑﺘﺪﺍ ﻫﻤﻪ ﻗﻮﺍﻧﻴﻦ ﺑﻪ ﺷﻜﻞ A aﻭ ﺳﭙﺲ ﻫﻤﻪ ﻗﻮﺍﻧﻴﻦ ﺑﻪ ﺷﻜﻞ A C1C2…Cnﺭﺍ ﺑﺎ n=2ﺩﺭ Ṕ
ﻗﺮﺍﺭ ﻣﻲ ﺩﻫﻴﻢ ) .ﺍﻋﻤﺎﻝ ﻗﺎﻧﻮﻥ ( A BC
A C1D1
D1 C2D2
Ṕ …
Dn-2 Cn-1Cn
ﮔﺮﺍﻣﺮﻱ ﺑﺎ ﻗﻮﺍﻧﻴﻦ ﺯﻳﺮ ﺭﺍ ﺑﻪ ﻓﺮﻡ ﻧﺮﻣﺎﻝ ﭼﺎﻣﺴﻜﻲ ﺗﺒﺪﻳﻞ ﻧﻤﺎﺋﻴﺪ؟ ﻣﺜﺎﻝ :
)ﺩﺭﺍﻳﻥ ﻣﺛﺎﻝ ،ﮔﺭﺍﻣﺭ ﺩﺍﺭﺍی ﻗﻭﺍﻧﻳﻥ λﻭ ﻳﮑﻪ ﻧﻳﺳﺕ(.
S ABa|B
> G: < {S,A,B},{a,b,c},{S},P P A aab
B Ac
ﻓﺼﻞ ﺷﺸﻢ
ﮔﺮﺍﻣﺮ G1ﺩﺭ ﻓﺮﻡ ﻧﺮﻣﺎﻝ ﮔﺮﻳﺒﺎﺥ ﻧﻴﺴﺖ ،ﻭﻟﻲ ﮔﺮﺍﻣﺮ G2ﺩﺭﻓﺮﻡ ﻧﺮﻣﺎﻝ ﮔﺮﻳﺒﺎﺥ ﻣﻲ ﺑﺎﺷﺪ. ﻣﺜﺎﻝ :
S AB S aAB|bBB|bB
G1 A aA|bB|b G2 A aA|bB|b
Bb Bb
ﻓﺼﻞ ﺷﺸﻢ
S aBSB|aA
Aa ﻣﺘﻐﻴﺮﻫﺎﻱ A,Bﺭﺍ ﻛﻪ ﻣﺘﺮﺍﺩﻑ ﺑﺎ a,bﻫﺴﺘﻨﺪ ،ﺟﺎﻳﮕﺰﻳﻦ ﻣﻲ ﻛﻨﻴﻢ.
Bb
ﻗﻀﻴﻪ :ﺑﻪ ﺍﺯﺍﻱ ﻫﺮﮔﺮﺍﻣﺮ ﻣﺴﺘﻘﻞ ﺍﺯﻣﺘﻦ ) G=(V,T,S,Pﻛﻪ ﺩﺭ ﺁﻥ ) λ∉L(Gﺑﺎﺷﺪ ،ﺩﺍﺭﺍﻱ
ﮔﺮﺍﻣﺮ ﻣﻌﺎﺩﻝ ) Ĝ =(V,T,S,Pﺩﺭ ﻓﺮﻡ ﻧﺮﻣﺎﻝ ﮔﺮﻳﺒﺎﺥ ﺍﺳﺖ.
ﻓﺼﻞ ﺷﺸﻢ
ﺍﻟﮕﻮﺭﻳﺘﻢ ﻋﻀﻮﻳﺖ ﺑﺮﺍﻱ ﮔﺮﺍﻣﺮﻫﺎﻱ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ :
ﺷﺮﻁ ﺍﺻﻠﻲ :ﺍﻟﮕﻮﺭﻳﺘﻢ CYKﺩﺭﺻﻮﺭﺗﻲ ﻛﺎﺭ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﮔﺮﺍﻣﺮ ﺩﺭ ﻓﺮﻡ ﻧﺮﻣﺎﻝ ﭼﺎﻣﺴﻜﻲ ﺑﺎﺷﺪ.
ﻓﺮﺽ ﻛﻨﻴﺪ ﮔﺮﺍﻣﺮ ) G=(V,T,S,Pﺩﺭﻓﺮﻡ ﻧﺮﻣﺎﻝ ﭼﺎﻣﺴﻜﻲ ﺑﻮﺩﻩ ﻭ ﺭﺷﺘﻪ w = a1a2…anﺭﺍ ﺩﺍﺭﻳﻢ:
w = ai…ajﺯﻳﺮﺭﺷﺘﻪ
} Vij = {A∊V | A * wijﺯﻳﺮﻣﺠﻤﻮﻋﻪ ﺍﺯ V
oﻧﻜﺘﻪ : 1ﻭﺍﺿﺢ ﺍﺳﺖ ﻛﻪ ) w ∊ L(Gﺍﺳﺖ ،ﺍﮔﺮ ﻭ ﻓﻘﻂ ﺍﮔﺮ S ∊ V1nﺑﺎﺷﺪ.
oﻧﻜﺘﻪ A ∊ Vii : 2ﺍﺳﺖ ،ﺍﮔﺮ ﻭ ﻓﻘﻂ ﺍﮔﺮ Gﺣﺎﻭﻱ ﻗﺎﻧﻮﻧﻲ ﻣﺎﻧﻨﺪ A aiﺑﺎﺷﺪ.
ﺗﻌﻴﻴﻦ ﻧﻤﺎﻳﻴﺪ ﺁﻳﺎ ﺭﺷﺘﻪ w = aabbbﺩﺭﺯﺑﺎﻥ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺗﻮﺳﻂ ﮔﺮﺍﻣﺮ ﺯﻳﺮ ﻭﺟﻮ ﺩﺍﺭﺩ ﻳﺎ ﺧﻴﺮ ؟ ﻣﺜﺎﻝ :
S AB
A BB|a w1,1 w2,2 w3,3 w4,4 w5,5
B AB|b
ﺳﭘﺱ ﺭﻭﺍﻝ ﺣﺫﻑ ﻗﻭﺍﻧﻳﻥ ﺑﯽ ﻓﺎﻳﺩﻩ ﺭﺍ ﻓﺭﺍﺧﻭﺍﻧﯽ ﻣﯽ ﮐﻧﻳﻡ ﮐﻪ ﺣﺎﺻﻝ ﺑﺻﻭﺭﺕ ﺯﻳﺭ ﺧﻭﺍﻫﺩ ﺑﻭﺩ:
S aaB|aB|aa|a
B bb
ﻓﺼﻞ ﺷﺸﻢ
.3
S A1A3|A1A5|b
A3 SA4
A4 A1 A
A5 A2 A
A A1A5|b
A1 a
A2 b
} L1 = { an bn | n >= 0 nﻧﺎﻣﺤﺪﻭﺩ ،ﺷﻤﺎﺭﺵ ﺗﻌﺪﺍﺩ aﻫﺎ ،ﻛﻨﺘﺮﻝ ﺍﻳﻨﻜﻪ aﻫﺎ ﻗﺒﻞ ﺍﺯ bﻫﺎ ﺑﻴﺎﻳﺪ
ﻧﻴﺎﺯ ﺑﻪ ﻣﺎﺷﻴﻨﻲ ﺑﺎ ﺷﻤﺎﺭﺵ ﻧﺎﻣﺤﺪﻭﺩ ﺣﺎﻓﻈﻪ ﻧﺎﻣﺤﺪﻭﺩ
} *)L2 = { wwR | w ∈ (a,b ﻛﻨﺘﺮﻝ ﺗﺮﺗﻴﺐ ﻣﻌﻜﻮﺱ ﺣﺮﻭﻑ
ﺗﻌﺮﻳﻒ ﻳﻚ ﺁﺗﺎﻣﺎﺗﺎﻱ ﭘﺸﺘﻪ ﺍﻱ )(PDA ﻧﻴﺎﺯ ﺑﻪ ﭘﺸﺘﻪ )ﺩﺍﺭﺍﻱ ﻇﺮﻓﻴﺖ ﻧﺎﻣﺤﺪﻭﺩ(
ﺧﺎﻧﻮﺍﺩﻩ ﺟﺪﻳﺪ ﺍﺯ ﺯﺑﺎﻥ ﻫﺎ ﺑﻨﺎﻡ ﺯﺑﺎﻥ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﻣﻌﻴﻦ ﻳﺎ (Deterministic Context DCFL
). Free Language
ﻓﺼﻞ ﻫﻔﺘﻢ
ﺁﺗﺎﻣﺎﺗﺎی ﭘﺷﺗﻪ ﺍی ﻧﺎﻣﻌﻳﻥ ﻳﺎ : (Nondeterministic PDA) NPDA
ﺍﻳﻦ ﺩﻭ ﻗﺪﻡ ﺑﺎﻋﺚ ﺷﻤﺎﺭﺵ ﺗﻌﺪﺍﺩ aﻫﺎ ﻭ ﺗﻄﺒﻴﻖ ﺁﻥ ﺑﺎ ﺗﻌﺪﺍﺩ bﻫﺎ ﻣﻲ ﺷﻮﺩ .ﻭﺍﺣﺪ
})δ(q1,a,1) = {(q1,11
ﻛﻨﺘﺮﻝ ﺗﺎ ﺯﻣﺎﻧﻴﻜﻪ ﺍﻭﻟﻴﻦ bﺧﻮﺍﻧﺪﻩ ﺷﻮﺩ ،ﺩﺭ ﻭﺿﻌﻴﺖ q1ﺑﺎﻗﻲ ﻣﻲ ﻣﺎﻧﺪ ﻭ ﺑﺎ ﺍﻭﻟﻴﻦ
})δ(q2,b,1) = {(q2,λ bﺑﻪ q2ﻣﻲ ﺭﻭﺩ .ﺍﻳﻦ ﻋﻤﻞ ﺑﺎﻋﺚ ﻣﻲ ﮔﺮﺩﺩ ،ﻫﻴﭻ bﻗﺒﻞ ﺍﺯ ﺁﺧﺮﻳﻦ aﻧﺒﺎﺷﺪ.
ﺑﻪ ﻣﻌﻨﺎﻱ ﺑﻪ ﻣﻌﻨﺎﻱ ﺣﺮﻛﺖ ﺩﺭ ﭼﻨﺪﻳﻦ ﮔﺎﻡ ﺗﻮﺳﻂ ﻭﺍﺣﺪ ﻛﻨﺘﺮﻝ ﻭ ﻫﻤﭽﻨﻴﻦ،
ﺣﺮﻛﺖ ﺗﻮﺳﻂ Mﮔﺎﻡ ﻣﻲ ﺑﺎﺷﺪ.
ﺭﺷﺘﻪ
ﻓﺼﻞ ﻫﻔﺘﻢ
ﻳﻚ NPDAﺑﺮﺍﻱ ﺯﺑﺎﻥ Lﻃﺮﺍﺣﻲ ﻧﻤﺎﻳﻴﺪ؟ ﻣﺜﺎﻝ :
ﻗﺮﺍﺭ ﺩﺍﺩﻥ wﺩﺭ ﭘﺸﺘﻪ ﺣﺪﺱ ﺯﺩﻥ ﻭﺳﻂ ﺭﺷﺘﻪ ﺗﻄﺒﻴﻖ wR
ﺭﺷﺘﻪ
ﻓﺼﻞ ﻫﻔﺘﻢ
ﺑﻨﺎﺑﺮﺍﻳﻦ ،ﻣﻲ ﺗﻮﺍﻥ ﻳﻚ NPDAﻃﺮﺍﺣﻲ ﻧﻤﻮﺩ ﻛﻪ ﻗﺎﺩﺭ ﺑﺎﺷﺪ ﻳﻚ ﺍﺷﺘﻘﺎﻕ ﭼﭗ ،ﺑﺮﺍﻱ ﻛﻠﻴﻪ ﺭﺷﺘﻪ ﻫﺎﻱ
ﺯﺑﺎﻥ ﺭﺍ ﺍﻳﺠﺎﺩ ﻧﻤﺎﻳﺪ.
ﻓﺮﺽ ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ ﺯﺑﺎﻥ ،ﺗﻮﺳﻂ ﻳﻚ ﮔﺮﺍﻣﺮ ﻧﺮﻣﺎﻝ ﮔﺮﻳﺒﺎﺥ ،ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺑﺎﺷﺪ.
ﻳﻚ PDAﺑﺮﺍﻱ ﭘﺬﻳﺮﺵ ﺯﺑﺎﻧﻲ ﺑﺎ ﮔﺮﺍﻣﺮ S aSbb | aﻃﺮﺍﺣﻲ ﻧﻤﺎﻳﻴﺪ؟ ﻣﺜﺎﻝ :
S aSA | a
ﻧﺮﻣﺎﻝ ﮔﺮﻳﺒﺎﺥ ﻧﻴﺴﺖ A bB )}M = ({q0,q1,q2},{a,b},δ,{q0},{q2
Bb
ﻓﺼﻞ ﻫﻔﺘﻢ
.2ﺑﺎ ﺣﺬﻑ Sﺍﺯ ﭘﺸﺘﻪ ﻭ ﺟﺎﻳﮕﺰﻳﻨﻲ ﺁﻥ ﺑﺎ SAﺗﻮﺳﻂ ، PDAﺩﺭ ﺣﺎﻟﻴﻜﻪ ﻭﺭﻭﺩﻱ aﺍﺳﺖ ،ﺑﺎﻳﺴﺘﻲ
S aSA | a ﺑﺎﻋﺚ ﺧﻮﺍﻧﺪﻩ ﺷﺪﻥ aﺍﺯ ﻭﺭﻭﺩﻱ ﻭ ﺣﺬﻑ Sﺍﺯ ﭘﺸﺘﻪ ﮔﺮﺩﺩ.
ﻭ .3ﺩﺍﺭﻳﻢ :
.4ﻇﺎﻫﺮ ﺷﺪﻥ ﻋﻼﻣﺖ ﺷﺮﻭﻉ ﭘﺸﺘﻪ ،ﺑﻪ ﻣﻌﻨﺎﻱ ﭘﺎﻳﺎﻥ ﺍﺷﺘﻘﺎﻕ ﺑﻮﺩﻩ ﻭ PDAﺩﺭ ﻭﺿﻌﻴﺖ ﻧﻬﺎﻳﻲ ﻗﺮﺍﺭ
ﻣﻲ ﮔﻴﺮﺩ.
• ﻗﻀﻴﻪ :ﺑﻪ ﺍﺯﺍﻱ ﻫﺮ ﺯﺑﺎﻥ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ،Lﻳﻚ NDPAﺑﻨﺎﻡ Mﻭﺟﻮﺩ ﺩﺍﺭﺩ ﺑﻄﻮﺭﻳﻜﻪ ).L = L(M
ﻓﺼﻞ ﻫﻔﺘﻢ
S aA
A aABC | bB | a
ﺳﺎﺧﺘﺎﺭ ﻗﻀﻴﻪ ﻣﺬﻛﻮﺭ ﻣﺜﺎﻝ :
Bb
Cc
ﮔﺮﺍﻣﺮ ﻣﻮﺟﻮﺩ ﺩﺭ ﻓﺮﻡ ﻧﺮﻣﺎﻝ ﮔﺮﻳﺒﺎﺥ ﻣﻲ ﺑﺎﺷﺪ ،ﻟﺬﺍ ﻳﻚ NPDAﺑﺮﺍﻱ Mﻭﺟﻮﺩ ﺩﺍﺭﺩ.
ﺿﺮﻭﺭﻱ ﻧﻴﺴﺖ ﻛﻪ ﮔﺮﺍﻣﺮ ﺩﺭ ﻓﺮﻡ ﻧﺮﻣﺎﻝ ﮔﺮﻳﺒﺎﺥ ﺑﺎﺷﺪ .ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﺜﺎﻝ ،ﺑﺮﺍﻱ ﻗﻮﺍﻧﻴﻦ ﺯﻳﺮ:
A Bx A .Iﺭﺍ ﺍﺯ ﭘﺸﺘﻪ ﺑﺮﺩﺍﺷﺘﻪ ﻭ ﺑﺪﻭﻥ ﻣﺼﺮﻑ ﻭﺭﻭﺩﻱ ،ﺁﻥ ﺭﺍ ﺑﺎ Bxﺟﺎﻳﮕﺰﻳﻦ ﻣﻲ ﻧﻤﺎﻳﻴﻢ.
.IIﺍﺑﺘﺪﺍ ،ﺭﺷﺘﻪ abﺩﺭ ﻭﺭﻭﺩﻱ ﺭﺍ ﺑﺎ ﺭﺷﺘﻪ ﻣﺸﺎﺑﻪ ﺩﺭ ﭘﺸﺘﻪ ،ﺗﻄﺒﻴﻖ ﺩﺍﺩﻩ ﻭ ﺳﭙﺲ A ،ﺭﺍ ﺑﺎ Cxﺟﺎﻳﮕﺰﻳﻦ
ﻣﻲ ﻧﻤﺎﻳﻴﻢA abCx .
ﻓﺼﻞ ﻫﻔﺘﻢ
ﺑﻪ ﺍﺯﺍﻱ ﻫﺮ ﻭﺭﻭﺩﻱ ﻭ ﻫﺮ ﭼﻪ ﺩﺭ ﺑﺎﻻﻱ ﭘﺸﺘﻪ ﺑﺎﺷﺪ ،ﻓﻘﻂ ﻳﻚ ﺣﺮﻛﺖ ﻣﻲ ﺗﻮﺍﻧﺪ ﺍﻧﺠﺎﻡ ﮔﺮﺩﺩ.
ﺣﺪﺍﻛﺜﺮ ﺩﺍﺭﺍﻱ ﻳﻚ ﻋﻨﺼﺮ ﺑﺎﺷﺪ.
ﻫﺮﮔﺎﻩ ﻳﻚ ﺣﺮﻛﺖ λﺍﻣﻜﺎﻥ ﭘﺬﻳﺮ ﮔﺮﺩﺩ ،ﺁﻧﮕﺎﻩ ﺑﺮﺍﻱ ﺁﻥ ﭘﻴﻜﺮﺑﻨﺪﻱ ،ﻫﻴﭻ ﺣﺮﻛﺖ ﻫﻤﺮﺍﻩ ﺑﺎ
ﻣﺼﺮﻑ ﻭﺭﻭﺩﻱ ،ﺍﻣﻜﺎﻥ ﭘﺬﻳﺮ ﻧﺨﻮﺍﻫﺪ ﺑﻮﺩ.
ﺗﻨﻬﺎ ﺷﺮﻃﻲ ﻛﻪ ﺑﺮﺍﻱ ﻣﻌﻴﻦ ﺑﻮﺩﻥ ﻭﺟﻮﺩ ﺩﺍﺭﺩ ،ﺍﻳﻦ ﺍﺳﺖ ﻛﻪ ﺩﺭ ﻫﻤﻪ ﺣﺎﻝ ﻓﻘﻂ ﻳﻚ ﺣﺮﻛﺖ
ﺍﻣﻜﺎﻥ ﭘﺬﻳﺮ ﻣﻲ ﺑﺎﺷﺪ.
ﻓﺼﻞ ﻫﻔﺘﻢ
ﺯﺑﺎﻥ ﻣﺳﺗﻘﻝ ﺍﺯ ﻣﺗﻥ ﻣﻌﻳﻥ ﻳﺎ : DCFL
ﺯﺑﺎﻥ Lﺭﺍ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﻣﻌﻴﻦ ﻭﻳﺎ DCFLﮔﻮﻳﻨﺪ ،ﺍﮔﺮ ﻭ ﻓﻘﻂ ﺍﮔﺮ ﻳﻚ DPDAﻣﺎﻧﻨﺪ Mﻭﺟﻮﺩ
ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ،ﺑﻄﻮﺭﻳﻜﻪ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﻢ ). L = L(M
ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﻣﻌﻴﻦ ﻣﻲ ﺑﺎﺷﺪ ،ﭼﺮﺍ ﻛﻪ ﻳﻚ DPDAﻣﺎﻧﻨﺪ Mﺑﻪ ﺯﺑﺎﻥ ﻣﺜﺎﻝ :
ﺷﺮﺡ ﺯﻳﺮ ﻭﺟﻮﺩ ﺩﺍﺭﺩ :
ﮔﺮﺍﻣﺮ ، S aSb | abﻳﻚ ﮔﺮﺍﻣﺮ ﺳﺎﺩﻩ ﻧﻴﺴﺖ ،ﺍﻣﺎ LLGﻣﻲ ﺑﺎﺷﺪ. ﻣﺜﺎﻝ :
ﺑﺮﺍﻱ ﺍﻳﻨﻜﻪ ﻗﺎﺩﺭ ﺑﺎﺷﻴﻢ ﻛﻪ ﺗﻌﻴﻴﻦ ﻧﻤﺎﻳﻴﻢ ،ﻛﺪﺍﻡ ﻗﺎﻧﻮﻥ ﺍﺯ ﺑﻴﻦ ﻗﻮﺍﻧﻴﻦ S aSbﻭ ﻳﺎ
، S abﺑﺎﻳﺴﺘﻲ ﺍﺳﺘﻔﺎﺩﻩ ﮔﺮﺩﺩ ،ﺩﻭ ﺣﺮﻑ ﺁﻟﻔﺎﺑﺖ ﭘﺸﺖ ﺳﺮ ﻫﻢ ﺩﺭ ﺭﺷﺘﻪ ﻭﺭﻭﺩﻱ ﺭﺍ
ﺧﻮﺍﻧﺪﻩ ﻭ ﺩﺭ ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﻢ .ﺍﮔﺮ ﺍﻭﻟﻴﻦ ﺁﻟﻔﺎﺑﺖ ،ﻳﻚ ﺣﺮﻑ aﻭ ﺩﻭﻣﻴﻦ ﺁﻟﻔﺎﺑﺖ ،ﻳﻚ
ﺣﺮﻑ bﺑﺎﺷﺪ ،ﺑﺎﻳﺴﺘﻲ ﺍﺯ ﻗﺎﻧﻮﻥ S abﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﺎﻳﻴﻢ ،ﻭ ﺩﺭ ﻏﻴﺮ ﺍﻳﻨﺼﻮﺭﺕ ﺍﺯ ﻗﺎﻧﻮﻥ
. S aSb
ﻣﻲ ﮔﻮﻳﻴﻢ ﮔﺮﺍﻣﺮ ) LL(Kﺍﺳﺖ ،ﺍﮔﺮ ﻗﺎﺩﺭ ﺑﺎﺷﻴﻢ ﺑﺎ ﺩﺭ ﺩﺳﺖ ﺩﺍﺷﺘﻦ ﺁﻟﻔﺎﺑﺖ ﻓﻌﻠﻲ ﻭﺭﻭﺩﻱ ﻭ
ﻫﻤﭽﻨﻴﻦ ﺧﻮﺍﻧﺪﻥ ﻭ ﺩﺭ ﻧﻄﺮ ﮔﺮﻓﺘﻦ K-1ﺁﻟﻔﺎﺑﺖ ﺑﻌﺪﻱ ،ﻗﺎﻧﻮﻧﻲ ﺭﺍ ﻛﻪ ﺑﺎﻳﺴﺘﻲ ﺍﺳﺘﻔﺎﺩﻩ
ﮔﺮﺩﺩ ،ﺗﺸﺨﻴﺺ ﺩﻫﻴﻢ .ﮔﺮﺍﻣﺮ ﻣﻮﺟﻮﺩ ﺩﺭ ﻣﺜﺎﻝ ﻓﻮﻕ LL(2) ،ﻣﻲ ﺑﺎﺷﺪ.
ﻓﺼﻞ ﻫﻔﺘﻢ
ﮔﺮﺍﻣﺮ ، S SS | aSb | abﺭﺍ ﻛﻪ ﺑﺴﺘﺎﺭ ﮔﺮﺍﻣﺮ ﻣﺜﺎﻝ ﻗﺒﻠﻲ ﺍﺳﺖ ،ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ. ﻣﺜﺎﻝ :
ﮔﺮﺍﻣﺮ ﻓﻮﻕ ،ﺑﺮﺍﻱ ﻫﻴﭻ ﻣﻘﺪﺍﺭﻱ ﺍﺯ ، Kﻳﻚ ﮔﺮﺍﻣﺮ ) LL(Kﻧﻤﻲ ﺑﺎﺷﺪ .ﺑﻪ ﻋﻨﻮﺍﻥ ﻧﻤﻮﻧﻪ ،ﺩﻭ ﻗﺎﻧﻮﻥ
S SSﻭ S aSbﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ .ﺁﻟﻔﺎﺑﺖ ﻓﻌﻠﻲ ﻭﺭﻭﺩﻱ ﻗﺎﺩﺭ ﻧﻴﺴﺖ ﻛﻪ ﻗﺎﻧﻮﻥ ﺻﺤﻴﺢ ﺭﺍ
ﺑﺮﺍﻱ ﭘﺮﺩﺍﺯﺵ ﻭﺭﻭﺩﻱ ﺗﺸﺨﻴﺺ ﺩﻫﺪ .ﺍﮔﺮ ﺩﻭ ﺁﻟﻔﺎﺑﺖ ﻭﺭﻭﺩﻱ ﺑﺎ ﻫﻤﺪﻳﮕﺮ ﺧﻮﺍﻧﺪﻩ ﺷﻮﻧﺪ ﻭ ﻫﻤﭽﻨﻴﻦ ،ﺍﮔﺮ
ﺩﻭ ﺁﻟﻔﺎﺑﺖ ﻭﺭﻭﺩﻱ aaﺑﺎﺷﻨﺪ ،ﺑﺎﺯ ﻫﻢ ﻧﻤﻲ ﺗﻮﺍﻥ ﺗﺸﺨﻴﺺ ﺩﺍﺩ ﻛﻪ ﻛﺪﺍﻡ ﻗﺎﻧﻮﻥ ﺻﺤﻴﺢ ﺑﻌﺪﻱ ﺑﺮﺍﻱ
ﭘﺮﺩﺍﺯﺵ ﻭﺭﻭﺩﻱ ﺧﻮﺍﻫﺪ ﺑﻮﺩ.
ﻣﺸﻜﻞ ﺍﻳﻨﺠﺎﺳﺖ ﻛﻪ ﻧﻤﻲ ﺗﻮﺍﻥ ﭘﻴﺸﮕﻮﻳﻲ ﻧﻤﻮﺩ ﻛﻪ ﭼﻨﺪ ﺑﺎﺭ ﺗﻜﺮﺍﺭ ﺍﻟﮕﻮﻱ an bnﺗﺎ ﺍﻧﺘﻬﺎﻱ ﺭﺷﺘﻪ
ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﺧﻮﺍﻫﺪ ﺑﻮﺩ .ﺑﻨﺎﺑﺮﺍﻳﻦ ،ﺑﺎﻳﺴﺘﻲ ﮔﺮﺍﻣﺮ ﻓﻮﻕ ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﺑﺎﺯ ﻧﻮﻳﺴﻲ ﻧﻤﻮﺩ .ﺗﻮﺟﻪ ﺩﺍﺷﺘﻪ
ﺑﺎﺷﻴﺪ ﻛﻪ ﺍﻳﻦ ﮔﺮﺍﻣﺮ LLﻣﻲ ﺑﺎﺷﺪ.
S aSbS | λ
ﺑﻪ ﻋﻨﻮﺍﻥ ﻧﻤﻮﻧﻪ ،ﭘﺮﺩﺍﺯﺵ ﺭﺷﺘﻪ ababﺑﻪ ﺷﺮﺡ ﺯﻳﺮ ﻣﻲ ﺑﺎﺷﺪ.
S aSbS abS abaSbS ababS abab
ﻣﺸﺎﻫﺪﻩ ﻣﻲ ﮔﺮﺩﺩ ﻛﻪ ﺍﻳﻦ ﮔﺮﺍﻣﺮ ﻧﻴﺎﺯ ﺑﻪ ﺍﻧﺘﺨﺎﺏ ﻧﺪﺍﺭﺩ ،ﺑﻄﻮﺭﻳﻜﻪ ﺍﮔﺮ ﺁﻟﻔﺎﺑﺖ ﻭﺭﻭﺩﻱ ﻓﻌﻠﻲ ﺣﺮﻑ a
ﺑﺎﺷﺪ ،ﺍﺯ ﺩﻭ ﻗﺎﻋﺪﻩ ﮔﺮﺍﻣﺮ ،ﻗﺎﻋﺪﻩ S aSbSﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﮔﺮﺩﺩ ﻭ ﻫﻤﭽﻨﻴﻦ ،ﺍﮔﺮ ﺁﻟﻔﺎﺑﺖ ﻭﺭﻭﺩﻱ
ﻓﻌﻠﻲ ﺣﺮﻑ bﺑﺎﺷﺪ ،ﻳﺎ ﺩﺭ ﺍﻧﺘﻬﺎﻱ ﺭﺷﺘﻪ ﻗﺮﺍﺭ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ،ﺑﺎﻳﺴﺘﻲ ﻗﺎﻋﺪﻩ S λﺍﺳﺘﻔﺎﺩﻩ ﮔﺮﺩﺩ.
ﻟﺬﺍ ،ﮔﺮﺍﻣﺮ ﺟﺪﻳﺪ ﻗﺎﺩﺭ ﺧﻮﺍﻫﺪ ﺑﻮﺩ ﻛﻪ ﺭﺷﺘﻪ ﺗﻬﻲ ﺭﺍ ﻧﻴﺰ ﺗﻮﻟﻴﺪ ﻧﻤﺎﻳﺪ .ﺑﻨﺎﺑﺮﺍﻳﻦ ﺧﻮﺍﻫﻴﻢ ﺩﺍﺷﺖ :
S1 aSbS
S aSbS | λ
ﻓﺼﻞ ﻫﻔﺘﻢ
ﺑﺎﺷﺪ ،ﺁﻧﮕﺎﻩ ،ﺑﻪ ﻣﻌﻨﺎﻱ ﺍﮔﺮ ﺗﺴﺎﻭﻱ Kﺁﻟﻔﺎﺑﺖ ﻭﺭﻭﺩﻱ ﭼﭗ ﺩﺭ ﺭﺷﺘﻪ
ﮔﺮﺍﻣﺮ Gﻳﻚ ﮔﺮﺍﻣﺮ ) LL(Kﺧﻮﺍﻫﺪ ﺑﻮﺩ.
K ،ﺁﻟﻔﺎﺑﺖ ﺑﻌﺪﻱ ﻭﺭﻭﺩﻱ ﻣﺸﺨﺺ ﺑﺎﺷﺪ، ﺍﮔﺮ ﺩﺭ ﻫﺮ ﻣﺮﺣﻠﻪ ﺍﺯ ﺍﺷﺘﻘﺎﻕ ﭼﭗ
ﮔﺎﻡ ﺑﻌﺪﻱ ﺩﺭ ﺍﺷﺘﻘﺎﻕ ﺩﻗﻴﻘﺎً ﻣﻌﻴﻦ ﻣﻲ ﺷﻮﺩ.
ﻓﺻﻝ ﻫﺷﺗﻡ
ﻣﺎﺷﻴﻦ ﺗﻮﺭﻳﻨﮓ
ﭘــﺎﻳــﺎﻥ