Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
62e31e1
Mention function bridges.
dourouc05 Aug 3, 2021
36c604e
Add pointer to top of hierarchy for each type of bridge.
dourouc05 Aug 3, 2021
8dfb1c6
Mention that several bridges can be used in combination.
dourouc05 Aug 3, 2021
0c391fb
Start tutorial for bridges.
dourouc05 Aug 3, 2021
d303e39
Add the bridge tutorial in the docs.
dourouc05 Aug 3, 2021
7cb64ae
Update bridging_constraint.md
dourouc05 Aug 3, 2021
5261650
Update bridging_constraint.md
dourouc05 Aug 3, 2021
2e99c78
Add docstrings.
dourouc05 Aug 3, 2021
b3bb62b
Update reference.md
dourouc05 Aug 3, 2021
78f8705
Update bridging_constraint.md
dourouc05 Aug 3, 2021
704c30a
Introduce an example for the tutorial.
dourouc05 Aug 3, 2021
e945fc9
Main part of the tutorial.
dourouc05 Aug 4, 2021
659a003
Single-bridge optimizer.
dourouc05 Aug 4, 2021
3abc5bd
LazyBridgeOptimizer.
dourouc05 Aug 4, 2021
c1bdfcd
Number/list of constraints/variables.
dourouc05 Aug 4, 2021
74f610b
Modifications.
dourouc05 Aug 4, 2021
bd7bd2e
Update bridging_constraint.md
dourouc05 Aug 4, 2021
b5d485c
ListOfConstraint deprecated.
dourouc05 Aug 4, 2021
7124f49
Update bridging_constraint.md
dourouc05 Aug 4, 2021
6e1e4df
Update bridging_constraint.md
dourouc05 Aug 4, 2021
abe6121
Inconsistency.
dourouc05 Aug 4, 2021
ddd453b
Style @odow.
dourouc05 Aug 4, 2021
a4a2aa9
Update docs/src/tutorials/bridging_constraint.md
dourouc05 Aug 4, 2021
6e16391
Update docs/src/tutorials/bridging_constraint.md
dourouc05 Aug 4, 2021
e7ec89a
Update docs/src/tutorials/bridging_constraint.md
dourouc05 Aug 4, 2021
c01a450
Update docs/src/tutorials/bridging_constraint.md
dourouc05 Aug 4, 2021
2a5e7c9
Update docs/src/tutorials/bridging_constraint.md
dourouc05 Aug 4, 2021
a7fbd91
Update docs/src/tutorials/bridging_constraint.md
dourouc05 Aug 4, 2021
b626f66
Add some types for the model.
dourouc05 Aug 4, 2021
24d6596
Apply suggestions from code review
odow Aug 4, 2021
8d154e8
Update bridging_constraint.md
dourouc05 Aug 4, 2021
6f9428e
Update bridging_constraint.md
dourouc05 Aug 4, 2021
30afd44
Update bridging_constraint.md
dourouc05 Aug 4, 2021
d863c29
Update bridging_constraint.md
dourouc05 Aug 4, 2021
68aa484
Update reference.md
dourouc05 Aug 4, 2021
a4ca0da
Update reference.md
dourouc05 Aug 4, 2021
99812fd
Add doc for MockOptimizer.
dourouc05 Aug 4, 2021
159befb
Update mockoptimizer.jl
dourouc05 Aug 4, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ makedocs(
"tutorials/example.md",
"tutorials/implementing.md",
"tutorials/mathprogbase.md",
"tutorials/bridging_constraint.md",
],
"Manual" => [
"manual/standard_form.md",
Expand Down
24 changes: 19 additions & 5 deletions docs/src/submodules/Bridges/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ Because these bridges are included in MathOptInterface, they can be re-used by
any optimizer. Some bridges also implement constraint modifications and
constraint primal and dual translations.

Several bridges can be used in combination to transform a single constraint
into a form that the solver may understand. Choosing the bridges to use
takes the form of finding a shortest path in the hypergraph of bridges. The
methodology is detailed in [the MOI paper](https://arxiv.org/abs/2002.03447).

## The three types of bridges

There are three types of bridges in MathOptInterface:
Expand All @@ -47,22 +52,30 @@ There are three types of bridges in MathOptInterface:
### Constraint bridges

Constraint bridges convert constraints formulated by the user into an equivalent
form supported by the solver.
form supported by the solver. Constraint bridges are subtypes of
[`Bridges.Constraint.AbstractBridge`](@ref).

The equivalent formulation may add constraints (and possibly also variables) in
the underlying model.

In particular, constraint bridges can focus on rewriting the function of a
constraint, and do not change the set. Function bridges are subtypes of
[`Bridges.Constraint.AbstractFunctionConversionBridge`](@ref).

Read the [list of implemented constraint bridges](@ref constraint_bridges_ref)
for more details on the types of transformations that are available.
Function bridges are [`Bridges.Constraint.ScalarFunctionizeBridge`](@ref) and
[`Bridges.Constraint.VectorFunctionizeBridge`](@ref).

### [Variable bridges](@id variable_bridges)

Variable bridges convert variables added by the user, either free with
[`add_variable`](@ref)/[`add_variables`](@ref), or constrained with
[`add_constrained_variable`](@ref)/[`add_constrained_variables`](@ref),
into an equivalent form supported by the solver.
into an equivalent form supported by the solver. Variable bridges are
subtypes of [`Bridges.Variable.AbstractBridge`](@ref).

Te equivalent formulation may add constraints (and possibly also variables) in
The equivalent formulation may add constraints (and possibly also variables) in
the underlying model.

Read the [list of implemented variable bridges](@ref variable_bridges_ref) for
Expand All @@ -71,9 +84,10 @@ more details on the types of transformations that are available.
### Objective bridges

Objective bridges convert the [`ObjectiveFunction`](@ref) set by the user into
an equivalent form supported by the solver.
an equivalent form supported by the solver. Objective bridges are
subtypes of [`Bridges.Objective.AbstractBridge`](@ref).

Te equivalent formulation may add constraints (and possibly also variables) in
The equivalent formulation may add constraints (and possibly also variables) in
the underlying model.

Read the [list of implemented objective bridges](@ref objective_bridges_ref) for
Expand Down
3 changes: 3 additions & 0 deletions docs/src/submodules/Bridges/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ Bridges.Variable.unbridged_map

```@docs
Bridges.Constraint.AbstractBridge
Bridges.Constraint.AbstractFunctionConversionBridge
Bridges.Constraint.SingleBridgeOptimizer
Bridges.Constraint.add_all_bridges
```
Expand All @@ -57,6 +58,7 @@ Bridges.inverse_adjoint_map_function
### [Bridges implemented](@id constraint_bridges_ref)

```@docs
Bridges.Constraint.FlipSignBridge
Bridges.Constraint.GreaterToIntervalBridge
Bridges.Constraint.GreaterToLessBridge
Bridges.Constraint.LessToIntervalBridge
Expand Down Expand Up @@ -104,6 +106,7 @@ Bridges.Variable.add_all_bridges
### [Bridges implemented](@id variable_bridges_ref)

```@docs
Bridges.Variable.FlipSignBridge
Bridges.Variable.ZerosBridge
Bridges.Variable.FreeBridge
Bridges.Variable.NonposToNonnegBridge
Expand Down
6 changes: 6 additions & 0 deletions docs/src/submodules/Utilities/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@ Utilities.state
Utilities.mode
```

### Mock optimizer

```@docs
Utilities.MockOptimizer
```

## Printing

```@docs
Expand Down
Loading