Normality of a dual pair of convex programs #
A convex program (P) is normal when its perturbation function is closed at the origin,
(cl (inf F))(0) = (inf F)(0),
and this one condition turns out to be equivalent to the absence of a duality gap and to normality
of the dual (P*). Ten sufficient conditions for it are collected below, and under normality the
Kuhn–Tucker vectors of (P) are precisely the optimal solutions of (P*). Everything rests on
Fenchel–Moreau at the origin, (cl f)(0) = ⨆ y, ⨅ x, (⟨x, y⟩ + f x): with f = inf F the inner
infimum is the dual objective (F* 0)(y), so (cl (inf F))(0) = sup F* 0.
Main definitions #
Normal F— normality of the convex program associated withF.supBifun G,domConcaveBifun G,ConcaveConsistent G,ConcaveStronglyConsistent G,ConcaveNormal G,ConcaveKuhnTucker— the concave counterparts ofinfBifun,domBifun,Consistent,StronglyConsistent,NormalandKuhnTucker, each the convex notion at-G.
Main results #
clFn_infBifun_zero_eq_iSup_adjointBifun,clConcave_supBifun_adjointBifun_zero_eq— each optimal value is the other program's perturbation function closed at the origin;iSup_adjointBifun_eq_bot_iffand companions — inconsistency of one program as unboundedness of the other;liminf_infBifun_eq_iSup_adjointBifun— the same values as aliminf.normal_iff_iSup_adjointBifun_eq,concaveNormal_adjointBifun_iff,normal_iff_concaveNormal_adjointBifun— normality, absence of a duality gap and normality of the dual are one condition (Theorem 30.3 in [^1]).StronglyConsistent.normal,normal_of_concaveStronglyConsistent_adjointBifun,normal_of_kuhnTucker_nonempty,normal_of_exists_setOf_leand companions — ten sufficient conditions for normality (Theorem 30.4 in [^1], clauses (a)–(j)).mem_kuhnTucker_iff_adjointBifun_zero_eq_iSup,kuhnTucker_eq_setOf_isMax— the Kuhn–Tucker vectors are exactly the dual optimal solutions (Theorem 30.5 in [^1]), withmem_concaveKuhnTucker_adjointBifun_iff_mem_argminfor the dual assertion;exists_infBifun_eq_of_concaveStronglyConsistent— attainment of the primal infimum.
Implementation notes #
The first formula for (cl (inf F))(0) needs only convexity of F, not closedness: it is
Fenchel–Moreau for inf F, and the adjoint does not distinguish F from cl F. So normality and
the absence of a duality gap agree for every convex bifunction, and only normality of the dual
needs ClosedBifun F. A Kuhn–Tucker vector is made to imply normality through weak duality rather
than through subgradients, so needs no finite dimension.
References #
[^1]: R. T. Rockafellar, Convex Analysis, Princeton University Press, 1970, §30.
The closure of a convex function at the origin #
Fenchel–Moreau at the origin. For a convex f, the closure at 0 is the supremum over the
dual variable of the infimum of x ↦ ⟨x, y⟩ + f x. Everything below rests on this computation.
Normality #
A convex program is normal when its perturbation function is closed at the origin,
(cl (inf F))(0) = (inf F)(0). When 0 ∈ cl (dom F) this is lower semicontinuity of
u ↦ inf F u at u = 0.
Equations
Instances For
The concave counterparts of the convex vocabulary #
The optimal value of the concave program G y, as a function of the perturbation y: the
mirror of infBifun. Rockafellar writes sup G.
Equations
- Tdaf.ConvexAnalysis.supBifun G y = ⨆ (v : V), G y v
Instances For
The effective domain of -G is the concave effective domain of G: -(G y v) ≠ ⊤ and
G y v ≠ ⊥ are the same condition. This turns every consistency hypothesis about a concave program
into the corresponding hypothesis about the convex program -G.
The mirror of dom_infBifun.
The mirror of Consistent: the unperturbed concave program has a point where it is not
-∞.
Equations
Instances For
The mirror of Normal for a concave program: (cl (sup G))(0) = (sup G)(0), the closure taken
in the concave sense.
Equations
Instances For
Concave normality of G is ordinary normality of -G. This is what makes each concave
sufficient condition free: it is the corresponding convex one read at -F*, pairings flipped.
The mirror of StronglyConsistent.
Equations
Instances For
Strong consistency of the concave program G is strong consistency of -G; this is what lets
the concave consistency statements be read off the convex ones.
Concavity of the dual perturbation function #
The mirror of convexFn_infBifun: the optimal value of a concave program is a concave function
of the perturbation.
The two optimal values #
The optimal value of the dual program: (cl (inf F))(0) = sup F* 0. Closedness of F is
not needed — the formula is Fenchel–Moreau for inf F, and F* does not see the closure.
Normality is exactly the absence of a duality gap: sup F* 0 = inf F 0.
The dual of clFn_infBifun_zero_eq_iSup_adjointBifun: the concave closure of the dual
perturbation function at the origin is the optimal value of the doubly-adjoint program.
Normality of (P), of (P*), and the absence of a duality gap #
The optimal value of the primal program: (cl (sup F*))(0) = inf F 0 for a closed convex
bifunction. Closedness is what turns F** back into F.
The dual program is normal exactly when there is no duality gap.
A closed convex program is normal exactly when its dual program is.
Sufficient conditions for normality #
If a Kuhn–Tucker vector exists then normality holds. Such a vector is a point at which the dual
objective reaches inf F 0, and weak duality says it can never exceed it. (Finiteness of the
optimal value is already part of KuhnTucker.)
Under normality, and with the optimal value finite, the Kuhn–Tucker vectors of (P) are
exactly the optimal solutions of (P*).
The same as an equation between sets: the Kuhn–Tucker set is the set of dual maximisers.
A Kuhn–Tucker vector is a dual optimal solution, with common optimal value inf F 0. This half
needs no normality hypothesis — the vector's existence supplies it.
A strongly consistent convex program is normal: a convex function agrees with its closure throughout the relative interior of its effective domain, which here contains the origin.
A strictly consistent convex program is normal.
Strong consistency of the dual program #
The concave mirror: a strongly consistent concave program is normal.
If the dual program is strongly consistent then normality holds for the pair.
Bounded level sets and bounded sets of optimal solutions #
F with a linear function of x subtracted off; its optimal value at u is -(F u)*(y), so
the dual-value formula applied to it computes the whole y-slice sup (F* y) of the adjoint.
Equations
- Tdaf.ConvexAnalysis.shiftBifun Bx F y u x = F u x - ↑((Bx x) y)
Instances For
Subtracting a linear function of x keeps a convex bifunction convex.
Shifting by y and reading the adjoint at the origin is the adjoint at y.
The dual objective at an arbitrary y: the supremum defining it is the closure, at the
origin, of the optimal value of the shifted program.
If the perturbed objective F u - ⟨·, y⟩ is bounded below for every perturbation u, then
y belongs to the effective domain of the dual program.
domConcaveBifun F* asks for sup (F* y) ≠ -∞, which is cl (inf (F - ⟨·, y⟩)) 0 ≠ -∞, strictly
stronger than the inf (F - ⟨·, y⟩) 0 ≠ -∞ that y ∈ dom ((F 0)*) says. What bridges them is that
a proper convex function has a proper closure. This is the one statement here needing
FiniteDimensional ℝ U.
If some level set {x | (F 0)(x) ≤ α} is non-empty and bounded, then normality holds for (P)
and (P*).
A bounded level set gives 0 ∈ int (dom ((F 0)*)), but strict consistency of (P*) is
0 ∈ int (domConcaveBifun F*), an intersection over all perturbations u of the sets
dom ((F u)*), and openness of an intersection is not automatic. What makes it open is that all
slices of a closed convex bifunction have the same recession function, so every
int (dom ((F u)*)) is described by the same inequality and they are all equal. No properness is
assumed: an improper closed convex bifunction has inf F 0 = -∞, where normality is trivial.
If the optimal solutions to (P) form a non-empty bounded set — in particular if there is
exactly one — then normality holds. With F 0 proper this is the level-set criterion, since
argmin (F 0) is then a level set at the minimum value. Properness is not removable: for
F 0 ≡ ⊤ over a zero-dimensional X the optimal solutions are non-empty and bounded while no
level set is.
Bounded level sets of the dual objective #
If some superlevel set {v | α ≤ (F* 0)(v)} of the dual objective is non-empty and bounded,
then normality holds for (P) and (P*).
This is the level-set criterion read for the convex program associated with -F*, which is
convex and closed with no hypothesis on F: its objective is -(F* 0) and its sublevel set at
-α is the superlevel set of F* 0 at α. Normality of that program is concave normality of
F*, hence normality of (P). Going this way needs no concave mirror of the level-set and
recession machinery on V.
If the optimal solutions to (P*) form a non-empty bounded set — in particular if there is
exactly one — then normality holds. The bounded-argmin criterion read for the convex program
associated with -F*; properness of the objective is not removable there either.
Consistency of the two programs #
A dichotomy for conjugates: the conjugate of a convex function is identically ⊤ exactly
when the function takes the value ⊥ somewhere. One direction is free; the other uses that a
proper convex function has a proper closure, whose conjugate is proper, and (cl f)* = f*.
The dual objective, negated, is the conjugate of the perturbation function at the reflected
point: -(F* 0)(v) = (inf F)*(-v).
The dual objective is -∞ at v exactly when the conjugate of the perturbation function is
+∞ at -v.
Inconsistency of the dual: (P*) is inconsistent exactly when some perturbation of (P)
is unbounded below. Closedness of F is not needed, because F* never sees the difference
between F and cl F.
The positive form: (P*) is consistent exactly when no perturbation of (P) is unbounded
below.
The objective of the doubly-adjoint program #
Three algebraic facts about G* 0 for a concave G. They carried the whole instance context of
the consistency section with an omit list per declaration; none of them uses any of it, so they
sit in their own section at the weakest layer instead.
The mirror of adjointBifun_zero_apply: the objective of the program associated with the
concave adjoint is (G* 0)(x) = ⨆ y (⟨x, y⟩ + sup G y).
The doubly-adjoint objective is the conjugate of -sup G: (-sup G)* = G* 0.
-sup G is convex when G is a concave bifunction: it is inf (-G).
Inconsistency of the primal: (P) is inconsistent exactly when some perturbation of (P*)
is unbounded above. Unlike the dual half this does need F closed: it is that half read for the
dual pair, and F** = F identifies the objective of (P).
The positive form: (P) is consistent exactly when no perturbation of (P*) is unbounded
above.
Kuhn–Tucker vectors of the dual program #
Kuhn–Tucker vectors for a concave program, the mirror of KuhnTucker: the x for which
⨆ y (⟨y, x⟩ + sup G y) is finite and equal to the optimal value sup G 0.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The concave mirror is the reflection of the convex notion: x is a Kuhn–Tucker vector of the
concave program G exactly when -x is one of the convex program -G.
The concave mirror: a concave program possessing a Kuhn–Tucker vector is normal. Such a vector
is a supergradient of sup G at the origin, and a convex function agrees with its closure wherever
it is subdifferentiable.
If the dual program has a Kuhn–Tucker vector (its optimal value being finite, which is part
of ConcaveKuhnTucker), then normality holds for the pair.
Polyhedral programs #
A polyhedral convex program that is merely consistent is normal: inf F is then polyhedral,
and a polyhedral convex function agrees with its closure throughout its effective domain, which
consistency places the origin in.
A concave bifunction is polyhedral when its negative is: the mirror of
PolyhedralBifun.
Equations
- Tdaf.ConvexAnalysis.ConcavePolyhedralBifun G = Tdaf.ConvexAnalysis.PolyhedralBifun fun (y : Y) (v : V) => -G y v
Instances For
The concave mirror: a consistent polyhedral concave program is normal.
If the dual program is polyhedral and consistent then normality holds for the pair.
The two optimal values as a liminf and a limsup #
The mirror of liminf_nhds_le: a function is at most its own limsup along the neighbourhood
filter.
The concave mirror of clFn_eq_liminf_or: for concave g the concave closure at x is the
limsup of g at x, except when the left side is +∞ and the right -∞.
Unless both programs are inconsistent, liminf_{u → 0} (inf F u) = sup F* 0. The exception
is unavoidable: cl (inf F) and liminf (inf F) can differ only when the first is -∞, i.e. the
dual is inconsistent, and the second is +∞, which forces inf F 0 = +∞.
Dually: unless both programs are inconsistent, limsup_{y → 0} (sup F* y) = inf F 0.
The dual assertion, and attainment of the primal infimum #
The dual counterpart of "the Kuhn–Tucker vectors are the dual optimal solutions" comes last because
it needs both the concave Kuhn–Tucker vocabulary and the second-adjoint computation
concaveAdjointBifun_zero_apply introduced for the consistency criteria.
The concave mirror of mem_kuhnTucker_iff_adjointBifun_zero_eq: x is a Kuhn–Tucker vector
of the concave program G exactly when sup G 0 is finite and the objective of the doubly-adjoint
program attains it at x. Note that ConcaveKuhnTucker pairs with Bx.flip where the adjoint
pairs with Bx.
The dual assertion: under normality, x is a Kuhn–Tucker vector for (P*) exactly when it
is an optimal solution to (P). The defining supremum of a concave Kuhn–Tucker vector is the
objective of the doubly-adjoint program, and F** = F turns that into (F 0)(x); normality
identifies the two optimal values.
Attainment of the primal infimum: if (P) is consistent and (P*) is strongly consistent,
the infimum of (P) is attained.
The route is through the convex program associated with -F*: that is a convex bifunction with no
hypothesis on F, strong consistency of (P*) is strong consistency of it, and its perturbation
function -sup F* is proper because the optimal values are finite. Strong consistency then
produces a Kuhn–Tucker vector for -F*, which the dual assertion above turns into a minimiser of
F 0.