Skip to content

Commit

Permalink
deploy: e53d65c
Browse files Browse the repository at this point in the history
  • Loading branch information
hlefebvr committed Mar 11, 2024
0 parents commit 75b2971
Show file tree
Hide file tree
Showing 492 changed files with 47,928 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .buildinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 2a30b1f3797558244d03e1b750588e0b
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .doctrees/api/classes/common/Annotation.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/Column.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/Constant.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/Ctr.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/Env.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/Expr.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/LinExpr.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/Model.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/Param.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/QuadExpr.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/Row.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/SolutionDual.doctree
Binary file not shown.
Binary file not shown.
Binary file added .doctrees/api/classes/common/TempCtr.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/TempVar.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/Var.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/common/index.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .doctrees/api/classes/external-mip/GLPK.doctree
Binary file not shown.
Binary file not shown.
Binary file added .doctrees/api/classes/external-mip/HiGHS.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/external-mip/Mosek.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .doctrees/api/classes/external-mip/index.doctree
Binary file not shown.
Binary file added .doctrees/api/classes/index.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .doctrees/api/constants/index.doctree
Binary file not shown.
Binary file added .doctrees/api/constants/tolerances.doctree
Binary file not shown.
Binary file added .doctrees/api/index.doctree
Binary file not shown.
Binary file added .doctrees/api/types/common/VarType.doctree
Binary file not shown.
Binary file added .doctrees/api/types/common/index.doctree
Binary file not shown.
Binary file added .doctrees/api/types/index.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .doctrees/benchmark/index.doctree
Binary file not shown.
Binary file added .doctrees/developer_guide/build-the-doc.doctree
Binary file not shown.
Binary file added .doctrees/developer_guide/index.doctree
Binary file not shown.
Binary file added .doctrees/developer_guide/tests.doctree
Binary file not shown.
Binary file added .doctrees/environment.pickle
Binary file not shown.
Binary file added .doctrees/examples/bilevel-problem.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .doctrees/examples/index.doctree
Binary file not shown.
Binary file added .doctrees/examples/knapsack-problem.doctree
Binary file not shown.
Binary file added .doctrees/faq/index.doctree
Binary file not shown.
Binary file added .doctrees/faq/mosek-and-eigen.doctree
Binary file not shown.
Binary file added .doctrees/index.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .doctrees/installation/index.doctree
Binary file not shown.
Binary file added .doctrees/installation/local_installation.doctree
Binary file not shown.
Binary file added .doctrees/installation/options.doctree
Binary file not shown.
Binary file added .doctrees/references.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .doctrees/tutorials/index.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Empty file added .nojekyll
Empty file.
29 changes: 29 additions & 0 deletions _sources/api/classes/branch-and-bound/BranchAndBound.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
BranchAndBound
==============

This class is an optimizer factory which creates a new branch-and-bound algorithm.
It can be used to create customized branch-and-bound algorithms with a large degree of freedom.

.. seealso::

If you are not familiar with optimizers and optimizer factories, please refer to :ref:`this page <api_optimizers>`.

.. admonition:: Example

Here, we create a simple branch-and-bound algorithm where branching is done on integer variables which are being
relaxed. Each node is solved by the external solver GLPK. Nodes are selected according to the "best-bound"
rule while variables are selected according to the "most-infeasible" branching rule.

The created algorithm also incorporates sub-tree exploration of maximum depth 2.

.. code-block::
model.use(
BranchAndBound()
.with_node_optimizer( GLPK::ContinuousRelaxation() )
.with_branching_rule( MostInfeasible() )
.with_node_selection_rule( BestBound() )
.with_subtree_depth(2)
);
.. doxygenclass:: idol::BranchAndBound
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
BranchAndBoundCallback
======================

This class can be used to create callbacks to run on idol's :ref:`branch-and-bound implementation <api_BranchAndBound>`.

.. warning::

BranchAndBoundCallback-s is an *advanced* feature.

Please, make sure that what you are trying do cannot be done with
a :ref:`solver-independent callback <api_Callback>` first, or with pre-existing callbacks, e.g.,
:ref:`UserCutCallback <api_UserCutCallback>` or :ref:`LazyCutCallback <api_LazyCutCallback>`.

The advantage of using a :ref:`BranchAndBoundCallback <api_BranchAndBoundCallback>` instead of a standard
solver-independent :ref:`Callback <api_Callback>` lies in the possibility to access specific information regarding
the execution of the branch-and-bound algorithm. For instance, accessing a node's information, or the current
relaxation model being solved.

.. admonition:: Example

Here is an example of callback which prints out the event triggering it and, when the event corresponds to `NodeLoaded`,
prints the node's model to be solved.

.. code-block::
class MyCallback : public BranchAndBoundCallbackFactory<NodeInfo> {
public:
class Strategy : public BranchAndBoundCallback<NodeInfo> {
protected:
void operator()(CallbackEvent t_event) override {
std::cout << "MyCallback is called for " << t_event << std::endl;
if (t_event != NodeLoaded) {
return;
}
std::cout << "The problem being solve at node " << node().id() << std::endl;
std::cout << relaxation() << std::endl;
}
};
BranchAndBoundCallback<NodeInfo> *operator()() override {
return new Strategy();
}
[[nodiscard]] BranchAndBoundCallbackFactory<NodeInfo> *clone() const override {
return new MyCallback(*this);
}
};
Then, this callback can be used as follows.

.. code-block::
model.use(
BranchAndBound()
.with_node_optimizer(GLPK::ContinuousRelaxation())
.with_branching_rule(MostInfeasible())
.with_node_selection_rule(DepthFirst())
.with_callback(MyCallback());
);
.. hint::

By default, most of the objects returned by BranchAndBoundCallback methods are const. If you wish to access non-const
versions (e.g., if you want to perform non-standard updates to the relaxed model or want to change the node's current
information manually), you should use the advanced interface obtained by calling ``BranchAndBoundCallback::advanced_interface``.

.. doxygenclass:: idol::BranchAndBoundCallback
:protected-members:
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
BranchAndBoundCallbackFactory
=============================

.. doxygenclass:: idol::BranchAndBoundCallbackFactory
:protected-members:
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Cuts::KnapsackCover
===================

.. doxygenclass:: idol::Cuts::KnapsackCover
10 changes: 10 additions & 0 deletions _sources/api/classes/branch-and-bound/cuts/index.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Cutting Planes
==============

.. toctree::
:maxdepth: 1
:glob:

*


Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Heuristics::LocalBranching
==========================

.. doxygenclass:: idol::Heuristics::LocalBranching
4 changes: 4 additions & 0 deletions _sources/api/classes/branch-and-bound/heuristics/RENS.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Heuristics::RENS
================

.. doxygenclass:: idol::Heuristics::RENS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Heuristics::SimpleRounding
==========================

.. doxygenclass:: idol::Heuristics::SimpleRounding
10 changes: 10 additions & 0 deletions _sources/api/classes/branch-and-bound/heuristics/index.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Heuristics
==========

.. toctree::
:maxdepth: 1
:glob:

*


12 changes: 12 additions & 0 deletions _sources/api/classes/branch-and-bound/index.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Branch-and-Bound Algorithm
==========================

.. toctree::
:maxdepth: 2
:glob:

*
variable-selection/index
node-selection/index
heuristics/index
cuts/index
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
BestBound
=========

.. doxygenclass:: idol::BestBound
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
BestEstimate
============

The "best estimate" node selection rule was introduced in *J. J. H. Forrest, J. P. H. Hirst, J. A. Tomlin, (1974) Practical Solution of Large Mixed Integer Programming Problems with Umpire. Management Science 20(5):736-773*.

.. doxygenclass:: idol::BestEstimate
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
BreadthFirst
============

.. doxygenclass:: idol::BreadthFirst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
DepthFirst
==========

.. doxygenclass:: idol::DepthFirst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
WorstBound
==========

.. doxygenclass:: idol::WorstBound
10 changes: 10 additions & 0 deletions _sources/api/classes/branch-and-bound/node-selection/index.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Node Selection Rules
====================

.. toctree::
:maxdepth: 1
:glob:

*


Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FirstInfeasibleFound
====================

.. doxygenclass:: idol::FirstInfeasibleFound
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
LeastInfeasible
===============

.. doxygenclass:: idol::LeastInfeasible
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
MostInfeasible
==============

.. doxygenclass:: idol::MostInfeasible
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
PseudoCost
==========

.. doxygenclass:: idol::PseudoCost
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
StrongBranching
===============

.. doxygenclass:: idol::StrongBranching
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
UniformlyRandom
===============

.. doxygenclass:: idol::UniformlyRandom
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Branching Rules
===============

.. toctree::
:maxdepth: 1
:glob:

*


Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.. _api_Robust_ColumnAndConstraintGeneration_doxygen:

Robust::ColumnAndConstraintGeneration
=====================================

.. doxygenclass:: idol::Robust::ColumnAndConstraintGeneration
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Optimizers::Robust::ColumnAndConstraintGeneration
=================================================

.. doxygenclass:: idol::Optimizers::Robust::ColumnAndConstraintGeneration
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Column-and-Constraint Generation Algorithm
==========================================

.. toctree::
:maxdepth: 1
:glob:

*
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
DantzigWolfe::ArtificialCosts
=============================

.. doxygenclass:: idol::DantzigWolfe::ArtificialCosts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
DantzigWolfeDecomposition
=========================

.. hint::

This page documents on the `DantzigWolfeDecomposition` optimizer factory. Note that there are also
:ref:`Dantzig-Wolfe Decomposition tutorials <tutorials_dantzig_wolfe>`.

.. doxygenclass:: idol::DantzigWolfeDecomposition
4 changes: 4 additions & 0 deletions _sources/api/classes/column-generation/FarkasPricing.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
DantzigWolfe::FarkasPricing
===========================

.. doxygenclass:: idol::DantzigWolfe::FarkasPricing
9 changes: 9 additions & 0 deletions _sources/api/classes/column-generation/IntegerMaster.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Heuristics::IntegerMaster
=========================

.. warning::

This heuristic can only be used with a :code:`BranchAndBound<NodeVarInfo>` optimizer in which nodes are solved by
:code:`DantzigWolfeDecomposition`.

.. doxygenclass:: idol::Heuristics::IntegerMaster
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Optimizers::DantzigWolfeDecomposition
=====================================

.. doxygenclass:: idol::Optimizers::DantzigWolfeDecomposition
10 changes: 10 additions & 0 deletions _sources/api/classes/column-generation/index.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Column Generation Algorithm
===========================

.. toctree::
:maxdepth: 1
:glob:

*
stabilization/index

Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
DantzigWolfe::Neame
===================

.. doxygenclass:: idol::DantzigWolfe::Neame
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
DantzigWolfe::Wentges
=====================

.. doxygenclass:: idol::DantzigWolfe::Wentges
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Stabilization
=============

.. toctree::
:maxdepth: 1
:glob:

*
27 changes: 27 additions & 0 deletions _sources/api/classes/common/Annotation.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Annotation
==========

Annotations are additional information associated to an optimization object (e.g., a constraint or a variable).
The Annotation class takes two template arguments: an optimization object type and a value type. For instance, we
can create an annotation for constraints of type :code:`unsigned int` as follows.

.. code:: cpp
Env env;
const unsigned int default_value = 0;
Annotation<Ctr, unsigned int> annotation(env, "my_annotation", default_value);
Note that annotations are global, i.e., they do not relate to a given optimization model and can, therefore, be accessed
anywhere in the code. Thus, given a constraint called :code:`constraint`, the value of the annotation can be accessed
by calling the :code:`Ctr::get` method.

.. code:: cpp
std::cout << "My annotation is " << constraint.get(annotation) << std::endl; // "0", i.e., the default_value value
Annotations are, in particular, used to give decomposition instructions to idol when designing a Branch-and-Price algorithm.
To learn more, check our `Branch-and-Price tutorials <tutorials_dantzig_wolfe>`_.

.. doxygenclass:: idol::Annotation
6 changes: 6 additions & 0 deletions _sources/api/classes/common/Column.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.. _api_Column:

Column
======

.. doxygenclass:: idol::Column
6 changes: 6 additions & 0 deletions _sources/api/classes/common/Constant.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.. _api_Constant:

Constant
========

.. doxygenclass:: idol::Constant
6 changes: 6 additions & 0 deletions _sources/api/classes/common/Ctr.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.. _api_Ctr:

Ctr
===

.. doxygenclass:: idol::Ctr
6 changes: 6 additions & 0 deletions _sources/api/classes/common/Env.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.. _api_Env:

Env
===

.. doxygenclass:: idol::Env
6 changes: 6 additions & 0 deletions _sources/api/classes/common/Expr.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.. _api_Expr:

Expr
====

.. doxygenclass:: idol::Expr
Loading

0 comments on commit 75b2971

Please sign in to comment.