اه نیشام و اه نابز هیرظن لوا لصف - و مظنم یاه نابز

advertisement
‫نظریه زبان ها و ماشین ها‬
‫فصل اول‪ -‬زبان های منظم و‬
‫ماشین های حالت متناهی‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫ماشین حالت متناهی‬
‫• ساده ترین مدل محاسباتی کامپیوترها‪ ،‬یک ماشین حالت متناهی‬
‫•‬
‫•‬
‫•‬
‫•‬
‫(‪ finite Automaton‬یا ‪ )finite State Machine‬است‪.‬‬
‫مناسب برای مدلسازی کامپیوترهایی با حافظه بسیار محدود‬
‫در سیستم های نهفته )‪ (Embedded Systems‬استفاده چنین ماشین‬
‫هایی بسیار رایج است‪.‬‬
‫زنجیره های مارکوفی (‪ )Markov Chains‬همتای احتمالی ماشین‬
‫های حالت متناهی هستند‪.‬‬
‫این مدل ها درمدلسازی پروتکل های شبکه های کامپیوتری‪،‬‬
‫پردازش گفتار و ‪ OCR‬برای تشخیص الگوهای موجود در داده ها‬
‫کاربرد دارند‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫یک مثال ساده‬
‫• کنترلر یک در خودکار‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫یک مثال ساده ‪ -‬ادامه‬
‫• نمودار حالت‬
‫• جدول گذار(انتقال حالت)‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫تعریف ریاضی‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫زبان یک ماشین حالت متناهی‬
‫• نتیجه پردازش هر رشته از عالئم ورودی توسط یک ماشین حالت‬
‫متناهی پذیرش)‪ (accept‬یا رد)‪ (reject‬است‪.‬‬
‫• اگر ‪ A‬مجموعه تمام رشته هایی باشد که ماشین ‪ M‬می پذیرد‪ A ،‬را‬
‫‪L(M) = A‬‬
‫زبان ماشین ‪ M‬می گوییم و می نویسیم‪:‬‬
‫• می گوییم ماشین ‪ M‬زبان ‪ A‬را تشخیص می دهد (می پذیرد)‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫بازگشت به مثال قبل‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫مثال‬
‫‪ M4‬تمام رشته هایی از ‪ a‬و ‪ b‬را می پذیرد که ابتدا و انتهای آن یکسان است‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫تعریف صوری پذیرش‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫زبان منظم‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫طراحی یک ماشین حالت متناهی‬
‫• خودتان را به جای ماشین تصور کنید‪.‬‬
‫• یک ماشین حالت متناهی که رشته های شامل ‪ 001‬را بپذیرد‪.‬‬
‫• حاالت ممکن عبارتند از‪:‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اعمال روی زبان های منظم‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫بسته بودن مجموعه زبان های منظم نسبت به اجتماع‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اثبات‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫بسته بودن مجموعه زبان های منظم نسبت به الحاق‬
‫برای اثبات این ویژگی نیاز به تعریف مفهوم عدم قطعیت داریم‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫تفاوت میان ‪ NFA‬و ‪DFA‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫مقایسه مفهوم پذیرش در ‪ NFA‬و ‪DFA‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫تعریف صوری ماشین حالت متناهی‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫غیرقطعی)‪(NFA‬‬
‫بهار ‪88‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫هم ارزی ‪NFA‬ها و ‪DFA‬ها‬
‫• ایده اثبات‪ :‬تبدیل ‪ NFA‬به ‪DFA‬ی که رفتار آن را شبیه سازی می کند‪.‬‬
‫• اگر ‪NFA‬ی دارای ‪ k‬حالت باشد‪ ،‬برای شبیه سازی آن توسط یک ‪ DFA‬به‬
‫‪ 2k‬حالت نیاز خواهیم داشت‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اثبات‬
‫• ابتدا بدون در نظر گرفتن گذارهای ‪ ،ε‬ماشین جدید را می سازیم‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫در نظر گرفتن گذارهای ‪ε‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫در نظر گرفتن گذارهای ‪ε‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫نتیجه‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫مثال ‪ -‬ادامه‬
‫حذف‬
‫حاالت‬
‫غیر قابل‬
‫دسترسی‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اثبات قضایای بسته بودن با استفاده از‪NFA‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اثبات بسته بودن نسبت به اجتماع‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اثبات‪ -‬ادامه‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اثبات بسته بودن نسبت به الحاق‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اثبات‪ -‬ادامه‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اثبات بسته بودن نسبت به *‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اثبات‪ -‬ادامه‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫عبارات منظم‬
‫آیا این تعریف دور ندارد؟‬
‫ترتیب تقدم عملگرها‪ ،* :‬الحاق‪ ،‬اجتماع‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫مثال – ادامه‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫هم ارزی عبارات منظم و ماشین های حالت متناهی‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اثبات‬
‫• نشان می دهیم چگونه می توان عبارت منظم ‪ R‬را به ‪NFA‬ی با زبان معادل‬
‫تبدیل کرد‪.‬‬
‫• هر یک از شش حالت مختلف در تعریف عبارات منظم را در نظر می گیریم‪.‬‬
‫• در سه حالت آخر چه طور می توان ‪ NFA‬را ساخت؟‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫اثبات طرف دیگر‬
‫•‬
‫•‬
‫•‬
‫•‬
‫باید نشان دهیم که اگر یک زبان منظم‬
‫باشد‪ ،‬می توان آن را با یک عبارت‬
‫منظم نمایش داد‪.‬‬
‫ابتدا یک ‪ DFA‬را به ‪ GNFA‬متناظر‬
‫آن تبدیل می کنیم‪.‬‬
‫سپس ‪ GNFA‬را به عبارت منظم‬
‫تبدیل می نماییم‪.‬‬
‫‪ GNFA‬یک ماشین غیرقطعی است‬
‫که در آن گذارها به جای عالئم الفبا‬
‫می توانند عبارات منظم باشند‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫تعریف صوری ‪GNFA‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫چند فرض‬
‫• برای سادگی‪ ،‬فرض می کنیم ‪ GNFA‬ویژگی های زیر را نیز باید داشته باشد‪:‬‬
‫– از حالت شروع به هر حالت دیگر یک گذار وجود دارد و هیچ گذاری به حالت شروع‬
‫وارد نمی شود‪.‬‬
‫– تنها یک حالت پایان و نامساوی با حالت شروع وجود دارد که هیچ گذاری از آن خارج‬
‫نمی شود اما از هر حالت یک گذار به آن داریم‪.‬‬
‫– از هر حالتی به جز این دو حالت‪ ،‬به تمام حالت ها یک دقیقا ً یک گذار وجود دارد‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫‪Eliminating a state‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫‪Example 1‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
‫‪Example 2‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪88‬‬
Grammar
• A grammar G is a 4-tuple
G = (V, Σ, R, S)
where:
• V is a finite set of variables,
• Σ is a finite, disjoint from V, of
terminals,
• R is a finite set of rules,
• S V is the start variable.
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
Rule
• A rule is of the form
x →y
where x  (V Σ)+ and y  (V Σ)*.
• The rules are applied in the following manner: given a
string w of the form
w = uxv,
• we say that the rule x → y is applicable to this string,
and we may use it to replace x with y, thereby obtaining
a new string
z = uyv.
• This is written as
w z.
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
Derivation
• If
w1 w2  …  wn
we say that w1 derives wn and write
*
w1 wn
• Thus, we always have
w 
w
*
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
Language of a Grammar
• Let G = (V, Σ, R, S) be a grammar.
Then, the set
*
L (G )  {w T *: S w }
Is the language generated by G.
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
Example
• Consider the grammar
G = ({S}, {a,b}, P, S}
with P given by
S → aSb
S→ε
Then
S aSb  aaSbb  aabb
So we can write
*
S  aabb
• Then,
L(G) = {an bn: n ≥ 0}
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
A notation for Grammars
• Consider the grammar
G = ({S}, {a,b}, P, S}
with P given by
S → aSb
S→ε
• The above grammar is usually written as:
G: S → aSb | ε
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
Regular Grammars
• A grammar G = (V, Σ, R, S) is said to be rightlinear if all rules are of the form
A → xB
A→x
where A, B  V, and x  Σ*. A grammar is said to be
left-linear if all rules are of the form
A → Bx
A→x
• A regular grammar is one that is either right-linear or
left-linear.
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
Theorem
• Theorem Let G = (V, Σ, R, S) be a
right-linear grammar. Then L(G) is a
regular language.
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
Example
• Construct a nfa that accepts the language
generated by the grammar
V0 → aV1
V1 → abV0 | b
a
V0
V1
b
Vf
a
b
V2
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
Theorem
• Theorem If L is a regular language
on the alphabet Σ, then there exists
a right-linear grammar G = (V, Σ, R,
S) such that L = L(G).
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
Theorem
• Theorem A language is regular if and only if there
exists a left-linear grammar G such that L = L(G).
• Outline of the proof:
Given any left-linear grammar with rules of the form
A → Bx
A→x
we can construct a right-linear Ĝ by replacing every such rule of G with
A → xRB
A → xR
Respectively. We have L)G( = L)Ĝ(R .
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
Theorem
• Theorem A language L is regular if
and only if there exists a regular
grammar G such that L = L(G).
88 ‫بهار‬
‫دانشگاه صنعتی شریف‬
‫نظریه زبان ها و ماشین ها‬
Download