Оптимизация колонии муравьев представляется наиболее известным решением этой проблемы. Обратите внимание, что это проблема NP , фактически даже проблема NP-полная. Это означает, что «легко» проверить правильность решения, но «сложно» найти его. Единственный способ найти «оптимальное» решение - это попробовать все возможные решения, сравнить результаты и выбрать лучшее. Конечно, это не приемлемо, если вы хотите решить эту проблему в разумные сроки.
Алгоритмы ACO найдут хорошее решение, близкое к оптимальному. Я говорю близко, поскольку AFAIK это не может гарантировать, что всегда найдет лучший. Лучшие решения могут существовать. Тем не менее, зачастую нет необходимости действительно находить наилучшее из возможных решений, решение, которое просто «очень хорошо», поможет, а ACO - именно то, что вы ищете. Он может найти решение за разумные промежутки времени, и решение будет правильным.
В вашем случае вам нужно немного его изменить. Обычно он только пытается найти кратчайший маршрут, только с учетом пути. В вашем случае это должно учитывать ваше рабочее окно, бронирование и время, проведенное на месте. Но это всего лишь модификации «того, как муравьи путешествуют», основной алгоритм остается тем же и будет работать так же.