تحديد حلقي

في علوم الكمبيوتر، تحديد الحلقة أو إيجاد الحلقة عبارة عن مشكلة خوارزمية لايجاد حلقة في تسلسل لقيم مكررة.

بالنسبة لأي دالة  تقوم بربط مجموعة منتهية  بذاتها، وبأي قيمة أولية في  ، فإن تسلسل قيم الدوال المكررة كالتالي

 

يجب في النهاية استخدام نفس القيمة مرتين: يجب أن يكون هناك زوج من المؤشرات المميزة  و  بحيث يكون يجب أن يستمر التسلسل بشكل دوري، من خلال تكرار نفس سلسة القيم من إلى . تحديد الحلقة هو مشكلة إيجاد  و ، إذا كان لدينا فرضاً  و .

يوجد العديد من الخوارزميات المعروفة لتحديد الحلقات بسرعة وبقليل من الذاكرة. تحرك خوارزمية السلحفاة والأرنب روبرت دبليو فلويد مؤشرين بسرعات مختلفة من خلال سلسلة من القيم حتى يشير كلاهما إلى قيم متساوية. عوضاً عن ذلك، تعتمد خوارزمية برينت Brent على فكرة البحث الأسي. تستخدم كل من خوارزميات فلويد وبرنت عددًا ثابتًا من خلايا الذاكرة، وتأخذ عددًا من تقييمات الدوال التي تتناسب مع المسافة من بداية السلسلة إلى التكرار الأول. تقوم العديد من الخوارزميات بمقايضة كميات أكبر من الذاكرة من أجل تقييم أقل للدوال.

تشمل تطبيقات التحديد الحلقي اختبار جودة مولدات الأرقام العشوائية الزائفة (شبه عشوائية) و دوال هاش للتشفير، وخوارزميات نظرية العدد الحاسوبي، والكشف عن الحلقات اللانهائية في برامج الكمبيوتر والتكوينات الدورية في الأتمتة الخلوية، وتحليل الشكل الآلي لهياكل بيانات القائمة المتصلة .

مثال 

يوضح الشكل دالة  التي تربط المجموعة  بذاتها. إذا بدأنا بالتعيين من و التطبيق بشكل متكرر  ،فسنرى سلسلة القيم كالتالي

الحلقة في سلسلة القيم هذه هي .

المراجع

روابط خارجية 

 غابرييل نيفاش، مشكلة اكتشاف الدورة وخوارزمية المكدس
 السلحفاة والأرنب البري ، مستودع نمط بورتلاند
 خوارزمية الكشف عن دورة فلويد (السلحفاة والأرنب البري)
 خوارزمية اكتشاف دورة برنت (السلحفاة عن بعد)