ปัญหากระเป๋าเป้สะพายหลังเป็นปัญหาการปรับให้เหมาะสมที่รู้จักกันดี พบได้เช่นในการบรรจุภาชนะขนส่ง ตู้คอนเทนเนอร์ขนส่งสินค้าสามารถรองรับน้ำหนักได้ เมื่อพิจารณาจากการรวบรวมสินค้าที่จะจัดส่ง โดยที่แต่ละรายการมีมูลค่าและน้ำหนัก ปัญหาคือการเลือกสินค้าที่เหมาะสมที่สุดเพื่อบรรจุในคอนเทนเนอร์ในการขนส่ง ปัญหาการปรับให้เหมาะสมนี้สามารถกำหนดเป็นวัตถุประสงค์ที่มีข้อจำกัด:
ตัวอย่างนี้แก้ปัญหา knapsack ดังกล่าวด้วยการปรับรูปแบบใหม่เป็นแบบจำลองกำลังสองแบบจำกัด (CQM) และส่งไปยังตัวแก้ปัญหา CQM แบบไฮบริด Leap
หากต้องการรันการสาธิตเริ่มต้น ให้ป้อนคำสั่ง:
python knapsack.py
หากต้องการดูตัวเลือกที่มี ให้ป้อนคำสั่ง:
python knapsack.py --help
อาร์กิวเมนต์บรรทัดคำสั่งให้คุณเลือกชุดข้อมูลชุดใดชุดหนึ่ง (ภายใต้โฟลเดอร์ /data
) และตั้งค่าความสามารถในการขนส่ง ไฟล์ข้อมูลได้รับการกำหนดเป็นแถวของรายการ โดยแต่ละรายการกำหนดเป็นคู่ของน้ำหนักและค่า
โค้ดใน knapsack.py
มีฟังก์ชันหลัก 3 ฟังก์ชัน:
build_knapsack_cqm()
สร้าง CQM โดยการตั้งค่าวัตถุประสงค์และข้อจำกัดดังต่อไปนี้:
parse_inputs()
เป็นฟังก์ชันยูทิลิตี้ที่อ่านข้อมูลจากไฟล์ตัวอย่าง
parse_solution()
แยกวิเคราะห์และแสดงผลลัพธ์ที่ส่งคืนจากตัวแก้ปัญหา
เผยแพร่ภายใต้ Apache License 2.0 ดูไฟล์ใบอนุญาต