Fix failing Gurobi tests

This commit is contained in:
2022-01-25 11:57:14 -06:00
parent 2a76dd42ec
commit 1811492557

View File

@@ -5,6 +5,7 @@ import json
import logging import logging
from typing import Any, List, Dict from typing import Any, List, Dict
import gurobipy
import gurobipy as gp import gurobipy as gp
import networkx as nx import networkx as nx
import pytest import pytest
@@ -42,7 +43,10 @@ class GurobiStableSetProblem(Instance):
@overrides @overrides
def find_violated_user_cuts(self, model: Any) -> Dict[ConstraintName, Any]: def find_violated_user_cuts(self, model: Any) -> Dict[ConstraintName, Any]:
assert isinstance(model, gp.Model) assert isinstance(model, gp.Model)
vals = model.cbGetNodeRel(model.getVars()) try:
vals = model.cbGetNodeRel(model.getVars())
except gurobipy.GurobiError:
return {}
violations = {} violations = {}
for clique in nx.find_cliques(self.graph): for clique in nx.find_cliques(self.graph):
if sum(vals[i] for i in clique) > 1: if sum(vals[i] for i in clique) > 1:
@@ -74,7 +78,7 @@ def stab_instance() -> Instance:
@pytest.fixture @pytest.fixture
def solver() -> LearningSolver: def solver() -> LearningSolver:
return LearningSolver( return LearningSolver(
solver=GurobiSolver(), solver=GurobiSolver(params={"Threads": 1}),
components=[UserCutsComponent()], components=[UserCutsComponent()],
) )