欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    最优装载问题课件.ppt

    • 资源ID:3534336       资源大小:132.50KB        全文页数:14页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最优装载问题课件.ppt

    简介,问题描述实现原理贪心性质代码实现致谢,问题描述,有一批集装箱要装上一艘载重量为 c的轮船。第 i个集装箱的重量为 Wi。最优装载问题要求在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。,问题描述,问题可形式化描述为:设:xi表示第i个集装箱是否装载,xi=0 or 1,i=1 to n;求:Max(x1+x2+xn)约束条件:W1*x1+W2*x2+Wn*xn=c,实现原理,每次选择时,从剩下的集装箱中,选择重量最小的集装箱。通过这样的选择可以保证已经选出来的集装箱总重量最小,装载的集装箱数量最多,直到船只不能再继续装载为止。,证明,考虑任意装载容量为K的非空子问题Sk,令am是Sk中重量最小的集装箱,则am在Sk的某个集装箱装载数量最多且总重量最少的最优子集中。证明:令Ak是Sk的一个最优子集,且aj是Ak中重量最小的集装箱。若aj=am,则证明am在Sk的某个最优子集中。若ajam,则将Ak中的aj替换为am得到Ak,am=aj。由于|Ak|=|Ak|,所以Ak也是Sk的一个集装箱装载数量最多的的最优子集,且它包含am。,贪心性质,通过上述证明我们可以知道,每次比较计算得到最小的集装箱,它在最优解中,选出来之后,对余下的集装箱(子问题)采取同样的策略选取最轻的集装箱,放入最优解当中,得到局部最优解,这样逐步缩小问题规模即缩小剩余载重量。最终得到全局最优解。,代码实现,系统环境:Win7操作系统开发平台:DEV-C+4.9.9.1,代码实现,问题实例 假设集装箱数量n=8,八个集装箱的重量是 W0,W2,W7=100,200,50,90,150,50,20,80,船只载重c=400。求该条件下的最优装载问题。,代码实现数据结构,/集装箱 结构体 typedef struct box int weight;/重量 int index;/初始序号;,代码实现,/比较子函数 int cmp(const void*a,const void*b)if(struct box*)a)-weight(struct box*)b)-weight)return 1;else return 0;/按集装箱重量对集装箱进行快速排序 qsort(boxes,8,sizeof(struct box),cmp);时间复杂度为O(n2),代码实现,/累加重量 计算可装载集装箱数量maxLoad=500;countLoad=0;quantity=0;for(i=0;i8;i+)/如果还能继续装载 if(boxesi.weight=maxLoad-countLoad)countLoad=countLoad+boxesi.weight;/计算最大装载数量quantity quantity+;/获取装载标记 flagboxesi.index=1;时间复杂度O(n),代码实现,编号为6,2,5,7,3,0的集装箱总重量为390单位且已被装载,剩余的装载容量为10个单位,小于剩余任一集装箱的重量。问题结束。在这个贪心解决算法中通过flag数组中的结果可以得到 x0,x1,x7=1,0,1,1,0,1,1,1,且xi=6,i=0 to 7总的时间复杂度为O(n2)+c*O(n),即O(n2)(W0,W2,W7=100,200,50,90,150,50,20,80,船只载重c=400),代码实现截图,致谢,感谢刘东林老师给予这次讲课机会感谢邵舒迪同志的帮助Thanks for your attentions参考:算法导论第三版 十六章 定理16.1;互联网:http:/;,

    注意事项

    本文(最优装载问题课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开