Skip to content

jump-dev/MathOptIIS.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MathOptIIS.jl

Build Status codecov

MathOptIIS.jl is a basic IIS solver for MathOptInterface.jl.

License

MathOptIIS.jl is licensed under the MIT License.

Getting help

If you need help, please ask a question on the JuMP community forum.

If you have a reproducible example of a bug, please open a GitHub issue.

Installation

Install MathOptIIS using Pkg.add:

import Pkg
Pkg.add("MathOptIIS")

Usage

This package is not intended to be called directly from user-code. Instead, it should be added as a dependency to solver wrappers that want to provide an IIS.

To add to an existing wrapper, add a new field:

conflict_solver::Union{Nothing,MathOptIIS.Optimizer}

Then, add the following methods:

function MOI.compute_conflict!(model::Optimizer)
    solver = MathOptIIS.Optimizer()
    MOI.set(solver, MathOptIIS.InfeasibleModel(), model)
    MOI.set(solver, MathOptIIS.InnerOptimizer(), Optimizer)
    MOI.compute_conflict!(solver)
    model.conflict_solver = solver
    return
end

function MOI.get(optimizer::Optimizer, attr::MOI.ConflictStatus)
    if optimizer.conflict_solver === nothing
        return MOI.COMPUTE_CONFLICT_NOT_CALLED
    end
    return MOI.get(optimizer.conflict_solver, attr)
end

function MOI.get(
    optimizer::Optimizer,
    attr::MOI.ConstraintConflictStatus,
    con::MOI.ConstraintIndex,
)
    return MOI.get(optimizer.conflict_solver, attr, con)
end

The name

The optimization community consistently uses "IIS", but they have not standardized on what the acronym stands for. We have seen:

  1. Irreducible Infeasible Set
  2. Irreducibly Inconsistent Set
  3. Irreducible Infeasible Subsystem
  4. Infeasible Irreducible System
  5. Irreducible Inconsistent Subsystem
  6. Irreducibly Inconsistent System

So we choose the name MathOptIIS, and you can decide what the acronym stands for.

About

A simple irreducible infeasible subsystem solver for MathOptInterface.jl

Resources

License

Stars

Watchers

Forks

Languages