القفز للخلف
في برمجة القيود وحل مسائل SAT ، يُعدّ التراجع اللاحق (المعروف أيضًا بالتراجع غير الزمني [ 1 ] أو التراجع الذكي [ 2 ] ) تحسينًا لخوارزميات التراجع، حيث يُقلّل من مساحة البحث . بينما ينتقل التراجع دائمًا إلى مستوى أعلى في شجرة البحث عند اختبار جميع قيم المتغير، قد ينتقل التراجع اللاحق إلى مستويات أعلى. في هذه المقالة، سنعتمد ترتيبًا ثابتًا لتقييم المتغيرات.يتم استخدامها، ولكن تنطبق نفس الاعتبارات على الترتيب الديناميكي للتقييم.
شجرة بحث تتم زيارتها من خلال التراجع المنتظم
قفزة للخلف: لم تتم زيارة العقدة الرمادية
تعريف
عندما تختبر عملية التراجع جميع قيم متغير ما دون إيجاد حل، فإنها تعيد النظر في آخر المتغيرات التي تم تعيينها مسبقًا، فتغير قيمته أو تتراجع أكثر إذا لم تكن هناك قيم أخرى يجب تجربتها.يمثل هذا التخصيص الجزئي الحالي وجميع القيم لـبعد تجربة عدة حلول دون التوصل إلى حل، خلصت عملية التراجع إلى أنه لا يوجد حل موسع. موجود. ثم "تصعد" الخوارزمية إلى، التغييرقيمة 's إن أمكن، وإلا فارجع إلى الوراء.
لا يكون التخصيص الجزئي ضروريًا دائمًا لإثبات عدم وجود قيمة لـيؤدي ذلك إلى حل. على وجه الخصوص، قد يكون لبادئة التخصيص الجزئي نفس الخاصية، أي أنه يوجد فهرسبحيثلا يمكن توسيعها لتشكيل حل مهما كانت قيمة لـإذا استطاعت الخوارزمية إثبات هذه الحقيقة، فيمكنها مباشرةً النظر في قيمة مختلفة لـبدلاً من إعادة النظركما هو معتاد.
مثال على المهمة الحالية لـتمت تجربتها دون جدوى مع كل قيمة ممكنة لـ. التراجع يعود إلى، محاولة تعيين قيمة جديدة لها.
بدلاً من التراجع، تُجري الخوارزمية بعض التوضيحات الإضافية، مما يثبت أن التقييمات،، وليست جزءًا من أي حل.
ونتيجة لذلك، فإن التقييم الحالي لـلا يُعد جزءًا من أي حل، ويمكن للخوارزمية أن تعود مباشرةً إلى، تجربة قيمة جديدة لها.
تعتمد كفاءة خوارزمية القفز العكسي على مدى ارتفاع القفزة العكسية التي يمكنها القيام بها. من الناحية المثالية، يمكن للخوارزمية أن تقفز منإلى أي متغيرإن المهمة الحالية لـلا يمكن تمديدها لتشكيل حل بأي قيمة منإذا كان هذا هو الحال،يُطلق عليه اسم القفزة الآمنة .
ليس من الممكن دائمًا تحديد ما إذا كانت القفزة آمنة، إذ تُعرَّف القفزات الآمنة بناءً على مجموعة الحلول، وهو ما تسعى الخوارزمية لإيجاده. عمليًا، تستخدم خوارزميات القفز العكسي أدنى فهرس يمكنها إثبات أنه قفزة آمنة بكفاءة. تستخدم الخوارزميات المختلفة طرقًا متباينة لتحديد أمان القفزة، وتختلف هذه الطرق في تكلفتها، ولكن قد يُعوَّض ارتفاع تكلفة إيجاد قفزة آمنة أعلى بتقليل حجم البحث نتيجةً لتجاوز أجزاء من شجرة البحث.
القفز للخلف عند العقد الطرفية
أبسط شرط يسمح بالتراجع هو عندما تثبت عدم اتساق جميع قيم المتغير دون الحاجة إلى مزيد من التفرع. في مسألة إرضاء القيود ، يكون التقييم الجزئي متسقًا إذا وفقط إذا حقق جميع القيود المتعلقة بالمتغيرات المُخصصة، وغير متسق فيما عدا ذلك. قد لا يُمكن توسيع حل جزئي متسق ليصبح حلاً كاملاً متسقًا، لأن بعض المتغيرات غير المُخصصة قد لا تُخصص دون انتهاك قيود أخرى.
الحالة التي تكون فيها جميع قيم متغير معينوهي لا تتفق مع الحل الجزئي الحالييُطلق عليه اسم طريق مسدود . يحدث هذا بالضبط عندما يكون المتغيرهي ورقة من شجرة البحث (والتي تتوافق مع العقد التي تحتوي على أوراق فقط كأبناء في أشكال هذه المقالة).
لا تقوم خوارزمية التراجع التي وضعها جون غاشنيغ بالتراجع إلا في النهايات المسدودة للأوراق. [ 3 ] بعبارة أخرى، فهي تعمل بشكل مختلف عن التراجع فقط عندما تكون كل قيمة ممكنة لـتم اختبارها وأظهرت نتائج غير متسقة دون الحاجة إلى التفرع على متغير آخر.
يمكن إيجاد قفزة آمنة ببساطة عن طريق التقييم، لكل قيمة، أقصر بادئة لـغير متسق معبمعنى آخر، إذاقيمة محتملة لـ، تتحقق الخوارزمية من اتساق التقييمات التالية:
| ... | ||||
| ... | ||||
| ... | ||||
أصغر مؤشر (أدنى مستوى في القائمة) الذي تكون فيه التقييمات غير متسقة سيكون قفزة آمنة إذاكانت القيمة الوحيدة الممكنة لـبما أن كل متغير يمكن أن يأخذ عادةً أكثر من قيمة واحدة، فإن الفهرس الأقصى الذي ينتج عن فحص كل قيمة هو قفزة آمنة، وهي النقطة التي تقفز عندها خوارزمية جون غاشنيغ.
عمليًا، يمكن للخوارزمية التحقق من التقييمات المذكورة أعلاه في نفس الوقت الذي تتحقق فيه من اتساق.
القفز للخلف عند العقد الداخلية
تعتمد الخوارزمية السابقة على التراجع فقط عندما يمكن إثبات عدم توافق قيم المتغير مع الحل الجزئي الحالي دون الحاجة إلى مزيد من التفرع. بعبارة أخرى، تسمح بالتراجع فقط عند العقد الطرفية في شجرة البحث.
تمثل العقدة الداخلية في شجرة البحث تعيينًا لمتغير يتوافق مع التعيينات السابقة. إذا لم يُوسّع أي حل هذا التعيين، فإن الخوارزمية السابقة تتراجع دائمًا: لا يتم إجراء أي قفزة للخلف في هذه الحالة.
لا يمكن إجراء القفز العكسي عند العقد الداخلية كما هو الحال بالنسبة للعقد الطرفية. في الواقع، إذا كانت بعض تقييماتيتطلب الأمر تفرعًا، وذلك لأنها تتوافق مع التعيين الحالي. ونتيجة لذلك، فإن البحث عن بادئة لا تتوافق مع هذه القيم للمتغير الأخير لن ينجح.
في مثل هذه الحالات، ما الذي أثبت التقييم؟عدم المشاركة في حل من خلال التقييم الجزئي الحاليهو البحث التكراري . على وجه الخصوص، "تعرف" الخوارزمية أنه لا يوجد حل من هذه النقطة فصاعدًا لأنها تعود إلى هذه العقدة بدلاً من التوقف بعد العثور على حل.
يعود هذا التراجع إلى عدد من المآزق ، وهي نقاط أثبت فيها الخوارزمية عدم اتساق الحل الجزئي. وللاستمرار في التراجع، يجب على الخوارزمية أن تأخذ في الحسبان أن استحالة إيجاد حلول ناتجة عن هذه المآزق. وعلى وجه الخصوص، فإن القفزات الآمنة هي مؤشرات للبادئات التي تجعل هذه المآزق حلولًا جزئية غير متسقة.
في هذا المثال، تعود الخوارزمية إلى، بعد تجربة جميع قيمها الممكنة، بسبب نقاط التناقض الثلاث المتقاطعة.
تبقى النقطة الثانية غير متسقة حتى لو كانت قيمويتم استبعادها من تقييمها الجزئي (لاحظ أن قيم المتغير موجودة في عناصره الفرعية).
أما التقييمات الأخرى غير المتسقة فتبقى كذلك حتى بدون،، و- k-2 لأنها أصغر قيمة للمتغيرات التي تحافظ على جميع التناقضات. سيتم تجربة قيمة جديدة لـ xk-2." id="mwAYw">
يمكن للخوارزمية أن تعود إلى الوراءبما أن هذه هي أقل المتغيرات التي تحافظ على جميع التناقضات. قيمة جديدة لـسيتم المحاولة.
بمعنى آخر، عندما تكون جميع قيمبعد تجربة ذلك، يمكن للخوارزمية الرجوع إلى متغير سابقشريطة أن يكون التقييم الحالي للحقيقةيتعارض مع جميع تقييمات الصدق لـفي العقد الورقية التي تنحدر من العقدة.
التبسيطات

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

يمكن استغلال هذه الحقيقة بتجميع مجموعة من المتغيرات المُخصصة مسبقًا في كل عقدة، بحيث يكفي تقييم هذه المتغيرات لإثبات عدم وجود حل في الشجرة الفرعية التي جذرها تلك العقدة. تُبنى هذه المجموعة أثناء تنفيذ الخوارزمية. عند التراجع من عقدة ما، تُزال متغيرات تلك العقدة من هذه المجموعة وتُضاف إلى مجموعة وجهة التراجع أو القفز العكسي. وبما أن العقد التي يتم تخطيها في القفز العكسي لا يتم التراجع منها أبدًا، فإن مجموعاتها تُتجاهل تلقائيًا.
القفز للخلف باستخدام الرسوم البيانية
يكمن الأساس المنطقي للقفز العكسي القائم على الرسم البياني في إمكانية إيجاد قفزة آمنة عن طريق التحقق من أي من المتغيراتتخضع لقيد مع المتغيراتالتي يتم إنشاؤها في العقد الطرفية. لكل عقدة طرفية ولكل متغيرفهرسالتي يتم إنشاؤها هناك، تكون الفهارس أقل من أو تساويالمتغير الذي يقع في قيد معيمكن استخدامها لإيجاد قفزات آمنة. على وجه الخصوص، عندما تكون جميع قيم لـبعد تجربة هذه الحلول، تحتوي هذه المجموعة على مؤشرات المتغيرات التي تسمح تقييماتها بإثبات أنه لا يمكن إيجاد حل من خلال زيارة الشجرة الفرعية التي جذرها عندونتيجة لذلك، يمكن للخوارزمية أن تعود إلى أعلى فهرس في هذه المجموعة.
يمكن استغلال حقيقة إمكانية تجاهل العقد التي تم تخطيها بالقفز العكسي عند النظر في قفزة عكسية أخرى، وذلك باستخدام الخوارزمية التالية. عند التراجع من عقدة طرفية، يتم إنشاء مجموعة المتغيرات المرتبطة بها وإرسالها إلى عقدتها الأب، أو السلف في حالة القفز العكسي. يتم الاحتفاظ بمجموعة من المتغيرات في كل عقدة داخلية. في كل مرة يتم فيها استلام مجموعة من المتغيرات من أحد أبنائها أو أحفادها، تُضاف متغيراتها إلى المجموعة المحفوظة. عند التراجع أو القفز العكسي من العقدة، يتم إزالة متغيرات تلك العقدة من هذه المجموعة، وتُرسل المجموعة إلى العقدة التي تمثل وجهة التراجع أو القفز العكسي. تعمل هذه الخوارزمية لأن المجموعة المحفوظة في عقدة ما تجمع جميع المتغيرات ذات الصلة بإثبات عدم الرضا في الأوراق التي تنحدر من تلك العقدة. وبما أن مجموعات المتغيرات لا تُرسل إلا عند التراجع من العقد، يتم تجاهل المجموعات التي تم جمعها في العقد التي تم تخطيها بالقفز العكسي تلقائيًا.
القفز للخلف بناءً على الصراع
يُعدّ التراجع القائم على التعارض ( أو التراجع الموجّه بالتعارض) خوارزميةً أكثر دقةً، وقد تُتيح أحيانًا تحقيق تراجعات أكبر. تعتمد هذه الخوارزمية على التحقق ليس فقط من وجود متغيرين مشتركين في القيد نفسه، بل أيضًا من تحقّق ما إذا كان القيد قد تسبب في أي تناقض. على وجه الخصوص، تجمع هذه الخوارزمية أحد القيود المُنتهكة في كل عقدة طرفية. عند كل عقدة، يُمثّل أعلى فهرس لمتغير موجود في أحد القيود المُجمّعة في العقد الطرفية قفزةً آمنة.
على الرغم من أن القيد المخالف المُختار في كل ورقة لا يؤثر على سلامة القفزة الناتجة، إلا أن اختيار قيود ذات مؤشرات عالية ممكنة يزيد من ارتفاع القفزة. ولهذا السبب، يُرتب التراجع القائم على التعارض القيود بحيث تُفضل القيود المفروضة على المتغيرات ذات المؤشرات المنخفضة على القيود المفروضة على المتغيرات ذات المؤشرات العالية.
بشكل رسمي، قيديُفضّل على غيرهإذا كان أعلى مؤشر لمتغير ما فيلكن ليس فيأقل من أعلى مؤشر لمتغير فيلكن ليس فيبمعنى آخر، باستثناء المتغيرات المشتركة، يُفضل القيد الذي يحتوي على جميع المؤشرات المنخفضة.
في عقدة طرفية، تختار الخوارزمية أدنى فهرسبحيثيتعارض هذا مع المتغير الأخير الذي تم تقييمه في الورقة. من بين القيود التي تم انتهاكها في هذا التقييم، يختار القيد الأكثر تفضيلاً، ويجمع جميع مؤشراته الأقل منوبهذه الطريقة، عندما تعود الخوارزمية إلى المتغير، يشير أدنى مؤشر تم جمعه إلى قفزة آمنة.
عمليًا، يتم تبسيط هذه الخوارزمية عن طريق تجميع جميع المؤشرات في مجموعة واحدة، بدلاً من إنشاء مجموعة لكل قيمة من قيمعلى وجه الخصوص، تجمع الخوارزمية في كل عقدة جميع المجموعات القادمة من فروعها التي لم يتم تخطيها بالقفز العكسي. عند التراجع من هذه العقدة، تُزال هذه المجموعة من متغير العقدة وتُجمع في وجهة التراجع العكسي أو القفز العكسي.
اقترح باتريك بروسر في ورقته البحثية الرائدة عام 1993 أسلوب القفز العكسي الموجه نحو الصراع لحل مشاكل إرضاء القيود . [ 4 ]
انظر أيضاً
ملاحظات ومراجع
فهرس
- ديتشر، رينا (2003). معالجة القيود . دار مورغان كوفمان للنشر . رقم ISBN 1-55860-890-7.
- غاشنيغ، جون (1977). "خوارزمية تراجع عامة تُزيل معظم الاختبارات الزائدة" (ملف PDF) . وقائع المؤتمر الدولي المشترك الخامس حول الذكاء الاصطناعي (IJCAI-77) . المجلد 1. كامبريدج، ماساتشوستس، الولايات المتحدة الأمريكية: المؤتمرات الدولية المشتركة حول الذكاء الاصطناعي. الصفحات 457-457 .
- موهل، س.؛ بير، أ. (2019). "التراجع الداعم". نظرية وتطبيقات اختبار الإرضاء - SAT 2019: المؤتمر الدولي الثاني والعشرون، SAT 2019، لشبونة، البرتغال، 9-12 يوليو 2019، وقائع المؤتمر . دار نشر سبرينغر الدولية. ص 250-266 .
- بروسر، باتريك (1993). "الخوارزميات الهجينة لمسألة إرضاء القيود" (ملف PDF) . الذكاء الحسابي .
- البرمجة المقيدة
- خوارزميات البحث
