-
Notifications
You must be signed in to change notification settings - Fork 64
Description
Computing all the edges of a partial order or lattice via DigraphReflexiveTransitiveClosure can be very time and memory intensive, especially for larger graphs. At the same time, many algorithms for lattices can be run quite efficiently even if some transitive edges are missing.
We should implement the functions
IsBetweenCoverAndPreorder- to check if a given digraph contains the cover relation of some preorder digraph, and is in turn contained in a preorder digraph.IsBetweenCoverAndPartialOrder- the equivalent functionality for partial orderIsBetweenCoverAndLattice- for lattices.
One naive way to implement this would be to compute the reflexive transitive closure and then apply the appropriate filter, i.e. IsLatticeDigraph(DigraphReflexiveTransitiveClosure(D)); would compute IsBetweenCoverAndLattice. However as mentioned above, doing so is memory intensive on large graphs, see also #636 . So the idea would be to implement IsBetweenCoverAndLattice ideally without adding any extra edges to the given digraph.
See also #664 and #632 for related, but not quite same problems.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status