Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Trac #31129: Improve Depth First Search in c_graph.pyx
This ticket simply applies the improvements of #31117 to depth first search as well. Before: {{{ sage: def comp(): ....: for n in [5, 10, 50, 100, 500, 1000]: ....: G = graphs.Grid2dGraph(n, n) ....: print(G) ....: %timeit _ = list(G.depth_first_search(start=(0, 0))) ....: sage: comp() 2D Grid Graph for [5, 5] 8.11 µs ± 115 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each) 2D Grid Graph for [10, 10] 26.9 µs ± 64.3 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each) 2D Grid Graph for [50, 50] 827 µs ± 1.4 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) 2D Grid Graph for [100, 100] 3.35 ms ± 5.38 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) 2D Grid Graph for [500, 500] 115 ms ± 218 µs per loop (mean ± std. dev. of 7 runs, 10 loops each) 2D Grid Graph for [1000, 1000] 470 ms ± 882 µs per loop (mean ± std. dev. of 7 runs, 1 loop each) }}} After: {{{ sage: def comp(): ....: for n in [5, 10, 50, 100, 500, 1000]: ....: G = graphs.Grid2dGraph(n, n) ....: print(G) ....: %timeit _ = list(G.depth_first_search(start=(0, 0))) ....: sage: comp() 2D Grid Graph for [5, 5] 4.41 µs ± 12.3 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each) 2D Grid Graph for [10, 10] 13.2 µs ± 27.5 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each) 2D Grid Graph for [50, 50] 409 µs ± 225 ns per loop (mean ± std. dev. of 7 runs, 1000 loops each) 2D Grid Graph for [100, 100] 1.67 ms ± 7.46 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) 2D Grid Graph for [500, 500] 65.8 ms ± 54.2 µs per loop (mean ± std. dev. of 7 runs, 10 loops each) 2D Grid Graph for [1000, 1000] 264 ms ± 331 µs per loop (mean ± std. dev. of 7 runs, 1 loop each) }}} URL: https://trac.sagemath.org/31129 Reported by: gh-kliem Ticket author(s): Jonathan Kliem Reviewer(s): David Coudert
- Loading branch information