Implement IsPartialOrderCoveringDigraph
property and add CoveringDigraph
versions for other properties
#632
Labels
feature-request
A label for feature requests
performance
A label for issues or PR related to performance
It would be useful to implement
IsPartialOrderCoveringDigraph
andIsLatticeCoveringDigraph
properties which check that a given digraph is the covering relation (the reflexive transitive reduction) of some partial order or lattice respectively. In a similar vein,CoveringDigraph
versions of any other order properties in Chapter 6.4 of theDigraphs
documentation. See also issue #84 for a discussion of properties of lattices and some suggestions relating to covering relations.The motivation behind this is that the
IsPartialOrderDigraph
andIsLatticeDigraph
properties both require that the underlying digraph is transitive. This matches the mathematical definition, however the covering relation (transitive reflexive reduction) of a partial order or lattice often has dramatically less edges. By extension there are often more efficient algorithms to check if a given digraph is the covering relation of some partial order or lattice.As an example, consider the full binary tree of height 14:
Note that
T
has an order of magnitude less edges thanS
. See also this stack exchange post on testing if a DAG is a lattice, the top answer discusses checking if the graph is the covering relation of a lattice for improving the time taken.A further suggestion would be to implement versions of the properties which accept an arbitrary subrelation of a partial order or lattice. I.e. a digraph whose reflexive transitive closure is a partial order or lattice.
The text was updated successfully, but these errors were encountered: