## Solving Travelling Salesman Problem using Ant Colony Optimization
### Install dependencies
`pip install -r requirements.txt`
### Usage
The demo is given in the last section of the file. You can also import this file and do the following -
```python
import random
# Instantiate SolveTSPUsingACO passing the desired parameters
acs = SolveTSPUsingACO(mode='ACS', nodes=[(random.uniform(-400, 400), random.uniform(-400, 400)) for _ in range(0, 15)])
# Run the optimization
acs.run()
# Plot the tour
acs.plot()
```
### Example
```python
_colony_size = 5
_steps = 50
_nodes = [(random.uniform(-400, 400), random.uniform(-400, 400)) for _ in range(0, 15)]
acs = SolveTSPUsingACO(mode='ACS', colony_size=_colony_size, steps=_steps, nodes=_nodes)
acs.run()
acs.plot()
elitist = SolveTSPUsingACO(mode='Elitist', colony_size=_colony_size, steps=_steps, nodes=_nodes)
elitist.run()
elitist.plot()
max_min = SolveTSPUsingACO(mode='MaxMin', colony_size=_colony_size, steps=_steps, nodes=_nodes)
max_min.run()
max_min.plot()
```
#### Output
```
Started : ACS
Ended : ACS
Sequence : <- 2 - 11 - 12 - 3 - 1 - 6 - 5 - 15 - 8 - 7 - 13 - 4 - 14 - 9 - 10 ->
Total distance travelled to complete the tour : 2977.62
Started : Elitist
Ended : Elitist
Sequence : <- 1 - 6 - 3 - 12 - 11 - 2 - 10 - 9 - 14 - 4 - 7 - 13 - 8 - 15 - 5 ->
Total distance travelled to complete the tour : 2815.67
Started : MaxMin
Ended : MaxMin
Sequence : <- 12 - 2 - 11 - 10 - 9 - 14 - 4 - 7 - 13 - 8 - 15 - 5 - 1 - 6 - 3 ->
Total distance travelled to complete the tour : 2780.43
```
#### Plots
![ACS Tour](tour_plots/ACS.png "ACS Tour")
![Elitist Tour](tour_plots/Elitist.png "Elitist Tour")
![MaxMin Tour](tour_plots/MaxMin.png "MaxMin Tour")
### Reference
www.theprojectspot.com/tutorial-post/ant-colony-optimization-for-hackers/10
没有合适的资源?快使用搜索试试~ 我知道了~
解决蚁群算法旅行商问题.zip
共9个文件
png:3个
txt:2个
py:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 100 浏览量
2024-05-18
06:55:58
上传
评论
收藏 111KB ZIP 举报
温馨提示
蚁群算法 蚁群算法由Marco Dorigo于1992年首次提出,并从蚁群找最短路径的现象中受到启发。该算法的特点包括并行性、自组织、鲁棒性、正反馈等,这些特点使得蚁群算法在解决组合优化问题时表现出色。 蚁群算法的原理基于蚂蚁在寻找食物时,会在其经过的路径上释放信息素,其他蚂蚁根据信息素的浓度来选择路径。信息素浓度的增加会吸引更多的蚂蚁选择该路径,形成一个正反馈循环,最终使所有蚂蚁都选择同一条最短路径。 蚁群算法的应用非常广泛,包括旅行商问题(TSP)、二次分配问题(QAP)、车间任务调度问题(JSP)、车辆路线问题(VRP)、图着色问题(GCP)、有序排列问题(SOP)等静态和动态组合优化问题。此外,蚁群算法还应用于大规模集成电路的综合布线以及电信网络中的路由等方面。 与其他优化算法相比,蚁群算法采用正反馈机制,使得搜索过程不断收敛,最终逼近最优解。每个个体通过释放信息素来改变周围的环境,且每个个体能够感知周围环境的实时变化,个体间通过环境进行间接地通讯。搜索过程采用分布式计算方式,多个个体同时进行并行计算,大大提高了算法的计算能力和运行效率。
资源推荐
资源详情
资源评论
收起资源包目录
解决蚁群算法旅行商问题.zip (9个子文件)
新建文本文档.txt 1KB
aco-tsp-master
aco_tsp.py 8KB
tour_plots
Elitist.png 37KB
MaxMin.png 40KB
ACS.png 37KB
LICENSE 1KB
requirements.txt 18B
.gitignore 8B
README.md 2KB
共 9 条
- 1
资源评论
野生的狒狒
- 粉丝: 3387
- 资源: 2436
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功