highs: rework HighsInterface::Solve

This commit is contained in:
Corentin Le Molgat
2025-08-06 10:59:09 +02:00
parent 80af949922
commit 9cde24d763

View File

@@ -114,23 +114,6 @@ MPSolver::ResultStatus HighsInterface::Solve(const MPSolverParameters& param) {
Reset();
ExtractModel();
SetParameters(param);
if (quiet_) {
// parameters_.set_verbosity_level(0);
} else {
// parameters_.set_verbosity_level(3);
}
solver_->SetSolverSpecificParametersAsString(
solver_->solver_specific_parameter_string_);
// Time limit.
if (solver_->time_limit()) {
VLOG(1) << "Setting time limit = " << solver_->time_limit() << " ms.";
// parameters_.mutable_termination_criteria()->set_time_sec_limit(
// static_cast<double>(solver_->time_limit()) / 1000.0);
}
// Mark variables and constraints as extracted.
for (int i = 0; i < solver_->variables_.size(); ++i) {
set_variable_as_extracted(i, true);
@@ -147,6 +130,15 @@ MPSolver::ResultStatus HighsInterface::Solve(const MPSolverParameters& param) {
? MPModelRequest::HIGHS_MIXED_INTEGER_PROGRAMMING
: MPModelRequest::HIGHS_LINEAR_PROGRAMMING);
SetParameters(param);
request.set_enable_internal_solver_output(!quiet_);
request.set_solver_specific_parameters(
solver_->solver_specific_parameter_string_);
if (solver_->time_limit()) {
request.set_solver_time_limit_seconds(
static_cast<double>(solver_->time_limit()) / 1000.0);
}
// Set parameters.
absl::StatusOr<MPSolutionResponse> response =
HighsSolveProto(std::move(request));