ماذا يعني circuit في الخوارزميات وهياكل البيانات؟ شرح مبسّط

شروحات تقنية

في مجال الخوارزميات وهياكل البيانات، كلمة circuit (الدائرة) لا تعني الدائرة الكهربائية أو الإلكترونية كما قد يوحي الاسم، بل هي مصطلح من نظرية الرسوم البيانية (Graph Theory). ببساطة: الدائرة هي مسار مغلق يبدأ من رأس (Vertex) معيّن وينتهي عند الرأس نفسه، دون أن يمرّ على الحافة (Edge) الواحدة أكثر من مرة. أي أنها «مسار مغلق لا يكرّر أي حافة». وهناك معنى ثانٍ أضيق يظهر في نظرية التعقيد الحسابي، وهو «الدائرة المنطقية» كنموذج للحوسبة، وسنوضّح المعنيين بالترتيب.

الدائرة في نظرية الرسوم البيانية

الرسم البياني (Graph) هو مجموعة من الرؤوس (النقاط) متصلة بحواف (خطوط). عندما نتحرّك من رأس إلى آخر عبر الحواف ثم نعود في النهاية إلى نقطة البداية دون أن نستخدم أي حافة مرتين، نكون قد كوّنّا دائرة.

مثال بسيط: تخيّل أربع مدن A و B و C و D تربط بينها طرق. لو انطلقت من A إلى B ثم C ثم D ثم عدت إلى A، وكل طريق مررت به مرة واحدة فقط، فهذا مسار يشكّل دائرة. الفكرة الجوهرية أن المسار مغلق (البداية = النهاية) ولا تتكرّر فيه أي حافة.

هذا المفهوم مهم عمليًا: خوارزميات تخطيط المسارات، وكشف الحلقات في الشبكات، وتحليل التبعيّات في المشاريع، كلها تعتمد على فهم متى يوجد مسار مغلق ومتى لا يوجد.

المسار والدرب والدورة والدائرة: ما الفرق؟

هنا يقع أكثر الالتباس، لأن هذه المصطلحات متقاربة ويخلط بينها كثير من الطلاب. الجدول التالي يوضّح الفرق حسب الاصطلاح الشائع في معظم الكتب:

المصطلحمغلق أم مفتوح؟تكرار الحوافتكرار الرؤوس
الجولة (Walk)أيّهمامسموحمسموح
الدرب (Trail)مفتوح غالبًاغير مسموحمسموح
المسار (Path)مفتوحغير مسموحغير مسموح
الدائرة (Circuit)مغلقغير مسموحمسموح
الدورة (Cycle)مغلقغير مسموحغير مسموح (عدا نقطة البداية/النهاية)

الخلاصة العملية: الدائرة = درب مغلق (يجوز أن يمرّ على الرأس نفسه أكثر من مرة، لكن لا يكرّر حافة). أما الدورة (Cycle) فهي أضيق: مسار مغلق لا يكرّر أي رأس إلا نقطة البداية. فكل دورة هي دائرة، لكن ليست كل دائرة دورة.

ملاحظة مهمة: هذه التعريفات تختلف قليلًا بين المراجع؛ بعض الكتب تستخدم «circuit» و«cycle» بالتبادل. لذلك عند حلّ واجب أو مسألة، تحقّق دائمًا من التعريف الذي اعتمده كتابك أو أستاذك.

دائرة أويلر ودائرة هاملتون

أشهر نوعين من الدوائر في الخوارزميات:

  1. دائرة أويلر (Eulerian Circuit): مسار مغلق يمرّ على كل حافة في الرسم البياني مرة واحدة بالضبط ويعود إلى البداية. القاعدة الأنيقة: توجد دائرة أويلر إذا كان الرسم متصلًا ودرجة كل رأس زوجية (أي عدد الحواف الخارجة من كل نقطة عدد زوجي). هذه هي فكرة لغز «جسور كونيغسبرغ» الشهير.

  2. دائرة هاملتون (Hamiltonian Circuit): مسار مغلق يمرّ على كل رأس مرة واحدة بالضبط ويعود إلى البداية. تبدو شبيهة بدائرة أويلر، لكن التحقّق من وجودها مسألة صعبة حسابيًا (من فئة NP-Complete)، ولا توجد قاعدة بسيطة تحسمها كما في أويلر.

الفرق الجوهري: أويلر تهتمّ بـالحواف، وهاملتون تهتمّ بـالرؤوس.

المعنى الثاني: نموذج الدوائر المنطقية

في نظرية التعقيد الحسابي، تشير «الدائرة» إلى الدائرة المنطقية (Boolean Circuit): نموذج للحوسبة يُبنى من بوابات منطقية (AND و OR و NOT) مرتبطة ببعضها لحساب دالة على مدخلات ثنائية (0 و1). يُستخدم هذا النموذج في دراسة «تعقيد الدوائر» (Circuit Complexity) لقياس كم بوابة وكم عمقًا نحتاج لحلّ مسألة ما. هذا معنى نظري متقدّم، ويختلف تمامًا عن دائرة الرسم البياني، فانتبه إلى السياق الذي ترد فيه الكلمة.

خطأ شائع يجب تجنّبه

الالتباس الأكبر أن يظنّ الطالب أن «circuit» هنا تعني دائرة كهربائية بترانزستورات وأسلاك. هذا خطأ. في الخوارزميات وهياكل البيانات، المقصود مفهوم رياضي مجرّد (مسار مغلق أو نموذج بوابات منطقية)، لا علاقة له بعتاد الأجهزة. نصيحة عملية: عند مقابلة أي مسألة فيها «circuit»، اسأل نفسك أولًا: هل نتحدّث عن رسم بياني (رؤوس وحواف) أم عن نموذج حوسبة منطقي؟ تحديد السياق يوفّر عليك الكثير من الحيرة.

ولو أردت كشف وجود دورة داخل رسم بياني برمجيًا، فالطريقة الأشيع هي البحث بالعمق (DFS) مع تتبّع الرؤوس التي جرى زيارتها؛ إن عدت إلى رأس ما زال «قيد المعالجة» فأنت أمام دورة.

الأسئلة الشائعة

هل الدائرة (circuit) والدورة (cycle) شيء واحد؟ ليس تمامًا. الدائرة مسار مغلق لا يكرّر الحواف لكنه قد يكرّر الرؤوس، بينما الدورة لا تكرّر الرؤوس إطلاقًا عدا نقطة البداية. كل دورة دائرة، والعكس غير صحيح، مع تنبيه أن بعض المراجع تخلط بين المصطلحين.

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

هل مفهوم circuit له علاقة بالدوائر الكهربائية؟ لا في هذا السياق. المصطلح رياضي بحت في نظرية الرسوم البيانية، أو نموذج بوابات منطقية في نظرية التعقيد. تشابه الاسم فقط.

أين أحتاج فهم الدوائر عمليًا؟ في تخطيط الطرق والتوصيل، وجدولة المهام وكشف التبعيّات الدائرية، وتحليل الشبكات، وأي مسألة تتطلّب معرفة هل يمكن العودة إلى نقطة البداية عبر مسار معيّن.