It looks like DirectedAcyclicGraph.remove only ever expands the top/bottom sets, which means that removing a vertex from a DAG leaves it in the top and bottom sets indefinitely.
|
top.union(graph.out(vertex).stream().filter(v -> graph.in(v).size() == 1).collect(Sets.collector())); |
It looks like DirectedAcyclicGraph.remove only ever expands the top/bottom sets, which means that removing a vertex from a DAG leaves it in the top and bottom sets indefinitely.
bifurcan/src/io/lacuna/bifurcan/DirectedAcyclicGraph.java
Line 206 in 32b3fbf