-
-
Notifications
You must be signed in to change notification settings - Fork 679
Description
- Implement a single entry point for recursively enumerated sets:
RecursivelyEnumeratedSet(seeds, successors, structure=..., enumeration=...)
where structure takes values in the set [None, 'forest', 'graded', 'symmetric'] and enumeration takes values in the set [None, 'depth', 'breadth', 'naive'].
-
Deprecate
TransitiveIdeal,TransitiveIdealGradedandSearchForestas entry point. -
TransitiveIdeal(succ, seeds)keeps the same behavior as before and is now the same asRecursivelyEnumeratedSet(seeds, succ, structure=None, enumeration='naive'). -
TransitiveIdealGraded(succ, seeds, max_depth)keeps the same behavior as before and is now the same asRecursivelyEnumeratedSet(seeds, succ, structure=None, enumeration='breadth', max_depth=max_depth).
Remarks:
A. For now the code of SearchForest is still in sage/combinat/backtrack.py. It should be moved in sage/sets/recursively_enumerated_set.pyx. See #16351.
B. TransitiveIdeal and TransitiveIealGraded are used in the code of sage/combinat, sage/categories and sage/groups at least. These should be updated to use RecursivelyEnumeratedSet for speed improvements and also to avoid issues explained in C below. See #16352.
C. Note that there were some issues with TransitiveIdeal and TransitiveIdealGraded, namely:
- Enumeration of
TransitiveIdealis claimed to be depth first search in the top level filebacktrack.py, but in fact, it is neither breadth first neither depth first. It is what I call a naive search. - Enumeration of
TransitiveIdealGradedis indeed breadth first as claimed but it does not make use of the graded hypothesis at all because it remembers every generated elements.
See my status report at SageDays57 for more info.
Depends on #14052
CC: @sagetrac-sage-combinat @hivert
Component: combinatorics
Keywords: backtrack, enumerated set, transitive closure, days57
Author: Sébastien Labbé
Branch: 3191690
Reviewer: Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/6637