为了方便计算,我们将订单信息表和距离信息表转换成图的形式。

将每个订单视为一个节点,将配送中心也视为一个节点,节点之间的连线代表两个订单之间的最短距离。同时,每个节点还要连接一个权重为0的虚拟节点,表示从配送中心到该节点的距离为0。

转换后的图如下:

image.png

接下来使用迪杰斯特拉算法计算最短路径表。

首先初始化最短路径表,将配送中心到各个节点的距离设为0,其余节点的距离设为无穷大。

| 节点 | 配送中心 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 最短距离 | 0 | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ |

接着,从配送中心开始,依次计算每个节点到配送中心的最短距离。

首先计算与配送中心相邻的节点,即节点0、节点9和节点10。

| 节点 | 配送中心 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 最短距离 | 0 | 0 | 10.5 | 13.6 | 11.8 | 5 | 5 | 6 | 6.1 | 2.6 | 3 | 6.3 | 5.5 | 4.8 | 10.5 | 10.2 | 2.9 | 6.6 | 6.4 | 5.3 | 5.1 | 4.7 | 11.4 |

接着计算与节点9相邻的节点,即节点1、节点17和节点10。

| 节点 | 配送中心 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 最短距离 | 0 | 0 | 10.5 | 13.6 | 11.8 | 5 | 5 | 6 | 6.1 | 2.6 | 3 | 6.3 | 5.5 | 4.8 | 10.5 | 10.2 | 2.9 | 6.6 | 6.4 | 5.3 | 5.1 | 4.7 | 9.7 |

接着计算与节点10相邻的节点,即节点2、节点11、节点17和节点16。

| 节点 | 配送中心 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 最短距离 | 0 | 0 | 8.7 | 11.8 | 10 | 3.6 | 3.6 | 4.2 | 4.3 | 1.4 | 2.1 | 5.4 | 4.6 | 3.9 | 9.6 | 9.3 | 2.2 | 6.1 | 5.3 | 4.2 | 4.4 | 4 | 9.7 |

接着计算与节点17相邻的节点,即节点3、节点10和节点18。

| 节点 | 配送中心 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 最短距离 | 0 | 0 | 8.7 | 11.8 | 9.8 | 3.4 | 3.4 | 4 | 4.1 | 1.2 | 2.1 | 5.4 | 4.6 | 3.9 | 9.6 | 9.3 | 2.2 | 6.1 | 4.9 | 4.2 | 4.4 | 3.8 | 9.5 |

接着计算与节点18相邻的节点,即节点4、节点13和节点19。

| 节点 | 配送中心 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 最短距离 | 0 | 0 | 8.7 | 11.8 | 9.8 | 3.4 | 3.4 | 4 | 4.1 | 1.2 | 2.1 | 5.4 | 4.6 | 3.9 | 8.6 | 8.3 | 2.2 | 6.1 | 4.9 | 4.2 | 4.4 | 3.8 | 8.5 |

最短路径算法计算配送路线:订单信息表及距离信息表示例

原文地址: https://www.cveoy.top/t/topic/oSvn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录