VRP问题

VRP问题一、关于vrp问题车辆路径问题,可以看成旅行商问题的推广有N辆车,都从原点出发,每辆车访问一些点后回到原点,要求所有的点都要被访问到,求最短的车辆行驶距离或最少需要的车辆数Thinking:有哪些应用领域,适用于VRP问题快递公司,给司机分配送货线路拼车软件,为司机分配接送乘客的路线常见的限制要求:车辆具有可携带的最大重量或数量司机需要在指定时间窗口内访问某位置点的访问顺序等二、VRP问题的流程:使用RoutingModel进行路径规划管理1)设置城市个数,车辆

一、关于vrp问题

车辆路径问题,可以看成旅行商问题的推广

有N辆车,都从原点出发,每辆车访问一些点后回到原点,要求所有的点都要被访问到,求最短的车辆行驶距离或最少需要的车辆数

Thinking:有哪些应用领域,适用于VRP问题

快递公司,给司机分配送货线路 拼车软件,为司机分配接送乘客的路线

常见的限制要求: 车辆具有可携带的最大重量或数量

司机需要在指定时间窗口内访问某位置 点的访问顺序等

VRP问题

二、VRP问题的流程:

使用RoutingModel进行路径规划管理

1)设置城市个数,车辆数,起点下标

2)设置距离回调函数 distance_callback

3)设置初始可行解算法 PATH_CHEAPEST_ARC,从start节点开始,找到CHEAPEST的路径

4)在初始可行解的基础上进行优化(使用local search) search_parameters.local_search_metaheuristic = (     routing_enums_pb2.LocalSearchMetaheuristic.GUIDED_LOCAL_SEARCH) #搜索时间限制 search_parameters.time_limit.seconds = 120

三、指定城市的旅行商问题

Step1,数据预处理

1)所有城市的位置(经度、维度)

2)城市之间的距离矩阵 针对常用的功能,可以封装为自己的工具包 from cylearn import common_tools

# 读取,写入指定的pickle result = common_tools.load_pickle(‘result.pkl’) common_tools.save_pickle(result, ‘result.pkl’)

# 计算两点之间的距离 dist = common_tools.compute_distance(longitude1, latitude1, longitude2, latitude2)

Step2,根据指定的城市,计算TSP,得到路径route 创建tsp类

1)def __init__(self, city_names=None): 类初始化 __init__,定义常用的变量

2)def create_data_model(self): 初始化data,得到data字典,记录distance_matrix,num_vehicles,depot等数据

3)def get_solution(self, routing, solution): 返回路径(这里为index list,比如[0, 1, 2]) 以及 总距离

4)def work(self):

# 定义路由,比如10个节点,1辆车 manager = RoutingIndexManager(10, 1, starts_ends)

# 创建 Routing Model. routing = pywrapcp.RoutingModel(manager)

# 计算两点之间的距离 def distance_callback(from_index, to_index):    

# 将路由变量Index转化为 距离矩阵ditance_matrix的节点index    

from_node = manager.IndexToNode(from_index)    

to_node = manager.IndexToNode(to_index)    

return data[‘distance_matrix’][from_node][to_node]

Step3,可视化交互

1)选择指定的城市 // 表单提交

// checkbox使用

2)画出车辆行驶路径(基于百度地图API) 基于 map_line1.html 进行改写

今天的文章VRP问题分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/8369.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注