Function relp::algorithm::two_phase::phase_two::primal [−][src]
pub fn primal<IM, MP, PR>(
tableau: &mut Tableau<IM, NonArtificial<'_, MP>>
) -> OptimizationResult<IM::F> where
IM: InverseMaintener<F: InternalHR + Column<<MP::Column as Column>::F>>,
IM::F: Cost<MP::Cost>,
MP: MatrixProvider,
PR: PivotRule,
Expand description
Reduces the cost of the basic feasible solution to the minimum.
While calling this method, a number of requirements should be satisfied:
- There should be a valid basis (not necessarily optimal <=> dual feasible <=> c >= 0)
- All constraint values need to be positive (primary feasibility)
TODO(CORRECTNESS): Write debug tests for these requirements
Return value
An OptimizationResult
indicating whether or not the problem has a finite optimum. It cannot be
infeasible, as a feasible solution is needed to start using this method.