اَبا اِباد

مساله‌ی توقف

مساله‌ی توقف

یک دانش آموز در همان سال‌ های نخستین مدرسه، الگوریتمی را برای جمع دو عدد می‌آموزد.

زمانی که این دانش آموز، الگوریتم را یاد گرفت، دیگر برایش فرقی ندارد که آن عدد چقدر بزرگ باشد، او‌ با تکرار مراحل الگوریتم، خود را به پاسخ می‌رساند. پس ما آموخته ایم که الگوریتم‌های ریاضی را بسیار پیش از اینکه هر زبان برنامه نویسی را بیاموزیم، به کار بگیریم. ما در هندسه نیز از الگوریتم ها استفاده می‌کنیم، مثلا می‌گوییم طبق قضیه‌ی فیثاغورس، مجذور وتر با مجموع مجذور دو ضلع قائم در مثلث قائم الزاویه برابر است. پس در اینجا نیز با یک الگوریتم مواجه هستیم.

این در حالی‌ست که قضیه‌ی فیثاغورس مربوط به ۲۵۰۰ سال قبل است و ما بسیار پیشتر از هر کامپیوتری، از الگوریتم‌ها خبر داشته ایم و از آن‌ها استفاده می‌کرده ایم. اما مفهوم مدرن الگوریتم، به همان معنایی که در کامپیوترها و برنامه‌های کامپیوتری از آن‌ها استفاده می‌شود، برای اولین بار در دهه‌ی ۱۹۳۰، توسط ریاضی‌دانانی مانند آلن تورینگ و آلونزو چرچ، ارائه شد. این دو ریاضیدان، مفهوم مدرن الگوریتم را در پاسخ به یکی از سوالات هیلبرت، ارائه کردند.

دیوید هیلبرت و ویلهلم آکرمن، دو ریاضیدان بزرگ آلمانی در سال ۱۹۲۸، این سوال را مطرح کردند که آیا الگوریتم‌ یا الگوریتم‌هایی وجود دارد که به کمک آن‌ها بتوان، تمام مسائل ریاضیات را حل کرد یا خیر؟

به این مساله، مساله‌ی‌ تصمیم گیری یا به آلمانی Entscheidungsproblem گفته می‌شود. هیلبرت انتظار داشت که پاسخ این سوال، آری باشد. اما چرچ و تورینگ دو سال بعد نشان دادند که پاسخ این سوال منفی‌ست. آن‌ها اثبات کردند که الگوریتمی وجود ندارد که تمام مسائل ریاضیات را حل کند. اثبات تورینگ بر عدم وجود چنین الگوریتم جامعی، مساله‌ی توقف یا halting problem بود. شکل ساده‌ای از این الگوریتم می‌تواند اینچنین باشد. من برای شما یک الگوریتم با دو دستور تعیین می‌کنم. دستور اول اینکه اگر شخصی را در حال حرکت دیدید، بایستید و حرکت نکنید.

دستور دوم اینکه اگر دیدید شخصی ایستاده و حرکت نمی‌کند، شما شروع به حرکت کنید.

حالا من یک آینه را مقابل شما قرار می‌دهم. شما چه حرکتی می‌کنید؟ شما در آینه خودتان را می‌بینید که ایستاده‌اید، پس بایستی حرکت کنید. اما همینکه حرکت کنید، در آینه خودتان را می‌بینید که حرکت می‌کنید، پس باید بایستید. و این الگوریتم هیچگاه به جواب نمی‌رسد.

تورینگ با ارائه‌ی مشابه الگوریتمی این موضوع، نشان داد که پاسخ سوال هیلبرت منفی ست و نمی‌توان الگوریتمی پیدا کرد که بتواند تمام مسائل ریاضی را حل کند. و البته تلاش تورینگ و چرچ در پاسخ به این‌ سوال، منجر به پایه گذاری تئوری مدرن علوم کامپیوتر شد.

– اَبا اِباد

 

معادل ساده تر این مساله در منطق پارادوکس دروغگوست که مثلا فردی می‌گوید “من همیشه دروغ می‌گویم”. حالا این فرد در اینجا دروغ می‌گوید یا راست می‌گوید؟ اگر دروغ می‌گوید، پس این حرفش نیز دروغ است، در نتیجه او راست می‌گوید و چون راست می‌گوید، پس دروغگوست. حالا اگر فرد در اینجا راست می‌گوید که دروغ می‌گوید، پس دارد دروغ می‌گوید و در نتیجه راست نمی‌گوید. می‌بینید که این مساله هیچوقت به هیچ پاسخی نمی‌رسد و آخر مشخص نمی‌شود که این فرد راست می‌گوید که دروغ می‌گوید یا دروغ می‌گوید که دروغ می‌گوید.

 

راست است یا دروغ؟

او می گوید” این عبارت دروغ است”. حالا این عبارت دروغ است یا راست؟

  • راست
  • دروغ
  • هیچکدام
  • هردو

 

 

 

 

 

 

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *