Skip to content

Commit adf7b87

Browse files
Added support for optimize_with_safe_sequences_allow_geq_constraints
1 parent 5dd4e08 commit adf7b87

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

flowpaths/abstractwalkmodeldigraph.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99
class AbstractWalkModelDiGraph(ABC):
1010
# storing some defaults
1111
optimize_with_safe_sequences = True
12+
optimize_with_safe_sequences_allow_geq_constraints = True
1213
# TODO: optimize_with_subset_constraints_as_safe_sequences = True
1314
optimize_with_safety_as_subset_constraints = False
1415
optimize_with_max_safe_antichain_as_subset_constraints = False
1516
allow_empty_walks = False
17+
allow_empty_walks = False
1618

1719
def __init__(
1820
self,
@@ -123,6 +125,7 @@ def __init__(
123125
self.allow_empty_walks = optimization_options.get("allow_empty_walks", AbstractWalkModelDiGraph.allow_empty_walks)
124126
self.optimize_with_safety_as_subset_constraints = optimization_options.get("optimize_with_safety_as_subset_constraints", AbstractWalkModelDiGraph.optimize_with_safety_as_subset_constraints)
125127
self.optimize_with_max_safe_antichain_as_subset_constraints = optimization_options.get("optimize_with_max_safe_antichain_as_subset_constraints", AbstractWalkModelDiGraph.optimize_with_max_safe_antichain_as_subset_constraints)
128+
self.optimize_with_safe_sequences_allow_geq_constraints = optimization_options.get("optimize_with_safe_sequences_allow_geq_constraints", AbstractWalkModelDiGraph.optimize_with_safe_sequences_allow_geq_constraints)
126129

127130
self._is_solved = False
128131

@@ -362,7 +365,7 @@ def _apply_safety_optimizations(self):
362365
# print("Fixing variables for safe list #", i)
363366
# iterate over the edges in the safe list to fix variables to 1
364367
for u, v in self.walks_to_fix[i]:
365-
if self.G._is_scc_edge(u, v):
368+
if self.G._is_scc_edge(u, v) and self.optimize_with_safe_sequences_allow_geq_constraints:
366369
self.solver.add_constraint(
367370
self.edge_vars[(u, v, i)] >= 1,
368371
name=f"safe_list_u={u}_v={v}_i={i}",

0 commit comments

Comments
 (0)