I want a subset of all simple paths in a relatively large network (~1k nodes and 5k-50k edges). Currently, I generate all simple paths (igraph::all_simple_paths) followed by subsetting. However, all_simple_paths is memory- and time-intensive for larger networks, and since I don't need all paths, running it seems like a waste.
My current strategy is randomly downsample network to a reasonable number of edges --> all_simple_paths --> subset. Repeating this a few times and combining seems to give reasonable results. However this still spends time generating paths I don't use. What are better ways to do this?
For clarity, any algorithm that generates a representative subset of all simple paths is sufficient. I assume that "representative" means an unbiased random sample.
Edit: I see this answer addressing a similar problem, but it's many times slower than all_simple_paths-->subset for my networks.