diff --git a/ortools/linear_solver/highs_interface.cc b/ortools/linear_solver/highs_interface.cc index 3dc5a8e499..ec4c372767 100644 --- a/ortools/linear_solver/highs_interface.cc +++ b/ortools/linear_solver/highs_interface.cc @@ -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(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(solver_->time_limit()) / 1000.0); + } + // Set parameters. absl::StatusOr response = HighsSolveProto(std::move(request));