Skip to content

Commit 3d2dbac

Browse files
committed
Added some IIS documentation
1 parent 5353cad commit 3d2dbac

File tree

9 files changed

+72
-36
lines changed

9 files changed

+72
-36
lines changed

docs/make.jl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
* *
33
* This file is part of the HiGHS linear optimization suite *
44
* *
5-
* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, *
6-
* Leona Gottwald and Michael Feldmeier *
7-
* *
85
* Available as open-source under the MIT License *
96
* *
107
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *=#
@@ -68,7 +65,8 @@ Documenter.makedocs(
6865
"structures/classes/HighsSparseMatrix.md",
6966
"structures/classes/HighsLp.md",
7067
"structures/classes/HighsHessian.md",
71-
"structures/classes/HighsModel.md"
68+
"structures/classes/HighsModel.md",
69+
"structures/classes/HighsIis.md"
7270
],
7371
"Structures" => Any[
7472
"structures/structs/index.md",

docs/src/guide/advanced.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,21 @@ and
2929
yield a specific row or column of ``B^{-1}A``. In all cases,
3030
HiGHS can return the number and indices of the nonzeros in the result.
3131

32+
## Irreducible infeasibility system (IIS) detection(@id highs-iis)
33+
34+
An Irreducible infeasibility system (IIS) consists of a set of
35+
variables and a set of constraints in a model, together with
36+
variable/constraint bound information, that cannot be satisfied (so is
37+
infeasible). It is irreducible in that if any constraint or variable
38+
bound is removed, then the system can be satisfied (so is feasible).
39+
40+
HiGHS has an IIS facility that is under development. Currently it can only be used for LPs.
41+
42+
## IIS-related methods in the `Highs` class
43+
44+
- `const HighsLp& getIisLp()`: Return a const reference to the internal IIS LP instance
45+
- `HighsStatus getIis(HighsIis& iis)`: Try to find an IIS for the incumbent model. Gets the internal [`HighsIis`](@ref highs-iis-class) instance, returning `HighsStatus::kError` if the calculation failed. Note that if the incumbent model is found to be feasible, this is a "success", and `HighsStatus::kOk` is returned.
46+
- ` HighsStatus writeIisModel(const std::string& filename = "")`: Write out the internal IIS LP instance to a file.
47+
48+
49+

docs/src/guide/further.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@ linear objective is represented by the following data, held in the
125125

126126
Multi-objective optimization in HiGHS is defined by the following methods
127127

128-
- [addLinearObjective](@ref Multi-objective-optimization] - Add a single `HighsLinearObjective` instance to any already stored in HiGHS
129-
- [clearLinearObjectives](@ref Multi-objective-optimization] - Clears any linear objectives stored in HiGHS
128+
- [addLinearObjective](@ref Multi-objective-optimization) - Add a single `HighsLinearObjective` instance to any already stored in HiGHS
129+
- [clearLinearObjectives](@ref Multi-objective-optimization) - Clears any linear objectives stored in HiGHS
130130

131131
When there is at least one `HighsLinearObjective` instance in HiGHS,
132132
the `col_cost_` data in the incumbent model is ignored.

docs/src/structures/classes/HighsHessian.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
A Hessian matrix is communicated via an instance of the HighsHessian class.
44

5-
- dim_: Scalar of type integer - Dimension of the Hessian
6-
- format\_: Scalar of [HessianFormat](@ref) type - Format of the Hessian
7-
- start\_: Vector of integer type - Start of each compressed column in the Hessian
8-
- index\_: Vector of integer type - Indices of the nonzeros in the Hessian
9-
- value\_: Vector of double type - Values of the nonzeros in the Hessian
5+
- `dim_`: Scalar of type integer - Dimension of the Hessian
6+
- `format\_`: Scalar of [HessianFormat](@ref) type - Format of the Hessian
7+
- `start\_`: Vector of integer type - Start of each compressed column in the Hessian
8+
- `index\_`: Vector of integer type - Indices of the nonzeros in the Hessian
9+
- `value\_`: Vector of double type - Values of the nonzeros in the Hessian
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# [HighsIis](@id highs-iis-class)
2+
3+
Irreducible infeasibility system (IIS) data are communicated via an instance of the `HighsIis` class.
4+
5+
- `valid\_`: The data in the HighsIis instance is valid
6+
- `strategy\_`: The IIS strategy used
7+
- `col\_index\_`: The indices of model columns in the IIS
8+
- `row\_index\_`: The indices of model rows in the IIS
9+
- `col\_bound\_`: The bounds on each column that define the IIS
10+
- `row\_bound\_`: The bounds on each row that define the IIS
11+
- `col\_status\_`: Indicates whether a column in the model is in an IIS, may be in an IIS, or is not in an IIS
12+
- `row\_status\_`: Indicates whether a row in the model is in an IIS, may be in an IIS, or is not in an IIS
13+
- `info\_`: Data on the time and number of simplex iterations required to form the IIS
14+
- `model\_`: A `HighsModel` consisting of the variables, constraints and bounds in the IIS. Currently only its `HighsLp` instance is relevant
15+
16+
Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# HighsLp
22

3-
An LP model is communicated via an instance of the HighsLp class
3+
An LP model is communicated via an instance of the `HighsLp` class
44

5-
- num\_col\_: Scalar of type integer - Number of columns in the model
6-
- num\_row\_: Scalar of type integer - Number of rows in the model
7-
- col\_cost\_: Vector of type double - Coefficients of the linear term in the objective function
8-
- col\_lower\_: Vector of type double - Lower bounds on the variables
9-
- col\_upper\_: Vector of type double - Upper bounds on the variables
10-
- row\_lower\_: Vector of type double - Lower bounds on the constraints
11-
- row\_upper\_: Vector of type double - Upper bounds on the constraints
12-
- a\_matrix\_: Instance of [HighsSparseMatrix](@ref) class - Constraint matrix
13-
- sense\_: Scalar of type [ObjSense](@ref) - Optimization sense of the model
14-
- offset\_: Scalar of type double - Constant term in the objective function
15-
- model\_name\_: Scalar of type string - Name of the model
16-
- objective\_name\_: Scalar of type string - Name of the objective function
17-
- col\_names\_: Vector of type string - Names of the variables
18-
- row\_names\_: Vector of type string - Names of the constraints
19-
- integrality\_: Vector of type [HighsVarType](@ref) - Type of each variable
5+
- `num\_col\_`: Scalar of type integer - Number of columns in the model
6+
- `num\_row\_`: Scalar of type integer - Number of rows in the model
7+
- `col\_cost\_`: Vector of type double - Coefficients of the linear term in the objective function
8+
- `col\_lower\_`: Vector of type double - Lower bounds on the variables
9+
- `col\_upper\_`: Vector of type double - Upper bounds on the variables
10+
- `row\_lower\_`: Vector of type double - Lower bounds on the constraints
11+
- `row\_upper\_`: Vector of type double - Upper bounds on the constraints
12+
- `a\_matrix\_`: Instance of [HighsSparseMatrix](@ref) class - Constraint matrix
13+
- `sense\_`: Scalar of type [ObjSense](@ref) - Optimization sense of the model
14+
- `offset\_`: Scalar of type double - Constant term in the objective function
15+
- `model\_name\_`: Scalar of type string - Name of the model
16+
- `objective\_name\_`: Scalar of type string - Name of the objective function
17+
- `col\_names\_`: Vector of type string - Names of the variables
18+
- `row\_names\_`: Vector of type string - Names of the constraints
19+
- `integrality\_`: Vector of type [HighsVarType](@ref) - Type of each variable

docs/src/structures/classes/HighsModel.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@
22

33
A QP model is communicated via an instance of the HighsModel class
44

5-
- lp\_: Instance of [HighsLp](@ref) class - LP components of the model
6-
7-
- hessian\_: Instance of [HighsHessian](@ref) class - Hessian matrix
5+
- `lp\_`: Instance of [HighsLp](@ref) class - LP components of the model
6+
- `hessian\_`: Instance of [HighsHessian](@ref) class - Hessian matrix

docs/src/structures/classes/HighsSparseMatrix.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
The constraint matrix of an LP model is communicated via an instance of the HighsSparseMatrix class
44

5-
- format\_: Scalar of [MatrixFormat](@ref) type - Format of the matrix
6-
- num\_col\_ : Scalar of integer type - Number of columns in the matrix
7-
- num\_row\_: Scalar of integer type - Number of rows in the matrix
8-
- start\_: Vector of integer type - Start of each compressed vector in the matrix
9-
- index\_: Vector of integer type - Indices of the nonzeros in the matrix
10-
- value\_: Vector of double type - Values of the nonzeros in the matrix
5+
- `format\_`: Scalar of [MatrixFormat](@ref) type - Format of the matrix
6+
- `num\_col\_ `: Scalar of integer type - Number of columns in the matrix
7+
- `num\_row\_`: Scalar of integer type - Number of rows in the matrix
8+
- `start\_`: Vector of integer type - Start of each compressed vector in the matrix
9+
- `index\_`: Vector of integer type - Indices of the nonzeros in the matrix
10+
- `value\_`: Vector of double type - Values of the nonzeros in the matrix

highs/lp_data/IIS.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# HiGHS Irreducible infeasibility system (IIS) facility
2+
3+
Further to documentation
4+
5+

0 commit comments

Comments
 (0)