Pull to refresh

Comments 12

С одной стороны спасибо что рассказали об этом алгоритме - я его не знал и поэтому весьма заинтригован и рад :) с другой стороны, извините за прямоту, но в ваше изложение не очень легко вникнуть - я в какой-то момент бросил и пошёл википедию читать :) возможно если где-то в начале "принципов работы алгоритма" добавить пояснение как там муравьи бегут по очереди и зачем они тут и там оставляют ферромоны и как это отмечается - получится более понятно для неподготовленного пользователя.

Спасибо за обратную связь. В данной статье я постарался максимально понятно и подробно объяснить его работу. Когда я сам изучал его, мне потребовалось несколько дней, чтобы понять его. Алгоритм не из простых :)

Думаю, что сложность алгоритма O(n^2). В цикле по муравьям O(n) + в цикле при построении пути O(n). Ну и основной алгоритм 100 раз каждый раз запускается.

Задача коммивояжера - NP-трудная, и из заголовка следует, что вы доказали, что P = NP.

Так что стоит указать, что решение - приближенное, раньше, чем в последней строке.

Про муравьиные алгоритмы, да и ещё для решения задачи коммивояжера, в Хабре полно статей. Эта, увы, одна из самых бедных.

Да, в интернете много теоретической информации о данном алгоритме. Данная статья носит больше практическую цель. Я поставил себе цель написать алгоритм на языке Go и, к сожалению, не смог найти ничего подобного. Поэтому пришлось провести свой ресерч и написать свою реализацию, результат работы изложен в данной статье.

А почему 100 итераций? Есть какое-то логичное объяснение или просто ткнули в круглую цифру?

100 итераций алгоритма было в книге от Михаила Кирсанова на языке maple. Предполагаю, что при больших размерах графа число итераций нужно увеличить. Для более точного ответа нужно провести тесты.

Sign up to leave a comment.

Articles