Heuristic algorithms for container pre-marshalling problems