ماشین تورینگ: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Nazila majidyfar (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
جز ویرایش Nazila majidyfar (بحث) به آخرین تغییری که Hooshmand.hasannia انجام داده بود واگردانده شد
خط ۲:
در [[تئوری محاسبات]] '''ماشین تورینگ''' (Turing machine) به یک [[ماشین حالات متناهی]] اطلاق می‌شود که درآن با وقوع هر عبور<ref>Transition</ref> یک [[نماد]]<ref>Symbol</ref> برروی نوار چاپ می‌شود. با وجود اینکه مکانیزم ماشین تورینگ مقدماتی است مفهومش برای پوشش عملکردهای بسیار پیچیده کافی و گسترده‌است. حافظه این ماشین ساختاری بسیار ساده دارد. یعنی می‌تواند بصورت یک آرایه یک بعدی از عناصر (سلولها) که هر یک می‌توانند حافظ تنها یک نماد باشند، باشد. این آرایه از هر دو طرف باز و نامحدود است (حافظه بینهایت) است و اطلاعات آن می‌توانند به هر ترتیبی فراخوانی شوند.
 
=== تاریخچه ===
زمینه های تاریخی:ماشین محاسباتی
 
خط ۱۳:
۵-انتقال شرطی
 
=== تعریف ===
 
ماشین تورینگ عبارت است از یک پنج-تاپل (پنج‌تایی) به‌صورت <math>M = (Q, \Sigma, \Gamma, \delta, q_0) \!</math>، که در اینجا:
خط ۲۴:
* <math>q_0 \!</math> حالت شروع نام دارد، یعنی، حالتی از ماشین است که محاسبه را درآن آغاز می‌کنیم.
بطور کلی <math>\delta \!</math> یک تابع جزئی روی <math>Q \! \times \Gamma \!</math> است و تفسیرش عملکرد ماشین تورینگ را بیان می‌کند.
 
=== توصیف غیر علمی ===
 
ماشین تورینگ به صورت ریاضی، ماشینی است که روی یک نوار عمل می کند. روی این نوار، نمادهایی است که ماشین هم می تواند بخواند و هم می تواند بنویسد و همزمان از آنها استفاده می کند. این عمل به طور کامل با یک سری دستورالعمل ساده محدود تعریف شده است.
ماشین تورینگ از موارد زیر تشکیل شده است:
1. یک نوار، به سلولهایی تقسیم بندی شده است و هر سلول شامل نمادهایی است. الفبا شامل نماد تهی خاصی و یک یا تعداد دیگری نماد است. فرض می شود که این نوار خودسرانه به چپ و راست رسانده شود. ماشین تورینگ از نوارهایی تامین می شود که برای محاسبه لازم است.
 
2. یک کلاهک وجود دارد که قادر به خواندن و نوشتن نمادهایی است که روی نوار قرار گرفته اند و بطور همزمان نوار را به سمت چپ و راست یکی از (و تنها یک) سلولها حرکت میدهد. در بضی مدلها، کلاهک حرکت می کند و نوار ثابت می ماند.
3. یک دستگاه ثبت حالت وجود دارد که حالت های ماشین تورینگ را ذخیره می کند (یکی از تعداد زیادی حالت متناهی). یک حالت شروع وجود دارد که همراه با مقدار دهی اولیه است. این حالت ها، حالت ذهن شخصی را که محاسبات را انجام می دهد، جایگزین می کنند.
4. یک جدول محدود (که گاهی جدول عمل یا تابع انتقال نامیده می شود)، از دستورالعمل ها وجود دارد که در حال حاضر، حالت (q_i) و نماد (a_j) به ماشین داده می شود( برای مدل های 5تایی و گاهی 4تایی) که روی نوار خوانده می شود و میگوید که ماشین، این موارد را به تزتیب زیر برای مدلهای 5تایی انجام دهد:
 
- یا پاک کردن و یا نوشتن یک نماد (بصورت جایگزین کردن a_2 با a_j1)
 
- حرکت کردن کلاهک نوار (که توسط d_k مشخص می شود و می تواند مقادیر L برای حرکت به چپ و R برای حرکت به سمت راست به خود بگیرد. همچنین مقدار N نشان دهنده ساکن بودن نوار است).
 
- فرض کنید یک حالت مشابه یا یک حالت جدید مشخص شده است (رفتن به وضعیت q_i1 )
در مدل های 4تایی پاک کردن یا نوشتن یک نماد (a_j1) و حرکت کلاهک نوار به سمت چپ یا راست (d_k) بصورت دستورالعمل های جداگانه مشخص شده اند. بطور خاص، جدول به ماشین میگوید که چیزی را پاک کند یا یک نماد را بنویسد (ia) و یا کلاهک نوار به سمت چپ و راست حرکت کند (ib). فرض کنید که حالتهای مشابه یا حالتهای جدیدی مشخص شده اند. اما عملیات های (ia) و (ib) دستورالعمل های یکسانی ندارند. در برخی از مدلها، اگر در جدول، ورودی از نمادها و حالتها نداشته باشیم، ماشین متوقف خواهد شد. سایر مدلها، نیاز به همه ورودی ها دارند تا پر شوند.
توجه داشته باشید که هر بخش از ماشین- حالتها و نمادها، مجموعه ها، اقدامات، چاپ کردن، پاک کردن و حرکت نوار- محدود، گسسته و تشخیص پذیر است. این، پتانسیل نامحدود نوارهاست که خود مقدار نامحدودی از یک فضای ذخیره سازی است.
 
=== مقایسه با ماشین های واقعی ===
 
اغلب گفته می شود که ماشین تورینگ، بر خلاف ماشین های اتومات، به اندازه ماشین های واقعی قدرتمند هستند و قادر به انجام هر عملیاتی که ماشین واقعی می تواند بکند هستند. چیزی که در این مطلب جا ماند این است که یک ماشین واقعی تنها می تواند در بسیاری از تنظیمات متناهی باشد؛ در واقع ماشین واقعی چیزی نیست جز یک ماشین اتوماتیک محدود خطی. از طرف دیگر ماشین تورینگ با ماشین هایی که دارای ظرفیت حافظه های نامحدود محاسباتی هستند، معادل است. از نظر تاریخی رایانه هایی که محاسبات را در حافظه داخلی شان انجام می دادند، بعدها توسعه داده شده اند.
 
=== چرا ماشین های تورینگ مدل های مناسبی برای رایانه های واقعی هستند؟ ===
 
1. هرچیزی که ماشین واقعی میتواند محاسبه کند، ماشین تورینگ هم می تواند. برای مثال ماشین تورینگ، می تواند هرچیز طبق روالی که در زبان های برنامه نویسی پیدا می شود شبیه سازی کند. همچنین می تواند فرآیندهای بازگشتی و هریک از پارامترهای مکانیسم شناخته شده را شبیه سازی کند.
 
2. تفاوت، تنها در قابلیت ماشین تورینگ برای دخالت در مقدار محدودی اطلاعات نهفته است. بنابراین، ماشین تورینگ میتواند در مدت زمان محدودی، در اطلاعات دخالت داشته باشد.
 
3. ماشین واقعی همانند ماشین های تورینگ می توانند حافظه مورد نیازش را به کمک دیسک های بیشتر، بزرگ کند. اما حقیقت این است که هم ماشین تورینگ و هم ماشن واقعی، برای محاسبات نیازی به فضا در حافظه شان ندارند.
 
4. شرح برنامه های ماشین واقعی که از مدل ساده تر انتزاعی استفاده می کنند، پیچیده تر از شرح برنامه های ماشین تورینگ است.
 
5. ماشین تورینگ الگوریتم های مستقل را که چقدر از حافظه استفاده می کنند، توصیف می کند. در دارایی حافظه همه ی ماشین ها، محدودیتی وجود دارد؛ ولی این محدودیت می تواند خود سرانه در طول زمان افزایش یابد.
 
ماشین تورینگ به ما اجازه می دهد درباره الگوریتم هایی که برای همیشه نگه داشته می شوند، توصیفاتی ارائه دهیم؛ بدون در نظر گرفتن پیش رفت در معماری محاسبات با ماشین معمولی.
 
6. ماشین تورینگ جملات الگوریتم را ساده می کند. الگوریتم های در حال اجرا در ماشین آلات انتزاعی معادل تورینگ، معمولا نسبت به همتایان خود که در ماشین های واقعی در حال اجرا هستند عمومی ترند. زیرا آنها دارای دقت دلخواه در انواع اطلاعات قابل دسترس هستند و هیچوقت با شرایط غیر منتظره روبرو نمی شوند. یکی از نقطه ضعف های ماشین تورینگ این است که برنامه های واقعی که نوشته می شوند ورودی های نامحدودی را در طول زمان دریافت می کنند؛ در نتیجه هرگز متوقف نمی شوند.
 
== محدودیت های ماشین تورینگ ==
 
=== نظریه پیچیدگی محاسباتی ===
 
یکی از محدودیت های ماشین های تورینگ این است که آنها توانایی چیدمان خوب را ندارند. برای مثال کامپیوترهای برنامه ای با ذخیره مدرن، نمونه هایی از یک مدل خاص ماشین انتزاعی که به نام ماشین برنامه دسترسی رندم یا مدل ماشین RASP می باشند.
 
=== همزمانی ===
 
یکی دیگر از محدودیت های ماشین تورینگ این است که همزمانی را خوب ارئه نمی دهد. برای مثال برای اندازه عدد صحیحی که میتواند توسط « متوقف کننده غیر قطعی دایمی» محاسبه شود، محدودیت وجود دارد. ماشین تورینگ روی یک نوار خالی شروع می کند. در مقابل، ماشین های «همیشه متوقف» همزمان هستند که بدون ورودی می توانند عدد صحیح نامتناهی را محاسبه کنند.
 
== پانویس ==
سطر ۱۱۲ ⟵ ۶۰:
|شابک= ISBN 964-6342-49-3
}}
 
* {{یادکرد-ویکی
|عنوان = ماشین تورینگ
|زبان = انگلیسی
}}
 
{{انبار-رده|Turing machine}}