القفز للخلف

في برمجة القيود وحل مسائل SAT ، يُعدّ التراجع اللاحق (المعروف أيضًا بالتراجع غير الزمني [ 1 ] أو التراجع الذكي [ 2 ] ) تحسينًا لخوارزميات التراجع، حيث يُقلّل من مساحة البحث . بينما ينتقل التراجع دائمًا إلى مستوى أعلى في شجرة البحث عند اختبار جميع قيم المتغير، قد ينتقل التراجع اللاحق إلى مستويات أعلى. في هذه المقالة، سنعتمد ترتيبًا ثابتًا لتقييم المتغيرات.x1،...،xن{\displaystyle x_{1},\ldots ,x_{n}}يتم استخدامها، ولكن تنطبق نفس الاعتبارات على الترتيب الديناميكي للتقييم.

تعريف

عندما تختبر عملية التراجع جميع قيم متغير ما دون إيجاد حل، فإنها تعيد النظر في آخر المتغيرات التي تم تعيينها مسبقًا، فتغير قيمته أو تتراجع أكثر إذا لم تكن هناك قيم أخرى يجب تجربتها.x1=أ1،...،xك=أك{\displaystyle x_{1}=a_{1},\ldots ,x_{k}=a_{k}}يمثل هذا التخصيص الجزئي الحالي وجميع القيم لـxك+1{\displaystyle x_{k+1}}بعد تجربة عدة حلول دون التوصل إلى حل، خلصت عملية التراجع إلى أنه لا يوجد حل موسع. x1=أ1،...،xك=أك{\displaystyle x_{1}=a_{1},\ldots ,x_{k}=a_{k}}موجود. ثم "تصعد" الخوارزمية إلىxك{\displaystyle x_{k}}، التغييرxك{\displaystyle x_{k}}قيمة 's إن أمكن، وإلا فارجع إلى الوراء.

لا يكون التخصيص الجزئي ضروريًا دائمًا لإثبات عدم وجود قيمة لـxك+1{\displaystyle x_{k+1}}يؤدي ذلك إلى حل. على وجه الخصوص، قد يكون لبادئة التخصيص الجزئي نفس الخاصية، أي أنه يوجد فهرسج<ك{\displaystyle j<k}بحيثx1،...،xج=أ1،...،أج{\displaystyle x_{1},\ldots ,x_{j}=a_{1},\ldots ,a_{j}}لا يمكن توسيعها لتشكيل حل مهما كانت قيمة لـxك+1{\displaystyle x_{k+1}}إذا استطاعت الخوارزمية إثبات هذه الحقيقة، فيمكنها مباشرةً النظر في قيمة مختلفة لـxج{\displaystyle x_{j}}بدلاً من إعادة النظرxك{\displaystyle x_{k}}كما هو معتاد.

تعتمد كفاءة خوارزمية القفز العكسي على مدى ارتفاع القفزة العكسية التي يمكنها القيام بها. من الناحية المثالية، يمكن للخوارزمية أن تقفز منxك+1{\displaystyle x_{k+1}}إلى أي متغيرxج{\displaystyle x_{j}}إن المهمة الحالية لـx1،...،xج{\displaystyle x_{1},\ldots ,x_{j}}لا يمكن تمديدها لتشكيل حل بأي قيمة منxك+1{\displaystyle x_{k+1}}إذا كان هذا هو الحال،ج{\displaystyle j}يُطلق عليه اسم القفزة الآمنة .

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

القفز للخلف عند العقد الطرفية

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

الحالة التي تكون فيها جميع قيم متغير معينxك+1{\displaystyle x_{k+1}}وهي لا تتفق مع الحل الجزئي الحاليx1،...،xك=أ1،...،أك{\displaystyle x_{1},\ldots ,x_{k}=a_{1},\ldots ,a_{k}}يُطلق عليه اسم طريق مسدود . يحدث هذا بالضبط عندما يكون المتغيرxك+1{\displaystyle x_{k+1}}هي ورقة من شجرة البحث (والتي تتوافق مع العقد التي تحتوي على أوراق فقط كأبناء في أشكال هذه المقالة).

لا تقوم خوارزمية التراجع التي وضعها جون غاشنيغ بالتراجع إلا في النهايات المسدودة للأوراق. [ 3 ] بعبارة أخرى، فهي تعمل بشكل مختلف عن التراجع فقط عندما تكون كل قيمة ممكنة لـxك+1{\displaystyle x_{k+1}}تم اختبارها وأظهرت نتائج غير متسقة دون الحاجة إلى التفرع على متغير آخر.

يمكن إيجاد قفزة آمنة ببساطة عن طريق التقييم، لكل قيمةأك+1{\displaystyle a_{k+1}}، أقصر بادئة لـx1،...،xك=أ1،...،أك{\displaystyle x_{1},\ldots ,x_{k}=a_{1},\ldots ,a_{k}}غير متسق معxك+1=أك+1{\displaystyle x_{k+1}=a_{k+1}}بمعنى آخر، إذاأك+1{\displaystyle a_{k+1}}قيمة محتملة لـxك+1{\displaystyle x_{k+1}}، تتحقق الخوارزمية من اتساق التقييمات التالية:

x1=أ1{\displaystyle x_{1}=a_{1}}...xك-1=أك-1{\displaystyle x_{k-1}=a_{k-1}}xك=أك{\displaystyle x_{k}=a_{k}}xك+1=أك+1{\displaystyle x_{k+1}=a_{k+1}}
x1=أ1{\displaystyle x_{1}=a_{1}}...xك-1=أك-1{\displaystyle x_{k-1}=a_{k-1}}xك+1=أك+1{\displaystyle x_{k+1}=a_{k+1}}
...
x1=أ1{\displaystyle x_{1}=a_{1}}xك+1=أك+1{\displaystyle x_{k+1}=a_{k+1}}

أصغر مؤشر (أدنى مستوى في القائمة) الذي تكون فيه التقييمات غير متسقة سيكون قفزة آمنة إذاxك+1=أك+1{\displaystyle x_{k+1}=a_{k+1}}كانت القيمة الوحيدة الممكنة لـxك+1{\displaystyle x_{k+1}}بما أن كل متغير يمكن أن يأخذ عادةً أكثر من قيمة واحدة، فإن الفهرس الأقصى الذي ينتج عن فحص كل قيمة هو قفزة آمنة، وهي النقطة التي تقفز عندها خوارزمية جون غاشنيغ.

عمليًا، يمكن للخوارزمية التحقق من التقييمات المذكورة أعلاه في نفس الوقت الذي تتحقق فيه من اتساقxك+1=أك+1{\displaystyle x_{k+1}=a_{k+1}}.

القفز للخلف عند العقد الداخلية

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

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

لا يمكن إجراء القفز العكسي عند العقد الداخلية كما هو الحال بالنسبة للعقد الطرفية. في الواقع، إذا كانت بعض تقييماتxك+1{\displaystyle x_{k+1}}يتطلب الأمر تفرعًا، وذلك لأنها تتوافق مع التعيين الحالي. ونتيجة لذلك، فإن البحث عن بادئة لا تتوافق مع هذه القيم للمتغير الأخير لن ينجح.

في مثل هذه الحالات، ما الذي أثبت التقييم؟xك+1=أك+1{\displaystyle x_{k+1}=a_{k+1}}عدم المشاركة في حل من خلال التقييم الجزئي الحاليx1،...،xك{\displaystyle x_{1},\ldots ,x_{k}}هو البحث التكراري . على وجه الخصوص، "تعرف" الخوارزمية أنه لا يوجد حل من هذه النقطة فصاعدًا لأنها تعود إلى هذه العقدة بدلاً من التوقف بعد العثور على حل.

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

بمعنى آخر، عندما تكون جميع قيمxك+1{\displaystyle x_{k+1}}بعد تجربة ذلك، يمكن للخوارزمية الرجوع إلى متغير سابقxأنا{\displaystyle x_{i}}شريطة أن يكون التقييم الحالي للحقيقةx1،...،xأنا{\displaystyle x_{1},\ldots ,x_{i}}يتعارض مع جميع تقييمات الصدق لـxك+1،xك+2،...{\displaystyle x_{k+1},x_{k+2},...}في العقد الورقية التي تنحدر من العقدةxك+1{\displaystyle x_{k+1}}.

التبسيطات

أثناء البحث عن قفزة خلفية محتملة لـxك+1{\displaystyle x_{k+1}}أو أحد أسلافها، يمكن تجاهل جميع العقد الموجودة في المنطقة المظللة.

بسبب العدد الكبير المحتمل للعقد الموجودة في الشجرة الفرعية لـxك+1{\displaystyle x_{k+1}}المعلومات اللازمة للقفز للخلف بأمان منxك+1{\displaystyle x_{k+1}}يتم جمع البيانات أثناء زيارة الشجرة الفرعية. يمكن تبسيط إيجاد قفزة آمنة من خلال اعتبارين. أولهما أن الخوارزمية تحتاج إلى قفزة آمنة، ولكنها تعمل مع قفزة ليست أعلى قفزة آمنة ممكنة.

التبسيط الثاني هو أن العقد في الشجرة الفرعية لـxل{\displaystyle x_{l}}يمكن تجاهل الخطوات التي تم تخطيها بالقفزة الخلفية أثناء البحث عن قفزة خلفية لـxل{\displaystyle x_{l}}وبشكل أدق، جميع العقد التي تم تخطيها بالقفز للخلف من العقدةxم{\displaystyle x_{m}}حتى العقدةxل{\displaystyle x_{l}}لا علاقة لها بالشجرة الفرعية التي جذرها فيxم{\displaystyle x_{m}}وكذلك فروعها الفرعية الأخرى غير ذات صلة.

في الواقع، إذا تعطلت خوارزمية من العقدةxل{\displaystyle x_{l}}لxم{\displaystyle x_{m}}عبر مسار، لكنه يتراجع في طريق عودته، ثم كان بإمكانه الذهاب مباشرة منxل{\displaystyle x_{l}}لxم{\displaystyle x_{m}}بدلاً من ذلك. في الواقع، تشير القفزة الخلفية إلى أن العقد بينxل{\displaystyle x_{l}}وxم{\displaystyle x_{m}}لا علاقة لها بالشجرة الفرعية التي جذرها فيxم{\displaystyle x_{m}}بمعنى آخر، يشير التراجع إلى أن زيارة منطقة معينة من شجرة البحث كانت خطأً. لذا، يمكن تجاهل هذا الجزء من شجرة البحث عند النظر في احتمال حدوث تراجع منxل{\displaystyle x_{l}}أو من أحد أسلافها.

يتم تجميع المتغيرات التي تكون قيمها كافية لإثبات عدم الرضا في الشجرة الفرعية المتجذرة في عقدة ما في العقدة وإرسالها (بعد إزالة متغير العقدة) إلى العقدة أعلاه عند التراجع.

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

القفز للخلف باستخدام الرسوم البيانية

يكمن الأساس المنطقي للقفز العكسي القائم على الرسم البياني في إمكانية إيجاد قفزة آمنة عن طريق التحقق من أي من المتغيراتx1،...،xك{\displaystyle x_{1},\ldots ,x_{k}}تخضع لقيد مع المتغيراتxك+1،xك+2،...{\displaystyle x_{k+1},x_{k+2},...}التي يتم إنشاؤها في العقد الطرفية. لكل عقدة طرفية ولكل متغيرxأنا{\displaystyle x_{i}}فهرسأنا>ك{\displaystyle i>k}التي يتم إنشاؤها هناك، تكون الفهارس أقل من أو تساويك{\displaystyle k}المتغير الذي يقع في قيد معxأنا{\displaystyle x_{i}}يمكن استخدامها لإيجاد قفزات آمنة. على وجه الخصوص، عندما تكون جميع قيم لـxك+1{\displaystyle x_{k+1}}بعد تجربة هذه الحلول، تحتوي هذه المجموعة على مؤشرات المتغيرات التي تسمح تقييماتها بإثبات أنه لا يمكن إيجاد حل من خلال زيارة الشجرة الفرعية التي جذرها عندxك+1{\displaystyle x_{k+1}}ونتيجة لذلك، يمكن للخوارزمية أن تعود إلى أعلى فهرس في هذه المجموعة.

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

القفز للخلف بناءً على الصراع

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

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

بشكل رسمي، قيدج{\displaystyle C}يُفضّل على غيرهد{\displaystyle D}إذا كان أعلى مؤشر لمتغير ما فيج{\displaystyle C}لكن ليس فيد{\displaystyle D}أقل من أعلى مؤشر لمتغير فيد{\displaystyle D}لكن ليس فيج{\displaystyle C}بمعنى آخر، باستثناء المتغيرات المشتركة، يُفضل القيد الذي يحتوي على جميع المؤشرات المنخفضة.

في عقدة طرفية، تختار الخوارزمية أدنى فهرسأنا{\displaystyle i}بحيثx1،...،xأنا{\displaystyle x_{1},\ldots ,x_{i}}يتعارض هذا مع المتغير الأخير الذي تم تقييمه في الورقة. من بين القيود التي تم انتهاكها في هذا التقييم، يختار القيد الأكثر تفضيلاً، ويجمع جميع مؤشراته الأقل منك+1{\displaystyle k+1}وبهذه الطريقة، عندما تعود الخوارزمية إلى المتغيرxك+1{\displaystyle x_{k+1}}، يشير أدنى مؤشر تم جمعه إلى قفزة آمنة.

عمليًا، يتم تبسيط هذه الخوارزمية عن طريق تجميع جميع المؤشرات في مجموعة واحدة، بدلاً من إنشاء مجموعة لكل قيمة من قيمك{\displaystyle k}على وجه الخصوص، تجمع الخوارزمية في كل عقدة جميع المجموعات القادمة من فروعها التي لم يتم تخطيها بالقفز العكسي. عند التراجع من هذه العقدة، تُزال هذه المجموعة من متغير العقدة وتُجمع في وجهة التراجع العكسي أو القفز العكسي.

اقترح باتريك بروسر في ورقته البحثية الرائدة عام 1993 أسلوب القفز العكسي الموجه نحو الصراع لحل مشاكل إرضاء القيود . [ 4 ]

انظر أيضاً

ملاحظات ومراجع

فهرس

  • غاشنيغ، جون (1977). "خوارزمية تراجع عامة تُزيل معظم الاختبارات الزائدة" (ملف PDF) . وقائع المؤتمر الدولي المشترك الخامس حول الذكاء الاصطناعي (IJCAI-77) . المجلد  1. كامبريدج، ماساتشوستس، الولايات المتحدة الأمريكية: المؤتمرات الدولية المشتركة حول الذكاء الاصطناعي. الصفحات 457-457 . 
  • موهل، س.؛ بير، أ. (2019). "التراجع الداعم". نظرية وتطبيقات اختبار الإرضاء - SAT 2019: المؤتمر الدولي الثاني والعشرون، SAT 2019، لشبونة، البرتغال، 9-12 يوليو 2019، وقائع المؤتمر . دار نشر سبرينغر الدولية. ص 250-266 .