Matlab 穷举法应用 切割问题 (笔记)
来源:互联网 发布:西南大学网络与继续教育学院 编辑:程序博客网 时间:2024/06/06 00:11
穷举法应用实例
(切割问题)
matble 将一根长为350cm的条材切割成 72cm 55 cm 43 cm 的三种型号,有多种切割方式
求每种型号至少有一根,请找出余料最少的切割方式?
问题分析:
对长度为X的成品,条材最多能切割【350]根,
列出所有组合:
for k1=1:350/72 for k2=1:350/55 for k3=1:350/43
问题: 1、算法效率低,组合k1=k2=k3=1 ,但余料任然能切割
2、没有满足要求要求循环结束后,余料不足以切割任何一个成品
完整代码
tot_len=350;len1=72;len2=55;len3=43;mat=[]; % 存储所有切割组合n1=tot_len/len1;for k1=1:n1 n2=fix((tot_len-k1*len1)/len2); % 切完后,最多能切多少根55cmd for k2=1:n2 k3=fix((tot_len-k1*len1-k2*len2)/len3); if k3>0 %要求每种成品至少有1根 remain=tot_len-k1*len1-k2*len2-k3*len3; %不能再切割的余料长 mat=[mat;k1,k2,k3,remain]; end endend[min_remain,index]=min(mat(:,4)); %寻找切割组合中余料最少的qiege_solu=[len1,len2,len3;mat(index,1:3)],min_remain
思考
1) 为何从最长的成品开始切? 如果交换次序会怎样?
2) 如果要求成品至少切一根,其他不限,如何调整程序?
变体:
已有350的条材
,
一更,现在收到10个成品切割要求如下:
cm: 72 55 43 87 91 70 67 90
请从中选出5个成品,每个成品切割一个,要求条材足够切割且余料最少?
问题分析
从10个选5个,有152种组合
关键
给这152种组合排序,使得没有遗漏
-
0 0
- Matlab 穷举法应用 切割问题 (笔记)
- 穷举法应用
- 穷举法的应用
- matlab用穷举法解决问题
- 24点问题(穷举法/C++)
- 穷举法解决组合问题(换分币)
- 穷举法--百钱百鸡问题
- 穷举法应用—售货员
- 穷举法的应用举例
- 背包问题之穷举法
- 穷举法解决组合问题
- 穷举法解决组合问题
- 穷举法解决组合问题
- 穷举法解决组合问题
- 穷举法解决组合问题
- 穷举法解决组合问题
- 穷举法解决组合问题
- 穷举法解决百钱买百鸡问题
- 有关KITTI数据集
- 关于系统架构的自问自答
- 算法——分治法 练习
- 校园网用户改host登录Google,Wikipedia等的步骤:
- 交叉编译linux驱动程序
- Matlab 穷举法应用 切割问题 (笔记)
- 升级你的APP,让你的旗舰设备支持更高的长高比
- python实现min()函数
- android 获取蓝牙各种连接状态
- 栈的学习(1)
- Android Studio Could not find method android() for arguments 错误解决
- 站在巨人的肩膀上实现安卓增量更新
- vs2008 + WinDDK(7600.16385.1)编译错误的问题
- 利用html2canvas将网页内容导出为pdf