Minimum Vertex Cover API Reference
Data
Data model for Minimum Vertex Cover use case.
MinimumVertexCoverData
Bases: UcData
Data for the Minimum Vertex Cover use case.
Finds the smallest set of vertices such that every edge has at least one endpoint in the set.
Attributes:
-
name(Literal['minimum_vertex_cover']) –Identifier.
-
adjacency_matrix(BinAdjMatrix) –Symmetric binary adjacency matrix.
-
node_names(list[int | str]) –Node identifiers.
plot(*, ax: Axes | None = None) -> Axes
Plot the Minimum Vertex Cover graph instance.
Parameters:
-
ax(Axes | None, default:None) –Matplotlib axes to draw on. Creates a new figure if
None.
Returns:
-
Axes–The axes with the plot.
to_string() -> str
from_adjacency_matrix(adjacency_matrix: NDArray[np.float64], node_names: list[int | str]) -> MinimumVertexCoverData
staticmethod
Create MinimumVertexCoverData from an adjacency matrix.
Parameters:
-
adjacency_matrix(ndarray) –Symmetric binary adjacency matrix.
-
node_names(list[int | str]) –Node identifiers.
Returns:
-
MinimumVertexCoverData–The Minimum Vertex Cover data instance.
generate_random(n_nodes: int = 5, edge_prob: float = 0.5, seed: int | None = None) -> MinimumVertexCoverData
staticmethod
Generate a random Minimum Vertex Cover instance.
Parameters:
-
n_nodes(int, default:5) –Number of nodes in the graph, by default 5.
-
edge_prob(float, default:0.5) –Probability of an edge between any two nodes, by default 0.5.
-
seed(int | None, default:None) –Random seed for reproducibility, by default None.
Returns:
-
MinimumVertexCoverData–A randomly generated data instance.
Examples:
Formulation
Formulation for Minimum Vertex Cover use case.
MinimumVertexCoverFormulation
Bases: UcFormulation[MinimumVertexCoverData, MinimumVertexCoverSolution]
Constraint-based formulation for Minimum Vertex Cover.
Mathematical Formulation
to_string(data: MinimumVertexCoverData) -> str
staticmethod
Format the formulation as a string.
Parameters:
-
data(MinimumVertexCoverData) –The problem data.
Returns:
-
str–Formatted description of the formulation.
formulate(data: MinimumVertexCoverData) -> Model
staticmethod
Formulate the Minimum Vertex Cover problem.
Parameters:
-
data(MinimumVertexCoverData) –The problem data containing the graph structure.
Returns:
-
Model–The optimization model.
interpret(solution: Solution, data: MinimumVertexCoverData) -> MinimumVertexCoverSolution
staticmethod
Extract a structured solution from the solver result.
Parameters:
-
solution(Solution) –The solver solution.
-
data(MinimumVertexCoverData) –The problem data.
Returns:
-
MinimumVertexCoverSolution–Structured solution with cover nodes and validity.
Raises:
-
NoSolutionFoundError–If no feasible solution was found.
Solution
Solution model for Minimum Vertex Cover use case.
MinimumVertexCoverSolution
Bases: UcSolution
Solution for Minimum Vertex Cover.
Attributes:
-
name(Literal['minimum_vertex_cover']) –Identifier.
-
cover_nodes(list[int | str]) –Nodes in the cover.
-
cover_size(int) –Number of nodes in the cover.
-
is_valid(bool) –Every edge has at least one endpoint in cover.
plot(data: MinimumVertexCoverData | None = None, *, ax: Axes | None = None) -> Axes
Plot the Minimum Vertex Cover solution on the problem graph.
Nodes in the cover are highlighted in a different color.
Parameters:
-
data(MinimumVertexCoverData | None, default:None) –Problem data used to reconstruct the graph. Required -- a
ValueErroris raised whenNone. -
ax(Axes | None, default:None) –Matplotlib axes to draw on. Creates a new figure if
None.
Returns:
-
Axes–The axes with the plot.
Raises:
-
ValueError–If data is
None.
to_string() -> str
Format the solution as a human-readable string.
Returns:
-
str–String representation of the solution.
Instance
Instance model for Minimum Vertex Cover use case.
MinimumVertexCoverInstance
Bases: UcInstance[MinimumVertexCoverData, MinimumVertexCoverFormulation, MinimumVertexCoverSolution]
Instance combining data and formulation for Minimum Vertex Cover.
Collection
Collection of Minimum Vertex Cover instances.
MinimumVertexCoverCollection
Bases: UcInstanceCollection[MinimumVertexCoverInstance]
Collection of Minimum Vertex Cover instances.
This collection provides methods to generate benchmark instances with various characteristics for testing and evaluation.
from_random(min_nodes: int | None = None, max_nodes: int | None = None, edge_prob: float = 0.5, num_instances: int = 1, *, sizes: Sequence[int] | None = None, seed: int | None = None) -> MinimumVertexCoverCollection
classmethod
Generate random Minimum Vertex Cover instances.
Parameters:
-
min_nodes(int | None, default:None) –Minimum number of nodes per instance.
-
max_nodes(int | None, default:None) –Maximum number of nodes per instance.
-
edge_prob(float, default:0.5) –Probability of an edge between any two nodes, by default 0.5.
-
num_instances(int, default:1) –Number of instances per node count, by default 1.
-
seed(int | None, default:None) –Random seed for reproducibility, by default None.
-
sizes(Sequence[int] | None, default:None) –Explicit sizes to generate, e.g.
[10, 50, 100], instead of a range. Mutually exclusive withmin_nodes/max_nodes, by default None.
Returns:
-
MinimumVertexCoverCollection–Collection containing generated instances.
Examples:
filter_infeasible(max_runtime: float = 3600, *, quiet: bool = True) -> list[bool]
Drop the instances of this collection that have no feasible solution.
Every instance is formulated and handed to SCIP, which stops as soon as
it finds the first feasible solution. An instance is removed from the
collection when SCIP proves the model infeasible, when no solution turns
up within max_runtime, or when formulating it fails altogether. This
keeps randomly generated instances from breaking a downstream pipeline.
Parameters:
-
max_runtime(float, default:3600) –SCIP time limit per instance in seconds. Must be positive. Defaults to 3600 seconds.
-
quiet(bool, default:True) –Suppress the SCIP solver output.
Returns:
-
list[bool]–Feasibility mask over the instances as they were before filtering, in that order:
Truewhere the instance was kept,Falsewhere it was removed.
Raises:
-
ValueError–If
max_runtimeis not positive.