This thesis investigates heuristic and meta-heuristic algorithms for solving pickup and delivery problems. It focuses on representing solutions and neighborhood moves simply and effectively to handle difficult problem constraints. The thesis applies genetic algorithms, simulated annealing, hill climbing and variable neighborhood search to variants of the pickup and delivery problem with time windows. Experimental results indicate the success of the approach in handling constraints and devising robust solution mechanisms for real-world applications.