MathOpt là gì

MathOpt là một thư viện để lập mô hình và giải quyết các vấn đề tối ưu hoá toán học, chẳng hạn như các bài tập lập trình tuyến tính (LP) hoặc bài tập lập trình số nguyên hỗn hợp (MIP). MathOpt tách biệt phương pháp lập mô hình với việc giải quyết, cho phép người dùng chuyển đổi giữa các phương pháp giải pháp bằng cách thay đổi một enum (và một phần phụ thuộc bản dựng) để chọn trình giải toán.

Hãy xem video này để biết phần giới thiệu ngắn gọn về MathOpt trong Bản trình bày của hội nghị JuMP năm 2023.

Các tính năng của MathOpt

Mô hình MathOpt có thể chứa:

  • biến số nguyên hoặc biến liên tục
  • hạn chế tuyến tính hoặc bậc hai
  • mục tiêu tuyến tính hoặc bậc hai
  • nhiều mục tiêu phân cấp
  • các ràng buộc MIP chuyên biệt (SOS, chỉ báo, v.v.)
  • một số giới hạn của conic (hình nón bậc hai, sẽ có nhiều giới hạn khác)

Các mô hình được xác định độc lập với mọi trình phân giải và trình phân giải có thể được hoán đổi lẫn nhau. MathOpt hỗ trợ các trình giải toán sau:

MathOpt cung cấp các thư viện ứng dụng bằng C++ và Python để xây dựng mô hình tối ưu hoá.

MathOpt hỗ trợ nhiều tính năng nâng cao, bao gồm:

  • Phân tích tính bất khả thi (Bộ phân tích không khả thi (IIS) hoặc Bộ phân tích không khả thi (IIS), chỉ dành cho Gurobi
  • Giải pháp tăng dần
  • Lệnh gọi lại
  • Tính kép
  • Tia gốc và tia kép
  • Giải pháp kép và giải pháp gốc chưa tối ưu
  • Xoá biến và quy tắc ràng buộc
  • Khởi động ấm (theo giải pháp hoặc cơ sở)
  • Lý do chấm dứt chi tiết
  • Mức độ ưu tiên phân nhánh
  • Gián đoạn
  • Nhiều tham số độc lập cho bộ giải