您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 数学建模之钢管下料问题案例分析
钢管下料问题某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时得到的原料钢管都是19m。(1)现在一客户需要50根4m、20根6m和15根8m的钢管。应如何下料最节省?(2)零售商如果采用的不同切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以该零售商规定采用的不同切割模式不能超过3种。此外,该客户除需要(1)中的三种钢管外,还需要10根5m的钢管。应如何下料最节省。问题(1)分析与模型建立首先分析1根19m的钢管切割为4m、6m、8m的钢管的模式,所有模式相当于求解不等式方程:12346819kkk的整数解。但要求剩余材料12319(468)4rkkk。容易得到所有模式见表1。表1钢管切割模式模式4m6m8m余料(m)14003231013201340023503016111171203决策变量用ix表示按照第i种模式(i=1,2,…,7)切割的原料钢管的根数。以切割原料钢管的总根数最少为目标,则有1234567minzxxxxxxx约束条件为满足客户的需求,4米长的钢管至少50根,有1236743250xxxxx6米长的钢管至少20根,有25673220xxxx8米长的钢管至少15根,有346215xxx因此模型为:1234567minzxxxxxxx123672567346432503220..215,1,2,,7ixxxxxxxxxstxxxxi取整解得:12345670,12,0,0,0,15,0xxxxxxx目标值z=27。即12根钢管采用切割模式2:3根4m,1根6m,余料1m。15根钢管采用切割模式6:1根4m,1根6m,1根8m,余料1m。切割模式只采用了2种,余料为27m,使用钢管27根。LINGO程序:model:sets:model/1..7/:x;endsetsmin=x(1)+x(2)+x(3)+x(4)+x(5)+x(6)+x(7);4*x(1)+3*x(2)+2*x(3)+x(6)+x(7)=50;x(2)+3*x(5)+x(6)+2*x(7)=20;x(3)+2*x(4)+x(6)=15;@for(model(i):@gin(x(i)));end问题(2)模型建立首先分析1根19m的钢管切割为4m、6m、8m、5m的钢管的模式,所有模式相当于求解不等式方程:1234468519kkkk的整数解。但要求剩余材料12319(468)4rkkk。利用Matlab程序求出所有模式见表2。求出所有模式的Matlab程序:number=0;fork1=0:4fork2=0:3fork3=0:2fork4=0:3r=19-(4*k1+6*k2+8*k3+5*k4);if(r=0)&(r4)number=number+1;fprintf('%2d%2d%2d%2d%2d%2d\n',number,k1,k2,k3,k4,r);endendendendend表2钢管切割模式模式4m6m8m5m余料(m)1001212002033010234011105020126030017100308101129111011012003112002112201031321010143001215310011640003决策变量用ix表示按照第i种模式(i=1,2,…,16)切割的原料钢管的根数。决策目标以切割原料钢管的总根数最少为目标,则有1621miniizx设第i种切割模式下4米长的钢管ia根,6米长的钢管ib根,8米长的钢管ic根,5米长的钢管id根。则约束条件有:为满足客户的需求,4米长的钢管至少50根,有16150iiiax6米长的钢管至少20根,有16120iiibx8米长的钢管至少15根,有16115iiicx5米长的钢管至少10根,有16110iiidx为实现最多使用3种切割模式,增设0-1变量,1,2,,16iyi。当0iy时,0ix,表示不使用第i种切割模式;当1iy时,1ix,表示使用第i种切割模式。因此有:iixy,.iixMy,1,2,,16i其中M足够大,如这里取100。1613iiy因此模型为:161miniizx16116116116116150201510...,1,2,,16,1,2,,163,1,2,,1601,1,2,,16iiiiiiiiiiiiiiiiiiiiaxbxcxdxstxMyixyiyxiyiM取整或足大解得:当所用钢管z最少时,求得的解为:213158,10,10xxx,其余为0。目标值z=28。即8根钢管采用切割模式2:2根8m,余料3m。10根钢管采用切割模式13:2根4m,1根6m,1根5m,余料为0。10根钢管采用切割模式15:3根4m,1根6m,余料1m。切割模式采用了3种,余料为34,使用钢管z=28根。LINGO程序为:model:sets:model/1..16/:a,b,c,d,r,x,y;endsetsdata:a=0,0,0,0,0,0,1,1,1,1,2,2,2,3,3,4;b=0,0,1,1,2,3,0,0,1,2,0,0,1,0,1,0;c=1,2,0,1,0,0,0,1,1,0,0,1,0,0,0,0;d=2,0,2,1,1,0,3,1,0,0,2,0,1,1,0,0;r=1,3,3,0,2,1,0,2,1,3,1,3,0,2,1,3;enddatamin=z;z1=@sum(model(i):r(i)*x(i));!余料;z=@sum(model(i):x(i));!钢管总数;@sum(model(i):a(i)*x(i))=50;!4米长钢管约束;@sum(model(i):b(i)*x(i))=20;!6米长钢管约束;@sum(model(i):c(i)*x(i))=15;!8米长钢管约束;@sum(model(i):d(i)*x(i))=10;!5米长钢管约束;@for(model(i):x(i)=y(i));@for(model(i):x(i)=1000*y(i));@sum(model(i):y(i))=3;@for(model(i):@gin(x(i)));@for(model(i):@bin(y(i)));end
本文标题:数学建模之钢管下料问题案例分析
链接地址:https://www.777doc.com/doc-4314290 .html