Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2024-08-09 UTC.
[null,null,["Cập nhật lần gần đây nhất: 2024-08-09 UTC."],[[["\u003cp\u003eMathOpt is a library for modeling and solving mathematical optimization problems, including linear programming (LP) and mixed integer programming (MIP).\u003c/p\u003e\n"],["\u003cp\u003eMathOpt allows users to define models independently of solvers, enabling easy switching between various solvers like GLOP, PDLP, CP-SAT, SCIP, GLPK, Gurobi, and HiGHS.\u003c/p\u003e\n"],["\u003cp\u003eMathOpt supports a wide range of features including linear and quadratic constraints and objectives, integer and continuous variables, hierarchical objectives, and specialized MIP constraints.\u003c/p\u003e\n"],["\u003cp\u003eMathOpt provides client libraries in C++ and Python, along with a remote solving service for larger problems.\u003c/p\u003e\n"],["\u003cp\u003eMathOpt offers advanced features like infeasibility analysis, incremental solving, callbacks, duality, primal and dual rays, and more.\u003c/p\u003e\n"]]],["MathOpt is a library for modeling and solving mathematical optimization problems, such as LPs and MIPs. It supports continuous or integer variables, linear/quadratic constraints and objectives, and specialized MIP/conic constraints. Users can switch between solvers like GLOP, PDLP, CP-SAT, SCIP, GLPK, Gurobi, and HiGHS, independently of the model's definition. MathOpt offers C++ and Python client libraries with example, and provides features such as infeasibility analysis, incremental solving, callbacks, duality, and warm starts.\n"],null,["MathOpt\n-------\n\nMathOpt is a library for modeling and solving mathematical optimization\nproblems, for example, linear programming problems (LPs) or mixed integer\nprogramming problems (MIPs). MathOpt separates modeling from solving, allowing\nusers to switch between solution methods by changing an enum (and a build\ndependency) to select their solver.\n\nWatch this [video](https://www.youtube.com/watch?v=L5b4YQowXBg) for brief\nintroduction to MathOpt from the 2023 JuMP Conference Presentation.\n\nMathOpt Features\n----------------\n\nMathOpt models can contain:\n\n- integer or continuous variables\n- linear or quadratic constraints\n- linear or quadratic objectives\n- multiple hierarchical objectives\n- specialized MIP constraints (SOS, indicator, more to come)\n- some conic constraints (second order cone, more to come)\n\nModels are defined independently of any solver and solvers can be swapped\ninterchangeably. MathOpt supports the following solvers:\n\n- [GLOP](/optimization/lp/lp_advanced)\n- [PDLP](/optimization/lp/pdlp_math)\n- [CP-SAT](/optimization/cp/cp_solver)\n- [SCIP](https://www.scipopt.org/)\n- [GLPK](https://www.gnu.org/software/glpk/)\n- [Gurobi](https://www.gurobi.com) (requires licence)\n- [HiGHS](https://highs.dev/)\n\nMathOpt provides client libraries in [C++](https://github.com/google/or-tools/tree/stable/ortools/math_opt/cpp) and [Python](https://github.com/google/or-tools/tree/stable/ortools/math_opt/python) to build your\noptimization model. [Examples](https://github.com/google/or-tools/tree/stable/ortools/math_opt/samples) for both libraries are also available on\nGitHub.\n| **Note:** Check out the [MathOpt service](/optimization/service/math_opt/overview) for remote solves.\n\nMathOpt supports many advanced features, including:\n\n- Infeasibility Analysis (Irreducible Infeasible Set or IIS), Gurobi only\n- Incremental Solving\n- Callbacks\n- Duality\n- Primal and Dual rays\n- Suboptimal primal and dual solutions\n- Variable and constraint deletions\n- Warm starts (by solution or basis)\n- Detailed termination reason\n- Branching priority\n- Interruption\n- Many solver independent parameters"]]