TMLEX851-8-solution.pdf

‫پاسخ تمرین ‪ ۸‬نظریه زبانها و ماشینها‬
‫مساله ‪-۱‬‬
‫الف( واضح است که هر زبان هایی که توسط ‪ 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‬می پذیرد و این دو زبان تورینگ تشخیص‬
‫پذیر دارند یعنی برای رشتههای پذیرفته شده توقف میکند‪.‬‬