Skip to content

Commit 8e347ea

Browse files
committed
08_reach.ipynb: Add code to perform reachability queries
Currently supported reachability labels are only: - backward topological levels (negative-cut filter) - min-post tree intervals (positive-cut filter) - min-post graph intervals (negative-cut filter), which is not yet produced by anything in `labelling.dfs_intervals` There are three versions of reachability querying with the help of reachability labels (all suport the same set of labels): - recursive `generic_is_reachable()`, like Algorithm 3 from FELINE paper - stack-using `generic_is_reachable_dfs()` - queue-using `generic_is_reachable_bfs()`, split into few subroutines All of those pass the basic tests. Compared to the original Google Colab notebook the FELINE index support and the support for extensions to min-post intervals from PReaCH got removed for the time being. Code cleaned-up by exporting it via `nbdev_build_lib` equivalent, then using PyCharm 2020.3, finally `nbdev_update_lib` was used to update the `08_reach.ipynb` notebook.
1 parent 29ae05c commit 8e347ea

File tree

3 files changed

+1721
-7
lines changed

3 files changed

+1721
-7
lines changed

08_reach.ipynb

Lines changed: 1156 additions & 4 deletions
Large diffs are not rendered by default.

git_commit_graph_ext/_nbdev.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,13 @@
1010
"commit_graph": "03_example_graphs.ipynb",
1111
"find_levels": "06_levels.ipynb",
1212
"find_dfs_spanning": "07_interval_labels.ipynb",
13-
"find_dfs_intervals": "07_interval_labels.ipynb"}
13+
"find_dfs_intervals": "07_interval_labels.ipynb",
14+
"generic_is_reachable": "08_reach.ipynb",
15+
"generic_is_reachable_dfs": "08_reach.ipynb",
16+
"reachable_positive_cut": "08_reach.ipynb",
17+
"reachable_negative_cut": "08_reach.ipynb",
18+
"walk_spanning": "08_reach.ipynb",
19+
"generic_is_reachable_bfs": "08_reach.ipynb"}
1420

1521
modules = ["example_graphs.py",
1622
"labelling/levels.py",

0 commit comments

Comments
 (0)