4-15: Считывается введённая матрица, а ячейки с длиной дуги заменяются строками из 2х элементов: 0й - длина дуги, 1й - кол-во ферамона
18-22: Определяются параметры, от которых зависит точность алгоритма
28-34: Берётся один из 4тыс. мыравьёв и помещается в случайно выбранный город. Номер этого города записывается в отдельную перменную(i_start) и считается началом пути муравья. Так же этот номер записывается в массив посещённых вершин(way). Инициализируется массив(length_way), длиной равной кол-ву вершин в матрице, который будет использоваться, как хранилище длин каждой дуги, пройденной муравьём.
37-69: Расчитывается вероятность(в %), с которой муравей пойдёт в город, в котором ещё не был(prob[j]).
100% можно рассматривать как промежуток длиной 100, а вероятности пойти в определённый город как подотрезки этого промежутка. Например, если вероятность пойти в 3 разных города равна 30% 50% и 20% соответсвенно, то эти вероятности поделят промежуток 100 на подотрезки длиной 30, 50 и 20 соответсвенно и получаются подпромежутки от 0 до 30, от 30 до 80, от 80 до 100
Далее случайно выберается одно целое цисло из промежутка от 0 до 100, не включая 100, и ищется подпромежуток, к которому оно принадлежит. В зависимости от подпромежутка, в который попало это число, выбирается вершина для перемещения, соответсвующая этому промежутку. В соответствующие переменные записываются значения длины этого перемещения и номер вершины, в которую переместился муравей.
49-53: Когда муравей побывал во всех вершинах, то сохраняется длина пути до исходной вершины, номер исходной вершины записывается в посещённые вершины и его путешествие заканчивается.
71-72: Вычисляется длина всего маршрута, пройденного муравьём и сохраняется, как один из возможных вариантов обойти граф.
73-77: На основании длины всего маршрута получаем кол-во ферамона, которое оставит муравей на нём. Далее, учитывая "высыхания" ферамона, заменяем его значение на дорогах, которые посети муравей.
27-77: Выполняется для каждого из 4тыс. муравьёв
80: Поиск наикратчайшего обхода графа и вывод результата
-
Notifications
You must be signed in to change notification settings - Fork 0
SazerLife/Ant-algorithm
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published