# Муравьиный алгоритм для решения задачи коммивояжера
## Пример
![Пример графа](http://media.geeksforgeeks.org/wp-content/uploads/Euler12-300x225.png)

Команда запуска с cargo: `cargo run -q -- -a=1 -b=2 -e=0.1 -i=100 -n=20 -q=100 1-2=10 1-3=15 1-4=20 2-4=25 2-3=35 3-4=30`

Команда запуска исходника: `ant-colony.exe -a=1 -b=2 -e=0.1 -i=100 -n=20 -q=100 1-2=10 1-3=15 1-4=20 2-4=25 2-3=35 3-4=30`

Пример вывода:
```
Best path: 1 -> 2 -> 4 -> 3 -> 1
1-2=10	(pheromone:	307.674). 	Cumulative length:	10
2-4=25	(pheromone:	307.668). 	Cumulative length:	35
4-3=30	(pheromone:	307.681). 	Cumulative length:	65
3-1=15	(pheromone:	0.006).   	Cumulative length:	80
Total path length:   	.    	.    	.    	.    	.    	80
```

## Аргументы запуска
`cargo run -- --help` / `ant-colony.exe --help`
1. Alpha (double): `--alpha`, `-a`
2. Beta (double): `--beta`, `-b`
3. Испарение феромонов (double): `--evaporation`, `-e`
4. Количество итераций (usize): `--iterations`, `-i`
5. Количество муравьев (usize): `--ants`, `-n`
6. Q value (double): `-q`
7. Список ребер в формате `A-B=расстояние`
_!! Стартовой точкой считается самая первая вершина в списке ребер (в примере - 1)_

Пример: `ant-colony.exe -a=1 -b=2 -e=0.1 -i=100 -n=20 -q=100 1-2=10 1-3=15 1-4=20 2-4=25 2-3=35 3-4=30`

## Запуск
### При наличии cargo (комплекта сборки для Rust):
`cargo run -- <параметры> <ребра>`
