я вообще в примере хотела больше акцент сделать не на расчете оптимального пути между двумя точками (пункт а и пункт б, грубо говоря), а на расчете задачи: поделить X заданий между Y курьерами так, чтобы
1. все задачи были выполнены
2. делайн всех задач был соблюден
3. приоритетность задач учтена в графике выполнения
4. загрузка курьеров была равномерной
5. каждый курьер проехал в итоге минимальное расстояние
6. были соблюдены графики работ курьеров
7. ну и так далее.
Тут вопрос подсчета расстояния скорее влияет на скорость перебора вариантов. А перебор вариантов - это уже задача либо для математических алгоритмов, либо для AI. Перебор - условно. Поиск оптимального решения.
Вот у меня на прошлой работе были два программиста, который участвовали в разных олимпиадах, особенно алгоритмических. Так вот у них как раз такая задача была, вроде от Амазона и касаемо дронов и плюс было условие определённой загрузки складов Дронами и заказами и отмена заказов на пол пути к ним