PHost's movement method requires all waypoints to be known before movement starts. For intercept, it therefore attempts to sort ships into an order such that all intercept targets move before their respective interceptors. In case of circular intercept, this cannot be done, so it is treated specially:

Waypoint_X =
   (Sum(Position_X) + Adjust_X) / Num_ships_in_loop

Waypoint_Y =
   (Sum(Position_Y) + Adjust_Y) / Num_ships_in_loop

Adjust_X =
   0                 ...if AllowWraparoundMap is off
   i * Map_dimension_X
       ...where 0 ≤ i < Num_ships_in_loop
          such that Sum((Position_X - Waypoint_X)^2) is minimal

Adjust_Y =
   0                 ...if AllowWraparoundMap is off
   j * Map_dimension_Y
       ...where 0 ≤ j < Num_ships_in_loop
          such that Sum((Position_Y - Waypoint_Y)^2) is minimal

The Adjust_X and Adjust_Y parameters are used only in wraparound-map games, and attempt to make sure that ships move the minimum possible distance. They are found by iterating all possible i and j values and picking the best fit. In PHost below 4.0k/3.4m, they are always zero.

This is a testing version.
It may be incomplete, and have more bugs (or features) than the public live version at planetscentral.com.