Originally posted by: RWunderling
Just a few points of (hopefully) clarification:
1. The Simplex algorithm operates on a basis as it's main data type.
Thus specifying a basis is the only way to provide a well defined starting
point to simplex.
2. CPLEX has code that tries to guess a basis given a set of starting
vectors. The theory actually provides a uniquely defined basis if you
provide consistent primal and dual vectors. Unfortunately, numerics
get in the way of theory here, and the computation of a basis from an
optimal set of primal and dual vectors is not perfect. Still providing
both, the primal and the dual vector is the second best way of providing
a starting point for the Simplex algorithm
3. If only one of the vectors (e.g. only the primal) is provided, there
is no more theory that one could rely on to define a good starting basis.
In fact one can prove that for a given starting vector you could define
a potentially large family of simplex bases that are all consistent with
the starting vector. Which one CPLEX then ends up picking is more or less
random. As a consequence, specifying only one starting vector is a very
weak way of provinding a starting point for Simplex. This issue gets worse
the more degenerate your problem is.
Hope this helps,
Roland
#CPLEXOptimizers#DecisionOptimization