从代码到可视化:Attention-Learn-to-Route预训练模型调用与CVRP结果可视化

【免费下载链接】attention-learn-to-route 【免费下载链接】attention-learn-to-route 项目地址: https://gitcode.com/gh_mirrors/at/attention-learn-to-route

Attention-Learn-to-Route是一个基于注意力机制的深度学习模型,专为解决组合优化问题如旅行商问题(TSP)和车辆路径问题(CVRP)设计。本文将详细介绍如何调用预训练模型并将CVRP求解结果进行可视化展示,帮助新手快速上手这一强大工具。

准备工作:环境配置与项目结构

首先需要克隆项目仓库并配置运行环境:

git clone https://gitcode.com/gh_mirrors/at/attention-learn-to-route
cd attention-learn-to-route
conda env create -f environment.yml
conda activate attention-learn-to-route

项目核心结构包括:

快速调用:CVRP预训练模型评估

使用以下命令调用CVRP预训练模型对测试集进行评估:

python eval.py pretrained/cvrp_100/epoch-99.pt --decode_strategy greedy --val_size 100 --eval_batch_size 32

关键参数说明:

  • pretrained/cvrp_100/epoch-99.pt:100节点CVRP问题的预训练模型路径
  • --decode_strategy:解码策略(greedy贪婪搜索或bs波束搜索)
  • --val_size:测试实例数量
  • --eval_batch_size:批处理大小

评估完成后,结果将保存在results/目录下,包含求解路径和成本信息。

结果可视化:从数据到图像

CVRP路径可视化

problems/vrp/encode-attend-navigate/data_generator.py中的visualize_2D_trip函数提供了直观的路径可视化功能。以下是使用示例:

from problems.vrp.encode_attend_navigate.data_generator import DataGenerator
import numpy as np

# 加载评估结果
results = np.load('results/cvrp/test_results.npy', allow_pickle=True)
best_route = results[0][1]  # 获取第一条最优路径

# 生成可视化
generator = DataGenerator()
generator.visualize_2D_trip(best_route)

可视化结果展示了多车辆配送路径规划,不同颜色线条代表不同车辆的行驶路线,黑色方块表示配送中心:

CVRP路径规划结果 图1:11条配送路线的CVRP问题优化结果,总距离14.06

TSP动态优化过程

项目还提供了TSP问题的动态优化过程可视化,通过images/tsp.gif可以直观观察算法如何逐步优化100个节点的旅行商路径:

TSP优化过程动画 图2:100节点TSP问题的优化过程,最终路径长度8.4577

进阶应用:自定义问题与参数调整

模型参数调整

eval.py中可以调整多个参数来优化求解效果:

  • --width:波束搜索宽度(默认为0,即贪婪搜索)
  • --softmax_temperature:控制采样随机性(值越大随机性越高)
  • --max_calc_batch_size:子批次计算大小(影响内存使用)

例如,使用波束搜索策略求解CVRP问题:

python eval.py pretrained/cvrp_50/epoch-99.pt --decode_strategy bs --width 128 --softmax_temperature 0.8

自定义CVRP实例生成

通过generate_data.py可以生成自定义CVRP实例:

python generate_data.py --problem cvrp --name my_cvrp --seed 42 --size 50 --num_samples 1000

生成的数据集可用于模型训练或测试,路径为data/my_cvrp_50_1000.pkl

总结与扩展

Attention-Learn-to-Route提供了从模型调用到结果可视化的完整工具链,通过预训练模型可以快速解决各类组合优化问题。除CVRP外,项目还支持TSP、SDVRP、OP等多种问题类型,相关预训练模型位于pretrained/目录。

对于希望深入研究的用户,可以查看nets/attention_model.py了解注意力机制的具体实现,或通过plot_vrp.ipynb交互式探索不同参数对求解结果的影响。

通过本文介绍的方法,您可以轻松上手这一强大的组合优化工具,将深度学习模型应用于实际路径规划问题中。

【免费下载链接】attention-learn-to-route 【免费下载链接】attention-learn-to-route 项目地址: https://gitcode.com/gh_mirrors/at/attention-learn-to-route

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐