1

I am trying to understand The Cassowary Linear Arithmetic Constraint Solving Algorithm, and I am having trouble understanding symbolic weights, starting in section 2.3.

Working through the example, this is the objective function:

$$ \begin{bmatrix}1&0\end{bmatrix}\delta^+_{x_m} + \begin{bmatrix}1&0\end{bmatrix}\delta^-_{x_m} + \begin{bmatrix}0&1\end{bmatrix}\delta^+_{x_l} + \begin{bmatrix}0&1\end{bmatrix}\delta^-_{x_l} + \begin{bmatrix}0&1\end{bmatrix}\delta^+_{x_r} + \begin{bmatrix}0&1\end{bmatrix}\delta^-_{x_r} $$

I do not understand why $\delta^+_{x_r}$ was chosen as the correct pivot, since there are four candidates with the same weight, and both it and $\delta^+_{x_l}$ share the same $c_i/a_{IJ}$ value. For example, pivoting instead on $\delta^+_{x_l}$ produces a different basic feasible solution (which is ostensibly incorrect?):

$$ x_l=40, x_m=50, x_r=60 $$

This solution satisfies all of the constraints, however it satisfies the opposite weak constraint. Even so, I am assuming that other solution is better for some reason, otherwise it seems unstable.

The previous sections regarding objective functions without symbolic weights makes sense to me, so I feel like I am missing something important about this paper or perhaps the Simplex Algorithm.

My understanding of lexicographic ordering of weights for pivoting is this: choose the candidate with the smallest value in the first position (strong), then break ties by choosing the smallest value in the second position (weak).

1 Answers1

1

The objective function listed in the question was accurate only for the edit and stay constraints. After adding the "original" four constraints, the objective function then contained negative symbolic weights which were then appropriately selected by the algorithm. After finding a solution, the objective function only contained non-negative symbolic weights.

The understanding of lexicographic ordering was correct in that the value in the first position is compared, and subsequent values "break ties".