From 7c5720750a7416f5bcabaf4ab90ceefb05ac9112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Tue, 13 Jan 2026 12:29:16 +0100 Subject: [PATCH 1/2] Explain reformulation for SOS1ToMILP --- src/Bridges/Constraint/bridges/SOS1ToMILPBridge.jl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Bridges/Constraint/bridges/SOS1ToMILPBridge.jl b/src/Bridges/Constraint/bridges/SOS1ToMILPBridge.jl index baae693cbc..f2df22a0f2 100644 --- a/src/Bridges/Constraint/bridges/SOS1ToMILPBridge.jl +++ b/src/Bridges/Constraint/bridges/SOS1ToMILPBridge.jl @@ -9,7 +9,14 @@ `SOS1ToMILPBridge` implements the following reformulation: - * ``x \\in \\textsf{SOS1}(d)`` into a mixed-integer linear program. + * ``x \\in \\textsf{SOS1}(d)`` into the following mixed-integer linear program. + +Assuming ``l_i \\le x_i \\le u_i`` with finite bounds ``l_i, u_i``: +```math +z_i \\in \{0, 1\} +\\sum z_i = 1 +l_i z_i \\le x_i \\le u_i z_i +``` ## Source node From 644aaa722e8b44caeea20973cc4092b7dc4a5f54 Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Wed, 14 Jan 2026 09:16:53 +1300 Subject: [PATCH 2/2] Correct mathematical notation in SOS1ToMILPBridge Fix formatting in mathematical representation of SOS1 constraints. --- src/Bridges/Constraint/bridges/SOS1ToMILPBridge.jl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Bridges/Constraint/bridges/SOS1ToMILPBridge.jl b/src/Bridges/Constraint/bridges/SOS1ToMILPBridge.jl index f2df22a0f2..7dd5d9f0b0 100644 --- a/src/Bridges/Constraint/bridges/SOS1ToMILPBridge.jl +++ b/src/Bridges/Constraint/bridges/SOS1ToMILPBridge.jl @@ -11,11 +11,13 @@ * ``x \\in \\textsf{SOS1}(d)`` into the following mixed-integer linear program. -Assuming ``l_i \\le x_i \\le u_i`` with finite bounds ``l_i, u_i``: +Assuming ``l_i \\le x_i \\le u_i`` with finite bounds ``l_i``, ``u_i``: ```math -z_i \\in \{0, 1\} +\\begin{aligned} +z_i \\in \\{0, 1\\} & \\;\\; \\forall i \\in 1\\ldots d \\\\ +l_i z_i \\le x_i \\le u_i z_i & \\;\\; \\forall i \\in 1\\ldots d \\\\ \\sum z_i = 1 -l_i z_i \\le x_i \\le u_i z_i +\\end{aligned} ``` ## Source node