运输问题表上作业法伪代码
时间: 2023-09-29 13:02:42 浏览: 136
以下是一个简单的运输问题表上作业法的伪代码:
```
// 输入数据
let supply = [s1, s2, ..., sn] // 供应量
let demand = [d1, d2, ..., dm] // 需求量
let cost = [[c11, c12, ..., c1m], [c21, c22, ..., c2m], ..., [cn1, cn2, ..., cnm]] // 运输成本
// 初始化
let allocation = [[0, 0, ..., 0], [0, 0, ..., 0], ..., [0, 0, ..., 0]] // 分配矩阵
let i = 1 // 行索引
let j = 1 // 列索引
// 开始分配
while i <= n and j <= m do
if supply[i] < demand[j] then // 当前供应量小于当前需求量
allocation[i][j] = supply[i] // 分配当前供应量
demand[j] = demand[j] - supply[i] // 更新当前需求量
i = i + 1 // 更新行索引
else // 当前供应量大于等于当前需求量
allocation[i][j] = demand[j] // 分配当前需求量
supply[i] = supply[i] - demand[j] // 更新当前供应量
j = j + 1 // 更新列索引
// 计算总成本
let totalCost = 0 // 总成本
for i = 1 to n do
for j = 1 to m do
totalCost = totalCost + allocation[i][j] * cost[i][j]
// 输出结果
print "分配矩阵:", allocation
print "总成本:", totalCost
```
在这个算法中,我们首先输入供应量、需求量和运输成本。然后,我们初始化分配矩阵、行索引和列索引。接下来,我们使用一个 while 循环来按照表上作业法进行分配,直到所有的供应量和需求量都被分配完毕。最后,我们计算总成本并输出结果。
阅读全文