一个超难算法用delphi实现(200)

  • 主题发起人 主题发起人 rqj
  • 开始时间 开始时间
R

rqj

Unregistered / Unconfirmed
GUEST, unregistred user!
比方说吧~~A厂下了订单要 硬料S0.8厚度的材料,,宽度是12.5的 我这边仓库有0.8*100的材料还有130的材料还有135的材料 反正大概就是这样,,这算简单的了,,应该发0.8*100的货 100/12.5=8条 (硬料可以没有边) 我刚说的是最简单的一种情况,,其余的还有比方说: A厂下了订单要求要1.0*52的100KG 1.0*42的100KG 我仓库有1.0*202宽度的材料500KG 190材料400KG 175材料550KG 180材料540KG 188材料400KG ,,,发货的话我们算就是一个一个算的试,,看哪个余的边料少,,,52 42 可以分52两条就是104加上42两条就是188,,拿188材料虽然没有浪费,,但是没有边的话两边的宽度会不准,所以拿190来发货,,浪费最小等于2个边,也可以拿180来分,,52一条42三条等于178,,发180的货也是2个边,,恩,,,,就是这个情况了
 
去找本数学模型的教科书看
 
一点不难,你做个穷举的算法,用几个FOR循环嵌套或者递归就好了。然后保留浪费最少的那组方案,电脑的运算是很快的。
 
haidy,写个大概的思路吧。。。。。。可能是我想的太复杂了
 
楼主的问题跟这个比较类似http://zhidao.baidu.com/question/158951014.html?push=voting
 
有点像电路板,如果你每次排列只用一种尺寸的板,即便是考虑横排和竖排也应该好算一点。否则够你累的。
 
每种材料、每种可能性都穷举一次,找出最省料的方案。
 
兄台我看是个超级烦的算法吧
 
呵呵,我们在99年就试过一个和你类似的算法。当时是一个大板割成小板的问题。最后写了一个穷举法。效果是,如果是一种大板和一种小板,几秒;一种大板和两种小板,几分钟;一种大板和三种小板,几个小时都没出来。当时的电脑慢了点,估计现在的速度应该好多了。而且当时有些细节没有考虑,如果考虑进去,再多几种大板和小板,估计很难出来结果。
 
不就一个数学模型里的最优化问题?还是最简单的类型,买本数学模型教科书,看看二次型法怎么用的就可以了
 
太夸张了吧?4种选项的多选要几小时?几秒钟还差不多,是不是算法有问题啊?
 
回楼上的,当时之所以慢一方面当时的电脑慢,99年那时应该还是奔腾133或是166那种,内存也只有16M或是32M;另一方面,如果大板比较大,而小板比较小,那可能性就多了。举个例子吧:大板是170*100的,三种小板是7*9、11*13、12*15的。那样可能性就多了,因为可以放上上百个小板,小板可以横放,也可竖放。还有一种比较特殊的效果,那就是,第一个板是12*15的,横向12,纵向15的,右边可以上下并排放两个横向9,纵向7的小板。因此,如果想穷举,还是很慢的。
 
之前有人提过一个比你要求简单的问题,http://www.delphibbs.com/delphibbs/dispq.asp?lid=3964106
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部