diff --git a/README.md b/README.md index d0091f8f0..99bf6a654 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,11 @@ -NVIDIA® cuOpt™ is a GPU-accelerated optimization engine that excels in linear programming (LP), quadratic programming (QP), and vehicle routing problems (VRP), with support for quadratically constrained quadratic programming (QCQP) (beta), second-order cone programming (SOCP) (beta), and mixed integer linear programming (MILP) (beta). It enables near real-time solutions for large-scale LPs with millions of variables and constraints. cuOpt offers easy integration into existing modeling languages and seamless deployment across hybrid and multi-cloud environments. +NVIDIA® cuOpt™ is a GPU-accelerated optimization engine that excels in linear programming (LP), quadratic programming (QP), and vehicle routing problems (VRP), with support for quadratically constrained quadratic programming (QCQP) (beta), second-order cone programming (SOCP) (beta), and mixed integer linear programming (MILP) (beta). cuOpt enables near real-time solutions for large-scale LPs with millions of variables and constraints and offers easy integration into existing modeling languages with seamless deployment across hybrid and multi-cloud environments. + +The cuOpt MIP solver is in beta and under active development. The solver currently excels at finding high-quality feasible solutions quickly with GPU-accelerated primal heuristics. Proving feasible solutions optimal remains under active development. + +cuOpt offers easy integration into existing solvers, and seamlessly extends into agent-first optimization workflows through open-source cuOpt agent skills. The core engine is written in C++ and wrapped with a C API, Python API and Server API. diff --git a/docs/cuopt/source/cuopt-c/mip/index.rst b/docs/cuopt/source/cuopt-c/mip/index.rst index 525e29cac..4930f067b 100644 --- a/docs/cuopt/source/cuopt-c/mip/index.rst +++ b/docs/cuopt/source/cuopt-c/mip/index.rst @@ -1,6 +1,13 @@ MIP (Mixed Integer Programming) ================================ +.. note:: + + The cuOpt MIP solver is in **beta** and under active development. The solver + currently excels at finding high-quality feasible solutions quickly with + GPU-accelerated primal heuristics. Proving feasible solutions optimal remains + under active development. + This section contains details on the cuOpt MIP C API. .. toctree:: diff --git a/docs/cuopt/source/cuopt-cli/index.rst b/docs/cuopt/source/cuopt-cli/index.rst index cae126133..4093db002 100644 --- a/docs/cuopt/source/cuopt-cli/index.rst +++ b/docs/cuopt/source/cuopt-cli/index.rst @@ -3,6 +3,11 @@ Command Line Interface The cuopt_cli is a command-line interface for LP/MILP solvers that accepts MPS, QPS, or LP format files as input models. The format is dispatched automatically from the file extension (case-insensitive): ``.lp`` (with optional ``.gz`` / ``.bz2``) goes to the LP parser, ``.mps`` / ``.qps`` (with optional ``.gz`` / ``.bz2``) goes to the MPS parser, and unknown extensions are rejected. It provides command-line arguments to control all solver settings and parameters when solving linear and mixed-integer programming problems. +The cuOpt MIP solver is in **beta** and under active development. The solver +currently excels at finding high-quality feasible solutions quickly with +GPU-accelerated primal heuristics. Proving feasible solutions optimal remains +under active development. + .. toctree:: :maxdepth: 3 :caption: Command Line Interface Overview diff --git a/docs/cuopt/source/cuopt-python/mip/index.rst b/docs/cuopt/source/cuopt-python/mip/index.rst index ee62b3e14..c67b32b1a 100644 --- a/docs/cuopt/source/cuopt-python/mip/index.rst +++ b/docs/cuopt/source/cuopt-python/mip/index.rst @@ -1,7 +1,12 @@ MIP (Mixed Integer Programming) ================================ -.. note:: Support for mixed integer linear programming is currently in **beta**. +.. note:: + + The cuOpt MIP solver is in **beta** and under active development. The solver + currently excels at finding high-quality feasible solutions quickly with + GPU-accelerated primal heuristics. Proving feasible solutions optimal remains + under active development. This section contains details on the cuOpt MIP Python API. diff --git a/docs/cuopt/source/faq.rst b/docs/cuopt/source/faq.rst index e0bd37900..1a5c06b4d 100644 --- a/docs/cuopt/source/faq.rst +++ b/docs/cuopt/source/faq.rst @@ -422,6 +422,15 @@ Linear Programming FAQs Mixed Integer Linear Programming FAQs -------------------------------------- +.. dropdown:: How do I run the MIP solver with cuOpt? + + You can run the cuOpt MIP solver through the Python, C, CLI, or server APIs + by providing a model with integer or binary variables. The cuOpt MIP solver + is in **beta** and under active development. The solver currently excels at + finding high-quality feasible solutions quickly with GPU-accelerated primal + heuristics. Proving feasible solutions optimal remains under active + development. + .. dropdown:: What are the limitations of the MILP solver? #. There is no inherit limit imposed on the number of variables, number of constraints, or number of non-zeros you can have in a MILP or LP, except the restrictions due to the number of bits in integer and the amount of memory in the CPU and GPU. diff --git a/docs/cuopt/source/introduction.rst b/docs/cuopt/source/introduction.rst index cd2f39242..8fe2dcc3e 100644 --- a/docs/cuopt/source/introduction.rst +++ b/docs/cuopt/source/introduction.rst @@ -79,9 +79,14 @@ All three algorithms can be run concurrently on both GPU and CPU, with the faste Mixed Integer Linear Programming (MILP) (Beta) ============================================== -.. note:: Support for mixed integer linear programming is currently in **beta**. +A **Mixed Integer Program (MIP)** is an optimization problem where some variables are restricted to take on only integer values, while other variables can vary continuously. A **Mixed Integer Linear Program (MILP)** is a MIP with a linear objective and linear constraints. -A **Mixed Integer Linear Program** is a variant of a Linear Program where some of the variables are restricted to take on only integer values, while other variables can vary continuously. NVIDIA cuOpt uses a hybrid GPU/CPU method: running primal heuristics on the GPU and improving the dual bound on the CPU. +.. note:: + + The cuOpt MIP solver is in **beta** and under active development. The solver + currently excels at finding high-quality feasible solutions quickly with + GPU-accelerated primal heuristics. Proving feasible solutions optimal remains + under active development. For example, consider the following system of constraints: @@ -104,7 +109,7 @@ Although MILPs seems similar to a LPs, they require much more computation to sol How cuOpt Solves the Mixed-Integer Linear Programming Problem ------------------------------------------------------------- -The MILP solver is a hybrid GPU/CPU algorithm. Primal heuristics including local search, feasibility pump, and feasibility jump are performed on the GPU to improve the primal bound. Branch and bound is performed on the CPU to improve the dual bound. Integer feasible solutions are shared between both algorithms. +cuOpt combines GPU-accelerated primal heuristics for improving the primal bound with traditional CPU algorithms, including branch and bound, to improve the dual bound. Primal heuristics such as local search, feasibility pump, and feasibility jump run on the GPU. Integer feasible solutions are shared between these components. ============================= diff --git a/docs/cuopt/source/milp-features.rst b/docs/cuopt/source/milp-features.rst index 90e298c18..fc444872f 100644 --- a/docs/cuopt/source/milp-features.rst +++ b/docs/cuopt/source/milp-features.rst @@ -5,6 +5,11 @@ MILP Features Availability ------------ +The cuOpt MIP solver is in **beta** and under active development. The solver +currently excels at finding high-quality feasible solutions quickly with +GPU-accelerated primal heuristics. Proving feasible solutions optimal remains +under active development. + The MILP solver can be accessed in the following ways: - **Third-Party Modeling Languages**: cuOpt's LP and MILP solver can be called directly from the following third-party modeling languages. This allows you to leverage GPU acceleration while maintaining your existing optimization workflow in these modeling languages. @@ -21,7 +26,7 @@ The MILP solver can be accessed in the following ways: - **As a Self-Hosted Service**: cuOpt's MILP solver can be deployed in your own infrastructure, enabling you to maintain full control while integrating it into your existing systems. -Each option provide the same powerful mixed-integer linear optimization capabilities while offering flexibility in deployment and integration. +Each option provides the same mixed-integer optimization capabilities while offering flexibility in deployment and integration. Variable Bounds --------------- diff --git a/docs/cuopt/source/mip-settings.rst b/docs/cuopt/source/mip-settings.rst index 02ac4f417..f48d63209 100644 --- a/docs/cuopt/source/mip-settings.rst +++ b/docs/cuopt/source/mip-settings.rst @@ -78,6 +78,11 @@ access to the dual solution. Enabled by default for LP when Papilo presolve is s Mixed Integer Linear Programming --------------------------------- +The cuOpt MIP solver is in **beta** and under active development. The solver +currently excels at finding high-quality feasible solutions quickly with +GPU-accelerated primal heuristics. Proving feasible solutions optimal remains +under active development. + We now describe parameter settings for the MILP solver.