File tree Expand file tree Collapse file tree 2 files changed +42
-8
lines changed
src/Bridges/Objective/bridges Expand file tree Collapse file tree 2 files changed +42
-8
lines changed Original file line number Diff line number Diff line change 77"""
88 FunctionizeBridge{T}
99
10- The `FunctionizeBridge` converts a `VariableIndex` objective into a
11- `ScalarAffineFunction{T}` objective.
10+ `FunctionizeBridge` implements the following reformulations:
11+
12+ * ``\\ min \\ {x\\ }`` into ``\\ min\\ {1x + 0\\ }``
13+ * ``\\ max \\ {x\\ }`` into ``\\ max\\ {1x + 0\\ }``
14+
15+ where `T` is the coefficient type of `1` and `0`.
16+
17+ ## Source node
18+
19+ `FunctionizeBridge` supports:
20+
21+ * [`MOI.ObjectiveFunction{MOI.VariableIndex}`](@ref)
22+
23+ ## Target nodes
24+
25+ `FunctionizeBridge` creates:
26+
27+ * One objective node: [`MOI.ObjectiveFunction{MOI.ScalarAffineFunction{T}}`](@ref)
1228"""
1329struct FunctionizeBridge{T} <: AbstractBridge end
1430
Original file line number Diff line number Diff line change 77"""
88 SlackBridge{T,F,G}
99
10- The `SlackBridge` converts an objective function of type `G` into a
11- [`MOI.VariableIndex`](@ref) objective by creating a slack variable and a
12- `F`-in-[`MOI.LessThan`](@ref) constraint for minimization or
13- `F`-in-[`MOI.GreaterThan`](@ref) constraint for maximization where `F` is
14- `MOI.Utilities.promote_operation(-, T, G, MOI.VariableIndex}`.
10+ `SlackBridge` implements the following reformulations:
1511
16- !!! note
12+ * ``\\ min\\ {f(x)\\ }`` into ``\\ min\\ {y\\ ;|\\ ; f(x) - y \\ le 0\\ }``
13+ * ``\\ max\\ {f(x)\\ }`` into ``\\ max\\ {y\\ ;|\\ ; f(x) - y \\ ge 0\\ }``
14+
15+ where `F` is the type of `f(x) - y`, `G` is the type of `f(x)`, and `T` is the
16+ coefficient type of `f(x)`.
17+
18+ ## Source node
19+
20+ `SlackBridge` supports:
21+
22+ * [`MOI.ObjectiveFunction{G}`](@ref)
23+
24+ ## Target nodes
25+
26+ `SlackBridge` creates:
27+
28+ * One variable node: [`MOI.VariableIndex`](@ref) in [`MOI.Reals`](@ref)
29+ * One objective node: [`MOI.ObjectiveFunction{MOI.VariableIndex}`](@ref)
30+ * One constraint node, that depends on the [`MOI.ObjectiveSense`](@ref):
31+ * `F`-in-[`MOI.LessThan`](@ref) if `MIN_SENSE`
32+ * `F`-in-[`MOI.GreaterThan`](@ref) if `MAX_SENSE`
33+
34+ !!! warning
1735 When using this bridge, changing the optimization sense is not supported.
1836 Set the sense to `MOI.FEASIBILITY_SENSE` first to delete the bridge, then
1937 set [`MOI.ObjectiveSense`](@ref) and re-add the objective.
You can’t perform that action at this time.
0 commit comments