- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
机器分配
◆总公司拥有高效生产设备M台,准备分给下属的N个公司
各分公司若获得这些设备,可以为国家提供一定的盈利。
问:如何分配这M台设备才能使国家得到的盈利最大?
求出最大盈利值。其中MK=15,N=10。分配原则:每个
公司有权获得任意数目的设备,但总台数不得超过总设
备数M。
◆数据文件格式为:第一行保存两个数,第一个数是设备
台数M,第二个数是分公司数N。接下来是一个M*N的
矩阵,表明了第Ⅰ个公司分配J台机器的盈利。
分析
◆用机器数来做状态,数组F[IL,J表示前I
个公司分配J台机器的最大盈利。则状态
转移方程为:
Fll, J=MaxF[I-1, K]+Valuell, J-Kl
(1=I=N,1=J=M,0=K=J)
◆初始值:F(0,0)=0
◆时间复杂度O(N*M2)
系统可靠性
个系统由若干部件串联而成,只要有一个部件故障,系统就不能正
常运行,为提高系统的可靠性,每一部件都装有备用件,一旦原部件
故障,备用件就自动进入系统。显然备用件越多,系统可靠性越高
但费用也越大,那么在一定总费用限制下,系统的最高可靠性等于多
◆给定一些系统备用件的单价C,以及当用Mk个此备用件时部件的正常
工作概率Ⅳk(Mk),总费用上限C。求系统可能的最高可靠性。
输入文件格式
第一行:nC
第二行:C1P1(0)P1(1)..P1(X1)(0=X1=[C/Ck])
第n行:CnPn(0)Pn(1)….Pn(Xn)(0=Xn=[/Cn])
分析
◆例:输入:220
30.60.650.70.750.80.850.9
50.70.750.80.80.90.95
输出:0.6375
◆设F[I, money]表示将 money的资金用到前I项备用件中去的最大可靠
性,则有
FLI, money]= max(F[I-1, money-k*Cost[I] J*PLI, k]]
(O=I=n, 0=K= money div Cost(I))
初始:F[0,0]=0
目标:F[n,C]
快餐问题
◆ Peter最近在R市开了一家快餐店,为了招揽顾客,该快餐店准备
推出一种套餐,该套餐由A个汉堡,B个薯条和C个饮料组成。价格
便宜。为了提高产量, Peter从著名的麦当劳公司引进了N条生产
线。所有的生产线都可以生产汉堡,薯条和饮料,由于每条生
线每天所能提供的生产时间是有限的、不同的,而汉堡,薯条和
饮料的单位生产时间又不同。这使得 Peter很为难,不知道如何安
排生产才能使一天中生产的套餐产量最大。请你编一程序,计算
天中套餐的最大生产量。为简单起见,假设汉堡、薯条和饮料
的日产量不超过100个。
◆输入:第一行为三个不超过100的正整数A、B、C中间以一个空格分
开。第二行为3个不超过100的正整数p1,p2,p3分别为汉堡,薯条
和饮料的单位生产耗时。中间以一个空格分开。第三行为
N(0=0=10),第四行为N个不超过10000的正整数,分别为各条生
流水线每天提供的生产时间,中间以一个空格分开
◆输出:每天套餐的最大产量
分析
◆本题是一个非常典型的资源分配问题。由于每条生产线的生产是相
互独立,不互相影响的,所以此题可以以生产线为阶段用动态规划
求解。
状态表示:用p[i,j,k]表示前i条生产线生产j个汉堡,k个薯条的
情况下最多可生产饮料的个数
用r[i,j,k]表示第i条生产线生产j个汉堡,k个薯条的情况下最多
可生产饮料的个数。
态转移方程:p[i,j,k]=Max{p[i-1,j1,k1]+r[i,j-j,k-k1]
(0=j1=j=100,0=k1=k=100,
且(j-)*1+(k-k1)*p2T[i]—第i条生产线的生产时间)
r[i,j-j1,k-k1]=(T[i]-(j-j)*p1+(k-k1)*p2)divp3
◆此算法的时间复杂度为O(N*1004)
优化
◆在本题中,可以在动态规划方法中加入了贪心算法思想:即首先计
算出每天生产套数的上限值(由A,B,C计算,即min{100divA,
100divB,100divc}),接着,用贪心法计算出这N条流水线可
以生产的套数,并与上限比较,大于则输出上限值并退出,否则再
调用动态规划;同时,在运行动态规划的过程中,也可以每完成
阶段工作便与上限值进行比较,这样以来,便可望在动态规划完成
前提前结束程序。其算法设计为:
S1:读入数据。
S2:贪心求上限并计算出一可行解,判断是否需进行下一步
◆S3:动态规划求解
◆S4:输出
其他优化方法
1.存储结构:由于每一阶段状态只与上一
文档评论(0)