reachability_solver
pub fn solve(edges: Vec<[usize; 2]>) -> Vec<[usize; 2]>
Returns a list of edges that describes reachability from initial objects to terminal objects.