Муравьи и Python: ищем самые короткие пути

Часто бывает, что для того, чтобы найти лучшее решение задачи методом полного перебора, необходимо проанализировать слишком много вариантов, следовательно, потратить время и вычислительные ресурсы. Алгоритмы оптимизации помогают найти решение задачи, приближенное к идеальному. Возможно, не самое лучшее из всех возможных, но точно одно из лучших.

66

Большое спасибо за Ваше исследование. Я также занимаюсь изучением этого алгоритма. А у меня вопрос по Вашему коду. На каком основании Вы берете куммулятивный минимум pd.DataFrame(aca.y_best_history).cummin()? Ведь если убрать его и посмотреть просто на длину маршрута для каждой итерации, то видим, что на каждой итерации маршрут может или увеличитьвася, или уменьшаться (то есть отклоняться в любую из сторон). Я к чему веду, что если брать pd.DataFrame(aca.y_best_history).cummin(), то не всегда понятно вроде как на какой итерации разумно было бы остановиться. Или я что-то не правильно понял?

1
Ответить
Автор

Добрый день! Спасибо за проявленный к статье и коду интерес.
Кумулятивный минимум находится путём сравнения каждого последующего элемента с предыдущим. Нет существенной разницы в том, брать кумулятивный минимум или не брать, время выполнения алгоритма практически не меняется. В коде программы он используется только для построения графиков.

1
Ответить