征求算法:(200分)

  • 主题发起人 主题发起人 jack2000
  • 开始时间 开始时间
J

jack2000

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一组原材料长度6米,数量有8根,要切割成如下的材料:
零件1:长度3.2米的5根、零件2:长度3.1米的4根、零件3:长度1.9米的10根
可以有如下配法:
用4根6米切割成:3.1米+1.9米+1米
用3根6米切割成:1.9米+1.9米+2.2米
用1根6米切割成:3.2米+2.2米+0.6米
这样就可以下出:3.1米的4根,1.9米的10根,3.2米的1根,2.2米的4根,
1米的4根,0.6米的1根
用4根2.2+1可以接成4根3.2米
0.6米为余料
请问用什么算法可以得到最优方案,当然实际运用当中原材料长度为变量A,
原材料数量为变量B,零件1长度为变量C1,数量为变量D1,零件2长度为变量C2,
数量为变量D2,...一直到零件N长度为变量Cn,数量为变量Dn.
A*B>C1*D1+C2*D2+C3*D3+...+Cn*Dn
(另外还要增加一个限制条件,即每个零件允许对接的长度及数量,如上3.2米是由2.2+1组成
实际运用当中可能会限制最短不能小于1米或其它,还有只能接一次,而不能接一次以上,如
1+1.2+1=3.2此即为接二次)
 
看看算法方面的书吧,有很多类似的问题,好像用贪心法。
 
谁有好的提议,再加200分.
 
你的问题最好用穷举法,用堆栈法 和递归都可以实现
 
列模型,并求最大值!
 
典型的线性规划问题。
 
动态规划
 
典型的线性规划问题。很多有讲到。
 
那位大侠可以说具体一点.
 
偶的想法(抛砖引玉的哦)
一,先计算出切割某一长度管材所有配法
(如切6米的管材 :
3.2 3.1 1.9 余量
1 1 0 1 a[1]
2 0 1 1 a[2]
3 0 0 3 a[3]
二,根据上面的配法构成线形规划,并加上所需数量的条件,并求出余量最小的解
 
忘了你是可以接的了,真是大意,呵呵
应该是 min(a*b -∑cd-g*(∑d-2))的求解
a:管材长度 b:管材数量
c:零件长度 d:零件数量
g:切割耗损
 
谁能给出具体办法,加500分。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1758645
 
后退
顶部