Coordinating transfers between bus and metro train in real time: A logic-based branch-and-bound method