# 使用自组织映射(SOM)解决旅行商问题
## 1. 简介
该存储库包含 **标准som** (Self-Organizing Maps)及其改进版本 **orc_som** (Overall-Regional Competitive Self-Organizing Maps)和 **orcts_som** (Overall-Regional Competitive & tabu search Self-Organizing Maps)
的实现。
自组织映射 (Self-Organizing Maps) 是一种*无监督的聚类方法*,可用于查找旅行商问题的次优解决方案。SOM通过模拟人脑神经元的自组织和侧抑制现象,在训练中逐渐学习到城市空间位置关系,最终输出一个环形的神经元结构用于描述最优路径。
## 2. 算法演示
![算法演示](report/som.gif)
### 文件夹内容说明
```bash
├─assets 描述旅行商问题的 .tsp 文件
├─data
│ ├─cities 读取到的城市坐标
│ ├─process 神经网络训练过程
│ └─routes 最优路径
├─report 算法对比分析报告
└─src
└─library
├─orcts_som 泛化竞争&全局渗透&禁忌搜索 som 类
├─orc_som 泛化竞争&全局渗透 som 类
└─som 标准 som 类
```
各算法对于解决不同Tsp问题的优劣表现
| n | tsp | optimal_solution | som | orc_som | orcts_som |
| --- | :-----------: | :--------------: | ----------: | ------: | ----------: |
| 0 | st70 | 675.0 | 3.03% | 2.91% | ***1.97%*** |
| 1 | pr76 | 108159.0 | ***2.19%*** | 3.65% | 2.73% |
| 2 | rat99 | 1211.0 | 6.36% | 4.91% | ***4.51%*** |
| 3 | ch130 | 6110.0 | ***2.47%*** | 3.07% | 4.07% |
| 4 | kroA200 | 29368.0 | 4.24% | 4.14% | ***3.94%*** |
| | ***average*** | | 3.65% | 3.74% | ***3.43%*** |
## 3. 使用说明
要运行代码,只需要Python 3和依赖项( **matplotlib**,**numpy** 和 **pandas**)。如果您还未安装,则可以使用以下命令安装所有依赖项:
```bash
pip install -r requirements.txt
```
要运行代码,只需执行以下命令:
```bash
cd som-tsp
python src/main.py assets/<instance>.tsp
```
som网络训练过程可视化,可查看图片 **data/som.png**,训练过程以.png图片和.gif动态图片的形式存储在 **data/process** 下的相应Tsp问题名文件夹中,算法最终生成的路径将存储在 **data/routes** 文件夹中。
## 4. 其他功能简介
可以在src/main.py中注释相关代码,来选择不同的算法
```python
from library.som.som_tsp import SomTsp
from library.orc_som.som_tsp import SomTsp
from library.orcts_som.som_tsp import SomTsp
```
直接运行src/analyze.py,可以多批次 (*step_num*) 分析不同算法(方法同上)对于解决不同Tsp问题 (*tsp_name*) 的优劣表现。
```python
step_num = 5
tsp_name = ["st70", "pr76", "rat99", "ch130", "kroA200"]
```
运行结果会在终端输出,并保存在 **data/record.csv** 中,内容如下:
| | tsp | optimal_solution | step1 | step2 | step3 | step4 | step5 | average | deviation |
| --- | :-----: | :--------------: | :-------: | :-------: | :-------: | :-------: | :-------: | :--------: | --------: |
| 0 | st70 | 675.0 | 685.90 | 701.94 | 702.87 | 692.31 | 694.61 | 695.526 | 3.04% |
| 1 | pr76 | 108159.0 | 113017.14 | 113986.81 | 113034.70 | 113648.07 | 112306.07 | 113198.558 | 4.66% |
| 2 | rat99 | 1211.0 | 1291.71 | 1234.96 | 1265.81 | 1264.23 | 1302.83 | 1271.908 | 5.03% |
| 3 | ch130 | 6110.0 | 6385.14 | 6491.81 | 6462.22 | 6376.38 | 6258.89 | 6394.888 | 4.66% |
| 4 | kroA200 | 29368.0 | 30617.66 | 30423.39 | 30497.94 | 30889.82 | 30589.94 | 30603.750 | 4.21% |
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于Python实现的使用自组织映射SOM解决旅行商问题.zip (226个子文件)
fi10639.csv 319KB
u2152.csv 52KB
uy734.csv 22KB
qa194.csv 6KB
ch130.csv 5KB
kroA200.csv 4KB
rat99.csv 2KB
pr76.csv 2KB
st70.csv 1KB
record.csv 238B
optimal.csv 105B
.DS_Store 10KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
uy734.gif 1.16MB
ch130.gif 695KB
kroA200.gif 520KB
st70.gif 502KB
som.gif 493KB
rat99.gif 377KB
pr76.gif 353KB
神经网络迭代过程.jpg 2.42MB
神经网络输出.jpg 425KB
神经元初始拓扑结构.jpg 183KB
t.jpg 68KB
z_d.jpg 27KB
record.md 9KB
README.md 4KB
compare.md 626B
u2152-77524.6.png 177KB
uy734-86455.31.png 169KB
21000.png 167KB
20000.png 163KB
19000.png 158KB
18000.png 151KB
17000.png 143KB
16000.png 134KB
15000.png 124KB
14000.png 117KB
13000.png 107KB
12000.png 98KB
16000.png 97KB
15000.png 97KB
14000.png 96KB
13000.png 95KB
12000.png 93KB
11000.png 92KB
16000.png 91KB
17000.png 91KB
15000.png 90KB
ch130-6155.75.png 90KB
14000.png 87KB
11000.png 87KB
10000.png 83KB
kroA200-29875.78.png 83KB
13000.png 81KB
10000.png 80KB
09000.png 78KB
33000.png 77KB
34000.png 77KB
32000.png 77KB
31000.png 76KB
12000.png 76KB
30000.png 76KB
08000.png 76KB
16000.png 75KB
29000.png 74KB
15000.png 74KB
28000.png 73KB
IMG_0865(20200523-154859).PNG 73KB
27000.png 73KB
10000.png 73KB
11000.png 73KB
09000.png 72KB
26000.png 71KB
25000.png 70KB
11000.png 69KB
12000.png 69KB
09000.png 68KB
24000.png 68KB
07000.png 67KB
13000.png 67KB
17000.png 67KB
12000.png 67KB
16000.png 67KB
29000.png 67KB
28000.png 67KB
33000.png 67KB
27000.png 67KB
31000.png 67KB
30000.png 67KB
共 226 条
- 1
- 2
- 3
资源评论
DdddJMs__135
- 粉丝: 1258
- 资源: 331
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功