@@ -3374,6 +3374,41 @@ function MOI.write_to_file(model::Optimizer, filename::String)
33743374 return
33753375end
33763376
3377+ function MOI. compute_conflict! (model:: Optimizer )
3378+ solver = MathOptIIS. Optimizer ()
3379+ MOI. set (solver, MathOptIIS. InfeasibleModel (), model)
3380+ MOI. set (solver, MathOptIIS. InnerOptimizer (), Optimizer)
3381+ MOI. set (solver, MOI. Silent (), MOI. get (model, MOI. Silent ()))
3382+ if (time_limit = MOI. get (model, MOI. TimeLimitSec ())) != = nothing
3383+ MOI. set (solver, MOI. TimeLimitSec (), time_limit)
3384+ end
3385+ MOI. compute_conflict! (solver)
3386+ model. conflict_solver = solver
3387+ return
3388+ end
3389+
3390+ function MOI. get (optimizer:: Optimizer , attr:: MOI.ConflictStatus )
3391+ if optimizer. conflict_solver === nothing
3392+ return MOI. COMPUTE_CONFLICT_NOT_CALLED
3393+ end
3394+ return MOI. get (optimizer. conflict_solver, attr)
3395+ end
3396+
3397+ function MOI. get (optimizer:: Optimizer , attr:: MOI.ConflictCount )
3398+ if optimizer. conflict_solver === nothing
3399+ return 0
3400+ end
3401+ return MOI. get (optimizer. conflict_solver, attr)
3402+ end
3403+
3404+ function MOI. get (
3405+ optimizer:: Optimizer ,
3406+ attr:: MOI.ConstraintConflictStatus ,
3407+ con:: MOI.ConstraintIndex ,
3408+ )
3409+ return MOI. get (optimizer. conflict_solver, attr, con)
3410+ end
3411+
33773412# These enums are deprecated. Use the `kHighsXXX` constants defined in
33783413# libhighs.jl instead.
33793414
@@ -3402,28 +3437,3 @@ end
34023437@enum (HighsObjSense, kMinimize = 1 , kMaximize = - 1 )
34033438@enum (HighsVartype, kContinuous = 0 , kInteger = 1 , kImplicitInteger = 2 )
34043439@enum (HighsStatus, HighsStatuskError = - 1 , HighsStatuskOk, HighsStatuskWarning)
3405-
3406- function MOI. compute_conflict! (model:: Optimizer )
3407- solver = MathOptIIS. Optimizer ()
3408- MOI. set (solver, MathOptIIS. InfeasibleModel (), model)
3409- MOI. set (solver, MathOptIIS. InnerOptimizer (), Optimizer)
3410- MOI. set (solver, MOI. Silent (), MOI. get (model, MOI. Silent ()))
3411- MOI. compute_conflict! (solver)
3412- model. conflict_solver = solver
3413- return
3414- end
3415-
3416- function MOI. get (optimizer:: Optimizer , attr:: MOI.ConflictStatus )
3417- if optimizer. conflict_solver === nothing
3418- return MOI. COMPUTE_CONFLICT_NOT_CALLED
3419- end
3420- return MOI. get (optimizer. conflict_solver, attr)
3421- end
3422-
3423- function MOI. get (
3424- optimizer:: Optimizer ,
3425- attr:: MOI.ConstraintConflictStatus ,
3426- con:: MOI.ConstraintIndex ,
3427- )
3428- return MOI. get (optimizer. conflict_solver, attr, con)
3429- end
0 commit comments