程序最优存储问题

程序最优存储问题

题目描述

现要把长度为 l 1 , l 2 , . . . , l 7 l_1,l_2,...,l_7 l1,l2,...,l7的7个子程序放在磁带 T 1 T1 T1 T 2 T2 T2上,并且希望按照最大检索时间取最小值的方式存放,即如果存放在 T 1 T1 T1 T 2 T2 T2上的程序集合分别为 A A A B B B,则希望所选择的 A A A B B B使得 max ⁡ { ∑ l i ( i ∈ A ) , ∑ l i ( i ∈ B ) } \max\{\sum l_i(i\in A),\sum l_i(i\in B)\} max{li(iA),li(iB)}取最小值。

现已知 7 7 7个程序的长度分别为 { 2 , 14 , 4 , 16 , 6 , 5 , 3 } \{2,14,4,16,6,5,3\} {2,14,4,16,6,5,3}

试设计一个动态规划算法找出完成这 7 7 7个程序的最优存储方式,使得最大检索时间最小。

解题思路

7 7 7个程序的长度之和为 50 50 50,因此必有一个磁带上存放的程序长度不超过 ⌊ 50 2 ⌋ = 25 \lfloor \frac{50}{2} \rfloor=25 250=25

故可对这个磁带使用求解0-1背包问题的方法来求出它所能存放的最大程序长度。

求解时:

背包容量: 25 25 25

物品价值: 2 , 14 , 4 , 16 , 6 , 5 , 3 2,14,4,16,6,5,3 2,14,4,16,6,5,3

物品重量: 2 , 14 , 4 , 16 , 6 , 5 , 3 2,14,4,16,6,5,3 2,14,4,16,6,5,3

而在这个题中,有 2 + 14 + 4 + 5 = 25 2+14+4+5=25 2+14+4+5=25,因此两个磁带可以将 50 50 50的总长度平分。最优检索时间就是 25 25 25

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值