Implement Shortest Path Problem