MIPLIB 2017 Infeas
Reference

Reading a file

Every published instance is a gzipped MPS beside a .meta.json sidecar recording how it was derived. The reference below explains each field; the JSON Schema is the machine-readable contract.

Both subsets

instancestring
Name of the MIPLIB 2017 instance this one derives from. The published file is that name plus _if or _ub.
sample_kindstring
Which half the file belongs to: pruned_infeasible_sibling for the primal set, lp_unbounded_after_drop for the dual one. The first name is older than the wording on these pages and claims more than the file records: what it holds is the side of a branch the search did not explore.
n_vars, n_cons, nnzinteger
Columns, rows and matrix nonzeros of the published file, counted from the file itself rather than from the model that produced it. The objective row is not counted in n_cons.
file_bytesinteger
Exact byte length of the published .mps.gz file.
sha256string
Lowercase SHA-256 digest of the published .mps.gz file. Use it with file_bytes to detect a truncated or corrupted download.
source_termsobject
Terms the source instance carries, which govern this file too. spdx is an SPDX identifier, or null for the 130 sources imported from an earlier MIPLIB, which carry no licence at all. That null is a finding, not a gap: miplib_import gives MIPLIB's own sentence behind it. A file pulled out of an archive alone still says what may be done with it.

Primal-infeasible

depthinteger
How deep in the branch-and-bound tree the node sits. The root is 0.
branch_var, branch_var_nameinteger, string
The branched column, as a 0-based index into the published file and as the name that file gives it. Prefer the name: on some instances a column is literally called x91 while sitting at index 90, so an index read as a name points at the wrong variable.
branch_sense, branch_valuestring, number
The bound that defines this side of the branch. >= 29 means the search took <= 28 and this file is the other side.
path_entrieslist of strings
Every bound the node tightens relative to the source instance, written x<index><sense><value>, where sense is <= or >=. The index is 0-based into the published file, which path_entries_are_column_indices records. This is the node's whole bound box, not only the branch decisions on the path to it, so it is usually far longer than the depth.
path_head_namedlist of strings
The first twelve entries with the column names resolved, which is what the page shows.

Dual-infeasible

n_droppedinteger
How many elements were removed from the source relaxation. natural_unbounded instances have zero: their relaxation was already unbounded.
drops[]list of objects
One entry per removal. A bound drop carries kind: bound, the column as var (0-based index) and name, which side was relaxed (lb for the lower bound or ub for the upper bound), and the original_value it held. A row drop carries kind: row, the row index and name, and the original_sense, original_rhs and original_range it had. A dropped row's coefficients are not recorded: restoring one means taking the row from the source instance.
natural_unboundedboolean
True when the source relaxation was already unbounded and nothing was removed.

Pipeline and versioning fields

These fields identify record formats or trace a file back to the run that made it. They are useful for reproducibility, but are not numerical properties of the linear program or versions of the MPS format.

sample_id, sample_kind_version, schema_version, sizevarious
Left over from the mining pipeline. sample_id indexes the candidate pool the published file was drawn from, not this collection. sample_kind_version and schema_version identify mining-pipeline record formats; neither is an MPS-format version. size is MIPLIB's own difficulty class for the source and says nothing about the published file.
parent_uid, parent_depthinteger
Solver-internal node identifiers from the run that produced the file. parent_depth is always depth - 1.
beta, n_rounds, picks, seedvarious
Parameters and the pre-pruning trace of the greedy search behind a dual-infeasible file. picks lists what the search removed before the pruning pass put most of it back, so it is much longer than drops and is not the published removal set.