A survey of sequential and systolic algorithms for the algebraic path problem