The matrix a constraint makes

The multipliers were a set

A crossover that solves the equality problem an interior-point iterate's diagonal suggests, then certifies the answer, refuses a guess with more active rows than unknowns — which a degenerate vertex produces as a matter of course. The two remedies a simplex code and a regularised solver would reach for, choosing a basis or regularising the extra rows, both return the right point from the first or second iterate, and both fail the certificate on most programmes, at almost every iterate. The point is never what fails. The certificate checks the one multiplier vector a solve happens to return, and at a degenerate vertex the multipliers are a set; asking whether the set holds a nonnegative vector certifies the same point at once.

Worth reading first: A condition number sent to infinity · An eigenvector that must not change sign.

A test with no tolerance in it scored two ways of stopping an interior-point method on a convex quadratic programme. The method’s own test is a tolerance on μ, the barrier parameter. The other is a crossover: take the constraints whose diagonal entry zi/siz_i/s_i exceeds one, solve the equality problem they define, and certify the answer — feasible for every row left out, nonnegative multipliers on every row kept. A point that passes is the solution, whatever produced it. The crossover won by thirteen iterations and two orders of magnitude, certifying from an iterate with one correct digit.

Its last section listed what it had not reached, and one item was blunter than the rest. The crossover “refuses more equalities than unknowns, and a degenerate vertex produces them routinely. What a crossover should do then — choose a basis, as the simplex method does, or regularise the matrix, as the quasi-definite construction does — is the case these essays have not reached, and it is the case that decides whether any of this is usable on a linear programme.”

Both remedies are easy to build, and both work in the sense that matters least. They return the right point. They do not return a point the certificate will accept, and the reason is not in the point.

A vertex with rows to spare

The programmes are built so the answer is known before they are solved. Twenty unknowns, forty rows of random normal entries, and a solution x∗x^* that is a vertex: twenty rows pass through it with positive multipliers, which pins it down whatever the objective is. Then ee further rows are made to pass through the same point with zero multipliers — two, four or eight of them. Those rows are active, and nothing holds them there; remove any one and the solution does not move. That is degeneracy in the strict sense, and it is what a linear programme’s optimal vertex usually looks like, because a vertex in a high-dimensional polytope of many constraints commonly lies on more of them than it needs.

Each set of rows is used twice: with a quadratic objective, and with the Hessian set to zero, which is a linear programme. The method is the plain long-step path-following one the earlier essays ran — Newton on the perturbed optimality conditions, a fixed centring parameter, a step to 99 per cent of the boundary — and at every iterate four crossovers are tried:

  • plain — the guess as it stands, refused if it has more rows than unknowns;
  • basis — the guessed rows in decreasing zi/siz_i/s_i, each kept only if it is independent of those already kept, until twenty are kept: a basis chosen by the diagonal, as a simplex code would choose one by its own pricing;
  • regularised — every guessed row kept, with −δI-\delta I in place of the saddle matrix’s zero block, δ=10−10\delta = 10^{-10}, so that the surplus rows are fitted in least squares instead of contradicting each other;
  • set — the basis crossover’s point, certified a different way, described below.
The first interior-point iterate from which each of four crossovers certifies the solution, on six quadratic programmes whose solution is a vertex of twenty rows, with none, two, four and eight further rows through the same point0 extra, the guess as it stands: 1, 2, 1, 2, 1, 2; 0 extra, a basis chosen by z/s: 1, 1, 1, 2, 1, 1; 0 extra, regularised, δ = 10⁻¹⁰: 1, 2, 1, 2, 1, 2; 0 extra, basis point, any multipliers: 1, 1, 1, 2, 1, 1; 2 extra, the guess as it stands: never, never, never, 2, 4, 3; 2 extra, a basis chosen by z/s: 4, 2, 2, 2, 1, 3; 2 extra, regularised, δ = 10⁻¹⁰: never, never, never, 2, never, 3; 2 extra, basis point, any multipliers: 2, 1, 2, 2, 1, 2; 4 extra, the guess as it stands: never, never, never, never, never, never; 4 extra, a basis chosen by z/s: never, never, never, never, 1, 3; 4 extra, regularised, δ = 10⁻¹⁰: never, never, never, 4, never, 3; 4 extra, basis point, any multipliers: 1, 1, 1, 4, 1, 3; 8 extra, the guess as it stands: never, never, never, never, never, never; 8 extra, a basis chosen by z/s: never, 6, never, never, never, never; 8 extra, regularised, δ = 10⁻¹⁰: never, never, never, 3, never, never; 8 extra, basis point, any multipliers: 1, 1, 1, 3, 1, 2. Programmes of twenty unknowns and forty rows; the linear programmes built the same way certify at the same iterates to within one.0246810121416neverno extra rowsthe guess as it standsa basis chosen by z/sregularised, δ = 10⁻¹⁰basis point, any multipliers2 extra rowsthe guess as it stands3 of 6a basis chosen by z/sregularised, δ = 10⁻¹⁰4 of 6basis point, any multipliers4 extra rowsthe guess as it stands6 of 6a basis chosen by z/s4 of 6regularised, δ = 10⁻¹⁰4 of 6basis point, any multipliers8 extra rowsthe guess as it stands6 of 6a basis chosen by z/s5 of 6regularised, δ = 10⁻¹⁰5 of 6basis point, any multipliersfirst iterate whose crossover certifiessix programmes a row; QP shown, LP the samethe multipliers are a set
Fig. 1 The first iterate whose crossover certifies, for each of the four crossovers on six programmes, at each count of extra rows; the right-hand column counts programmes on which a crossover never certifies. With no extra rows every crossover certifies at the first or second iterate. With four or more, only the last does.

With no extra rows nothing new happens. The guess has twenty rows from the first or second iterate, the plain crossover certifies there as it did before, and so does everything else. With extra rows the guess grows past twenty — the diagonal calls every row through the vertex active, because on every one of them the slack is going to zero — and the plain crossover refuses: at two extra rows it certifies on three programmes of six, and only at iterates where the guess happened to leave a degenerate row out; at four and eight it never does.

The two remedies do little better. At four extra rows the basis certifies on two programmes of six and the regularised crossover on two; at eight, on one each.

The point was never what failed

The figure invites the reading that the remedies return the wrong point. They do not.

The error of the crossover's point and of the interior-point method's own iterate at every iterate of six quadratic programmes with four extra rows through the vertex, with the iterates at which the point is certified against any nonnegative multipliers markedThe crossover's point is correct to about fifteen digits from iterate 1 to 3; the method's own iterate reaches 2e-13 or better after 16 to 17 iterates. The set certificate passes at 93 of the 104 iterates.02468101214161810⁻¹⁶10⁻¹⁴10⁻¹²10⁻¹⁰10⁻⁸10⁻⁶10⁻⁴10⁻²110²iteraterelative errorthe method's iteratethe crossover's pointdots: certifiedsix programmes, four extra rowsright from the first iterates
Fig. 2 Six programmes with four extra rows: the error of the method’s own iterate (red) and of the crossover’s point (blue) at every iterate, with the iterates at which the point is certified by the set question marked. The point is correct to about fifteen digits from the first to the third iterate; the method needs sixteen or seventeen to reach thirteen.

On every programme, with any number of extra rows, the basis crossover’s point is within 10−1210^{-12} of x∗x^* by the third iterate, and on most by the first. That is the earlier essays’ finding in its purest form: at a vertex the point is fixed by any twenty independent rows through it, so any basis of guessed rows that are truly active gives exactly x∗x^*, and the diagonal knows which rows are truly active almost at once. The regularised crossover’s point is correct to ten digits on 685 of the 709 iterates at which the guess holds every strongly active row, the difference being δ\delta acting on the surplus rows; on the other twenty-four the guess also holds a row that is not active, which the least-squares fit cannot honour exactly. The method itself takes its usual sixteen or seventeen iterates and ends at about 10−1310^{-13}; degeneracy at a vertex does not slow it, unlike the weakly active rows of the active set before the digits, where the solution lay on a face and the method’s error fell only as the square root of μ.

And on every iterate where the basis crossover refuses after its point is exact, the refusal has the same form: the point is feasible for every row to rounding, and one of the multipliers the solve returned is negative — by between 1.07 and 3,278 over all the quadratic programmes with four or eight extra rows, and by 3.6 to 59 on the programme the next figure follows.

What each certificate measured at each iterate of one programme with four extra rows through its vertex: the most negative multiplier the basis and regularised crossovers return, and the residual of the best nonnegative multipliers for the basis pointThe basis crossover's most negative normalised multiplier is between 3.6 and 59 in size from iterate 2, and the regularised crossover's about 1.4; the nonnegative least-squares residual for the same point is below 10⁻¹⁴ from iterate 1. Floored at 10⁻¹⁷; the certificate's tolerance is 10⁻¹⁰.024681012141610⁻¹⁷10⁻¹³10⁻⁹10⁻⁵10⁻¹10³iteratesizebasis: most negative multiplierregularised: most negativeany multipliers: residualdashed: the certificate's toleranceone multiplier vector, or any
Fig. 3 One programme with four extra rows: the most negative normalised multiplier returned by the basis crossover and by the regularised one at each iterate, and the residual of the best nonnegative multipliers for the basis crossover’s point. The dashed line is the certificate’s tolerance.

A negative multiplier would mean, at a nondegenerate solution, that the point is not optimal: relaxing that row would improve the objective, so the row should not be active. Here it means nothing of the kind. The optimality conditions ask for some nonnegative zz with Hx−f=CATzH x - f = C_A^{\mathsf T} z on the active rows AA. At a nondegenerate vertex the active rows are exactly as many as the unknowns and independent, so there is one such zz, and a solve returns it. At a degenerate vertex there are more active rows than unknowns, the equation has a whole family of solutions, and the nonnegative ones form a polytope inside it. A basis solve returns the one member of the family supported on that basis; the regularised solve returns roughly the smallest member in the least-squares sense. Neither has any reason to be in the polytope, and on these programmes they mostly are not.

Asking the question the conditions ask

The repair is to certify the way the optimality conditions are stated. Given the crossover’s point, take every guessed row it makes tight — normalised slack under 10−910^{-9} — and ask whether any nonnegative combination of those rows equals Hx−fHx - f. That is a nonnegative least-squares problem with twenty equations and as many unknowns as there are tight rows: twenty-four here, solved by Lawson and Hanson’s active-set method in a few dozen small solves. If its residual is at rounding, the point satisfies every optimality condition with that zz, and it is the solution. If not, it is not.

On the programme the figure shows, the residual is about 10−1510^{-15} from the first iterate on, where the basis crossover’s own multipliers are wrong by units. Over all forty-eight runs — quadratic and linear, every count of extra rows — the set question certifies the point at the first iterate at which the point is exact and the diagonal has called every strongly active row active, sometimes sooner, and at every iterate after.

One quadratic programme whose solution is a vertex of twenty rows with 4 further rows through it: at each interior-point iterate, which of four crossovers certifies, how many rows the diagonal calls active, and how many correct digits the crossover's point and the method's own iterate carryOver 17 iterates the plain crossover certifies at 0, the basis chosen by z/s at 0, the regularised one at 0, and the basis point certified against any nonnegative multipliers at 16. The guess holds 24 rows at the end against 20 unknowns. The crossover's point is correct to fifteen digits from iterate 1; the method's own iterate reaches thirteen at the last.the guess as it standsa basis chosen by z/sregularised, δ = 10⁻¹⁰basis point, any multipliersrows the guess calls active025232324242424242424242424242424crossover point, digits015151515151514141414141414151414the method's own iterate, digits00122245678910111213140246810121416iteratefilled: certified · red counts: more rows than unknownsthe point is right; the certificate is asked the wrong question
Fig. 4 One programme iterate by iterate: filled cells where each crossover certifies, the number of rows the guess calls active (red when it exceeds the unknowns), and the correct digits of the crossover’s point and of the method’s own iterate. The dial sets the number of extra rows through the vertex.

The dial shows the whole story in the cells. With no extra rows every row of cells fills from the first iterate; the four crossovers are the same computation. At two extra rows the guess holds twenty-two rows from the first iterate and the plain crossover’s row empties. At four, the basis and regularised rows empty too, though the digits row beneath them reads fifteen from the first iterate onward; only the last row, the same point certified by the set question, stays filled. At eight, the same. The method’s own digits climb one an iterate along the bottom row, and the crossover had all of them before the method had one.

Nothing about the set question depends on degeneracy. With no extra rows the nonnegative combination is unique and it is the multiplier vector the solve returns, so the set question and the plain certificate agree at every iterate; with extra rows it is the only one of the four that still says yes.

Why the diagonal calls the spare rows active

The guess holds every degenerate row from the first few iterates on, and that is itself worth a measurement, because a row whose multiplier at the solution is zero was expected to look like the weakly active rows of the earlier essays — a diagonal entry that hovers within a decade or two of one and is never classified. It does not. On the programme the figures follow, at the eighth iterate the four degenerate rows’ slacks are between 2⋅10−62 \cdot 10^{-6} and 8⋅10−68 \cdot 10^{-6} and their multipliers between 0.2 and 0.8, so their diagonal entries are 3⋅1043 \cdot 10^{4} to 5⋅1055 \cdot 10^{5}, inside the range of the strongly active rows’ 3⋅1043 \cdot 10^{4} to 3⋅1063 \cdot 10^{6}. At the last iterate both groups sit between 101210^{12} and 101410^{14}; over every programme, the spare rows’ smallest diagonal entry at the end is within three decades of the strong rows’ smallest, and their smallest multiplier is above 0.006. The inactive rows’ entries are at 10−1410^{-14}.

The multipliers of the degenerate rows do not go to zero, though the multiplier vector the programme was built with has zeros there. That is a known property of path-following methods rather than an accident of these programmes: the method’s iterates converge to the centre of the solution set, and at a degenerate vertex the solution set of the multipliers is the polytope described above, whose centre has every entry strictly positive. So the method has been carrying a nonnegative member of the multiplier set all along — strictly positive on all twenty-four rows — and the diagonal calls the spare rows active because, in the method’s own accounting, they are carrying force. A multiplier is a force read a multiplier as the force a constraint exerts to hold the solution; at a degenerate vertex the force can be shared among more rows than are needed, and the method shares it evenly.

That is also why the set question’s answer is never in doubt once the point is exact. The polytope it asks about is not merely nonempty; it has an interior, and the method’s own multipliers are near its centre. What the basis and the regularised solves return are its edges or points outside it, and a certificate that inspects one of those is inspecting the least representative member of the set.

What the certificate was for

The share of interior-point iterates, from the first at which the crossover's point is exact, at which each of four crossovers certifies it, on six programmes at each count of extra rows through the vertex0 extra, plain: 98%; 0 extra, basis: 100%; 0 extra, regularised: 98%; 0 extra, set: 100%; 2 extra, plain: 7%; 2 extra, basis: 74%; 2 extra, regularised: 5%; 2 extra, set: 98%; 4 extra, plain: 0%; 4 extra, basis: 18%; 4 extra, regularised: 3%; 4 extra, set: 97%; 8 extra, plain: 0%; 8 extra, basis: 11%; 8 extra, regularised: 1%; 8 extra, set: 97%.0%25%50%75%100%no extra rows98%100%98%100%2 extra rows7%74%5%98%4 extra rows0%18%3%97%8 extra rows0%11%1%97%the guess as it standsa basis chosen by z/sregularised, δ = 10⁻¹⁰basis point, any multipliersshare of iterates certified, from the first at which the point is exactsix quadratic programmes a grouponly the set question keeps answering
Fig. 5 The share of iterates, from the first at which the crossover’s point is exact, at which each crossover certifies it, on six programmes at each count of extra rows.

The shares put a number on how far the two remedies are from usable. Counting only iterates at which the point is already exact — so that any refusal is a refusal of the right answer — the plain crossover certifies 98 per cent of them with no extra rows and none at four or eight; the basis 74 per cent at two extra rows, 18 per cent at four and 11 at eight; the regularised crossover 5, 3 and 1 per cent. The set question certifies 97 to 100 per cent at every count, the remainder being the iterates at which the diagonal has not yet called one of the strongly active rows active.

That last qualification is the honest limit of the set question, and it is not a limit of degeneracy. A crossover reads the active set off the diagonal; if the diagonal has not yet placed a row whose multiplier is needed, no certificate built on that guess can pass, and none should. On four programmes the set question certifies one to three iterates before the diagonal has settled on every strongly active row, because the degenerate rows’ own nonnegative combinations happen to reach the missing row’s direction — a legitimate certificate, since the conditions ask only that some nonnegative combination exists, and degenerate rows are entitled to carry multipliers.

The certificate is also as strict as before. Moved by a millionth in alternating directions, the same point loses its tight rows and is refused; with one strongly active row deleted from the guess, the nonnegative combinations no longer reach Hx−fHx - f and it is refused. A test that certifies everything would have passed both. A shift that certifies a saddle and a test with no tolerance in it both rest on certificates whose value is that they can say no, and this one still can.

The objective said nothing

Every number above is the same for the linear programmes as for the quadratic ones, to within an iterate — the first certifying iterate of the set question differs by at most one on all twenty-four pairs. At a vertex that is not surprising once it is said: twenty independent active rows determine the point, the Hessian enters only through Hx−fHx - f, which the multipliers absorb, and the diagonal’s identification of the active rows is driven by the slacks going to zero, which is geometry. So the question the earlier essay posed — whether any of this is usable on a linear programme — has the answer that a linear programme at a vertex is the case where it is cleanest, provided the certificate asks for a nonnegative member of the multiplier set rather than for the member a solve returns.

The simplex method meets the same fact as degenerate pivoting. At a degenerate vertex it can hold a basis that is primal feasible with a negative reduced cost, pivot to another basis on the same vertex, and repeat — moving among bases without moving the point, sometimes forever without an anti-cycling rule. That is exactly what the basis crossover’s refusals are: bases on the right vertex, with the wrong multipliers. The simplex method’s way out is to keep pivoting; the crossover’s is to stop asking any single basis for its multipliers. Two ways to remove a constraint and the zero that is not a missing entry are about the same saddle matrix with one multiplier per row, and this is the case where that one-to-one picture fails and the matrix’s solution is no longer the conditions’ only solution.

What forty-eight runs do not show

The extra rows here pass exactly through the vertex, in exact construction, so their slacks go to zero with the others. On a real degenerate programme the extra rows pass through the vertex only to the data’s rounding, and the tightness threshold of 10−910^{-9} decides which of them count; a row whose slack sits at 10−810^{-8} would be left out, and if its multiplier were needed the certificate would refuse a correct point. That threshold has not been varied. Nonnegative least squares on twenty-four columns is cheap; on a programme with thousands of degenerate rows it is a quadratic programme of its own, and its cost against a crossover’s single solve is not measured. And the random rows here are well conditioned; the near-dependence among degenerate rows that makes real linear programmes hard is absent.

Still open: rows near the vertex, the cost at scale, and a basis chosen by the set

Rows that only nearly pass through. Perturb each extra row so its slack at x∗x^* is 10−k10^{-k} instead of zero. The prediction with a sign is that the set question keeps certifying at every kk from 6 to 14, because a row with positive slack at the solution needs no multiplier and is correctly left out of the tight set, and that the basis crossover’s refusal rate falls as kk falls, because a row the diagonal no longer calls active cannot be chosen into a basis with the wrong sign.

What the set question costs. Lawson–Hanson’s iterations grow with the number of tight rows. The prediction is that on programmes of a hundred unknowns with fifty extra rows, the set question costs less than one interior-point step — a square solve of three hundred rows — at every iterate, so that trying it at every iterate still adds less than the fraction the earlier essay priced.

A basis from the set. The nonnegative least-squares solution is supported on at most twenty of the tight rows; those rows form a basis on which the solve’s own multipliers are nonnegative. The prediction is that taking that support as the basis makes the basis crossover certify at the same iterates as the set question, which would turn the certificate into the pivot rule a degenerate simplex step lacks.

Shares its objects with

Essays that name at least two of the same things, and that neither author linked.

Named objects

A flat tag is an object no other essay names yet.

Active setCertificateDegeneracyForward errorInterior-point methodLagrange multiplierQuasi-definite matrixSaddle-point systems