0Pricing
Competitive Programming Academy · درس

التقليم للنجاة من الحد الزمني

قطع الفروع التي لا يمكنها تحسين النتيجة

التقليم للنجاة من الحد الزمني درس مجاني في Competitive Programming Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Competitive Programming Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.

لماذا يهم التقليم

قد يستكشف التراجع الخام عددًا هائلًا من الفروع ويتجاوز الحد الزمني. ويقطع التقليم الفروع اليائسة مبكرًا للحفاظ على سرعة التنفيذ. ✂️

ما المقصود بالتقليم فعلًا

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

التقليم بناءً على إمكانية الحل

إذا كان الاختيار الجزئي الحالي يخالف قاعدةً ما، فعيدوا النتيجة فورًا. فهذا فحص الجدوى يمنعكم من البناء على حالة غير صحيحة.

if violates(cur):
    return

التقليم باستخدام الحد

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

طبّقوا التقليم في التعليمات البرمجية

يوقف الحد هنا الفرع عندما لا يستطيع حتى التقدير المتفائل التفوق على أفضل نتيجة حالية.

if cur_cost + best_possible <= best:
    return

رتّبوا الاختيارات بذكاء

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

انتشار القيود

بعد اختيار ما، قلّصوا الخيارات المتاحة للخطوات اللاحقة. وإزالة الخيارات المستحيلة مسبقًا هي انتشار القيود، وهي تقلّص الشجرة.

كسر التناظر

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

خزّنوا الحالات المتداخلة مؤقتًا

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

from functools import lru_cache
@lru_cache(maxsize=None)
def solve(state):
    ...

قلّموا مبكرًا لا متأخرًا

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

قدّروا قبل التنفيذ

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

تحقق سريع

ما الهدف من التقليم في التراجع؟

مراجعة: اقطعوا الفروع الميتة

تعلّمتم استخدام التقليم بفحوص الجدوى والحدود، والترتيب الذكي، وكسر التناظر، والتخزين المؤقت للنتائج لتجاوز الحد الزمني. 🎯

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

هل درس «التقليم للنجاة من الحد الزمني» مجاني؟

نعم — نص درس «التقليم للنجاة من الحد الزمني» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Competitive Programming Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.

ماذا ستتعلم في «التقليم للنجاة من الحد الزمني»؟

قطع الفروع التي لا يمكنها تحسين النتيجة تتمرن على Competitive Programming Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Competitive Programming Academy؟

لا تُشترط خبرة سابقة. Competitive Programming Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «التقليم للنجاة من الحد الزمني»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Competitive Programming Academy هذا؟

نعم. كل درس في Competitive Programming Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. التفكير递归يًا: الحالة الأساسية والاستدعاء递归ي
  2. توليد جميع المجموعات الجزئية
  3. التباديل وفكرة N-Queens
  4. التقليم للنجاة من الحد الزمني
← العودة إلى Competitive Programming Academy