دانشکده ی علوم ریاضی نظریه ی زبان ها و اتوماتا ۲۶ ا ذرماه ۱۳۹۱ جلسه ی ۲۴: ماشین تورینگ مدر س: دکتر شهرام خزاي ی نگارندگان: حمید ملک و امین خسر وشاهی ۱ ماشین تور ینگ تعریف ۱ (تعریف غیررسمی ماشین تورینگ) ماشینی است که در نگاه اول می توان ا ن را یک پذیرنده ی زبان به حساب ا ورد و همچنین می توان به عنوان یک محاسبه کننده ا ن را در نظر گرفت. این ماشین دارای یک کنترل کننده حالت ۱ و یک نوار حافظه ۲ به طول بی نهایت است. همچنین دارای یک اشاره گر ۳ است که به جایی از حافظه اشاره می کند که در حال خواندن ا ن است. ۰... B B a ۱ a ۲... a n B B... در این ماشین در هر مرحله کنترل کننده ی حالت بر حسب حالت جاری و اطلاعاتی که از اشاره گر می گیرد فعالیتی انجام می دهد که عبارت است از به روز کردن حافظه و حرکت به چپ یا راست بر روی ا ن است. در ابتدا ماشین در حالت اولیه ۰ قرار دارد و نوار حاوی رشته ی ورودی w = a ۱... a n است که از دو طرف با دنباله ای نامتناهی از نمادهای خالی احاطه شده است. همچنین اشاره گر به چپ ترین حرف رشته ی ورودی اشاره می کند. تعریف ۲ (تعریف رسمی ماشین تورینگ) ماشین تورینگ یک هفت تایی منظم است به صورت M = (Q, Σ, Γ, δ, ۰, B, F ) که در ا ن ۱ state controller ۲ tape ۳ head ۲۴-۱
Q عبارت است از مجموعه ی حالات ماشین Σ عبارت است از الفبای رشته ی ورودی ( Σ Γ عبارت است از الفبای نوار حافظه( که Γ δ : Q Γ Q Γ {R, L} تابع (جزي ی) انتقال حالت است که δ ۰ که همان حالت اولیه است B Γ Σ است که (blank نماد خالی(مخفف B F که مجموعه ی حالات نهایی است قرارداد ۱ همانند گذشته یک دسته قرارداد برای نام گذاری متغیرها وضع می کنیم:... c, a, b, برای حروف الفبای ورودی... Z, X, Y, برای حروف الفبای نوار حافظه... z, w, x, y, برای رشته های الفبای ورودی... γ, α, β, برای رشته های روی الفبای نوار (L) یا چپ (R) برای نمایش جهت راست D نکته ۱ توجه داشته باشید که δ یک تابع جزي ی است بدین معنا که ممکن است بر روی بخشی از دامنه ی خود تعریف نشده باشد. به عبارت دیگر (D δ(p, (X =,),Y که همان طور که گفته شد به صورت یک سه تایی مرتب است و یا تعریف نشده است. اگر در موقعیتی قرار بگیریم که δ تعریف نشده باشد ماشین دیگر حرکت نمی کند و متوقف ۴ می شود. مثال ۱ می خواهیم ماشین تورینگی طراحی کنیم که: - رشته ی ورودی را به سمت راست می خواند تا به ۱ برسد. - اگر ۱ پیدا کرد ا ن را به صفر تغییر دهد و به حالت نهایی برود. - اگر به Bبرسد ا ن را به ۱ تغییر می دهد و به سمت چپ حرکت می کند. ۴ halt ۲۴-۲
در این مثال دو حالت داریم اولیه و نهایی. بقیه ی مو لفه ها نیز به صورت زیر است: Q = {, f} F = {f} Σ = {۰, ۱} Γ = {۰, ۱, B} حال باید تابع δ را تعریف کنیم: δ : Q F Q Γ {R, L} به این علت که باید پس از خواندن صفر تنها به خانه ی بعدی برویم: δ(, ۰) = (, ۰, R) به این علت که باید پس از رسیدن به یک ا ن را به صفر تغییر داد و به حالت نهایی رفت: δ(, ۱) = (f, ۰, R) به این علت که باید پس از رسیدن به B تغییر گفته شده را انجام دهیم: δ(, B) = (, ۱, L) به طور مثال مراحل پردازش رشته ی ۰۰ به صورت زیر است:... B B ۰ ۰ B B... با خواندن ۰ بدون تغییر محتوای نوار به سمت راست می رویم:... B B ۰ ۰ B B... ۲۴-۳ مانند مرحله ی قبلی عمل می کنیم:
... B B ۰ ۰ B B... با خواندن B ا ن را به یک تغییر می دهیم و به سمت چپ می رویم:... B B ۰ ۰ ۱ B B... به سمت راست رفته و نوار حافظه را تغییر نمی دهیم:... B B ۰ ۰ ۱ B B... با خواندن ۱ ا ن را به ۰ تغییر داده و به حالت نهایی می رویم و پردازش رشته ی ورودی پایان یافته است: f... B B ۰ ۰ ۰ B B... ۲ توصیف ا نی برای اینکه زبان یک ماشین تورنگ را تعریف کنیم همانند کاری که برای ماشین های پشته ای انجام دادیم وضعیت ماشین را با یک توصیف ا نی بیام می کنیم. در واقع توصیف ا نی به ما می گوید که ماشین در چه وضعیتی قرار دارد محتویات بخش غیرخالی نوار چیست و اشاره گر به کدام خانه اشاره می کند. ۲۴-۴
تعریف ۳ (توصیف ا نی) رشته ی αβ را یک توصیف ا نی از ماشین تورینگ می گوییم اگر: ماشین در حالت باشد اشاره گر بر روی اولین حرف رشته ی β باشد محتویات نوار... BBαβBB... است. مثلا با فرض α = α ۱ α ۲... α n و β = β ۱ β ۲... β m اگر توصیف ا نی برابر αβ باشد وضعیت در ماشین تورینگ به شکل زیر است:... B α ۱... α n β ۱... β m B... قرارداد ۲ در نمایش توصیف ا نی برای سادگی همه نمادهای B را از ابتدای رشته α و انتهای رشته β حذف می کنیم. مجددا مانند P DA ما برای انتقال بین توصیف های ا نی از دو علامت و به ترتیب برای انتقال یک مرحله ای و چند مرحله ای استفاده می کنیم. مثال ۲ مراحل توصیف ا نی را در ماشین قبلی به صورت زیر است. ۰۰ ۰۰ ۰۰ ۰۰۱ ۰۰۱ ۰۰۰f تعریف ۴ (حرکت ماشین تورینگ) حرکت در ماشین تورینگ به صورت زیر است: ۱) اگر داشته باشیم (R δ(, (X =,p),y به صورت زیر عمل می کنیم: اگر X = B و β = ϵ داریم: α αy p در غیر این صورت: αxβ αy pβ اگر داشته باشیم (L δ(, (X =,p),y به صورت زیر عمل می کنیم: (۲ اگر داشته باشیم :α = ϵ Xβ pby β در غیر این صورت: α ZXβ α pzy β ۲۴-۵
۳ زبان ماشین تور ینگ درست همانند P DA که دو روش برای برای زبان پذیرفته شده داشتیم در مورد ماشین های تورینگ نیز دو روش برای پذیرش یک رشته در زبان داریم: ۱) پذیرش با رسیدن به حالت نهایی: ۲) پذیرش با توقف: L(M) = {w ۰ w αfβ, f F, α, β Γ } H(M) = {w ۰ w αxβ s.t. δ(, X) is undefined} قضیه ۱ اگر L(M) L = ا ن گاه ماشین M وجود دارد به طوری که ) H(M.L = برهان. تنها به اراي ه ی روشی برای ساخت ماشین تورینگ M بسنده می کنیم. همه مو لفه های ماشین M مانند ماشین M است بجز مجموعه حالات که با {s} Q = Q جایگزین می شود که s یک حالت جدید غیرنهایی است و تابع انتقال حالت δ که از روی δ پس از اعمال تغییرات زیر حاصل می شود. (۱ برای هر حالت نهایی f F در ماشین M و هر X که δ (f, X) X Γ را تعریف نشده در نظر می گیریم. ۲) برای اجتناب از توقف بی مورد ماشین M باید یک حالت جدید s تعریف کنیم که: X Γ : δ(s, X) = (s, X, R) ۳) به ازای هر حالت غیرنهایی از ماشین M و هر X که X Γ که (X δ(, تعریف نشده باشد: δ (, X) = (s, X, R) (۴ به ازای تمام مقادیر دیگر Q و X Γ داریم X).δ (, X) = δ(, قضیه ۲ اگر H(M) L = ا ن گاه ماشین M وجود دارد که ) L(M.L = برهان. همانند قبلی راه کاری برای ساخت ماشین تورینگ اراي ه می کنیم: ۱) یک حالت نهایی جدید تعریف می کنیم که تنها حالت نهایی M است. ۲) اگر (X δ(, تعریف نشده باشد برای یک حالت Q و نماد X Γ تعریف می کنیم: δ(, x) = (f, X, R) ۲۴-۶