- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.最适宜法 最适宜法的物品装入过程与首次适宜法类似,不同的是,总是把物品装到能够容纳它并且目前最满的箱子中,使得该箱子装入物品后闲置空间最小。 例如,有10个物品,其体积分别为S=(4, 2, 7, 3, 5, 4, 2, 3, 6, 2),若干个容量为10的箱子,采用最适宜法得到的装箱结果如图11.4所示。 0.4(s6) 0.2(s2) 0.4(s1) 0.3(s4) 0.7(s3) 0.3(s8) 0.2(s7) 0.5(s5) 0.2(s10) 0.6(s9) (a) 箱子1 (b) 箱子2 (c) 箱子3 (d) 箱子4 图11.4 最适宜法求解装箱问题示例(阴影表示闲置部分) * Design and Analysis of Algorithm * 11.3.1 装箱问题 算法11.4——BF 算法 1. void Best_fit(float s[],int n,float C,float b[],int k) 2. { //假设物品体积为整数,b[j]为第j个箱子已装入物品的体积,数组下标均从1开始 3. int i,j; 4. k = 0; /* 初始化 */ 5. for (j=0;jn;j++) 6. b[j] = 0; 7. for (i=0;in;i++) { /* 装入第i个物品 */ 8. min=C; m=k+1; 9. for(j=1;j=k;j++){ //查找容纳物品i并且目前最满的编号最小的箱子 10. temp=C-b[j]-s[i]; 11. if(temp0tempmin{min=temp;m=j;} 12. } 13. b[m]+=s[i]; k = max(k,m); /* 已装入物体的箱子最大下标 */ 14. } 15. return k; /* 已装入物品的箱子个数 */ 16. } * Design and Analysis of Algorithm * 11.3.1 装箱问题 First Fit Decreasing(首次适宜降序FFD)算法 首先把物体按体积大小递减的顺序排序 然后用FF算法装入物体 Best Fit Decreasing(最适宜降序BFD)算法 首先把物体按体积大小递减的顺序排序 然后用BF算法装入物体 11.3.2 子集和问题 令S={s1, s2,…, sn}是一个正整数的集合,子集和问题要求在这个正整数集合中,找出其和不超过正整数C的最大和数的子集。 考虑蛮力法求解子集和问题,为了求得集合{s1, s2,…, sn}的所有子集和,先将所有子集和的集合初始化为L0={0},然后求得子集和中包含s1的情况,即L0中的每一个元素加上s1,用L0+s1表示对集合L0中的每个元素加上s1后得到的新集合,则所有子集和的集合为L1=L0+(L0+s1)={0, s1};再求得子集和中包含s2的情况,即L1中的每一个元素加上s2,所有子集和的集合为L2=L1+(L1+s2)={0, s1, s2, s1+s2};依此类推,一般情况下,为求得子集和中包含si(1≤i≤n)的情况,即Li-1中的每一个元素加上si,所有子集和的集合为Li=Li-1+(Li-1+si)。因为子集和问题要求不超过正整数C,所以,每次合并后都要在Li中删除所有大于C的元素。例如,若S={104, 102, 201, 101},C=308,利用上述算法求解子集和问题的过程如图11.7所示 L0={0} L1=L0+(L0+104)={0}+{104}={0, 104} L2=L1+(L1+102)={0, 104}+{102, 206}={0, 102, 104, 206} L3=L2+(L2+201)={0, 102, 104, 206}+{201, 303, 305, 407} ={0, 102, 104, 201, 206, 303, 305} L4=L3+(L2+101)={0, 102, 104, 201, 206, 303, 305}+{101, 203, 205, 302, 307, 404, 406} ={0, 101, 102, 104, 201, 203, 205, 206, 302, 30
您可能关注的文档
最近下载
- AP化学 2012年真题 (选择题+问答题) AP Chemistry 2012 Released Exam and Answers (MCQ+FRQ).pdf VIP
- 第六章 教会法.ppt
- 城镇供水厂运行维护及安全技术规程-详版.pptx
- 无铬厚膜底漆、厚膜预涂板和制备方法.pdf VIP
- 教师道德与法治新课标考试试题三套及答案.docx
- CMA考试 P2试题500道含解析.pdf VIP
- 新型锂电池电解液添加剂技改扩能项目环境影响报告书.pdf
- 2025年广东省中山市华辰实验中学九年级中考数学一模试题(原卷版+解析版).docx VIP
- 历史逻辑 理论逻辑 实践逻辑的必然结果.docx VIP
- 2024年05月江苏无锡市梁溪区机关事业单位招考聘用编外工作人员20人笔试历年高频考点(难、易错点)附带答案详解.docx VIP
文档评论(0)