پاسخ تمرین ۸نظریه زبانها و ماشینها مساله -۱ الف( واضح است که هر زبان هایی که توسط 1-PDAپذیرفته میشوند توسط 2-PDAنیز پذیرفته میشوند )کافی است تنها از یکی از نوارهای 2-PDAاستفاده کنیم( .بنابراین کافی است که زبانی را پیدا کنیم که توسط یک 2-PDAپذیرفته میشود اما توسط 1-PDAپذیرفته نمی شود .برای مثال این زبان می تواند زبان a n b n c n باشد .میدانیم که این زبان ،زبان هیچ ماشین 1-PDAای نیست .اما به راحتی میتوان یک 2-PDAطراحی کرد که این زبان را بپذیرد .کافی است در هنگام دیدن ،aبه ازای هر ورودی aیک سمبل Xدر هر دو نوار موجود قرار دهیم .با شروع دیدن bها با هر ورودی یک Xاز نوار اول خارج میکنیم و با شروع دیدن cها ،با هر ورودی یک X از نوار دوم خارج میکنیم .شرط قبول شدن رشته خالی شدن هر دو نوار است. ب( میدانیم مدل 3-PDAاز تورینگ ۳نواره قوی تر نیست )یک ماشین 3-PDAیک ماشین تورینگ ۳نواره است که اجازه خواندن و نوشتن تنها در یک سر آن وجود دارد( .همچنین میدانیم که تورینگ ۳نواره دارای قدرتی برابر با تورینگ یک نواره است .در ضمن مدل 2-PDAدارای قدرتی برابر ماشین تورینگ است .زیرا میتوانیم کار یک ماشین تورینگ یک نواره را با 2-PDAبه این ترتیب شبیه سازی کنیم که از یک پشته برای نگه داری محتویات نوار ماشین تورینگ در سمت چپ اشاره گر و از پشته دیگر برای نگه داری محتویات نوار ماشین تورینگ در سمت راست اشاره گر استفاده میکنیم .با هر حرکت اشاره گر به سمت راست در ماشین تورینگ ،یک tokenاز پشته سمت راست میخوانیم و آن را در پشته سمت چپ قرار میدهیم .به همین ترتیب با هر حرکت اشاره گر به سمت چپ در ماشین تورینگ ،یک tokenاز پشته سمت چپ میخوانیم و آن را در پشته سمت راست قرار می- دهیم .با استفاده از M1≤M2برای نشان دادن قوی تر نبودن مدل M1از M2و M1=M2برای نشان دادن برابر بودن قدرت آنها داریم: )M(3-PDA) ≤ M(3-tape turing) = M(1-tape turing) = M(2-PDA مساله -۲ C1 x0 n + C 2 x0 n−1 + ... + C n x0 + C n+1 = 0 C C C 2 C3 1 1 1 − − ... − n n−2 + − n+1 n−1 C1 C1 x0 C1 x0 C1 x0 C3 1 C C 1 1 + ... + n n−2 + n+1 n−1 C1 x0 C1 x0 C1 x0 + C2 C1 ≤| | xo C max C )(n + 1) ⇒ x0 < max (n + 1 C1 | | C1 Inequality < because1 | C 2 | + | C3 | +...+ | C n+1 | nC max C ma x ≤ < )(n + 1 | | C1 | | C1 | | C1 x0 = − Triangle if x0 < 1then, ≤ if x0 ≥ 1 ⇒ x0 مساله -۳ باید ثابت کنیم که } Aیک DFAبا زبانی نامتناهی است| > INFINITEDFA = {<Aتصمیم پذیر است. برای تشخیص DFAهای عضو این مجموعه یک الگوریتم ارائه میدهیم: فرض کنید nعدد ثابت pumpingبرای DFAخاص باشد )در واقع تعداد stateهای آن( .در صورتی که هیچ رشته ای با طول بیشتر از nدر زبان موجود نباشد ،مطمئنا زبان متناهی است .برای رشته های به طول بیشتر از n به جای بررسی تمام رشته ها که موجب undecidableشدن روش میشود ،از روش زیر استفاده میکنیم. ادعا میکنیم که در صورتی که رشته ای با طول nیا بیشتر در زبان موجود باشد ،حتما رشته ای با طول nتا 2n-1 در زبان موجود است .برای اثبات از برهان خلف استفاده میکنیم .فرض کنید zکوتاه ترین رشته در میان رشتههای با طول بیشتر از nاست .در صورتی که |z|<2nمشکلی وجود ندارد .در حالت |z| ≥ 2nمیتوانیم از pumping lemmaاستفاده کنیم و zرا به صورت z = wxyبنویسیم .میدانیم wyرشته ای در زبان است .اما از آنجا که ،|wx| ≤ nمیدانیم |z| > |wy| ≥ nکه این با فرض ما که zکوتاهترین رشته در میان رشته های با طول بیشتر از nاست در تناقض است. بنابر این کافی است برای بررسی متناهی بودن زبان یک DFAعضویت تمام رشته های با طول بین nتا 2n-1را در آن زبان بررسی کنیم .در صورتی که چنین رشته ای وجود نداشته باشد ،زبان متناهی است و در غیر این صورت زبان نامتناهی است. مساله -۴ R میخواهیم ثابت کنیم } Mیک DFAاست که رشته wرا میپذیرد هر گاه wرا بپذیرد | >S = { <M تصمیم پذیر است .در واقع Sمجموعه DFA Aهایی است که L(A) = (L(A))R برای تشخیص این DFAیا یک الگوریتم ارائه میدهیم .با دریافت DFA Aمی توانیم از آن ' DFA Aرا بسازیم که ) L(A) = (L(A'))Rکافی است که یک stateجدید به عنوان stateشروع ایجاد کنیم .از این stateبه تمام final stateهای موجود در Aیک ε-transitionایجاد کنیم final state ،ماشین جدید را تنها برابر state شروع Aقرار دهیم و تمام transitionهای موجود در Aرا برعکس کنیم .سپس ε-NFAایجاد شده را تبدیل به یک DFAمیکنیم( .حال باید برابری Aبا ' Aرا بررسی کنیم .میدانیم که برابری دو ماشین DFAیک مساله تصمیم پذیر است. برابری دو ماشین :DFA به طور خالصه برای این کار از یک الگوریتم برای یافتن stateهای برابر در یک DFAاستفاده میکنیم )دو state ^ ^ p,qبرابر هستند اگر برای هر رشته ورودی δ ( p, w) ،wیک final stateاست اگر و فقط اگر ) δ (q, wیک final stateباشد(. این الگوریتم ،الگوریتم Table-fillingاست که به طور بازگشتی stateهای نابرابر را در DFA Aپیدا می کند: پایه :در صورتی که pیک final stateباشد و final state qنباشد {p,q} ،نابرابر هستند. استقرا :فرض کنید pو state qهایی هستند که برای یک سمبل ورودی r = δ ( p, a) ،aو ) s = δ (q, aیک جفت stateنابرابر باشند .در نتیجه } {p,qنیز نابرابر هستند. استفاده از این الگوریتم برای تشخیص برابری دو DFA M, Lبه این ترتیب است که یک DFAدرست میکنیم که stateهای آن اجتماع stateهای Lو Mاست .حال با استفاده از الگوریتم باال بررسی میکنیم که start stateهای دو DFAاصلی با هم برابر هستند یا نه .در صورت برابر بودن این دو ،stateنتیجه میگیریم L=Mو در غیر این صورت .L≠M مساله -۵ یک زبان co-Turing- recognizableاست اگرمکمل آن تشخیص پذیر تورینگ باشد. داریم . A ∩ B = φدرنتیجه طبق دمورگان * A ∪ B = Σیعنی هر رشتهای در الفبا را حداقل یکی از دو زبانAو Bنمی پذیرد .حال ماشین Cرا بدین صورت می سازیم .هر رشته در الفبا را بطور همزمان به هر دو recognizerهای Aو Bمی دهیم .حداقل یکی از اینها haltکرده و yesمی دهد .اگر B yesداد Cهم yesمی دهد و اگر yes Aداد No Cمی دهد .اگر هر دو yesدهند یعنی رشته جزو Aو Bنبوده در نتیجه هر جوابی بدهیم مشکلی ایجاد نمی کند .پس ما اولین yesرا که گرفتیم Cرا متوقف میکنیم .این فرآیند تصمیم پذیر است چون هر رشتهای در الفبا را حداقل یکی از دو زبان Aو Bمی پذیرد و این دو زبان تورینگ تشخیص پذیر دارند یعنی برای رشتههای پذیرفته شده توقف میکند.
© Copyright 2025 Paperzz