最短路径计算方法:使用迪杰斯特拉算法求解配送问题
本题需要使用迪杰斯特拉算法(Dijkstra's algorithm)来计算最短路径表。
- 初始化
首先,将起点(配送中心)到所有点的距离设为无穷大,除了起点到自己的距离为 0。同时,将所有点的状态设为'未确定最短路径'。
- 确定当前最短路径点
从所有'未确定最短路径'的点中选出距离起点最近的点,将其状态设为'已确定最短路径'。
- 更新距离
遍历该点的所有邻居节点,将起点经过当前最短路径点到达邻居节点的距离与起点直接到达邻居节点的距离进行比较,取较小值作为新的最短距离。同时,如果出现了新的最短距离,需要更新邻居节点的前驱节点为当前最短路径点。
- 重复步骤 2 和 3
重复进行步骤 2 和 3,直到所有节点的状态都为'已确定最短路径'。
最终得到的结果如下表所示:
最短路径表(单位:KM) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 0 0.0 5.8 3.1 2.8 4.0 4.0 3.0 2.9 1.4 5.1 5.3 4.5 3.3 3.5 5.7 5.8 3.0 5.0 3.8 3.4 4.7 5.1 1 5.8 0.0 3.7 4.1 8.7 8.7 7.4 7.3 6.9 1.2 1.0 8.2 7.8 8.1 0.7 1.0 7.9 2.1 8.2 7.9 2.0 7.2 2 3.1 3.7 0.0 3.4 7.0 7.1 4.8 4.6 4.3 2.9 3.3 7.5 5.2 5.6 3.1 2.8 6.1 3.6 6.8 5.4 1.8 6.5 3 2.8 4.1 3.4 0.0 4.5 4.5 5.4 5.3 4.2 3.9 3.3 4.5 5.1 5.3 4.3 4.4 4.8 3.0 4.2 5.2 3.8 3.5 4 4.0 8.7 7.0 4.5 0.0 0.04 4.8 4.7 3.2 7.5 6.9 1.2 4.1 3.7 7.9 8.1 1.7 6.0 0.28 3.9 7.5 1.8 5 4.0 8.7 7.1 4.5 0.04 0.00 4.8 4.7 3.2 7.5 6.9 1.2 4.1 3.7 7.9 8.1 1.7 6.0 0.28 3.9 7.5 1.8 6 3.0 7.4 4.8 5.4 4.8 4.8 0.0 0.61 2.0 6.7 7.2 5.9 0.84 1.1 7.3 7.4 3.8 7.3 5.0 1.0 5.9 6.6 7 2.9 7.3 4.6 5.3 4.7 4.7 0.61 0.0 2.2 6.8 7.3 6.1 1.4 1.7 7.4 7.5 4.0 7.5 5.2 1.5 6.1 6.8 8 1.4 6.9 4.3 4.2 3.2 3.2 2.0 2.2 0.0 5.9 6.3 5.1 2.0 2.3 6.5 6.5 2.9 6.5 4.2 2.1 5.1 5.7 9 5.1 1.2 2.9 3.9 7.5 7.5 6.7 6.8 5.9 0.0 0.71 7.2 7.1 7.3 1.4 1.5 6.8 1.2 7.1 7.2 1.5 6.3 10 5.3 1.0 3.3 3.3 6.9 6.9 7.2 7.3 6.3 0.71 0.0 7.0 7.5 7.6 1.4 1.6 7.2 0.9 6.8 7.6 1.9 6.0 11 4.5 8.2 7.5 4.5 1.2 1.2 5.9 6.1 5.1 7.2 7.0 0.0 4.7 4.3 8.0 8.1 2.2 6.1 0.6 4.5 7.4 1.3 12 3.3 7.8 5.2 5.1 4.1 4.1 0.84 1.4 2.0 7.1 7.5 4.7 0.0 0.3 7.8 7.8 3.2 7.2 4.4 0.1 6.4 6.1 13 3.5 8.1 5.6 5.3 3.7 3.7 1.1 1.7 2.3 7.3 7.6 4.3 0.3 0.0 7.8 7.9 3.2 7.3 4.5 0.17 6.4 6.2 14 5.7 0.7 3.1 4.3 7.9 7.9 7.3 7.4 6.5 1.4 1.4 8.0 7.8 7.8 0.0 0.3 7.9 2.2 8.2 8.1 1.5 7.4 15 5.8 1.0 2.8 4.4 8.1 8.1 7.4 7.5 6.5 1.5 1.6 8.1 7.8 7.9 0.3 0.0 7.9 2.2 8.1 7.8 1.5 7.3 16 3.0 7.9 6.1 4.8 1.7 1.7 3.8 4.0 2.9 6.8 7.2 2.2 3.2 3.2 7.9 7.9 0.0 7.6 2.4 2.6 7.2 3.9 17 5.0 2.1 3.6 3.0 6.0 6.0 7.3 7.5 6.5 1.2 0.9 6.1 7.2 7.3 2.2 2.2 7.6 0.0 6.1 7.5 2.1 5.3 18 3.8 8.2 6.8 4.2 0.28 0.28 5.0 5.2 4.2 7.1 6.8 0.6 4.4 4.5 8.2 8.1 2.4 6.1 0.0 4.2 7.2 1.8 19 3.4 7.9 5.4 5.2 3.9 3.9 1.0 1.5 2.1 7.2 7.6 4.5 0.1 0.17 8.1 7.8 2.6 7.5 4.2 0.0 6.8 6.2 20 4.7 2.0 1.8 3.8 7.5 7.5 5.9 6.1 5.1 1.5 1.9 7.4 6.4 6.4 1.5 1.5 7.2 2.1 7.2 6.8 0.0 6.7 21 5.1 7.2 6.5 3.5 1.8 1.8 6.6 6.8 5.7 6.3 6.0 1.3 6.1 6.2 7.4 7.3 3.9 5.3 1.8 6.2 6.7 0.0
备注:表 3 中,编号 0 表示配送中心,编号 1~21 表示 21 个需要配送订单目的地,表中的数值代表两个地点最短车辆的行驶距离。
原文地址: https://www.cveoy.top/t/topic/oSvS 著作权归作者所有。请勿转载和采集!