You are on page 1of 6

‫به نام خدا‬

‫دانشگاه صنعتی شریف‬


‫دانشکدۀ مهندسی کامپیوتر‬

‫نظریه زبان‌ها و ماشین‌ها‬


‫تمرین سری پنجم‬

‫استاد‬
‫دکتر ایزدی‬
‫طراح‬
‫علی شاه حیدر‬

‫‪400105777‬‬

‫نیم‌سال اول ‪1403-1402‬‬

‫‪1‬‬
‫مسئله چهارم‬
‫{< )‪A = }N, ω > |N is an NFA anⅾ ω ∈ L(N‬‬
‫برای زبان فوق نشان می‌دهیم در کالس ‪ PSPACE‬قرار دارد‪.‬‬
‫الگوریتم زیر که به صورت ‪ nondeterministic linear space‬است‪ 'A ،‬را تصمیم می‌گیرد‪.‬‬
‫به صورت غیرقطعی‪ ،‬یک رشته ورودی که توسط ‪ NFA‬ما ریجکت می‌شود را حدس می‌زنیم (می‌یابیم) و از فضای خطی‬
‫استفاده می‌کنیم تا حدس بزنیم کدام استیت از ‪ NFA‬در زمان مشخص انتخاب می‌شود‪ .‬به صورت زیر تعریف می‌کنیم ‪ M‬را‬
‫روی ورودی ‪ N‬که همان ‪ NFA‬ما است‪:‬‬
‫الف‪ .‬یک نشانه بر استیت شروع ‪ NFA‬می‌گذاریم‪.‬‬
‫‪q‬‬
‫ب‪ .‬به اندازه ‪ 2‬بار (‪ q‬تعداد استیت‌های ‪ N‬است) این کار را تکرار می‌کنیم‪.‬‬
‫به صورت غیرقطعی یک عضو از الفبای ورودی را انتخاب کرده و مکان نشانه گفته شده از‬
‫ماشین ‪ N‬را روی استیت‌های آن تغییر می‌دهیم تا بتوانیم خواندن ورودی‌ها را شبیه‌سازی کنیم‪.‬‬
‫ج‪ .‬اگر در قسمت ب رشته‌ای به حالت ریجکت وارد شد‪ ،‬اکسپت می‌کنیم‪( .‬به طور مثال اگر در لحظه‌ای‪ ،‬هیچ یک از نشانه‌ها‬
‫روی حالت اکسپت از ‪ N‬وارد نشدند)‪ ،‬و در غیر این صورت به ریجکت می‌رویم‪.‬‬
‫‪q‬‬ ‫‪q‬‬
‫از آنجایی که حداکثر ‪ 2‬زیر مجموعه از استیت‌های ‪ N‬وجود دارد‪ ،‬باید یکی را در طول حداکثر ‪ 2‬ریجکت کند‪ ،‬اگر ‪N‬‬
‫‪q‬‬
‫یک رشته را ریجکت کرد (دقت کنید این محاسبات می‌توانند در حداکثر ‪ 2‬استیت انجام شود)‪.‬‬
‫‪ M‬به حافظه نیاز دارد‪ ،‬زیرا‪:‬‬
‫ذخیره مکان نشانه‌ها را داریم ()‪.)O(q) = O(n‬‬
‫شمارنده حلقه تکرار در الگوریتم ذکر شده را داریم ()‪.)O(q) = O(n‬‬
‫در این صورت ‪ M‬در فضای غیرقطعی )‪ O(n‬اجرا می‌شود‪.‬‬
‫)‪O(n‬‬
‫‪ 2‬اجرا می‌شود (زبان مطرح شده در صورت سوال مشخص نیست که ‪NP‬‬ ‫همچنین توجه کنید ‪ M‬در زمان غیرقطعی‬
‫است یا ‪.)coNP‬‬
‫حال یک قضیه را مطرح می‌کنیم‪.‬‬
‫قضیه ساویچ‪ :‬به یاد داریم که در کالس مدل کردن ‪ NTM‬با یک ‪ DTM‬مطرح شد که زمان نمایی صرف می‌کرد‪.‬‬
‫‪2‬‬
‫قضیه ساویچ نشان می‌دهد‪ ،‬هر ‪ NTM‬که فضای )‪ f(n‬اشغال می‌کند را می‌توان به یک ‪ DTM‬با فضای )‪ f (n‬تبدیل کرد و‬
‫این به معنای زیر است‪:‬‬
‫‪2‬‬
‫))‪NSPACE(f(n)) ⊆ SPACE(f (n‬‬
‫‪+‬‬
‫واضح است که یک کاهش سرعت خواهیم داشت‪ .‬تابع ‪ f‬نیز ‪ ℕ → ℝ‬است‪ .‬از آن‌جایی که این قضیه مورد خواسته سوال‬
‫نیست‪ ،‬صرفا چند تصویر از اثبات قضیه ارائه می‌دهم و به ادامه مسئله خودمان می‌پردازم‪.‬‬

‫‪2‬‬
3
‫حال تعریفی که از کالس ‪ PSPACE‬داشتیم را به خاطر می‌آوریم‪:‬‬

‫‪k‬‬
‫‪PSPACE = ∪ SPACE(n ), Union on k‬‬

‫حال طبق قضیه ساویچ می‌دانیم ‪ PSPACE = NSPACE‬است زیرا مربع یک چندجمله‌ای باز هم چندجمله‌ای است‪.‬‬
‫‪2‬‬
‫در این صورت )‪ A' ∈ NSPACE(n‬و ) ‪ A' ∈ SPACE(n‬و در نتیجه ‪ A' ∈ PSPACE‬خواهد بود‪.‬‬

‫همچنین طبق قضیه‌ای که در کالس اثبات شد می‌دانیم کالس‌های فضای قطعی تحت عمل ‪ complementation‬بسته هستند‪،‬‬
‫پس‪:‬‬
‫‪2‬‬
‫) ‪ A ∈ SPACE(n‬و در نتیجه ‪ A ∈ PSPACE‬است‪.‬‬

‫‪.Q.E.D‬‬

‫‪4‬‬
‫مسئله ششم‬
‫برای حل این مسئله‪ ،‬یک الگوریتم مطرح می‌کنیم‪.‬‬
‫دو نوار را در نظر بگیرید که یکی برای خواندن ورودی و دیگری برای خواندن و نوشتن باشد‪.‬‬
‫ابتدا ورودی را اسکن می‌کنیم تا مطمئن شویم هیچ ‪a‬ای بعد از ‪ b‬نیامده است‪ .‬اگر آمده بود به حالت ریجکت می‌رویم‪.‬‬
‫تعداد ‪a‬ها را با استفاده از یک ‪ counter‬می‌شماریم و به صورت باینری ذخیره می‌کنیم‪.‬‬
‫حال دو رویکرد وجود دارد‪ .‬یا اینکه شمارنده در قسمت قبل را ‪ decrement‬کنیم و یا اینکه از شمارنده دومی استفاده کنیم‪.‬‬
‫‪b‬ها را بشماریم‪ .‬اگر شمارنده ما صفر نشد ولی تمام ‌‪b‬ها‬
‫فرض کنید از ‪ decrement‬کردن شمارنده استفاده کنیم و تمام ‌‬
‫شمرده شده باشند یا اینکه شمارنده صفر شد ولی هنوز تعدادی ‪ b‬شمرده نشده باقی مانده بود‪ ،‬به حالت ریجکت می‌رویم و در‬
‫غیر این صورت به اکسپت می‌رویم‪.‬‬
‫توجه کنید حرکت ‪ head‬که تعداد حروف را می‌شمارد هیچ حافظه‌ای مصرف نمی‌کند‪.‬‬
‫در این صورت که اعداد را در حالت باینری ذخیره می‌کنیم‪ ،‬نتیجه می‌شود که در کالس ‪ Logspace‬قرار داریم‪.‬‬
‫‪n n‬‬
‫‪A B ∈L‬‬

‫‪.Q.E.D‬‬

‫‪5‬‬
‫مسئله پانزدهم‬
‫اگر تمام زبان‌های ‪ NP-hard، PSPACE-hard‬نیز باشند در این صورت مسئله ‪ SAT‬نیز ‪ PSPACE-hard‬خواهد بود‪،‬‬
‫پس هر زبان ‪ PSPACE‬را می‌توان با زمان چندجمله‌ای به ‪ SAT‬کاهش داد‪ .‬از آنجایی که ‪ SAT ∈ NP‬می‌باشد‪ ،‬پس هر‬
‫زبانی در ‪ PSPACE‬در زمان چندجمله‌ای و به صورت ‪ nondeterministic‬با تبدیل ورودی زبان در ‪ PSPACE‬به‬
‫ورودی مسئله ‪ SAT‬و همچنین اجرای یک ‪ decider‬به صورت ‪ NP-time‬به مسئله ‪ SAT‬قابل حل است‪.‬‬
‫بنابراین هر زبانی در ‪ PSPACE‬در ‪ NP‬است‪ ،‬پس ‪.PSPACE ⊆ NP‬‬
‫عالوه بر این‪ ،‬داریم که هر زبانی در ‪ NP‬یک کاهش در زمان چندجمله‌ای به ‪ SAT‬که ‪ NP-hard‬است‪ ،‬دارد و می‌دانیم که‬
‫یک کاهش چندجمله‌ای از ‪ SAT‬به )‪ TQBF (True Quantified Boolean Formula‬که در کالس به آن اشاره شد‬
‫وجود دارد و یک کاهش چندجمله‌ای از زبانی در کالس ‪ NP‬به ‪ TQBF‬می‌دهد‪.‬‬
‫یک کاهش زمانی چندجمله‌ای همچنین حافظه چندجمله‌ای صرف می‌کند‪ ،‬اگر در هر گام زمانی فقط بتوانیم به یک خانه حافظه‬
‫از نوار دست‌رسی داشته باشیم‪ .‬بنابراین یک ‪ decider‬با حافظه چندجمله‌ای برای هر زبان ‪ NP‬با تبدیل یک ورودی از زبان‬
‫به یک ورودی از ‪ TQBF‬در به صورت حافظه چندجمله‌ای و بعد از اجرای این ‪ decider‬بر ‪ TQBF‬داریم‪.‬‬
‫در نتیجه هر زبانی در کالس ‪ NP‬در ‪ PSPACE‬نیز است و داریم‪.⊆ PSPACE NP‬‬
‫پس نتیجه می‌شود که ‪.PSPACE = NP‬‬

‫‪.Q.E.D‬‬

‫‪6‬‬

You might also like