Skip to content

Integrate HiGHS and few minor fixes#5139

Open
PedramHooshangiAUGAI wants to merge 7 commits intogoogle:stablefrom
augmenta-ai:stable
Open

Integrate HiGHS and few minor fixes#5139
PedramHooshangiAUGAI wants to merge 7 commits intogoogle:stablefrom
augmenta-ai:stable

Conversation

@PedramHooshangiAUGAI
Copy link
Copy Markdown

This pull request adds HiGHS solver support throughout the codebase, updates the HiGHS dependency, and improves integration with the build system and solver interfaces. It also includes a patch for SCIP to fix debug-build assertions and some minor documentation and logging improvements.

HiGHS Solver Integration:

  • Added support for HiGHS as a Mixed Integer Programming (MIP) solver in ChristofidesPathSolver, including the necessary preprocessor checks and solver instantiation (ortools/graph/christofides.h). [1] [2] [3] [4]
  • Enabled HiGHS-based integer programming example in RunAllExamples (examples/cpp/uncapacitated_facility_location.cc).

Build System and Configuration:

  • Upgraded the HiGHS dependency from version 1.11.0 to 1.12.0 in MODULE.bazel and enabled HiGHS in the workspace and Makefile (MODULE.bazel, or-tools.code-workspace, makefiles/Makefile.cpp.mk). [1] [2] [3]
  • Added a git_override for SCIP with a debug-build assertion patch in MODULE.bazel and included the patch file (MODULE.bazel, patches/scip-v10.0.0.patch). [1] [2]

Solver Interface Improvements:

  • Updated HighsInterface to correctly reference HiGHS instead of PDLP in comments and the SolverVersion() method (ortools/linear_solver/highs_interface.cc). [1] [2]
  • Improved handling of feasible solutions in HighsSolveProto by setting the objective value for both optimal and feasible statuses (ortools/linear_solver/proto_solver/highs_proto_solver.cc).<!--
    Thank you for submitting a PR!

Please make sure you are targeting the main branch instead of stable and that all contributors have signed the Contributor License Agreement.

This simply gives us permission to use and redistribute your contributions as part of the project.
Head over to https://cla.developers.google.com/ to see your current agreements on file or to sign a new one.

This project follows https://opensource.google.com/conduct/

Thanks!
-->

…lver

Fix crash when HiGHS returns FEASIBLE status (time limit, node limit, gap tolerance).
Now populates variable_value, objective_value, and best_objective_bound for both
MPSOLVER_OPTIMAL and MPSOLVER_FEASIBLE, consistent with SCIP solver behavior.
ACORN-11869: Populate variable values for FEASIBLE status in HiGHS
- Fix floating-point rounding assertions in clock.c
- Handle zero/near-zero constraint coefficients in cons_linear.c
- Clamp negative solving time in stat.c instead of asserting
- Update MODULE.bazel to apply SCIP patch via git_override
ACORN-11869: Add SCIP debug-build assertion fixes to patch file
@google-cla
Copy link
Copy Markdown

google-cla Bot commented Apr 16, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@PedramHooshangiAUGAI
Copy link
Copy Markdown
Author

CLA is green, no conflicts, workflow is awaiting maintainer approval. Happy to address review comments :).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant