تعتبر مشكلة حقيبة الظهر مشكلة تحسين معروفة. يتم مواجهته، على سبيل المثال، في تعبئة حاويات الشحن. تحتوي حاوية الشحن على سعة وزن يمكنها حملها. نظرًا لمجموعة من العناصر المراد شحنها، حيث يكون لكل عنصر قيمة ووزن، تكمن المشكلة في تحديد العناصر المثالية لحزمها في حاوية الشحن. يمكن تعريف مشكلة التحسين هذه على أنها هدف ذو قيد:
يحل هذا المثال مشكلة حقيبة الظهر هذه من خلال إعادة صياغتها كنموذج تربيعي مقيد (CQM) وتقديمه إلى حل Leap hybrid CQM.
لتشغيل العرض التوضيحي الافتراضي، أدخل الأمر:
python knapsack.py
لعرض الخيارات المتاحة، أدخل الأمر:
python knapsack.py --help
تتيح لك وسيطات سطر الأوامر تحديد إحدى مجموعات البيانات المتعددة (ضمن المجلد /data
) وتعيين سعة الشحن. تتم صياغة ملفات البيانات كصفوف من العناصر، يتم تعريف كل منها كزوج من الوزن والقيمة.
يتضمن الكود الموجود في knapsack.py
ثلاث وظائف رئيسية:
يقوم build_knapsack_cqm()
بإنشاء إدارة الجودة الشاملة عن طريق تحديد هدف وقيد كما يلي:
parse_inputs()
هي وظيفة مساعدة تقرأ البيانات من ملفات الأمثلة.
يقوم parse_solution()
بتوزيع وعرض النتائج التي تم إرجاعها من المحلل.
تم إصداره بموجب ترخيص Apache 2.0. انظر ملف الترخيص.