  We investigate a no-boarding policy in a system of $N$ buses serving $M$ bus
stops in a loop, which is an entrainment mechanism to keep buses synchronised
in a reasonably staggered configuration. Buses always allow alighting, but
would disallow boarding if certain criteria are met. For an analytically
tractable theory, buses move with the same natural speed (applicable to
programmable self-driving buses), where the average waiting time experienced by
passengers waiting at the bus stop for a bus to arrive can be calculated. The
analytical results show that a no-boarding policy can dramatically reduce the
average waiting time, as compared to the usual situation without the
no-boarding policy. Subsequently, we carry out simulations to verify these
theoretical analyses, also extending the simulations to typical human-driven
buses with different natural speeds based on real data. Finally, a simple
general adaptive algorithm is implemented to dynamically determine when to
implement no-boarding in a simulation for a real university shuttle bus
service.
