运输问题 | 第二集(西北角法)

在上一篇文章中,我们已经讨论了运输问题的基本概念。在本文中,我们将探讨如何使用西北角法来寻找初始基本可行解。

!image

说明: 给定三个供应地 O1O2O3,以及四个目的地 D1D2D3D4。供应地 O1O2O3 的供应量分别为 300400500。目的地 D1D2D3D4 的需求量分别为 250350400200
解决方案: 根据西北角法,(O1, D1) 必须是起始点,即表格的西北角。表格中每个单元格内的数值都被视为单位运输成本。比较列 D1 的需求量和供应地 O1 的供应量,并将两者中的较小值分配给单元格 (O1, D1),如图所示。

D1 的需求已满足,因此整个列 D1 将被划去(剔除)。供应地 O1 剩余的供应量为 300 – 250 = 50

!image

现在,在剩余的表格中(即排除列 D1),检查西北角位置,即 (O1, D2),并在相应列和行的供应量之间分配最小值。来自 O1 的供应量是 50,小于 D2 的需求量(即 350),因此将 50 分配给单元格 (O1, D2)。由于行 O1 的供应量已耗尽,划去该行。列 D2 剩余的需求量为 350 – 50 = 300

!image

从剩余的表格来看,西北角单元格是 (O2, D2)。供应地 O2 的供应量(即 400)和列 D2 的需求量(即 300)之间的最小值是 300,因此将 300 分配给单元格 (O2, D2)。列 D2 的需求已满足,因此划去该列,供应地 O2 剩余的供应量为 400 – 300 = 100

!image

现在,从剩余的表格中找到西北角,即 (O2, D3),比较 O2 的供应量(即 100)和 D3 的需求量(即 400),并将较小值(即 100)分配给单元格 (O2, D3)(原文此处笔误为(O2, D2),但根据上下文及下文剩余需求计算,此处应为 D3)。O2 的供应量已耗尽,因此划去行 O2。列 D3 剩余的需求量为 400 – 100 = 300

!image

按照同样的方式继续进行,单元格的最终值将是:

!image

注意: 在最后剩余的单元格中,相应列和行的需求量是相等的,即单元格 (O3, D4)。在这种情况下,来自 O3 的供应量和 D4 的需求量都是 200,这被分配给了该单元格。最后,任何行或列都没有剩余量。

现在,只需将分配的数值与相应的单元格数值(即成本)相乘,并将它们相加即可得到基本解,即 (250 3) + (50 1) + (300 6) + (100 5) + (300 3) + (200 2) = 4400

下面是上述方法的实现代码

C++


CODEBLOCK_a4058606

Java


CODEBLOCK_593dfb66

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/31649.html
点赞
0.00 平均评分 (0% 分数) - 0