Skip to content

Adding compatibility checks for HiGHS (and perhaps other solvers?) #762

Description

@tvalenciaz

Writing and running some examples with HiGHS, I identified a couple of issues where we could check compatibility from the start. I'm not sure if there was already a discussion about whether it is our job or the user's to verify that the solver they intend to use does support the features requested, but we could issue more helpful errors:

  1. If using HiGHS with PH and problem has integers/binaries. HiGHS does not support MIQP and just fails with status= unknown, TerminationCondition=unknown. It's true that if the user runs with --tee, then the solver does print "cannot solve MIQP with HiGHS". But we could make it easier for the user requiring --linearize-proximal-terms , or at least issue a more descriptive error.
  2. HiGHS does not return reduced costs*, so --reduced-cost-spoke and related features cannot be used.
    *I am not 100% sure about this, but I have noticed that the suffix attribute that is supposed to hold the reduced costs is empty when I use HiGHS and the error thrown is a bit cryptic. My hypothesis is that the solver does not return them, so we could issue a more helpful error saying that. This was tested with the hydro example in generic_tester.py as well as with the "relief" example introduced in Adding (basic) LShaped support to generic cylinders #761

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