← أحدث الأبحاث
🤖 AI

FLINGO -- Instilling ASP Expressiveness into Linear Integer Constraints

تقدم هذه الورقة FLINGO، وهي لغة وأداة تعزز برمجة مجموعات الإجابات المقيدة (CASP) من خلال دمج ميزات أساسية لبرمجة مجموعات الإجابات (ASP) — مثل القيم الافتراضية، والسمات غير المعرفة، والتعيينات غير الحتمية، والتجميعات — ضمن القيود الصحيحة الخطية، جنباً إلى جنب مع آلية ترجمة إلى أدوات حل CASP القياسية.

المؤلفون الأصليون: Jorge Fandinno, Pedro Cabalar, Philipp Wanko, Torsten Schaub

نُشر 2026-05-26
📖 5 دقيقة قراءة🧠 قراءة متعمّقة

المؤلفون الأصليون: Jorge Fandinno, Pedro Cabalar, Philipp Wanko, Torsten Schaub

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

تخيل أنك تحاول حل لغز معقد، مثل التخطيط لحفلة ضخمة أو تصميم دراجة مخصصة. لديك نوعان من المعلومات التي يتعين عليك الموازنة بينهما:

  1. حقائق "نعم/لا": "هل الحقيبة مشمولة؟" "هل تعريفة الصلب مفعلة؟" "هل الضيف قادم؟"
  2. حقائق "الأرقام": "كم سعر الحقيبة؟" "ما هو معدل الضريبة الدقيق؟" "كم عدد الضيوف؟"

لفترة طويلة، كانت البرامج الحاسوبية التي تحل هذه الألغاز (تسمى برمجة مجموعات الإجابة أو ASP) بارعة في جزء "نعم/لا"، لكنها كانت سيئة للغاية في جزء "الأرقام". كان عليها تخمين كل رقم محتمل (على سبيل المثال: "هل السعر هو 1؟ 2؟ 3؟ ... 1,000,000؟") قبل أن تتمكن من البدء في الحل. كان هذا يشبه محاولة العثور على إبرة في كومة قش عن طريق فحص كل قطعة قش واحدة تلو الأخرى — وهو أمر بطيء وغالبًا ما يكون مستحيلاً في المشكلات الكبيرة.

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

المشكلة: المحرك الرياضي الجامد

في الطريقة القديمة، إذا أردت أن تقول: "الضريبة الافتراضية هي 15%، إلا إذا كانت من الصلب، فحينها تكون 25%"، فإن المحرك الرياضي يصاب بالارتباك.

  • مشكلة "الافتراضي": في المنطق العادي، يمكنك أن تقول: "افترض أن الضريبة هي 15% ما لم نعلم خلاف ذلك". لكن المحرك الرياضي عادة ما يطالبك بإعطائه رقمًا محددًا فورًا. وإذا لم تفعل، فإنه يتعطل أو يرفض العمل.
  • مشكلة "غير المحدد": ماذا لو كنت لا تعرف الضريبة لسلعة معينة بعد؟ في المنطق العادي، يمكنك ببسا transition تركها فارغة وتقول: "سنعرف ذلك لاحقًا". أما المحرك الرياضي، فيكره الفراغات؛ فهو يجبرك على تخصيص رقم لكل شيء، حتى لو لم تكن لديك البيانات.
  • مشكلة "التجميع": إذا أردت حساب إجمالي الضريبة لـ 1,000 عنصر، يمكن للمنطق العادي جمعها بسهولة. ولكن بمجرد تسليم الأرقام إلى المحرك الرياضي، يصعب إخباره: "اجمع كل الضرائب، ولكن تجاهل تلك التي لم نحدد قيمتها بعد".

الحل: flingo

قدم مؤلفو هذه الورقة أداة جديدة تسمى flingo. فكر في flingo كـ مترجم عالمي أو محول ذكي.

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

إليك كيف يعالج flingo المشكلات الثلاث الرئيسية:

1. اللوحة البيضاء "غير المحددة"

في flingo، يمكنك ترك رقم فارغًا (غير محدد) تمامًا كما يمكنك ترك سؤال "نعم/لا" دون إجابة.

  • تشبيه: تخيل قائمة تسوق تحتوي على بعض العناصر بأسعار وبعضها الآخر فارغ. في النظام القديم، سيرفض الصراف تسجيل عملية الشراء حتى تملأ كل سعر. في flingo، يقول الصراف: "لا مشكلة، سأحسب إجمالي العناصر التي نعرف أسعارها، وسوف نكتشف البقية لاحقًا".
  • كيف يعمل: يقدم flingo مفهوم "الجمع الصارم" مقابل "الجمع غير الصارم".
    • الجمع الصارم: "إذا كان أي عنصر يفتقر إلى سعر، فإن العملية الحسابية بأكملها تفشل". (مفيد للتحقق من اكتمال البيانات).
    • الجمع غير الصارم: "إذا كان أحد العناصر يفتقر إلى سعر، فتجاهله فقط واجمع الباقي". (مفيد للحصول على الإجمالي حتى مع وجود بيانات مفقودة).

2. شبكة الأمان "الافتراضية"

يسمح لك flingo بوضع رقم "افتراضي" لا ينطبق إلا إذا ألغت قاعدة محددة مفعوله.

  • تشبيه: فكر في منظم الحرارة (الثرموستات). أنت تضبط درجة الحرارة "الافتراضية" على 70 درجة فهرنهايت. إذا لم تلمسه، فستظل عند 70. ولكن إذا قلت تحديدًا "اضبطها على 65"، فستتغير. المحرك الرياضي القديم لم يفهم "الافتراضي"؛ كان يرى فقط متغيرًا بلا قيمة. flingo يعلم المحرك كيفية التعامل مع قواعد "إلا إذا" هذه.

3. سحر "الاختيار" و"التجميع"

يتيح لك flingo قول أشياء مثل: "اختر سعرًا من نطاق معين، ولكن فقط إذا تم اختيار العنصر"، ثم "اجمع كل الأسعار المختارة".

  • تشبيه: تخيل بناء دراجة. يمكنك اختيار وجود حقيبة أم لا. إذا اخترت الحقيبة، فلها سعر. إذا لم تختارها، فليس لها سعر. يمكن لـ flingo حساب التكلفة الإجمالية للدراجة عن طريق جمع الهيكل والحقيبة فقط إذا تم اختيار الحقيبة. إنه يتعامل مع منطق "إذا/إذن" بسلاسة أثناء إجراء العمليات الحسابية.

كيف يعمل من الداخل

توضح الورقة أن flingo لا يستبدل المحرك الرياضي؛ بل يتحدث لغته بشكل أفضل.

  1. الترجمة: عندما تكتب برنامج flingo، يقوم النظام بترجمة قواعدك المرنة إلى تنسيق يمكن للمحرك الرياضي (المسمى clingcon) فهمه.
  2. قاعدة "الموجود": الابتكار الرئيسي هو أنه في flingo، لا يحصل الرقم على قيمة إلا إذا كانت هناك قاعدة تثبت وجوب امتلاكه لقيمة. إذا لم تقل أي قاعدة "الضريبة هي 25%"، فإن الضريبة تظل "غير محددة" بدلاً من إجبارها على رقم عشوائي. هذا يمنع النظام من اختلاق حقائق.

مثال من الواقع من الورقة البحثية

اختبر المؤلفون flingo في مشكلة تكوين دراجة.

  • لديك إطار (سعر ثابت).
  • قد يكون لديك حقيبة (اختيارية).
  • إذا اخترت الحقيبة، فلها سعر. إذا لم تختارها، فليس لها سعر.
  • يقوم flingo بحساب السعر الإجمالي. إذا كانت الحقيبة مفقودة، فإنه يجمع سعر الإطار فقط. إذا كانت الحقيبة موجودة، فإنه يجمع الإطار والحقيبة معًا. إنه يتعامل مع الحقيبة "المفقودة" بشكل طبيعي دون أن يتعطل أو يفرض سعرًا وهميًا.

كما اختبروا حسابات التعريفة الجمركية (الضرائب على السلع). وأظهروا أن flingo يمكنه التعامل مع قواعد معقدة مثل "الضريبة الافتراضية هي 15%، ولكن بالنسبة للصلب فهي 25%، وإذا لم نكن نعرف الضريبة لدولة معينة، فتعامل معها كغير محددة ولا تحسبها في الإجمالي".

الملخص

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

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →