При использовании такого алгоритма, как A *, вы имеете наибольшую свободу работы с эвристикой затрат.
В этом конкретном случае вы могли бы отрегулировать эвристику, чтобы увеличить стоимость движений, которые приводят агента близко к другому агенту, проблема в том, что вы, скорее всего, в конечном итоге попытаетесь выбрать верхний маршрут, и вы можете получить колеблющиеся движения. назад и вперед между путями, когда они закрываются друг от друга в зависимости от точного времени.
Другая возможность состоит в том, чтобы отслеживать маршруты, намеченные агентами, и корректировать затраты вверх по маршрутам, намеченным агентами. Это позволяет агентам координировать действия друг с другом в ограниченной степени. Основная проблема здесь заключается в том, что если все маршруты заблокированы, поиск пути может продолжаться сбоем в зависимости от того, какой агент перемещается последним.
В случае, когда существует только один путь, поиск пути либо не удастся, либо они будут продвигаться друг к другу до тех пор, пока не будут заблокированы.
Если ни то, ни другое не достаточно хорошо, вам нужно также отслеживать время при расчете стоимости. Стоимость второго агента должна составлять количество времени, которое требуется первому агенту для прояснения, плюс обычные затраты на обход, чтобы ваш агент мог правильно решить, когда ждать, а не идти по другому пути.
Согласование сроков может потребовать значительно больших усилий, поэтому большинство людей доводят настройки макета уровня и стоимости до тех пор, пока все не станет достаточно хорошим.