VC/MFC
VB
Delphi
C++ Builder
C/C++
Java
.NET技术
MS-SQL Server
PowerBuilder
DB2
Oracle
Web 开发
Linux/Unix社区
硬件/嵌入开发
移动平台
您的位置:
程序门
->
vb
-> 基础类
高分求教算法:一维下料问题(星星们快来,请过路高手留下脚步,分留着也没用,权当散分)
[
收藏此页
] [
打印本页
]选择字色:
默认
灰色
红色
黄色
绿色
橙色
紫色
蓝色
褐色
墨绿
深蓝
赭石
粉绿
淡绿
黄灰
翠绿
综红
砖红
淡蓝
暗红
玫瑰红
紫红
桔黄
军黄
烟灰
深灰
灰蓝
背景色:
默认
黑色
红色
黄色
绿色
橙色
紫色
蓝色
褐色
墨绿
深蓝
赭石
粉绿
淡绿
黄灰
翠绿
综红
砖红
淡蓝
暗红
玫瑰红
紫红
桔黄
军黄
烟灰
深灰
灰蓝
字体:[
大
][
中
][
小
]
高分求教算法:一维下料问题(星星们快来,请过路高手留下脚步,分留着也没用,权当散分)
发表于:
2007-05-24 17:22:16
楼主
最近公司有一个关于自动配料方面的软件,由小弟接手,关于算法部分苦思不得其解,望各位大哥大姐赐教。具体如下:
假设:
库存中有4m*3、6.5m*5、7m*5、8m*10、10m*8(4m*3表示4米的材料有3根),
现在用户需要3m*3、3.5m*1、4m*4、5m*3。
问用户该怎么取材,才能使浪费余料最少?
可以认为库存里最长的材料肯定比用户需要的最长的材料长。
浪费余料:就是在本次切割过程中,切割下来的,但没有用在本次用户要求上的材料都算浪费余料
可参见:http://community.csdn.net/expert/topic/5525/5525732.xml?temp=.0393793
和
http://community.csdn.net/expert/topic/5516/5516559.xml?temp=.9682733
和
http://community.csdn.net/expert/topic/5516/5516559.xml?temp=.7672846
发表于:
2007-05-24 20:14:53
1
楼 得分:
0
1.先找最匹配的,不用切隔的.比如4m*4 可以从4m*3中分配3,余1待分配
2.找两个相加可以匹配的.比如5m*3+3m*3可以从8m*10中分配得到
3.找最接近的,或者两个相加最接近的.比如3.5m*1+4m*1最接近8m*1.
这样余料只有0.5m*1
发表于:
2007-05-25 02:30:35
2
楼 得分:
0
分别使用“最佳匹配”“最差匹配”计算结果。然后比较浪费量。
最佳-每个的余量最小开始
最差-每个的余量最大开始
这个算法和会议持续时间类似。
发表于:
2007-05-25 07:51:07
3
楼 得分:
0
估计这个计算比较复杂,
定义一个余料的变量
从用户需求中,取出奇数的材料,如313,都减1,去查找材料库
用去6.5*1,10*1(余5*1+10*7+4*3+6.5*4+7*5+8*10)
还需用料3*2,4*4,5*2
取奇数材料35(5m,3m)
用去5*1,8*1,还差一个3m*1+4*4
余料得10*7+4*3+6.5*4+7*5+8*9
取奇数1和 1
用去7*1+4*3,余料10*7+6.5*4+7*4+8*9
不浪费
发表于:
2007-05-25 07:51:46
4
楼 得分:
0
具体的用料算法可以自己算
发表于:
2007-05-25 07:52:13
5
楼 得分:
0
最少余料也自己统计,应该是最少的了
发表于:
2007-05-25 08:11:57
6
楼 得分:
0
chuting(学习的动力) ( ) 信誉:101 blog 加为好友
看不懂你的意思,但有那么容易分解吗?
发表于:
2007-05-25 08:13:12
7
楼 得分:
0
to:cathysun118(斯年)
请参见提到的其他贴子。
发表于:
2007-05-25 08:38:44
8
楼 得分:
0
记的是 典型的数学问题。
发表于:
2007-05-25 08:51:52
9
楼 得分:
0
这个问题好久前就提出来了,还没有得到解决?
看来是有些难度
发表于:
2007-05-25 08:54:09
10
楼 得分:
0
这是世界8大数学难题之一,复杂的算法往往很浪费时间,应该在优化率和效率上找个平衡点。
发表于:
2007-05-25 09:00:38
11
楼 得分:
0
//这是世界8大数学难题之一
有那么夸张吗?
我也知道可能以目前已有的算法来说解不出最优解(除非材料很少的情况下用穷举)。
但是希望可以找到优化率高些的解
发表于:
2007-05-25 11:00:23
12
楼 得分:
0
up
发表于:
2007-05-25 11:51:21
13
楼 得分:
0
我对你这个题有点郁闷:
如果用户需要6m*1,
你库存有10m,7m,4m,假如拿出一根10m切割,剩下4m不是可以并入库存吗,这个也算浪费吗??但是按照你的要求,只能从7m切割,那样就浪费1m………
这个题求算法,难就难在,根本没有界定性,或者说,你的界定本身就存在不合理的地方,很难求最优解。
发表于:
2007-05-25 12:11:48
14
楼 得分:
0
这个界定就是:
浪费余料:就是在本次切割过程中,切割下来的,但没有用在本次用户要求上的材料都算浪费余料
发表于:
2007-05-25 12:12:35
15
楼 得分:
0
//所以你库存有10m,7m,4m,假如拿出一根10m切割,剩下4m不是可以并入库存吗,这个也算浪费吗??
剩下4m就算浪费。即切割后的不会并入库存
发表于:
2007-05-25 12:20:13
16
楼 得分:
0
但是你这样设计是明显的不合理嘛。。。
发表于:
2007-05-25 14:34:16
17
楼 得分:
0
并非不合理。而是实际中就是这样。。。
发表于:
2007-05-25 14:46:53
18
楼 得分:
0
有趣 mark
发表于:
2007-05-25 15:01:08
19
楼 得分:
0
我看要列出几种方案
a,余料最少
b,切割最少
c,焊接最少
d,还没想到.....
列出后再看看应该在什么情况下选用某一组.....如果有规律,才可以用程序完成....
发表于:
2007-05-25 15:07:46
20
楼 得分:
0
看在200分的分上帮楼主一把。按照楼主所想,可以这样做:
1、首先根据用户需要材料的总长度得到需要从仓库中最多拿出多少根材料才能满足用户的总长度。比如(3*3+3.5*1+4*4+5*3)/4=10.875,然后用进一法得到11根。
2、把仓库中所有的材料(即每一根)作为全组合里总数,用步骤1得到的数作为每一组的数字个数。比如总数为3+5+5+10+8=31,那么就要计算c31 11,得到每一种组合。
3、得到每一种组合后对每一种组合进行计算,如果能够满足用户的要求,则把此种组合分割的方法保存下来,如果此组浪费的材料比先前的组浪费的材料多,就可以排除。
4、对于每一组的计算,则采用排列的方法,首先计算出用户所需材料的总数3+1+4+3=11。然后对这11根材料进行全排列得到p11,计算出每一组排列。
5、在得出用户材料的全排列后,用步骤3得到的某一组(cn)去计算是否能满足要求,满足要求后剩余多少,这个就是简单的用某一组依次减去用户排列的每一个元素,如果cn的某个元素不够长了,用cn此元素的下一个元素去减。每减去一个用户排列的元素,这个元素就排除在外。
6、经过步骤5,满足条件的就可以列出来了,估计最后会有n组数据,但是可以根据要求再增加条件,这个楼主仔细考虑一下就好了。
7、以上的算法是枚举法复杂度过高,但一般都是这么做的。如果想提高速度,可以将全组合分成几个部分,每部分由一台计算机计算,最后将结果汇总。
8、关于如何动态的得到cn m的计算方法,这个在csdn上是有的,楼主可以搜索以前的帖子,具体是在算法那个类。
发表于:
2007-05-25 17:46:23
21
楼 得分:
0
本次提问的要求是仅考虑:怎样才能使浪费余料最少
发表于:
2007-05-25 17:51:25
22
楼 得分:
0
to yunyu97()
看到第一步就有问题了:
1、首先根据用户需要材料的总长度得到需要从仓库中最多拿出多少根材料才能满足用户的总长度。比如(3*3+3.5*1+4*4+5*3)/4=10.875,然后用进一法得到11根。
库存里有:6m*2,现需要4*2、3*1
按你的第一步:4*2+3,则是11m。那我给你6m*2> 11,你看能不能切割出来。
发表于:
2007-05-25 17:54:40
23
楼 得分:
0
而且你算法的时间复杂度是不可以想像的。。。也许要n个月或者n年才能解出来。
发表于:
2007-05-25 17:56:06
24
楼 得分:
0
//以上的算法是枚举法复杂度过高,但一般都是这么做的。如果想提高速度,可以将全组合分成几个部分,每部分由一台计算机计算,最后将结果汇总。
这个也太夸张了。网格计算?
发表于:
2007-05-26 10:03:19
25
楼 得分:
0
呵呵.....算法不简单....
帮顶一下.....
发表于:
2007-05-27 13:52:50
26
楼 得分:
0
to lgyan(紫衣随想)
我给你的算法是有条件的,是在仓库中的材料一定可以不用焊接的情况下给出的算法,如果需要焊接,你可以在我的算法的基础上改进的。
另外我想告诉你一点,算法的复杂度的可行性不是说凭想象的,而是要你自己去试验的,只有试过才知道是否可行,我可以确切的告诉你,我给你的算法还是可以再进一步优化的。我做过彩票软件,彩票软件就是这样一组一组进行筛选的,1000多万组也就几十秒,何况你这个每一组使用的计算方法都是很简单的。而且你的需求还不一定需要把所有的方法都试出来,只要能够满足要求就可以了,难道不是么?
不是什么问题都有快捷的方法的,只要能够满足需求即可。我们能够做的就是在已有的基础上不断的进行优化。
关于网络计算的问题,如果你这个系统有n台计算机联网,每台计算机的计算量就是1/n,这一点都不困难,只要在计算前分配好数据给每台计算机,然后通知下面开始计算,再要做的就是等待每台计算机把结果返回过来。那些号称512位加密的东东不就是这样被几万台计算机破解的么,更何况你这么点数据。
发表于:
2007-05-27 15:09:02
27
楼 得分:
0
晕,1000多万组的数据要用几十秒,够慢的了。。。
扫描比较120m的数据也就大概花2秒左右的时间。
发表于:
2007-05-27 15:14:57
28
楼 得分:
0
http://www.vbgood.com/viewthread.php?tid=50194&extra=page%3d1
我写的大概60行左右的代码,测试kpm扫描的,1秒可以扫描比较40-60m的数据。
发表于:
2007-05-27 15:23:45
29
楼 得分:
0
我测试了一下,1000万组双色球数据大概在55.6m。
我觉得,如果用yunyu97的方法生成组合,然后筛选,应该是可行的,关键是自己要确立好筛选的条件。。
发表于:
2007-05-28 08:24:45
30
楼 得分:
0
to:
2、把仓库中所有的材料(即每一根)作为全组合里总数,用步骤1得到的数作为每一组的数字个数。比如总数为3+5+5+10+8=31,那么就要计算c31 11,得到每一种组合。
c31是库存材料的总长度,但实际上库存材料都是上万米的。c10000 11计算时间会是多少??考虑过没。
即使时间可允许,那么你如何去判断一种组合可不可以分解成所需要的长度??你的4、5两步我看不懂
发表于:
2007-05-28 09:14:56
31
楼 得分:
0
你要仔细看清楚我的算法,c31不是材料的总长度,而是总数目,与长度无关。如果仓库的材料数目,即每一种类型的材料数大于步骤1所计算出来的数,那么仓库的材料总数可以看作以步骤1的11为基数×材料的类型数目。
另:如果你不能理解我的算法,我可以给你讲解,但如果你不相信我的算法,那我就没有说的必要了。我还是那句话,没有试过就不能证明。
发表于:
2007-05-28 10:52:01
32
楼 得分:
0
实在不理解你的算法,总数目,与长度无关?
你可以举个简单的例子来描述你算法的思想吗?
或者加qq:79938938
发表于:
2007-05-28 10:52:19
33
楼 得分:
0
谢谢你的参与
发表于:
2007-05-28 12:53:03
34
楼 得分:
0
up
发表于:
2007-05-28 14:09:58
35
楼 得分:
0
这个好象是数学里最优化算法,我不会~~
学习下
发表于:
2007-05-28 19:33:04
36
楼 得分:
0
难度大
发表于:
2007-05-29 09:18:26
37
楼 得分:
0
op
发表于:
2007-05-29 17:39:12
38
楼 得分:
0
星星在哪里?
发表于:
2007-05-29 17:50:31
39
楼 得分:
0
能力有限 从前回答过
发表于:
2007-05-30 11:25:20
40
楼 得分:
0
从前回答过?是什么意思?从前解决过?
发表于:
2007-05-31 09:22:59
41
楼 得分:
0
?
下一篇:
怎样传多个数据集给水晶报表?
上一篇:
今天看到了个数据库文件.byx .sy 的不知道是什么数据类型 如何把里面的数据导出来呢?
相关文章
vb用inet如何实现ftp上传下载啊?(vs2005)
变量赋值的问题
vb中怎样可以关闭form1时同时关闭 form2??
请大家帮忙看看 图像局部放大的程序,为什么...
大家讨论一下这个视频会议系统用什么做的呀
漂亮的界面是用什么方法实现的
vb能做出像珊瑚虫工具条那样的工具条吗?.
vb如何实现外部程序最小化(以qq2007正式版为例)...
如位有fpspr70.ocx控件,发下给我.谢谢啦
求助一数据库表中复杂排序的问题
新手求助:用vb编分形图
求助大虾与高手
有没有什么办法将form上的四条线段组成的四边形填...
请问vb在大包应用vdp文件的时候,怎么把cfg和其他...
rptorientportrait 变量未定义
摩托罗拉手机短信,用电脑发的,短信存放在电脑的...
vb6编的程序怎样转换到vb.net
vb调用vc生成的dll问题!!!!
我个人开发软件想搞个网站销售,并逐渐打造成精品...
vb 做安装程序需要哪些文件?
其他资讯
请问大家,如何用程序实现将系统的刷新率设为85mh...
请问如何在窗体里面用编程的方法增加或者删除lab...
修改窗体左上角的菜单
怎样把txt文本中的数据在datagrid显示,并且能够...
vba安装失败
字符串,我哪错了?
请高手指点 如何插入solidworks的图片并且实...
关于vb关键字的问题??????????????...
我是个vb初学者想请教几个简单的vb问题请会vb&nb...
vb编写的串口程序运行几个小时以后,速度越来越慢...
treeview控件如何将选择框放到文字的后面
怎么实现treeview中拖放节点
高手帮忙,关于vb生成exe文件的
新手学vb,文件写操作的问题
高手求xml简单操作
vb 如何解锁u盘?
急急急急急急!!!vb一个串口接收多祯数据问题
关于回调函数的高低位问题
我想用vb做一个浏览器,但是有的网站有插件才能看...
vb6和vb.net的不同之处?
快速检索
分类导航标签a
WebSphereServer
产品/厂家山西.NET俱乐部社区
VC/MFC网络编程
软件工程/管理管理版
专题开发/技术/项目Google技术社区
专题开发/技术/项目英特尔主动管理技术
《开发高手》杂志文章评论
JavaNetBeans
社区支持CSDN
专题开发/技术/项目多媒体/流媒体开发
WebSphere应用服务器/WAS
PowerBuilder非技术版
多媒体/设计/Flash/Silverlight 开发设计
多媒体/设计/Flash/Silverlight 开发设计
扩充话题程序人生
最新资讯
下拉列表数据绑定问题
二次查询怎样实现呢?
求助!北京网刃的那个加密系统怎么样,有没有用过的...
帮忙解决数组分页问题?在线等
ajax 数据的显示与隐藏问题
下载问题
出售共享软件源码
项目位置未受到.net运行库的完全信任
vs2005 自带水晶报表设计时的数据库连接是存...
如何在vb.net里面编写调用windows系统搜索功能?...
由word 保存的 mht格式文件能否禁止复...
ado连接数据库后插入记录后出现runtime err...
@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@#@...
javascript子頁面傳值
没分了,真的没有好心人吗??还是oracle触发器的...
救命 oracleorahome92tnslistener启动不了
oracle中自带的web应用服务器不能加载web.xml这个...
这句sql有错吗?
谁有可以把图像旋转任意角度的代码?
.net和java两大帮派合并了 大家都来说说他的...
如何实现 www.google.cn中的 自动输出...
¦¦¦¦¦¦&br...
请问一打开网页就中招的病毒究竟是怎样制作成的?...
vb6+ado+acc 的统计汇总
请教一个sql查询语句。
javascript 问题
★★★★★十分郁闷,关于对话框的一个简单问题★...
不想找工作了,零工资适用,有人要没???
关于picturebox上加载控件,怎样保持其位置不变
数组越界问题
这到底是谁的错
能否从一个没有读到数据sqldatareader中创建data...
shellEXECute执行没有反应
3阶以上行列式求值有非递归的算法吗?
请问大家做系分案例第一题“项目进度管理”的时自...
php提交表单中,如何增加附加码?
100分求解简单c语言题(麻烦“星羽”进来下)
[散分]交换java技术博客链接
如何求当前时间30分钟后的时间?
帮我解决一下时间的问题
热门点击
一个疑惑的错误
超简单的问题,送分啦
存储过程返回id
关于ado的开销
qvga视频功能是什么?
今天面试一个java问题
十个鬼故事
麻烦达人进来读读下面的程序
西雅图见比尔盖茨之旅,现在才整理完,欢迎到我和...
如何查询到2个账户之间的关联呢?任意两个账户之...
不用动态语句求解一个字段拼接的问题
gridview 和dropdownlist绑定数据的问题
smarty模版中如何实现数组对数组赋值
第三十九期:csdn论坛秀-delphi版-本期作秀:gh...
文本框数据显示的问题
新闻系统,如果采用模板存放到数据库中的方式,那...
hibernate.properties究竟应该放在项目的什么地方...
同时引用word,excel的ole对象后生成的类的重名冲...
为什么不显示在我的view中
这是什么问题
简单的 ado 问题
■河南飞宇科技■特价月付游戏sf专用服务器+8g硬...
局部刷新的问题
调用工程内部
能否写一个程序把sql的数据迁移到access?
【转帖】my97日期控件2.1 增加时间限制,增强...
急!为什么我的cajviewer6.0在windows2003下不能...
datawindow中改变任意一行的dddw的内容
高分求救!vc下怎样向excel中填入2.000形式的字符...
急:xml高手看看这个问题怎么解决阿!!!!!!!!!!
散分,sql2000 写存储过程,取数据,大家教...
c++ --程序bug请教 "unresolved...
记忆中好象有种在dos下上网的软件,相当于ie6,不过...
如何通过sql里面的外键访问关联的数据啊?如何写...
入职笔试题目,供大家找工作面试时参考.
新手求救!!!
请问谁有bcb开发com组件的资料 来者有分
在mysql中,myisam merge heap m...
asp解密
有熟悉citrix metaframe presentation...