Investigating Heuristic And Meta-Heuristic Algorithms For Solving Pickup And Delivery Problems