From 0b424cfbd16eb0ed7ec803b56ca12c2f7c58fc93 Mon Sep 17 00:00:00 2001 From: odow Date: Thu, 27 Mar 2025 13:35:59 +1300 Subject: [PATCH 1/3] [docs] improve the docstring for DUAL_INFEASIBLE --- src/attributes.jl | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/attributes.jl b/src/attributes.jl index 025d20e7ab..a76ac1aff3 100644 --- a/src/attributes.jl +++ b/src/attributes.jl @@ -2125,18 +2125,23 @@ struct ListOfSupportedNonlinearOperators <: AbstractOptimizerAttribute end """ The algorithm concluded that no dual bound exists for the problem. - If the problem is a conic optimization problem (thus also a linear program), this status means the dual - problem is infeasible. + If the problem is a conic optimization problem (thus also a linear program), + this status means the dual problem is infeasible. + + To check if the primal problem is feasible, set the objective sense to + [`FEASIBILITY_SENSE`](@ref) and re-solve the problem. + + If a primal feasible point does not exist, the original problem is both + primal and dual infeasible. If a primal feasible solution exists, this status typically implies that the problem is unbounded, with some technical exceptions (for example, if the problem is a conic optimization problem in which strong duality does not hold). - To check if the primal is unbounded, set the objective sense to - [`FEASIBILITY_SENSE`](@ref) and re-solve the problem. If a primal feasible - point exists, the original problem is unbounded. If a primal feasible point - does not exist, the original problem is both primal and dual infeasible. + The technical exceptions do not apply to linear programs. The combination of + [`DUAL_INFEASIBLE`](@ref) and a primal feasible point means that the primal + linear program is ubounded. """, DUAL_INFEASIBLE, """ From c75f8529cc3f33f30b9cf7ae3174bdfbe66c1fcf Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Thu, 27 Mar 2025 14:32:40 +1300 Subject: [PATCH 2/3] Update attributes.jl --- src/attributes.jl | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/attributes.jl b/src/attributes.jl index a76ac1aff3..a94b18f36b 100644 --- a/src/attributes.jl +++ b/src/attributes.jl @@ -2123,10 +2123,7 @@ struct ListOfSupportedNonlinearOperators <: AbstractOptimizerAttribute end """, INFEASIBLE, """ - The algorithm concluded that no dual bound exists for the problem. - - If the problem is a conic optimization problem (thus also a linear program), - this status means the dual problem is infeasible. + The algorithm proved that no dual feasible solution exists. To check if the primal problem is feasible, set the objective sense to [`FEASIBILITY_SENSE`](@ref) and re-solve the problem. From 68fd400c9fd0a70eeb576f9bf26a1f2ddd2e3a0a Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Thu, 27 Mar 2025 14:47:49 +1300 Subject: [PATCH 3/3] Update src/attributes.jl --- src/attributes.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/attributes.jl b/src/attributes.jl index a94b18f36b..6722eb285e 100644 --- a/src/attributes.jl +++ b/src/attributes.jl @@ -2138,7 +2138,7 @@ struct ListOfSupportedNonlinearOperators <: AbstractOptimizerAttribute end The technical exceptions do not apply to linear programs. The combination of [`DUAL_INFEASIBLE`](@ref) and a primal feasible point means that the primal - linear program is ubounded. + linear program is unbounded. """, DUAL_INFEASIBLE, """