MathOpt คืออะไร

MathOpt เป็นไลบรารีสำหรับการสร้างแบบจำลองและการแก้ปัญหาการเพิ่มประสิทธิภาพทางคณิตศาสตร์ เช่น โจทย์การเขียนโปรแกรมเชิงเส้น (LP) หรือโจทย์การเขียนโปรแกรมจำนวนเต็ม (MIP) แบบผสม MathOpt แยกการสร้างแบบจำลองออกจากการแก้โจทย์ ช่วยให้ผู้ใช้สลับไปมาระหว่างวิธีการแก้โจทย์ด้วยการเปลี่ยน enum (และการขึ้นต่อกันของบิลด์) เพื่อเลือกเครื่องมือแก้โจทย์ของตน

ดูวิดีโอนี้เพื่อข้อมูลเบื้องต้นเกี่ยวกับ MathOpt จากงานนำเสนอ JuMP Conference Conference ประจำปี 2023

ฟีเจอร์ MathOpt

โมเดล MathOpt มีองค์ประกอบดังนี้

  • จำนวนเต็มหรือตัวแปรต่อเนื่อง
  • ข้อจำกัดเชิงเส้นหรือกำลังสอง
  • วัตถุประสงค์เชิงเส้นหรือกำลังสอง
  • วัตถุประสงค์แบบลำดับชั้นหลายรายการ
  • ข้อจำกัด MIP เฉพาะทาง (SOS, ตัวบ่งชี้ และอื่นๆ อีกมากมาย)
  • ข้อจำกัดแบบกรวยบางอย่าง (ลำดับที่ 2 จะมีเงื่อนไขเพิ่มเติมตามมา)

โมเดลจะได้รับการกำหนดโดยไม่ขึ้นอยู่กับเครื่องมือแก้โจทย์คณิตใดๆ และตัวแก้โจทย์หนึ่งๆ จะสลับสับเปลี่ยนกันได้ MathOpt รองรับเครื่องมือแก้โจทย์ต่อไปนี้

MathOpt มีไลบรารีไคลเอ็นต์ใน C++ และ Python เพื่อสร้างโมเดลการเพิ่มประสิทธิภาพ

MathOpt รองรับฟีเจอร์ขั้นสูงมากมาย ได้แก่

  • การวิเคราะห์ความไม่สามารถทำได้ (Irreducible Infeasible Set หรือ IIS), Gurobi เท่านั้น
  • การแก้โจทย์ที่เพิ่มขึ้น
  • โค้ดเรียกกลับ
  • คู่สนทนา
  • รังสีปฐมภูมิและแสงคู่
  • โซลูชันแบบพื้นฐานและโซลูชันแบบคู่ที่ต่ำกว่ามาตรฐาน
  • การลบตัวแปรและข้อจำกัด
  • Warm Start (ตามโซลูชันหรือพื้นฐาน)
  • เหตุผลของการสิ้นสุดโดยละเอียด
  • ลำดับความสำคัญของ Branch
  • เสียงแทรก
  • พารามิเตอร์อิสระในการแก้โจทย์หลายรายการ