资源描述:
《矩形排料问题,组合优化问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.《二维矩形条带装箱问题的底部左齐择优匹配算法_蒋兴波》matlab的实现,不包括遗传算法部分。functionarea=PackingAlgorithm(length,width,length1,width1,length2,width2,length3,width3,restrict1,restrict2)area=0;frameCount=1;count1=0;count2=0;runLLABF;functionrunLLABFrectBig.length=length;rectBig.width=width;rectSmall(1).length=length1;r
2、ectSmall(1).width=width1;rectSmall(1).color='r';rectSmall(2).length=length2;rectSmall(2).width=width2;rectSmall(2).color='b';rectSmall(3).length=length3;rectSmall(3).width=width3;rectSmall(3).color='g';edges(1).x=0;edges(1).y=0;edges(1).length=rectBig.length;edges(2).x=-100;edges(2).y=1000
3、0;edges(2).length=0;edges(3).x=rectBig.length+100;edges(3).y=10000;edges(3).length=0;while(1)flag=-1;if(flag<0)[sortedEdges,lowestEdge,id]=edgesSort(edges);[edges,flag]=FullFitFirst(sortedEdges,lowestEdge,id,rectSmall);if(flag<0)[sortedEdges,lowestEdge,id]=edgesSort(edges);[edges,flag]=Wid
4、thFitFirst(sortedEdges,lowestEdge,id,rectSmall);endif(flag<0)[sortedEdges,lowestEdge,id]=edgesSort(edges);[edges,flag]=HeightFitFirst(sortedEdges,lowestEdge,id,rectSmall);endif(flag<0)[sortedEdges,lowestEdge,id]=edgesSort(edges);[edges,flag]=PlaceabelFirst(sortedEdges,lowestEdge,id,rectSma
5、ll);endif(flag<0)[sortedEdges,lowestEdge,id]=edgesSort(edges);..[edges,flag]=cannotPalce(sortedEdges,lowestEdge,id,rectSmall,flag)endendifcount1>=restrict1rectSmall(1).length=100000;rectSmall(1).width=100000;endifcount2>=restrict2rectSmall(2).length=100000;rectSmall(2).width=100000;endsort
6、Rect=sort([rectSmall(1).length,rectSmall(1).width,...rectSmall(2).length,rectSmall(2).width,...rectSmall(3).length,rectSmall(3).width]);minRect=sortRect(1);minRect2=sortRect(2);[sortedEdges,lowestEdge,id]=edgesSort(edges);[~,h]=size(sortedEdges);fori=1:hif(sortedEdges(i).y+minRect<=width)b
7、reak;endendifi==hbreak;endifi==h-1&&lowestEdge.x+minRect2>lengthbreakendifframeCount>300break;endendendfunctioninitialrectBig.length=30;rectBig.width=20;rectSmall(1).length=4;rectSmall(1).width=3;rectSmall(2).length=3;rectSmall(2).width=3;rectSmall(3).length=4