A Non-CDCL SAT Solver with Early Conflict Detection: The Watched-Literal-Based CSFLOC Solver
تقدم هذه الورقة CSFLOC-WL، وهو برنامج حل مشكلات التناقض المنطقي (SAT solver) غير قائم على خوارزمية CDCL، يعمل على تسريع نهج عدّ البنود كامل الطول الموجه بالعداد الأصلي من خلال دمج انتشار البادئة للرموز المراقبة والكشف المبكر عن التعارض لتحديد قفزات العداد بكفاءة، مما يظهر أداءً تنافسيًا على نماذج 3-SAT العشوائية رغم افتقاره إلى آليات التخزين المؤقت الناضجة التي تميز سلفه.
المؤلفون الأصليون:Gábor Kusper (Eszterházy Károly Catholic University)
في المشهد الواسع لعلوم الحاسوب، توجد أحجية أساسية تُعرف باسم مشكلة القابلية للإرضاء (satisfiability problem). تخيل قفلاً معقداً يحتوي على آلاف من التروس، يمثل كل منها متغيراً يمكن ضبطه على إحدى حالتين. الهدف هو العثين على تركيبة واحدة من الإعدادات تفتح القفل، بما يحقق قائمة طويلة من القواعد التي تملي كيفية محاذاة هذه التروس. وإذا لم توجد مثل هذه التركيبة، يظل القفل عالقاً بشكل دائم. هذه المشكلة مركزية في كل شيء، بدءاً من التحقق من سلامة الرقائق الدقيقة وصولاً إلى تخطيط الخدمات اللوجستية للشحن العالمي. لعقود من الزمن، اعتمدت أقوى الأدوات لحل هذه الأحجية على استراتيجية تعتمد على التخمين، واتباع النتائج المنطقية لذلك التخمين، وعندما يتم العثور على تناقض، يتم التعلم من الخطأ لتجنبه في المستقبل. هذا النهج، المعروف باسم "التعلم المدفوع بالصراع" (conflict-driven learning)، أصبح المحرك المعياري والمصقول للغاية وراء برمجيات حل المشكلات الحديثة.
ومع ذلك، لا تتطلب كل المسارات عبر غابة الاحتمالات الخريطة نفسها. فقد كان أحد الباحثين يستكشف مساراً مختلفاً تماماً؛ فبدلاً من التخمين والتعلم من الأخطاء، يعامل منهجه المشكلة كعملية عدٍّ منهجي. إنه يتخيل كل إعداد ممكن لتروس القفل كسلسلة طويلة من الأرقام الثنائية، حيث يعد من الصفر حتى الحد الأقصى. والهدف هو إثبات أن كل رقم في تلك السلسلة محظور بواسطة قاعدة واحدة على الأقل، مما يعني عدم وجود حل. كان التحدي دائماً هو أن فحص كل رقم واحداً تلو الآخر هو أمر بطيء للغاية بشكل مستحيل. كان على الباحث إيجاد طريقة لتخطي أجزاء ضخمة من السلسلة دفعة واحدة، والقفز فوق ملايين التوليفات المستحيلة في خطوة واحدة.
في عمله الأخير، قدم الباحث نسخة جديدة من برنامج الحل الخاص به، تسمى CSFLOC-WL3، والتي تغير كيفية عثوره على هذه القفزات الهائلة. الفكرة الجوهرية هي النظر إلى القواعد ليس كحواجز ثابتة، بل كمرشدات نشطة. فبينما يقوم برنامج الحل بالعد عبر الاحتمالات، فإنه يخصص قيماً للمتغيرات بترتيب ثابت، تماماً مثل ملء استمارة من الأعلى إلى الأسفل. وفي كل خطوة، يتحقق مما إذا كان التخصيص الجزئي الحالي يجبر أي قاعدة على أن تصبح مطلباً حتمياً لا مفر منه. إذا فُرض أن تكون القاعدة صحيحة أو خاطئة بسبب الاختيارات المتخذة حتى الآن، يمكن لبرنامج الحل أن يدرك فوراً أن المسار الحالي محظور. ويكمن الابتكار في كيفية تتبع هذه القواعد؛ حيث يستخدم تقنية تسمى "الحروف المراقبة" (watched literals)، وهي تشبه امتلاك مراقب مخصص لأكثر الأجزاء حرجاً في كل قاعدة. هذه المراقبات لا تنبه برنامج الحل إلا عندما تصبح القاعدة حرجة، مما يسمح للنظام بتجاهل آلاف الفحوصات غير ذات الصلة والتركيز فقط على اللحظات التي يكون فيها القرار حاسماً.
الاكتشاف الأكثر أهمية في هذا النهج الجديد هو آلية رصد الصراعات مبكراً. في الطريقة القديمة، قد يسير برنامج الحل طوال الطريق إلى نهاية سلسلة طويلة من المنطق قبل أن يدرك أنه اصطدم بتناقض. أما مع النظام الجديد، فإذا وجد برنامج الحل أن نفس المتغير يُجبر على أن يكون صحيحاً وخاطئاً في آن واحد بواسطة قاعدتين مختلفتين تحت نفس الظروف الأولية، فإنه يتوقف فوراً. ثم يقوم بدمج أسباب هذين القوتين المتعارضتين في قاعدة جديدة واحدة. تعمل هذه القاعدة الجديدة كعلامة إرشادية قوية، تخبر البرنامج أنه لا يمكنه تخطي الرقم الحالي فحسب، بل يمكنه تخطي كتلة ضخمة من الأرقام التي تشترك في نفس النمط الأولي. وهذا يسمح لبرنامج الحل بالقفز فوق مساحات شاسعة من فضاء البحث التي كانت ستستغرق وقتاً طويلاً للتنقل عبرها واحداً تلو الآخر.
اختبر الباحث برنامج الحل الجديد هذا مقابل المنافسين الراسخين في مجموعة متنوعة من المشكلات الصعبة وغير القابلة للحل. كانت النتائج كاشفة؛ ففي مجموعة من المشكلات العشوائية غير المهيكلة، كان برنامج الحل الجديد أسرع بشكل دراماتيكي، حيث حل حالات في ثوانٍ بينما استغرقت النسخة الأقدم دقائق أو حتى توقفت عن العمل تماماً. في هذه الحالات، أثبتت القدرة على اكتشاف الصراعات مبكراً والقيام بقفزات كبيرة أنها كانت نقطة تحول جذري. ومع ذلك، في المشكلات الأكثر هيكلية وتعقيداً، كان برنامج الحل الجديد أبطأ من سلفه. والسبب لم يكن خللاً في المنطق، بل كان نقصاً في الهندسة؛ فقد كان لدى البرنامج القديم نظام ذاكرة متطور يتذكر الاكتشافات الماضية ويعيد استخدامها، وهي ميزة لم تكن النسخة الجديدة قد دمجتها بالكامل بعد. كان برنامج الحل الجديد ممتازاً في إيجاد مسارات جديدة، لكنه افتقر إلى مكتبة الاختصارات الماضية التي كان يمتلكها الإصدار الأقدم.
لا يدعي هذا العمل استبدال الطرق القياسية المستخدمة في معظم أجهزة الكمبيوتر اليوم. بدلاً من ذلك، فإنه يوضح أن طريقة تفكير مختلفة في المشكلة - القائمة على العد المنهجي بدلاً من التخمين والتراجع - يمكن أن تكون فعالة للغاية عندما يتم تجهيزها بالأدوات المناسبة. وتظهر الدراسة أنه من خلال استعارة تقنية تتبع محددة من النهج المهيمن وتطبيقها على طريقة العد هذه، فمن الممكن حل أنواع معينة من المشكلات بسرعة مذهلة. إن المسار نحو المستقبل واضح: من خلال الجمع بين سرعة الكشف المبكر الجديدة وأنظمة الذاكرة الناضجة للجيل الأقدم، يعتقد الباحث أنه يمكن بناء برنامج حل قوي عبر مجموعة أوسع من التحديات. يقف هذا العمل كدليل على أنه لا تزال هناك مناطق غير مستكشفة في منطق الحوسبة، وأنه في بعض الأحيان، تكون أفضل طريقة للمضي قدماً هي تغيير اتجاه البحث بالكامل.
ملخص تقني: محلل SAT غير قائم على CDCL مع الكشف المبكر عن التعارض
بيان المشكلة تعد مسألة القابلية للإرضاء الاقتراحية (Propositional Satisfiability - SAT) مسألة قرار مركزية في علوم الحاسوب. وبينما تتبع معظم المحللات عالية الأداء نموذج "التعلم القائم على التعارض المدفوع بالنزاع" (CDCL)، يبحث هذا البحث في نهج بديل: محلل CSFLOC. إن CSFLOC هو إجراء قرار غير قائم على CDCL يعتمد على عدّ البنود كاملة الطول المبتلعة (subsumed full-length ordered clauses). وتتمثل الآلية الجوهرية في عبور الفضاء المرتب لـ 2n من البنود كاملة الطول (البنود التي تحتوي على حرف واحد لكل متغير) باستخدام عداد أحادي الاتجاه (monotone counter). إذا لم يكن البند الحالي كامل الطول مبتلعاً من قبل الصيغة المدخلة، فإن نفي هذا البند يشكل تعييناً مرضياً (satisfying assignment). وإذا كانت جميع البنود الـ 2n مبتلعة، فإن الصيغة تكون غير قابلة للإرضاء (unsatisfiable).
تتمثل العقبة الرئيسية في النسخة الأصلية من CSFLOC في البحث المتكرر عن بند مبتلع للبند الحالي كامل الطول. يتطلب هذا البحث التحقق مما إذا كان أي بند في الصيغة المدخلة هو مجموعة جزئية من البند المرشح الحالي. وبينما أدت التحسينات الهندسية السابقة (مثل ملاحظات آخر بت موجب وذاكرة التخزين المؤقت للأسباب المتعلمة) إلى تقليل عمليات المسح، إلا أن العملية الأساسية ظلت اختبار ابتلاع مباشر.
المنهجية: CSFLOC-WL والكشف المبكر عن التعارض يقدم البحث CSFLOC-WL، وهو متغير يستبدل البحث الصريح عن الابتلاع بـ انتشار بادئة الحروف المراقبة (watched-literal prefix propagation). يحافظ المحلل على حلقة عداد CSFLOC العالمية ولكنه يغير كيفية اكتشاف الزيادة التالية في العداد (القفزة).
انتشار بادئة الحروف المراقبة: بدلاً من البحث عن بند D⊆C (حيث C هو البند الحالي كامل الطول)، يقوم المحلل بتعيين المتغيرات وفقاً لنفي C (المشار إليه بـ α) بترتيب ثابت. ويستخدم هيكل بيانات الحرفين المراقَبين القياسي لنشر النتائج المترتبة على التعيين البادئي.
يصبح البند D وحيداً (unit) عندما يصل الانتشار إلى مؤشر آخر متغير فيه ($last(D)$).
إذا استنتج الانتشار حرفاً وحيداً u ينتمي إلى البند الحالي C كامل الطول، فإن بند السبب لـ u يعمل كسبب للقفزة في العداد.
الكشف المبكر عن التعارض (ECD): الابتكار المركزي هو اكتشاف التعارضات قبل أن يصل الانتشار إلى مستوى آخر متغير. إذا استنتج الانتشار، تحت بادئة مشتركة، نتائج وحيدة متضاربة (xi و xˉi) لنفس المتغير xi مع بنود سبب P و N، يقوم المحلل فوراً بحل (resolve) P و N على xi.
النظرية 1 (الكشف المبكر عن التعارض): الناتج عن الحل D=Resi(N,P) هو مستنتج من الصيغة وهو مجموعة جزئية من البند الحالي كامل الطول. والأهم من ذلك، إذا كان D غير فارغ وغير تافه (non-tautological)، فإن مؤشر آخر متغير فيه أقل تماماً من i.
يسمح هذا للعداد بالقفز إلى حدود يتم تحديدها بواسطة $last(D)،مماقديتخطىكتلةأكبرمنفضاءالبحثممالوانتظرحتىيصلالانتشارإلىالمستوىi$.
بنية غير قائمة على CDCL: يؤكد البحث أن CSFLOC-WL ليس محلل CDCL. فهو لا يحافظ على شجرة قرار، ولا يقوم بعمليات القفز للخلف (backjumping) بمعناها في CDCL، وليس لديه سياسة إعادة تشغيل (restart policy). تظل السيطرة العالمية عبارة عن عبور أحادي لـ فضاء البنود كاملة الطول. تُستخدم بنية الحروف المراقبة والحل (resolution) حصرياً كأدوات هندسية لاكتشاف "أسباب القفز" (البنود التي تبرر تخطي فترات من العداد).
المساهمات الرئيسية يقدم البحث ثلاث مساهمات محددة:
الصياغة: إعادة صياغة بحث الابتلاع في CSFLOC كانتشار بادئة الحروف المراقبة فوق نفي البند الحالي كامل الطول.
الإثبات النظري: ذكر وإثبات نظرية الكشف المبكر عن التعارض، موضحاً أن حل النتائج الوحيدة المتضاربة تحت بادئة مشتركة ينتج سبباً للقفز في العداد يكون صحيحاً وقد يسمح بقفزات أبكر من بحث آخر بت موجب.
التنفيذ والتقييم: تقديم النموذج الأولي بلغة جافا CSFLOC-WL3، ومقارنته بـ:
CSFLOC21TU: وهو تنفيذ ناضج لـ CSFLOC يعتمد على ذاكرة التخزين المؤقت (بدون الحروف المراقبة).
CaDiCaL 3.0.0: وهو محلل CDCL متطور. يتضمن التقييم حالات مختارة غير قابلة للإرضاء (UNSAT) من SATLIB (3-SAT عشوائي، pigeonhole، Dubois، ssa، إلخ).
النتائج التجريبية أسفرت التجارب على حالات SATLIB المختارة غير القابلة للإرضاء عن نتائج متباينة، مما يسلط الضال على الإمكانات والقيود الحالية لهذا النهج:
3-SAT العشوائي (عائلة uuf): أظهر CSFLOC-WL3 قوة كبيرة في الحالات العشوائية القريبة من عتبة القابلية للإرضاء. في حالات مثل uuf150-01 و uuf175-01 و uuf200-01 ، كان CSFLOC-WL3 أسرع بكثير من CSFLOC21TU (الذي توقف بسبب انتهاء الوقت في الحالات الأكبر) وكان منافساً أو أسرع من CaDiCaL. تظهر الإحصائيات الداخلية أن CSCLOC-WL3 قلل عدد دورات الحلقة الرئيسية بعدة مراتب (على سبيل المثال، من حوالي 164,000 إلى حوالي 1,200 في uuf100-01) بسبب القفزات الكبيرة الناتجة عن الكشف المبكر عن التعارض.
الحالات المهيكلة: في الاختبارات المهيكلة (pigeonhole, Dubois, ssa, bf)، تفوق CSCLOC21TU عموماً على CSFLOC-WL3. ويعزو البحث ذلك إلى ذاكرة التخزين المؤقت الناضجة للأسباب المتعلمة في CSCLOC21TU، والتي تعيد استخدام الأسباب المستنتجة بفعالية. يفتقر CSCLOC-WL3 حالياً إلى آلية تخزين مؤقت مماثلة؛ حيث إن اعتماده على الأسباب النشطة وتكاليف الانتشار يجعله أبطأ عندما لا ينتج انتشار البادئة قفزات كافية الحجم.
المقارنة مع CaDiCaL: لا يزال CaDiCaL أسرع في معظم الحالات المهيكلة. لا يُقدم CSCLOC-WL3 كبديل عام لمحلات CDCL، بل كعائلة بديلة قابلة للتطبيق تنافس جيداً في حالات معينة من 3-SAT العشوائي.
الأهمية والادعاءات يدعي البحث بتواضع أن CSCLOC-WL3 هو خطوة في تطوير عائلة محللات بديلة، وليس بديلاً لـ CDCL. وتكمن أهميته في:
إثبات أن انتشار الحروف المراقبة والكشف المبكر عن التعارض يمكن تكييفهما بفعالية مع إطار عمل العد القائم على العداد للبنود كاملة الطول.
إظهار أن هذا النهج يمكن أن يتفوق على طرق CSFLOC السابقة (CSFLOC21TU) وحتى على محلات CDCL في حالات معينة من 3-SAT العشوائي.
تحديد مسار هندسي واضح للمضي قدماً: دمج ذاكرة التخزين المؤقت للأسباب المتعلمة بأسلوب CSFLOC21TU في تنفيذ الحروف المراقبة. ويخلص المؤلف إلى أن الجمع بين قدرة توليد القفزات لـ ECD وكفاءة إعادة الاستخدام لذاكرة التخزين المؤقت الناضجة هو الخطوة التالية الضرورية لجعل المحلل منافساً عبر مجموعة أوسع من الاختبارات.
يوثق البحث أيضاً استراتيجيتين جديدتين لإعادة تسمية المتغيرات، T (الموجهة لسابقة two-SAT) و U (الموجهة للوحدات/unit-oriented)، وهما جزء من الصورة الهندسية الحالية ولكن ليس التركيز الأساسي للمساهمة النظرية.