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.