From 2acfacc87b1898222011d761702e33a86fb9bfa0 Mon Sep 17 00:00:00 2001 From: Alexander Condello Date: Fri, 17 Jan 2025 15:06:48 -0800 Subject: [PATCH] Add philosophy section to the docs as well as navigation --- docs/intro.rst | 66 ++++++++++++++++++++++++++++++++++--------- docs/philosophy.rst | 63 +++++++++++++++++++++++++++++++++++++++++ docs/requirements.txt | 2 +- 3 files changed, 117 insertions(+), 14 deletions(-) create mode 100644 docs/philosophy.rst diff --git a/docs/intro.rst b/docs/intro.rst index e7a64623..88593014 100644 --- a/docs/intro.rst +++ b/docs/intro.rst @@ -6,25 +6,65 @@ Introduction ============ -`Nonlinear programming (NLP) `_ -is the process of solving an optimization problem where some of the constraints -are not linear equalities and/or the objective function is not a linear function. -Such optimization problems are pervasive in business and logistics: inventory -management, scheduling employees, equipment delivery, and many more. +`dwave-optimization` enables you to formulate optimization models for workforce +scheduling, production scheduling, resource allocation, logistics routing, and +many more. +The model can then be submitted to the +`Leap `_\ |TM| service's quantum-classical +hybrid nonlinear solver to find good solutions. + +Features +======== + +.. toctree:: + :maxdepth: 1 + :hidden: + + philosophy + +`dwave-optimization` and the hybrid nonlinear solver incorporate features and +design principals from each of the following areas: + +.. grid:: 2 + :gutter: 3 + + .. grid-item-card:: Quantum Optimization + :class-body: sd-outline-warning + :link: optimization_philosophy_quantum_optimization + :link-type: ref + + Take advantage of quantum-mechanical effects not available to classical + compute. + + .. grid-item-card:: (Mixed-Integer) Linear Programming + :class-body: sd-outline-info + :link: optimization_philosophy_linear_programming + :link-type: ref + + Learn the basics of solving optimization problems with linear program + solvers. + + .. grid-item-card:: Lists, Sets, and other combinatorial variables + :class-body: sd-outline-info + :link: optimization_philosophy_constraint_programming + :link-type: ref + + Explore how lists, sets, and other combinatorial structures make + optimization simpler and more performant. + + .. grid-item-card:: Tensor Programming + :class-body: sd-outline-info + :link: optimization_philosophy_tensor_programming + :link-type: ref + + Use N-dimensional arrays and operations to work with your data directly + and succinctly. .. _intro_optimization_nonlinear_models: Nonlinear Models ================ -`dwave-optimization` enables you to formulate the nonlinear models needed for -such industrial optimization problems. The model can then be submitted to the -`Leap `_\ |TM| service's quantum-classical -hybrid nonlinear-program solver to find good solutions. - -Examples of problems suited to such solution methods are resource routing, -scheduling, allocation, and job-shop scheduling. - Successful implementation, as for any solver, requires following some :ref:`best practices ` in formulating your model. diff --git a/docs/philosophy.rst b/docs/philosophy.rst new file mode 100644 index 00000000..f45aa5e6 --- /dev/null +++ b/docs/philosophy.rst @@ -0,0 +1,63 @@ +.. _optimization_philosophy: + +.. |TM| replace:: :sup:`TM` + +========== +Philosophy +========== + +`dwave-optimization` and +the `Leap `_\ |TM| service's quantum-classical +hybrid nonlinear solver +incorporate features and design principals from each of the following areas: + +.. _optimization_philosophy_quantum_optimization: + +Quantum Optimization +==================== + +:term:`Quantum computing` has the potential to help solve some of the most complex +technical, scientific, national defense, and commercial problems that +organizations face. + +:term:`Quantum annealing` processors naturally return low-energy solutions. +A fundamental rule of physics is that everything tends to seek a minimum energy state. +Objects slide down hills; hot things cool down over time. +This behavior is also true in the world of quantum physics. +Quantum annealing simply uses quantum physics to find low-energy states of a +problem and therefore the optimal or near-optimal combination of elements. + +To learn more about solving optimization problems with quantum computers, see the +`Problem Solving Handbook `_. + +.. _optimization_philosophy_linear_programming: + +(Mixed-Integer) Linear Programming +================================== + +Much of the mathematical optimization done today is done with +`linear programming `_ +solvers and techniques. + +Users familiar with linear programming techniques will find many concepts in +`dwave-optimization` familiar: objective functions; continuous, linear, and binary variables; +constraints; and feasible regions are all concepts found in linear programming. + +However, unlike other linear solvers on the market, `dwave-optimization` allows +`nonlinear `_ relationships +among variables, constraints, and the objective function. + +.. _optimization_philosophy_constraint_programming: + +Lists, Sets, and other combinatorial variables +============================================== + +Lorem ipsum + +.. _optimization_philosophy_tensor_programming: + +Tensor Programming +================== + +Lorem ipsum + diff --git a/docs/requirements.txt b/docs/requirements.txt index bacc86ce..0ce8358f 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ pydata-sphinx-theme==0.14.3 sphinx==7.3.7 -sphinx-design==0.5.0 +sphinx-design==0.6.1 breathe==4.35.0 reno[sphinx]==4.1.0 # keep synced with requirements.txt