I learned that the Simplex Algorithm loopscan loop forever/returnsreturn a suboptimal solution whenever it's degenerate.
For $n$ variables and $m$ constraints, this is when two or more sets of $n$ constraints are tight at a particular point.
Let's say that the any three of the four constraints in $\{1, 2, 3, 4 \}$ yield the sameexact intersection point when tight.
Say that there are two more constraints $\{ 5, 6\}$ such that constraints $\{1, 5, 6\}$ when tight yield the vertex that is optimal.
Now, say that initially $\{1, 2, 3 \}$ are tight. For the sake of argument, let $\{ 1, 2, 5\}, \{1, 2, 6\}, \{ 1, 5, 3\}, \{1, 6, 3 \}, \{5, 2, 3 \}, \{6, 2, 3 \}$ are infeasible/smaller in objective.
Then, all the feasible neighbours have the same objective (due to identical vertex) or less objective. If we set our Simplex to terminate at this point, it will lead to a suboptimal solution.
Otherwise, we set our Simplex rule such that maintaining the same objective is fine. However, then, consider the following execution: $\{1, 2, 3\} \implies \{1, 2, 4\} \implies \{1, 2, 3\}$ which is a loop! Since Simplex is deterministic and does not keep track of history, this will repeat forever with the same suboptimal solution.
This is the problem with degenerate vertices. The way we deal with them is to either use Bland's rule or make sure to never visit the same tight set again. The latter will lead to something where we iterate through all the combinations of the same vertex. Ultimately, there will be some combination that will be adjacent to some more optimal combination, at which point we start making progress again.
Am I correct in my understanding? Your help is much appreciated.