Skip to content

Suggestion/Question: Use primal simplex for IPM crossover cleanup? #3021

@Wronskode

Description

@Wronskode

​Hi everyone,
​I was looking into the IPM crossover logic and noticed that it performs a pushdual followed by a pushprimal.
​If my understanding is correct, finishing with the pushprimal phase should leave the resulting basis in a primal feasible state (according to the asserts in PushAll). However, it looks like the final cleanup is currently being routed to the dual simplex.
​Since the basis is already primal feasible (but potentially dual infeasible at this stage), wouldn't it make more sense and be more efficient to run the primal simplex for the cleanup? If the dual simplex is called instead, it likely has to trigger a Phase 1 to handle the dual infeasibilities, which seems to defeat the purpose of establishing primal feasibility right before it.
​Let me know if I'm missing something about the internal solver state after those push phases

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions