we first search for two arcs from every two different subtours visiting a common I/O point, and swap the destinations of them to merge the subtours. Next, based on the fact that in some arcs, the YC has multiple I/O point options with the same travel time to visit, we can create further opportunities to merge more subtours. We show that the first phase runs in polynomial time, and often finds an optimal solution. Otherwise, a branch-and-bound (B&B) algorithm is used in the sec- ond phase to find an optimal solution of the problem. In this phase, the merging algorithm is again used in each node of the B&B tree to save computation time.