Chapter 1.ppt

‫نظریه زبان ها و ماشین ها‬
‫فصل اول‪ -‬زبان های منظم و‬
‫ماشین های حالت متناهی‬
‫دانشگاه صنعتی شریف‬
‫پاییز ‪86‬‬
‫عناوین مورد بحث‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫ماشین های حالت متناهی‬
‫عدم قطعیت‬
‫عبارات منظم‬
‫زبان های نامنظم‬
‫لم پامپینگ‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫ماشین حالت متناهی‬
‫•‬
‫ساده ترین مدل محاسباتی کامپیوترها‪ ،‬یک ماشین حالت متناهی ( ‪finite‬‬
‫‪ Automaton‬یا ‪ )finite State Machine‬است‪.‬‬
‫•‬
‫•‬
‫مناسب برای مدلسازی کامپیوترهایی با حافظه بسیار محدود‬
‫در سیستم های نهفته )‪ (Embedded Systems‬استفاده چنین ماشین هایی‬
‫بسیار رایج است‪.‬‬
‫زنجیره های مارکوفی (‪ )Markov Chains‬همتای احتمالی ماشین های حالت‬
‫متناهی هستند‪.‬‬
‫این مدل ها در پردازش گفتار و ‪ OCR‬برای تشخیص الگوهای موجود در داده ها‬
‫کاربرد دارند‪.‬‬
‫•‬
‫•‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫یک مثال ساده‬
‫• کنترلر یک در خودکار‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫یک مثال ساده ‪ -‬ادامه‬
‫• نمودار حالت‬
‫• جدول گذار(انتقال حالت)‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫تعریف ریاض ی‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫زبان یک ماشین حالت متناهی‬
‫• نتیجه پردازش هر رشته از عالئم ورودی توسط یک ماشین حالت متناهی‬
‫پذیرش)‪ (accept‬یا رد)‪ (reject‬است‪.‬‬
‫• اگر ‪ A‬مجموعه تمام رشته هایی باشد که ماشین ‪ M‬می پذیرد‪ A ،‬را زبان ماشین ‪ M‬می‬
‫‪L(M) = A‬‬
‫گوییم و می نویسیم‪:‬‬
‫• می گوییم ماشین ‪ M‬زبان ‪ A‬را تشخیص می دهد (می پذیرد)‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫بازگشت به مثال قبل‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫‪ M4‬تمام رشته هایی از ‪ a‬و ‪ b‬را می پذیرد که ابتدا و انتهای آن یکسان است‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫تعریف صوری پذیرش‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫زبان منظم‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫طراحی یک ماشین حالت متناهی‬
‫• خودتان را به جای ماشین تصور کنید‪.‬‬
‫• یک ماشین حالت متناهی که رشته های شامل ‪ 001‬را بپذیرد‪.‬‬
‫• حاالت ممکن عبارتند از‪:‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اعمال روی زبان های منظم‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫بسته بودن مجموعه زبان های منظم نسبت به اجتماع‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫بسته بودن مجموعه زبان های منظم نسبت به الحاق‬
‫برای اثبات این ویژگی نیاز به تعریف مفهوم عدم قطعیت داریم‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫تفاوت میان ‪ NFA‬و ‪DFA‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مقایسه مفهوم پذیرش در ‪ NFA‬و ‪DFA‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫تعریف صوری ماشین حالت متناهی غیرقطعی)‪(NFA‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫هم ارزی ‪NFA‬ها و ‪DFA‬ها‬
‫• ایده اثبات‪ :‬تبدیل ‪ NFA‬به ‪DFA‬ی که رفتار آن را شبیه سازی می کند‪.‬‬
‫• اگر ‪NFA‬ی دارای ‪ k‬حالت باشد‪ ،‬برای شبیه سازی آن توسط یک ‪ DFA‬به ‪ 2k‬حالت نیاز‬
‫خواهیم داشت‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات‬
‫• ابتدا بدون در نظر گرفتن گذارهای ‪ ،ε‬ماشین جدید را می سازیم‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫در نظر گرفتن گذارهای ‪ε‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫در نظر گرفتن گذارهای ‪ε‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫نتیجه‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال ‪ -‬ادامه‬
‫حذف‬
‫حاالت غیر‬
‫قابل‬
‫دسترس ی‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات قضایای بسته بودن با استفاده از‪NFA‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات بسته بودن نسبت به اجتماع‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات‪ -‬ادامه‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات بسته بودن نسبت به الحاق‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات‪ -‬ادامه‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات بسته بودن نسبت به *‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات‪ -‬ادامه‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫عبارات منظم‬
‫آیا این تعریف دور ندارد؟‬
‫ترتیب تقدم عملگرها‪ ،* :‬الحاق‪ ،‬اجتماع‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال – ادامه‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫هم ارزی عبارات منظم و ماشین های حالت متناهی‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات‬
‫• نشان می دهیم چگونه می توان عبارت منظم ‪ R‬را به ‪NFA‬ی با زبان معادل تبدیل کرد‪.‬‬
‫• هر یک از شش حالت مختلف در تعریف عبارات منظم را در نظر می گیریم‪.‬‬
‫• در سه حالت آخر چه طور می توان ‪ NFA‬را ساخت؟‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات طرف دیگر‬
‫•‬
‫•‬
‫•‬
‫•‬
‫باید نشان دهیم که اگر یک زبان منظم‬
‫باشد‪ ،‬می توان آن را با یک عبارت منظم‬
‫نمایش داد‪.‬‬
‫ابتدا یک ‪ DFA‬را به ‪ GNFA‬متناظر آن‬
‫تبدیل می کنیم‪.‬‬
‫سپس ‪ GNFA‬را به عبارت منظم تبدیل می‬
‫نماییم‪.‬‬
‫‪ GNFA‬یک ماشین غیرقطعی است که در‬
‫آن گذارها به جای عالئم الفبا می توانند‬
‫عبارات منظم باشند‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫تعریف صوری ‪GNFA‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫چند فرض‬
‫• برای سادگی‪ ،‬فرض می کنیم ‪ GNFA‬مورد نظر ویژگی های زیر را نیز باید داشته باشد‪:‬‬
‫– از حالت شروع به هر حالت دیگر یک گذار وجود دارد و هیچ گذاری به حالت شروع وارد نمی شود‪.‬‬
‫– تنها یک حالت پایان و نامساوی با حالت شروع وجود دارد که هیچ گذاری از آن خارج نمی شود اما از‬
‫هر حالت یک گذار به آن داریم‪.‬‬
‫ً‬
‫– از هر حالتی به جز این دو حالت‪ ،‬به تمام حالت ها یک دقیقا یک گذار وجود دارد‪.‬‬
‫• این ‪ GNFA‬را یک ‪ GNFA‬ویژه می نامیم‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫تبدیل ‪ DFA‬به ‪ GNFA‬ویژه‬
‫• اضافه کردن یک حالت شروع جدید با یک گذار ‪ ε‬به حالت شروع قبلی‬
‫• اگر چندین گذار با ابتدا و انتهای یکسان وجود دارند آن ها را با یک گذار با برچسب‬
‫اجتماع آن ها جایگزین می کنیم‪.‬‬
‫• بین هر یک از زوج حالت هایی که گذاری میان آن ها وجود ندارد یک گذار با‬
‫برچسب ‪ ø‬اضافه می کنیم‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫تبدیل ‪ GNFA‬ویژه به عبارت منظم‬
‫•‬
‫به طور مداوم هر بار یک حالت از تعداد حاالت ‪ GNFA‬کم می کنیم تا به یک ‪GNFA‬‬
‫با دو حالت برسیم‪.‬‬
‫• در این حالت‪ GNFA ،‬یک گذار از حالت شروع به پایان دارد که برچسب آن عبارت‬
‫منظم مورد نظر ماست‪.‬‬
‫مراحل تبدیل یک ‪ DFA‬سه حالته به عبارت منظم معادل با آن‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫حذف یک حالت از ‪GNFA‬‬
‫• یک حالت غیر از شروع و پایان را برای حذف انتخاب می کنیم‪.‬‬
‫• برچسب گذارها را به صورت زیر جایگزین می کنیم‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫بیان صوری راه حل‬
‫چرا حلقه بی نهایت نیست؟‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات درستی‬
‫• اثبات با استقرا روی تعداد حاالت (‪)k‬‬
‫• پایه استقرا بدیهی است‪.‬‬
‫• فرض استقرا‪:‬‬
‫– حکم برای ماشینی با ‪ k-1‬حالت برقرار است‪.‬‬
‫• اگر رشته ‪ ω‬را با دنباله حاالت زیر بپذیرد‪ G’ ،‬نیز آن را می پذیرد‪.‬‬
‫• چرا؟‬
‫• اگر ’‪ G‬رشته ‪ ω‬را بپذیرد‪ G ،‬نیز آن را می پذیرد‪.‬‬
‫• چرا؟‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫زبان های نامنظم‬
‫• برای درک قدرت ماشین ها باید محدودیت های آن ها را بشناسیم‪.‬‬
‫• برخی از زبان ها را نمی توان با ماشین حالت متناهی تشخیص داد‪.‬‬
‫ً‬
‫• مثال برای تشخیص زبان زیر باید در حالت ها تعداد ‪ 0‬ها را حفظ کنیم‪.‬‬
‫• اما حالت های متناهی یک ‪ DFA‬پاسخگوی تعداد نامتناهی حاالت ممکن نیست‪.‬‬
‫• نیاز به یک مبنای نظری برای اثبات منظم نبودن داریم‪ :‬لم پامپینگ‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫لم پامپینگ‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫ایده اثبات‬
‫• بنا به اصل النه کبوتری‪ ،‬برای رشته هایی با بیش از این طول‪ ،‬حداقل یک حالت در‬
‫دنباله حاالت تکرار می شود‪.‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫اثبات‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫• با استفاده از لم پامپینگ و برهان خلف ثابت می کنیم که زبان زیر منظم نیست‪:‬‬
‫• چرا هیچ یک از سه حالت فوق نمی تواند درست باشد؟‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫• با استفاده از لم پامپینگ و برهان خلف ثابت می کنیم که زبان زیر منظم نیست‪:‬‬
‫• روش دیگر‪:‬‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬
‫مثال‬
‫نظریه زبان ها و ماشین ها‬
‫دانشگاه صنعتی شریف‬
‫پاییز‪86‬‬