مسألة توقف
المحتويات

في البداية، مسألة التوقف في نظرية الحاسوبية هي كالتالي: «معطى وصف برنامج حاسوبي قرر إذا ما البرنامج يتوقف أو لا يتوقف», مسألة مشابهة ومتكافئة هي إذا كان بالإضافة للبرنامج كان هنالك مدخل والمسألة هي تحديد إذا ما البرنامج سوف يتوقف عندما نشغله مع المدخل أو لن يتوقف. وفيما يلي تفاصيل أوسع عن ذلك.
إضافةً إلى ذلك، في سنة 1936 برهن الن تيورنج ان خوارزمية عامة التي تحل مسألة التوقف بشكل صحيح لكل المدخلات غير موجودة، ولعل ابرز ما جاء في البرهان هو تعريف الحاسوب وبرنامج الحاسوب بشكل رياضياتي وهو ما عرف لاحقا بالة تيورنج. وبالنسبة لالة تيورنج مسألة التوقف غير قابلة للتقرير.
نص المبرهنة
وفي السياق ذاته، المبرهنة نصها كالتالي: «مسألة التوقف غير قابلة للتقرير» أو " هي مجموعة غير قابلة للتقرير ".
استخدامات عملية
علاوةً على ذلك، مسألة التوقف هي مسألة تقرير المتعلقة بخصائص برامج الحاسوب على آلة تيورنج واحدة أي كل البرامج التي يمكن كتابتها بواسطة لغة برمجة معينة والتي تكون عمومية لتحاكي آلة تيورنج. والمسألة هي باعطائنا برنامج ومدخل للبرنامج على المرئ ان يحدد إذا ما البرنامج سوف يتوقف، في هذا السياق لا توجد اهمية معينة لتحديد الموارد مثل: وقت عمل آلة تيورنج أو كمية المساحة الاضافية التي يستغلها البرنامج انما يسمح للبرنامج ان يكون طويلا جدا وقد يستعمل الكثير من المساحة الاضافية وقد يكون وقت عمله جدا ضخم قبل ان يتوقف والمسألة ببساطة هل يمكن بناء خوارزمية التي تحدد إذا ما البرنامج يتوقف.
فللنظر للبرنامج التالي:
اهمية المسألة
من جهة ثانية، اهمية هذه المسألة كانت في أنها أول مسألة يبرهن انها غير قابلة للتقرير أي لا يوجد خوارزمية التي يمكنها التقرير، باعطائها برنامج ومدخل للبرنامج، إذا ما البرنامج سوف يتوقف على المدخل، وقد ترتب على غير قابلية التقرير لهذه المسألة أن مسائل أخرى تبين انها غير قابلة للتقرير، ولعل أحد أهم الوسائل للتبيين ان المسائل غير قابلة للتقرير هو الاختصار، أي انه كي نبين ان مسألة ما غير قابلة للتقرير نبين انه إذا يوجد خوارزمية تحل المسألة حينها مسألة التوقف كذلك يوجد لها خوارزمية وهذا يبين انه لا يوجد خوارزمية للمسألة إذ ان هذا يناقض عدم وجود خوارزمية لمسألة التقرير، وهذا يتم عن طريق تحويل (والتحويل هو دالة رياضية) مدخلات مسألة التقرير لمدخلات للمسألة التي نريد ان نبرهن انها غير قابلة للتقرير.
ومن ناحية أخرى، لعل أحد التعميمات لنتيجة ان مسألة التوقف غير قابلة للتقرير هو قانون رايز، والذي نصه: «كل صفة ليست بديهية للدوال الجزئية التي يمكن تنفيذها بواسطة برامج لا يمكن تقريرها». القصد من التعبير «صفة ليست بديهية» معناه أن مجموعة الدوال الجزئية التي تحقق الصفة هي ليست كل الدوال الجزئية كما انه يجب ان يكون هنالك دالة واحدة على الاقل التي تحقق الصفة. مثال: الصفة: «التوقف على المدخل 0» نلاحظ أن ليس كل الدوال تتوقف على المدخل 0 كما انه يوجد دوال تتوقف على 0 لذا فان هذه الصفة ليست بديهية لذا فهي غير قابلة للتقرير. ويجب الانتباه بأن قانون رايز لا يتحقق إذا كانت الصفة ليست للدوال الجزئية التي يمكن تنفيذها بواسطة برنامج ولكن الصفة كذلك متعلقة بالبرنامج مثل: «التوقف على المدخل 0 خلال 100 خطوة حساب», نلاحظ ان هذه ليست صفة للدوال الجزئية فقط وانما كذلك للبرنامج وهذه المسألة يمكن تقريرها (ببساطة ننفذ البرنامج خلال 100 خطوة عندما المدخل يكون 0 إذا توقف البرنامج المخرج يكون «نعم» وخلاف هذا الإجابة «لا»).
مسألة التوقف غير قابلة للتقرير
كذلك، لعل ابرز النتائج في علم الحاسوب والرياضيات في القرن العشرين هو أن هذه المسألة غير قابلة للتقرير، والبرهان الذي اعتمده تيورنج شبيه إلى حد بعيد الوسيلة التي استعملها كانتور ليبين أن هي مجموعة لانهائية غير قابلة للعد، والوسيلة هي «القطرية» (diagonalization).
else writeln('No');
- والان نعرف برنامج اخر الذي هو OPP كالتالي:
- procedure OPP(P);
- if NEWHALTS(P) outputs 'Yes' then
- loop forever
while (true) continue
علاوةً على ذلك، تيورنج برهن أنه لا يمكن ان يكون هنالك خوارزمية تحدد هل البرنامج يتوقف، وقد بين تيورنج ان مثل هذه الخوارزمية إذا وجدت فانها تناقض نفسها ولذا لا يمكن ان تكون موجودة.
هذا البرنامج لن يتوقف ابدا بينما البرنامج:
print "Hello, world!"
في هذا الإطار، سوف يتوقف بسرعة. هذا الامر قد يكون واضحا في هذين البرنامجين فاذا كان البرنامج أكثر تعقيدا هكذا صعب ان يعرف أيتوقف ام لا.
البرهان
procedure NEWHALTS(M);
if HALTS(M,M) then writeln('Yes');
وفي هذا السياق، البرهان سوف يكون عن طريق التناقض: فلنفرض أنه يوجد برنامج HALTS والذي مدخله برنامج M ومدخل للبرنامج x. وهذا البرنامج مخرجه «نعم» إذا M تتوقف على المدخل x والجواب «لا» خلاف هذا. نبني برنامج جديد NEWHALTS والذي مدخله برنامج M والجواب نعم إذا ما البرنامج M يتوقف عندما يكون المدخل M.
else halt;
- انظر كذلك
- آلان تورنغ
- كثير حدود وكثير حدود غير قطعي
- مبرهنات عدم الاكتمال لغودل
- هذا البرنامج يعكس نتيجة NEWHALTS , الآن ماذا يحدث مع (OPP(OPP?
- داخل (OPP(OPP يستدعي (NEWHALTS(OPP والذي يستدعي (HALTS(OPP,OPP حينها:
- إذا OPP يتوقف على المدخل OPP حينها (OPP(OPP لن يتوقف؛
- إذا OPP يتوقف على المدخل OPP حينها (OPP(OPP يتوقف.
ومن جهة أخرى، إذا (OPP(OPP لا يمكن ان يتوقف ولا يمكن ان لا يتوقف. لذا فإن هذا تناقض. والفرضية الوحيدة هي أن HALTS موجود ! لذا فانه لا يمكن ان يكون موجودا.
التعريف بواسطة مجموعة
من جانب آخر، وهذه المجموعة تمثل مسألة التوقف وهي مجموعة مجموعة مرقمة بشكل تراجعي أي انه يوجد دالة قابلة للحساب التي تعدد كل زوج (i,x) ولكن المجموعة المكملة غير قابلة للترقيم أو التعداد.
إضافةً إلى ذلك، يوجد الكثير من المسائل التي هي إعادة صياغة لمسألة التوقف حيث أن كل مسألة يوجد لها نفس درجة تيورنج هي كذلك. امثلة لمجموعات كهذه منها:
وفي هذا السياق، الشكل الاعتيادي لمسائل التقرير يكون على شكل مجموعة من الاشياء التي تحقق السؤال. مجموعة التوقف (halting set) هي:
ومن ناحية أخرى، { i | يوجد مدخل x بحيث أن البرنامج i سوف يتوقف على المدخل x }.
{ i | برنامج i سوف يتوقف عندما نشغله مع المدخل 0 }
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟