Optionally compute dual variables for rational problems
When looking at the lexicographical minimum as the minimum
of a standard simplex problem, the corresponding objective
function is the first unit vector e_1 (since the first variable
is minimized first).
That is, we are dealing with the problem
min e_1 x : x >= 0, M x + v >= 0
The dual of this problem is
max -u v : u >= 0, u M <= e_1
The initial tableau is
[ x ] [ I ] [ 0 ]
[ z_1 ] = [ M_1 ] y + [ v_1 ]
[ z_2 ] [ M_2 ] [ v_2 ]
In the optimal tableau y is replaced by y = B y' + c,
where B = M_1^{-1}. That is, we have
[ x ] [ B ] [ c ]
[ z_1 ] = [ I ] y' + [ 0 ]
[ z_2 ] [ M_2 B ] [ M_2 c + v_2 ]
Let b_1 be the first row of B, then b_1 contains only
nonnegative entries (since the columns are always
lexico-positive). Clearly b_1 M_1 = b_1 B^{-1} = e_1,
while M_1 c + v_1 = B^{-1} c + v_1 = 0 and so
b_1 M_1 c + b_1 v_1 = c_1 + b_1 v_1 = 0, where
c_1 is the first entry of c, i.e., the value of the
objective function.
The requested vector u therefore has the elements
of b_1 for the rows where the corresponding unit
vectors appear in the optimal tableau and zeros
for the other rows.
The values of the dual variables are attached
in the next_then element of the node that contains
the list of the values of the primal variables.