十九、负载平衡问题 [供求平衡问题]

负载平衡问题


问题描述:
G公司有n个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使n个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。
编程任务:
对于给定的n个环形排列的仓库的库存量, 编程计算使n 个仓库的库存数量相同的最少搬运量。
数据输入:
由文件 input.txt 提供输入数据。文件的第 1 行中有 1 个正整数 n(n<=100) ,表示有 n个仓库。第2行中有 n个正整数,表示n个仓库的库存量。
数据输入:
由文件 input.txt 提供输入数据。文件的第 1 行中有 1 个正整数 n(n<=100) ,表示有 n个仓库。第2行中有 n个正整数,表示n个仓库的库存量。
结果输出:
程序运行结束时,将计算出的最少搬运量输出到文件output.txt中。
输入文件示例 
5

17 9 14 16 4

输出文件示例

11


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

解决方案:

 
1 .   问 题 分 析 :  
转 化 为 供 求 平 衡 问 题 , 用 最 小 费 用 最 大 流 解 决 。  
 
2 .   建 模 方 法 :  
首 先 求 出 所 有 仓 库 存 货 量 平 均 值 , 设 第 i 个 仓 库 的 盈 余 量 为 A [ i ] , A [ i ]   =   第 i 个 仓库 原 有 存 货 量   -   平 均 存 货 量 。 建 立 二 分 图 , 把 每 个 仓 库 抽 象为 两 个 节 点 X i 和 Y i 。 增设 附 加 源 S 汇 T 。  
 
( 1 ) : 如 果 A [ i ] > 0 , 从 S 向 X i 连 一 条 容 量 为 A [ i ] , 费 用 为 0 的 有 向 边 。  
( 2 ) : 如 果 A [ i ] < 0 , 从 Y i 向 T 连 一 条 容 量 为 - A [ i ] , 费 用 为 0 的 有 向 边 。  
( 3 ) : 每 个 X i 向 两 个 相 邻 顶 点 j , 从 X i 到 Y j 连 接 一 条 容 量 为 无 穷 大 , 费 用 为 1 的有 向 边 。  
( 4 ) : 每 个 X i 向 两 个 相 邻 顶 点 j , 从 X i 到 X j 连 接 一 条 容 量 为 无 穷 大 , 费 用 为 1 的有 向 边 。  
 
求 最 小 费 用 最 大 流 , 最 小 费 用 流 值 就 是 最 少 搬 运 量 。  

 
3 .   建 模 分 析 :  
(1)、计 算 出 每 个 仓 库 的 盈 余 后 , 可 以 把 问 题 转 化 为 供 求 问 题 。  
(2)、建 立 供 求 网 络 , 把 二 分 图 X 集 合 中 所 有 节 点 看 做 供 应 节 点 , Y 集 合 所 有 节 点 看 做需 求 节 点 。  
(3)、在 能 一 次 搬 运 满 足 供 需 的 X i 和 Y j 之 间 连 接 一 条 费 用 为 1 的 有 向 边 , 表 示 搬 运 一 个单 位 货 物 费 用 为 1 。     建 图 中 的 第 ( 3 ) 步  
(4)、另 外 还 要 在 X i 与 相 邻 的 X j 之 间 连 接 边 , 表 示 货 物 可 以 暂 时 搬 运 过 去 , 不 立 即 满足 需 求 , 费 用 也 为 1 。 建 图 中 的 第 ( 4 ) 步  
(5)、最 大 流 满 足 了 所 有 的 盈 余 和 亏 损 供 求 平 衡 , 最 小 费 用 就 是 最 少 搬 运 量 。  
 
 
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__简言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值