精华内容
下载资源
问答
  • 利用顺序启发原理实现管材一维下料,文件包含三个测试文件,分别为管材长度,需求长度和需求量。
  • 条件:为多源线材,能够限定每根线材最多几种零件种类 例如:木材料长度有10,12,13 要切割成的零件有 3, 4, 5, 6 每种零件需求为 15, 16, 18, 20 每种母材上只能有2种零件(这个数字可变) ...
  • 维下料算法

    2021-06-02 02:30:31
    -特殊的两级优化算法. -可设置切削刀片的厚度。 -可设置优化的级别。 -可设置的切削长度。 -可设置破损宽度。 -可设任何的长度或宽度。 -可统计优化后的数字。 -非常快速的算法(解决方案,得到了几秒钟内)
  • 基于一维算法一维下料问题模型计算,仅供参考。不谢
  • matlab 遗传算法 一维下料问题

    热门讨论 2011-08-25 14:02:31
    matlab 遗传算法 一维下料问题 非常不错 希望对各位有用
  • 基于改进文化算法一维下料问题,吴迪,张剑飞,一维优化下料问题是工程应用中普遍存在的一种组合优化问题,属于NP完备问题。针对一维下料问题,本文将混沌算法,博弈论和遗传算�
  • 针对一维下料优化问题,根据企业的实际生产情况,考虑能够满足和不满足生产两种情况,建立一个新的优化模型,并使用蜂群遗传算法求解方案。用各零件长度的一个排列作为一个染色体,每个零件的长度作为染色体的一个...
  • 用改进的遗传算法求解工业应用中的一维下料问题
  • 铁塔用角钢材料的下料问题研究,用delphi语言,改进型单纯型算法
  • 一维下料的基于贪心策略的多目标自适应粒子群算法优化.pdf
  • 可以用分支定界法求解出一维下料问题。有利于解决NP问题。
  • 基于在线检测动态一维下料问题的GPU并行蚁群算法.pdf
  • 数值试验 算法中使人工鱼逃逸局部极值实现全局寻优的因素主要有以下几种 觅食行为中try_number的次数较少时为人工鱼提供了随机游动的机 会从而能跳出局部极值的邻域; 随机步长的采用使得在前往局部极值的途中有可能...
  • 次性解决单一原材料,多种需求的算法,简单快捷。
  • 基于遗传算法维下料问题/矩形件排样/matlab程序

    万次阅读 多人点赞 2019-05-16 11:46:16
    基于遗传算法的二板材切割下料优化问题/matlab程序 关键词: 遗传算法, 二板材切割, matlab 引言 二板材切割问题在实际的工程中有很多的应用,该问题基本等同于矩形件优化排样,具体是指将若干尺寸不相同的...

    基于遗传算法的二维板材切割下料优化问题/matlab程序

    关键词: 遗传算法, 二维板材切割, matlab

    引言

    二维板材切割问题在实际的工程中有很多的应用,该问题基本等同于矩形件优化排样,具体是指将若干尺寸不相同的矩形零件在给定的矩形板材上以最优的方式排布,要求所有待排零件都必须排放在板材内,且各个零件之间不发生重叠,并满足一定的工艺要求.排样问题普遍存在于工程领域中,如钣金下料、玻璃切割、造船、车辆、家具生产、报刊排版、服装和皮革裁剪等.最优的排样方案可以最大限度地节约材料、提高材料利用率,在经济上制造可观的效益.排样问题属于典型的组合优化问题,从理论上讲,该类问题属于具有最高计算复杂性的优化计算问题,即 NP完全问题.对于 NP完全问题,以目前计算理论和方法,在可行的时间界限内不可能找到问题的最优解,只能求其局部最优的近似解.
    遗传算法是一种全局随机搜索算法,它借鉴了生物界的自然选择思想和自然遗传机制,将问题的可行解构成种群,把每一个可能的解看作种群的个体,算法运行时在整个解空间里随机搜索,并按一定的评估策略(或适应度函数)对每一个个体做出评价,然后不断地使用选择、交叉、变异3个遗传算子来进化问题的解,直至产生最优解.其优点是:强调概率转移规则,具有快速随机的全局搜索能力,鲁棒性强.缺点是:对于系统中的反馈信息利用不够,当求解到一定范围时往往做大量的冗余迭代,求解效率低。
    本文采用遗传算法对二维板材切割/矩形件优化排样问题进行优化求解

    遗传算法实现

    遗传算法设计如下:

    1. 编码:采用十进制整数编码方式.
    2. 适应度函数:将适应度函数定义为f® = Area / Area1,
      其中,Area是待排入矩形零件的面积总和,Area1是所得排样图高度轮廓线以下的矩形板材面积.
    3. 初始种群:使用随机函数来生成一定数量的十进制整数序列组成父辈群体,设定种群规模 M=50.
    4. 交叉算子:采用单点交叉和双点交叉
      .设置交叉概率pc=1,单点交叉与双点交叉各占一半.
    5. 变异算子:采用位置变异和旋转变异
      .设置位置变异概率pm1=0.1和旋转变异概率pm2=0.1.
    6. 选择算子:根据适应度函数值从大到小排列执行完交叉、变异操作的个体,选择前 M 个个体组成下
      一代父辈群体.
    7. 结 束 条 件:设置迭代多少代.设置maxgen = 200.

    流程图

    整个算法的流程图,基本如下图所示:
    在这里插入图片描述

    算例

    在一块高10m,宽度没有没有限制的板材上,切割出一定数量的以下两种规格的零件,并使所消耗的板材的宽度最小,或容积利用率最大。

    1. 零件1:高度1m,宽度2m,个数10
    2. 零件2:高度1.5m,宽度2.5m,个数30

    Matlab程序

    %     Author:    怡宝2号			博士猿工作室
    %     淘宝链接:  https://shop437222340.taobao.com/index.htm?spm=2013.1.w5002-16262391244.6.733e1fb4LF2f58
    
    %     Use:       用遗传求解二维板材物料切割问题
    %                物料参数视自己的具体情况而定。
    %     Illustrate:输入变量(must):
    %                                initial:零件的相关信息
    %                                parameter:板材参数
    %
    %       Can—changed parameter: 
    %                                Option:遗传算法的相关参数
    %                                Option.NIND:蚁群的规模
    %                                Option.MAXGEN:蚁群的最大迭代代数
    %                               
    %                  输出:        bestpop:最短路程对应的路径
    %                                trace :最短路程
    %         remark:如有疑问请咨询qq:778961303
    
    clc
    clear all
    close all
    
    format compact
    
    %遗传算法参数:NIND/种群规模;MAXGEN/最大迭代代数;PC/交叉概率;PM/变异概率;GGAP/遗传代沟
    Option = struct('NIND',60, 'MAXGEN', 200, 'PC', 0.85, 'PM', 0.1, 'GGAP', 0.8);
    Option.w1 = 1; Option.w2 = 0;            %多目标时每个目标函数的比重//没有用到
    
    %导入数据
    [initial, parameter] = initialFunc();
    
    %初始化种群
    chrom = initialpop( Option.NIND, initial);
    
    %  画出各客户的初始坐标
    figure();
    Initial_Draw_( chrom(1:2,:), parameter, initial );
    
    %结果记录的结构体
    Result = struct('mintrace',zeros( Option.MAXGEN,1),'bestpop',[]);
    trace =Result;
    
    %迭代开始
    gen = 1;
    while gen<=Option.MAXGEN
        
        %计算目标函数
        [cost, fitness] = CalculateFitness_( chrom, initial, parameter, Option);
        
        %选择
        [selch] = Select(chrom,fitness, Option.GGAP);
        
        %随机交叉
        [selch] = CrossOver(selch, Option.PC);
        
        %交换变异
        selch = ExchangeMutation_(selch, Option.PM);
        
        %计算子代的目标函数和适应度
        [selcost, selfitness] = CalculateFitness_( selch, initial, parameter, Option);
        
        %重插入
        [chrom,cost]=reins_(chrom,selch,1,1,cost,selcost);   %也就是ObjVSel中个体目标函数越小则月容易被选择,按fitval和selfitval来进行选择
        
        %结果记录
        [mincost,index] = min(cost);
        trace.mintrace(gen) = min(cost);
        trace.bestpop(gen*2-1:gen*2,:) = chrom(index(1)*2-1:index(1)*2,:);
        
        disp(['共迭代',num2str( Option.MAXGEN ),'次,现在为:',num2str(gen)]);
        gen = gen + 1;
    end
    
    %绘制寻优迭代图
    figure()
    plot(trace.mintrace,'--m',...
        'LineWidth',2);
    grid off
    xlabel('迭代次数')
    ylabel('Cost')
    title('遗传寻优','fontsize',16)
    
    %显示信息
    FuncDisplay(trace);
    
    %画出最优下料图
    [minvalue minindex] = min(trace.mintrace);
    minchrom = trace.bestpop(minindex*2-1:minindex*2,:);
    figure();
    Final_Draw_( minchrom, parameter, initial );
    

    结果

    由结果可以看到,整个优化过程提高了12.785%的容积利用率。结果图如下所示:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    Reference

    1. 融合蚁群算法和遗传算法的矩形件排样问题研究
    2. 矩形件排样问题的遗传算法求解
    3. 遗传算法求解立体仓库货位优化
    4. 基于遗传算法的二维板材切割下料优化问题/矩形件排样/matlab程序
    展开全文
  • c# 一维优化下料 源码

    2017-06-07 19:09:30
    c# 一维优化下料 源码
  • 一维下料问题的研究

    千次阅读 2020-07-24 10:23:54
    所谓一维下料,只关注其中一种属性,而其它属性被认为全部相同,这样便大大降低了下料问题的处理难度。本文研究的一维下料,以长度作为优化目标。 二、术语定义 原料:用于切割的原材料,长度不定。 零件:从原料...

    一、概念

    下料:有若干规格的原材料,要切割成一批若干规格的零件,确定一种切割方式,使得原材料用料最少、产生的废料最少。

    一维下料:上面提到的规格,可以包含很多属性,比如:长度、宽度、厚度等等。所谓一维下料,只关注其中一种属性,而其它属性被认为全部相同,这样便大大降低了下料问题的处理难度。本文研究的一维下料,以长度作为优化目标。

    二、术语定义

    原料:用于切割的原材料,长度不定。

    零件:从原料中切割下来的短料。

    废料:一根原料被使用后,剩余长度无法再用于生产任意零件。一般定义为阈值。

    余料:一个原料被使用后,剩余材料仍然可以在后续生产中进行零件切割。

    三、问题描述

    现有N段长度不等的原料(当然,也可以全部长度相等或者其中一部分长度相等),现需要切割为M段长度不等的零件,生成一种切割方案,使产生的废料最少(阈值)、若必须要产生余料应使余料大于指定长度(阈值)以便余料再利用。

    四、解决方案

    1)穷举法

    当原料和零件数量很小时,穷举法可以对所有切割方案进行穷举遍历,寻找最优解。但是如果原料和零件数量达到一定量后,穷举法时间复杂度成指数级增长,计算机无法算出结果。这里给一些定量的概念,比如从零件的角度穷举,M=20时,穷举数量级为1,048,576,M=30时,穷举数量级为1,073,741,824。即时间复杂度为O(2^M),隐藏零件数量到达20以上时,就变成了无法完成的任务。

    2)遗传算法

    百度搜索“一维下料 遗传算法”,会得到非常多的相关论文搜索结果。遗传算法以进化论为依据,当种群进化若干代后,便会得到一个相对精英的种群。将一维下料问题转化为遗传算法模型如下:

    a)染色体:a1,a2,a3......am,表示第m个零件在第am根原料上截取;

    b)种群初始化:初始化x个可行染色体种群

    c)交叉算子:按交叉概率,对染色体进行两两交叉,注意不要交叉出无效染色体

    d)变异算子:按变异概率,对染色体中的基因进行剔除并变异,注意不要变异出无效染色体

    e)选择算子:采用锦标赛算法或轮盘赌算法,对优秀染色体进行选择

    f)适应度函数:根据优化目标设计适应度函数,一般从利用率、废料率角度设计

    遗传算法能对下料方案有一定程度的优化,但是优化不明显,或许是哪个算子设计不合理、或者参数没有调到合适的值。(注:相关的论文中,结果数据非常优秀,但本人无法调出那么优秀的方案,所以对有些论文报怀疑态度)。

    3)动态规划

    一维下料的核心,其实可以对接背包问题,而动态规划实际上是一种解背包问题的其中一种算法。看了几个论文资料,算法没看太懂,暂没时间做实验,不做评价。

    4)自研算法

    涉及到商业上的问题,不便多说,但整体思路是模拟人工的操作。一般一个工人,拿到一组原料和一组零件规格后,只要给足够的时间,总能设计出一些比较优秀的方案,而此算法正是模拟这个过程。

    五、总结

    算法的东西,需要深入研究,但是不能一味的陷进去,有时候换个思路,可能得到意想不到的效果。大道至简才是精髓。

    最后,放上一个测试链接,有兴趣的欢迎交流:http://106.53.17.139:8088/demo/

    下面贴一组数据:

    方案1:
    余    0,排样规则:2234=2234
    余   37,排样规则:2676=2639
    余   12,排样规则:2777=2765
    余   38,排样规则:2964=2926
    余    1,排样规则:3062=1518+1543
    余   16,排样规则:3134=3118
    余    2,排样规则:3472=3470
    余    8,排样规则:3513=3505
    余    7,排样规则:3574=1690+1877
    余   14,排样规则:3577=1947+1616
    余    8,排样规则:3972=1747+2217
    余    8,排样规则:3996=3988
    余    3,排样规则:4064=2028+2033
    余    3,排样规则:4212=2567+1642
    余    0,排样规则:4496=2759+1737
    余    2,排样规则:4541=2183+2356
    余    0,排样规则:4550=2632+1918
    余    0,排样规则:4765=2918+1847
    余    1,排样规则:4850=4849
    余    6,排样规则:4902=2714+2182
    余    5,排样规则:5869=3076+2788
    余    3,排样规则:5972=3654+2315
    余    1,排样规则:6135=3249+2885
    余    0,排样规则:6209=3794+2415
    余    0,排样规则:7807=3170+2390+2247
    余    2,排样规则:8567=4698+3867
    余    1,排样规则:8904=5174+3729
    余    1,排样规则:9975=2390+2552+2751+2281
    余    0,排样规则:10729=3757+3195+3777
    余    1,排样规则:11176=4688+4019+2468
    余    0,排样规则:11338=5213+3756+2369
    余    2,排样规则:11561=3520+4546+3493
    余    0,排样规则:11571=2290+4000+5281
    余    2,排样规则:12140=3862+4399+2084+1793
    余    0,排样规则:12613=5157+5391+2065
    余    1,排样规则:13086=4737+5052+3296
    余    0,排样规则:13423=4653+4372+4398
    余    2,排样规则:13461=4713+4271+4475
    余    2,排样规则:14717=3222+4870+4678+1945
    余    0,排样规则:14836=4096+5550+5190
    余    0,排样规则:15015=5023+2527+5312+2153
    余    0,排样规则:15155=3852+5336+3706+2261
    余    0,排样规则:15196=5079+2919+4830+2368
    余    0,排样规则:15330=4031+2751+5726+2822
    余    1,排样规则:15440=3417+5634+3687+2701
    余    1,排样规则:15480=2890+4757+5090+2742
    余    0,排样规则:15688=4129+4214+3227+4118
    余    1,排样规则:15733=3609+5587+3739+2797
    余    1,排样规则:15825=4925+5485+5414
    余    0,排样规则:16118=5373+5581+5164
    余    2,排样规则:16525=3363+4639+5489+3032
    余    1,排样规则:16676=5686+5425+5564
    余    2,排样规则:16719=5783+3481+4413+3040
    余    7,排样规则:16736=3907+5722+3463+3637
    余    3,排样规则:16764=5686+5473+5602
    余 3854,排样规则:16793=4223+4454+4262
    余 3506,排样规则:20185=5451+5705+5523
    
    方案2:
    余    0,排样规则:2234=2234
    余   37,排样规则:2676=2639
    余   12,排样规则:2777=2765
    余   38,排样规则:2964=2926
    余    1,排样规则:3062=1543+1518
    余   16,排样规则:3134=3118
    余    2,排样规则:3472=3470
    余    8,排样规则:3513=3505
    余    7,排样规则:3574=1877+1690
    余   14,排样规则:3577=1947+1616
    余    8,排样规则:3972=2217+1747
    余    8,排样规则:3996=3988
    余    3,排样规则:4064=2033+2028
    余    3,排样规则:4212=2567+1642
    余    0,排样规则:4496=2759+1737
    余    2,排样规则:4541=2356+2183
    余    0,排样规则:4550=2632+1918
    余    0,排样规则:4765=1847+2918
    余    1,排样规则:4850=4849
    余    7,排样规则:4902=2742+2153
    余    0,排样规则:5869=3687+2182
    余    0,排样规则:5972=3907+2065
    余    1,排样规则:6135=3249+2885
    余    0,排样规则:6209=3794+2415
    余    0,排样规则:7807=2822+3040+1945
    余    2,排样规则:8567=5489+3076
    余    1,排样规则:8904=2701+4118+2084
    余    0,排样规则:9975=3296+4398+2281
    余    1,排样规则:10729=5164+5564
    余    0,排样规则:11176=3739+5190+2247
    余    3,排样规则:11338=5312+2369+3654
    余    0,排样规则:11561=3757+5336+2468
    余    0,排样规则:11571=5550+2315+3706
    余    0,排样规则:12140=4096+5783+2261
    余    1,排样规则:12613=2890+5722+4000
    余    1,排样规则:13086=3170+3195+3493+3227
    余    0,排样规则:13423=4546+3862+1793+3222
    余    2,排样规则:13461=2390+3756+5023+2290
    余    0,排样规则:14717=4757+4475+5485
    余    0,排样规则:14836=5686+5373+3777
    余    1,排样规则:15015=4372+5523+2368+2751
    余    1,排样规则:15155=4870+3481+4413+2390
    余    0,排样规则:15196=5414+2527+4223+3032
    余    0,排样规则:15330=5634+5425+4271
    余    0,排样规则:15440=3609+3867+5213+2751
    余    1,排样规则:15480=4688+2788+5451+2552
    余    0,排样规则:15688=4214+3520+5157+2797
    余    3,排样规则:15733=5726+4830+5174
    余    0,排样规则:15825=3463+4262+4737+3363
    余    2,排样规则:16118=2714+4713+5052+3637
    余    9,排样规则:16525=3729+4019+4639+4129
    余    1,排样规则:16676=5686+3417+4653+2919
    余   36,排样规则:16719=5587+5705+5391
    余    0,排样规则:16736=4399+3852+4454+4031
    余 3565,排样规则:17866=4678+4698+4925
    余 3508,排样规则:18958=5281+5090+5079
    余 3529,排样规则:20185=5473+5602+5581
    
    方案3:
    余    0,排样规则:2234=2234
    余   37,排样规则:2676=2639
    余   12,排样规则:2777=2765
    余   38,排样规则:2964=2926
    余    1,排样规则:3062=1543+1518
    余   16,排样规则:3134=3118
    余    2,排样规则:3472=3470
    余    8,排样规则:3513=3505
    余    7,排样规则:3574=1690+1877
    余   14,排样规则:3577=1947+1616
    余    8,排样规则:3972=2217+1747
    余    8,排样规则:3996=3988
    余    3,排样规则:4064=2028+2033
    余    3,排样规则:4212=2567+1642
    余    0,排样规则:4496=2759+1737
    余    2,排样规则:4541=2183+2356
    余    0,排样规则:4550=2632+1918
    余    0,排样规则:4765=2918+1847
    余    1,排样规则:4850=4849
    余    6,排样规则:4902=2714+2182
    余    5,排样规则:5869=3076+2788
    余    0,排样规则:5972=3907+2065
    余    2,排样规则:6135=2281+3852
    余    0,排样规则:6209=3794+2415
    余    1,排样规则:7807=5722+2084
    余    3,排样规则:8567=4372+2247+1945
    余    2,排样规则:8904=4688+4214
    余    0,排样规则:9975=5336+4639
    余    0,排样规则:10729=5473+3463+1793
    余    0,排样规则:11176=3654+2390+2390+2742
    余    0,排样规则:11338=2797+2751+3637+2153
    余    1,排样规则:11561=4653+3040+3867
    余    0,排样规则:11571=4413+3296+3862
    余    0,排样规则:12140=4096+5783+2261
    余    0,排样规则:12613=2701+4129+3493+2290
    余    0,排样规则:13086=5581+5190+2315
    余    0,排样规则:13423=5425+2919+5079
    余    0,排样规则:13461=4925+4830+3706
    余    0,排样规则:14717=2527+5164+3417+3609
    余    0,排样规则:14836=5414+4031+5391
    余    0,排样规则:15015=4000+3777+4870+2368
    余    0,排样规则:15155=2890+5634+4262+2369
    余    0,排样规则:15196=5489+3729+3227+2751
    余    0,排样规则:15330=5686+5373+4271
    余    0,排样规则:15440=5213+3249+3756+3222
    余    2,排样规则:15480=5281+5174+5023
    余    3,排样规则:15688=3363+3757+4019+4546
    余    0,排样规则:15733=5485+4698+5550
    余    1,排样规则:15825=2552+3195+4223+3032+2822
    余    1,排样规则:16118=5564+2468+4398+3687
    余    0,排样规则:16525=3520+5157+4678+3170
    余    3,排样规则:16676=3739+5312+4737+2885
    余    7,排样规则:16719=5523+5602+5587
    余   25,排样规则:16736=3481+4713+4399+4118
    余   32,排样规则:16914=5705+5451+5726
    余 3549,排样规则:17235=4454+4475+4757
    余 3664,排样规则:19492=5052+5090+5686
    
    方案4:
    余    0,排样规则:2234=2234
    余   37,排样规则:2676=2639
    余   12,排样规则:2777=2765
    余   38,排样规则:2964=2926
    余    1,排样规则:3062=1518+1543
    余   16,排样规则:3134=3118
    余    2,排样规则:3472=3470
    余    8,排样规则:3513=3505
    余    7,排样规则:3574=1877+1690
    余   14,排样规则:3577=1947+1616
    余    8,排样规则:3972=2217+1747
    余    8,排样规则:3996=3988
    余    3,排样规则:4064=2033+2028
    余    3,排样规则:4212=2567+1642
    余    0,排样规则:4496=2759+1737
    余    2,排样规则:4541=2183+2356
    余    0,排样规则:4550=2632+1918
    余    0,排样规则:4765=2918+1847
    余    1,排样规则:4850=4849
    余    7,排样规则:4902=2742+2153
    余    7,排样规则:5869=3493+2369
    余    0,排样规则:5972=3907+2065
    余    1,排样规则:6135=3249+2885
    余    2,排样规则:6209=4262+1945
    余    1,排样规则:7807=5722+2084
    余    0,排样规则:8567=2714+3463+2390
    余    0,排样规则:8904=4830+2281+1793
    余    1,排样规则:9975=5079+2527+2368
    余    1,排样规则:10729=3032+5281+2415
    余    0,排样规则:11176=4475+4454+2247
    余    0,排样规则:11338=4678+4399+2261
    余    0,排样规则:11561=4223+4870+2468
    余    0,排样规则:11571=3867+5414+2290
    余    0,排样规则:12140=4096+2822+2182+3040
    余    0,排样规则:12613=4688+5373+2552
    余    0,排样规则:13086=5190+5581+2315
    余    2,排样规则:13423=4757+4546+4118
    余    0,排样规则:13461=5023+2890+2797+2751
    余    0,排样规则:14717=4653+3520+3756+2788
    余    0,排样规则:14836=3363+3170+5602+2701
    余    0,排样规则:15015=3739+3729+5157+2390
    余    0,排样规则:15155=3227+5523+3654+2751
    余    1,排样规则:15196=4019+4129+3852+3195
    余    2,排样规则:15330=5052+3417+3637+3222
    余    0,排样规则:15440=5312+4737+5391
    余    1,排样规则:15480=5634+4372+5473
    余    0,排样规则:15688=4639+3706+3481+3862
    余    0,排样规则:15733=2919+4031+5174+3609
    余    1,排样规则:15825=4925+5213+5686
    余    5,排样规则:16118=3296+3687+5336+3794
    余    4,排样规则:16525=5705+5090+5726
    余    0,排样规则:16676=5425+3076+4398+3777
    余    0,排样规则:16719=5783+5485+5451
    余   10,排样规则:16736=4698+3757+4271+4000
    余    2,排样规则:16764=5489+5686+5587
    余 3574,排样规则:16914=4413+4214+4713
    余 3513,排样规则:19791=5550+5564+5164
    
    方案5:
    余    0,排样规则:2234=2234
    余   37,排样规则:2676=2639
    余   12,排样规则:2777=2765
    余   38,排样规则:2964=2926
    余    1,排样规则:3062=1518+1543
    余   16,排样规则:3134=3118
    余    2,排样规则:3472=3470
    余    8,排样规则:3513=3505
    余    7,排样规则:3574=1877+1690
    余   14,排样规则:3577=1947+1616
    余    8,排样规则:3972=2217+1747
    余    8,排样规则:3996=3988
    余    3,排样规则:4064=2033+2028
    余    3,排样规则:4212=2567+1642
    余    0,排样规则:4496=2759+1737
    余    4,排样规则:4541=2290+2247
    余    0,排样规则:4550=2632+1918
    余    0,排样规则:4765=1847+2918
    余    1,排样规则:4850=4849
    余    5,排样规则:4902=2714+2183
    余    7,排样规则:5869=3493+2369
    余    0,排样规则:5972=3907+2065
    余    1,排样规则:6135=3249+2885
    余    0,排样规则:6209=2415+3794
    余    0,排样规则:7807=5451+2356
    余    3,排样规则:8567=3729+2751+2084
    余    0,排样规则:8904=4000+2751+2153
    余    1,排样规则:9975=4372+5602
    余    0,排样规则:10729=4223+4713+1793
    余    0,排样规则:11176=3687+5174+2315
    余    0,排样规则:11338=3227+5079+3032
    余    1,排样规则:11561=2919+2182+2822+3637
    余    0,排样规则:11571=2261+2281+4639+2390
    余    0,排样规则:12140=5373+4399+2368
    余    2,排样规则:12613=3481+3739+5391
    余    1,排样规则:13086=4262+3076+2552+3195
    余    2,排样规则:13423=4737+4031+4653
    余    0,排样规则:13461=4925+4830+3706
    余    0,排样规则:14717=3862+5686+2468+2701
    余    0,排样规则:14836=3363+3756+5190+2527
    余    0,排样规则:15015=5634+4019+3417+1945
    余    0,排样规则:15155=4698+3654+4413+2390
    余    0,排样规则:15196=3463+5425+3520+2788
    余    0,排样规则:15330=4678+3040+4870+2742
    余    0,排样规则:15440=5023+4398+3222+2797
    余    4,排样规则:15480=3852+2890+5564+3170
    余    6,排样规则:15688=4454+5705+5523
    余    0,排样规则:15733=4096+4271+3609+3757
    余    1,排样规则:15825=5722+5414+4688
    余    0,排样规则:16118=5485+5581+5052
    余    6,排样规则:16525=3867+3777+4757+4118
    余    3,排样规则:16676=5164+5726+5783
    余   10,排样规则:16719=5550+5473+5686
    余    7,排样规则:16736=4214+3296+5090+4129
    余 3537,排样规则:17715=5157+4475+4546
    余 3509,排样规则:19492=5281+5213+5489
    余 3533,排样规则:19768=5336+5312+5587
    
    方案6:
    余    0,排样规则:2234=2234
    余   37,排样规则:2676=2639
    余   12,排样规则:2777=2765
    余   38,排样规则:2964=2926
    余    1,排样规则:3062=1518+1543
    余   16,排样规则:3134=3118
    余    2,排样规则:3472=3470
    余    8,排样规则:3513=3505
    余    7,排样规则:3574=1877+1690
    余   14,排样规则:3577=1947+1616
    余    8,排样规则:3972=2217+1747
    余    8,排样规则:3996=3988
    余    3,排样规则:4064=2033+2028
    余    3,排样规则:4212=2567+1642
    余    0,排样规则:4496=2759+1737
    余    2,排样规则:4541=2183+2356
    余    0,排样规则:4550=2632+1918
    余    0,排样规则:4765=2918+1847
    余    1,排样规则:4850=4849
    余    6,排样规则:4902=2369+2527
    余    0,排样规则:5869=3687+2182
    余    0,排样规则:5972=3907+2065
    余    1,排样规则:6135=3249+2885
    余    0,排样规则:6209=3794+2415
    余    1,排样规则:7807=5722+2084
    余    0,排样规则:8567=3227+2552+2788
    余    1,排样规则:8904=5174+3729
    余    1,排样规则:9975=3417+3481+3076
    余    0,排样规则:10729=4688+4096+1945
    余    0,排样规则:11176=2797+5157+3222
    余    0,排样规则:11338=5485+2390+3463
    余    1,排样规则:11561=4118+5052+2390
    余    0,排样规则:11571=2290+4737+2751+1793
    余    0,排样规则:12140=3852+5587+2701
    余    0,排样规则:12613=5391+2822+2247+2153
    余    0,排样规则:13086=4454+3609+5023
    余    0,排样规则:13423=3637+5373+4413
    余    0,排样规则:13461=5213+3706+2281+2261
    余    0,排样规则:14717=2890+3654+5705+2468
    余    0,排样规则:14836=2919+4129+5473+2315
    余    1,排样规则:15015=4372+2751+5523+2368
    余    1,排样规则:15155=5489+5451+4214
    余    1,排样规则:15196=3862+4271+3195+3867
    余    0,排样规则:15330=4698+3520+4398+2714
    余    2,排样规则:15440=4031+5079+3296+3032
    余    3,排样规则:15480=4653+5634+5190
    余    1,排样规则:15688=4475+3757+4713+2742
    余    1,排样规则:15733=4870+5550+5312
    余    2,排样规则:15825=5564+4678+5581
    余    0,排样规则:16118=5602+4830+5686
    余    0,排样规则:16525=3756+5090+4639+3040
    余    2,排样规则:16676=4000+5281+4223+3170
    余    5,排样规则:16719=4019+5425+3777+3493
    余   36,排样规则:16736=3739+5336+4262+3363
    余   91,排样规则:16764=5726+5164+5783
    余 3533,排样规则:17235=4546+4399+4757
    余 3548,排样规则:19573=4925+5414+5686
    
    

     

    展开全文
  • 本文将线性规划与增强顺序法相结合,求解多线材一维下料问题。采用具有全容量特性的解法,一次生成多个排样方式,按比值法...和商业一维下料CAD系统相比,在下料方案的线材成本相同的前提下,本文算法可大幅度缩短计算时间。
  • 中国知网收费材料,很有用,采用伪C编写的代码说明,很明了
  • mmc一维下料问题

    千次阅读 2013-08-02 02:45:13
    一维下料,给定固定长度,切割不同规格,满足不同数量需求,最小余料。 背包问题,用mmc计算,测试几组数据,都在1秒以内,效果不错。

    一维下料,给定固定长度,切割不同规格,满足不同数量需求,最小余料。

    背包问题,用mmc计算,测试几组数据,都在1秒以内,效果不错。

     

     

     

     

    展开全文
  • 在分析目前有关二维下料一般算法的基础上,针对这些算法当中存在的问题,提出了两类改进的适于在一般生产工厂应用微机进行运算的二维下料算法,即约束的二维下料算法和无约束二维下料算法。在此基础上,研究了这些...
  • 题主大四,在做二维下料问题的蚁群算法求解,基本思路是分两步走,通过蚁群算法得出工件序列,再用剩余矩形算法进行工件排列。由于编程基础薄弱,在网上搜索到河海大学段付谋同学关于剩余矩形算法的论文,研读两日,...

    题主大四,在做二维下料问题的蚁群算法求解,基本思路是分两步走,通过蚁群算法得出工件序列,再用剩余矩形算法进行工件排列。由于编程基础薄弱,在网上搜索到河海大学段付谋同学关于剩余矩形算法的论文,研读两日,但还是不得要义,主要是从刚开始i=1就走不下去了,希望各位朋友帮忙理解下算法的大致思路,万分感谢。

    不理解的代码位置已用红色标出,再次感谢。

    代码如下:

    size=zeros(25,2);%表示小矩形的尺寸.M(i,1)、M(i,2)分别表示序号为 i 的小矩形的宽和高.

    D=zeros(25,2);%排样方案数组.D(i,1)、D(i,2)分别表示第i个矩形的序号以及r(i).

    rest=zeros(50,4);%剩余矩形数组.记录每个矩形的左下角坐标(x,y)、宽和高.

    A=zeros(25,4);%记录数组(记录每个矩形件在样板上的位置).

    %初始值均为零。(zeros)

    size=[12,6;4,7;6,7;10,2;2,5;6,4;4,2;4,6;7,9;4,5;6,4;4,6;6,3;4,5;2,4;8,4;8,6;8,3;6,3;2,6;8,2;3,5;2,5;3,4;2,4;];%小矩形件的尺寸.

    P1=zeros(1,25);P2=zeros(1,25);P3=zeros(1,25);

    R1=zeros(1,25);R2=zeros(1,25);R3=zeros(1,25);

    P1=[4,2,1,3,6,5,7,9,8,10,11,12,14,13,19,15,18,17,20,16,21,22,24,23,25];

    R1=[1,1,1,1,1,1,1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];

    P2=[10,5,1,13,23,24,22,8,14,4,7,25,11,19,6,2,16,20,18,9,17,3,12,15,21];

    R2=[ 0,1,1, 1, 0, 1, 1,0, 1,1,1, 0, 0, 1,1,1, 0, 1, 0,0, 0,1, 1, 0, 0];

    P3=[23,21,20,16,17,2,24,25,9,3,5,8,22,14,15,18,7,6,10,19,4,12,11,13,1];

    R3=[0, 0, 1, 0, 1,1, 0, 0,0,1,0,1, 0, 0, 0, 1,0,1, 1, 0,1, 0, 1, 0,0];

    D1=[P1',R1'];D2=[P2',R2'];D3=[P3',R3'];%至此,数据初始化完毕

    D=D3;     %选择排样方案.

    w=zeros(25,1);h=zeros(25,1);%矩形件的宽和高

    N=1;  %N是剩余矩形的个数.

    rest(1,:)=[0,0,15,60];%样板的尺寸设为:宽15,高60.

    H=0;% 占用高度,用来求样板利用率.

    for i=1:25 %矩形件i的宽和高

    w(i)=size(D(i,1),1+D(i,2));h(i)=size(D(i,1),2-D(i,2));

    end

    re=zeros(30,4);

    for i=1:25  %放置25个矩形件

    %i=3;

    n=1;j=0;

    while n<=N  %求能包含小矩形件的剩余矩形 re,j表示个数.

    if rest(n,3)>=w(i)&&rest(n,4)>=h(i)

    j=j+1;re(j,:)=rest(n,:);

    end

    n=n+1;

    end

    k=2;

    while k<=j %求用到的剩余矩形(放在re的第一行),根据BL条件.

    if re(k,2)

    re(1,:)=re(k,:);

    end

    k=k+1;

    end

    A(i,1)=re(1,1); A(i,2)=re(1,2);A(i,3)=w(i);A(i,4)=h(i);%第i个矩形件的位置信息

    if H

    H=(A(i,2)+A(i,4));

    end

    %剩余矩形数组的处理更新.N A(i,)

    %%从这里开始不理解了,当i=1时 ,A(i,:)=rest(n,:),那么以下if都不成立啊?

    n=1;Now=N;

    while n<=Now;

    m=0;

    k=N+1;         %

    if (A(i,2)>rest(n,2))&&(A(i,2)rest(n,1))

    N=N+1;

    rest(k,1)=rest(n,1);rest(k,2)=rest(n,2);

    rest(k,3)=rest(n,3);rest(k,4)=A(i,2)-rest(n,2);

    k=k+1;m=1;

    end

    if rest(n,1)+rest(n,3)>A(i,1)+A(i,3)&&A(i,1)+A(i,3)>rest(n,1)&&(A(i,2)rest(n,2))

    N=N+1;

    rest(k,1)=A(i,1)+A(i,3);rest(k,2)=rest(n,2);

    rest(k,3)=rest(n,1)+rest(n,3)-A(i,1)-A(i,3);

    rest(k,4)=rest(n,4);

    k=k+1;m=1;

    end

    if A(i,1)>rest(n,1)&&(A(i,1)rest(n,2))

    N=N+1;

    rest(k,1)=rest(n,1);rest(k,2)=rest(n,2);

    rest(k,4)=rest(n,4);rest(k,3)=A(i,1)-rest(n,1);

    k=k+1;m=1;

    end

    if rest(n,2)+rest(n,4)>A(i,2)+A(i,4)&&A(i,2)+A(i,4)>rest(n,2)&&(A(i,1)rest(n,1))

    N=N+1;

    rest(k,2)=A(i,2)+A(i,4);rest(k,1)=rest(n,1);

    rest(k,4)=rest(n,2)+rest(n,4)-A(i,2)-A(i,4);

    rest(k,3)=rest(n,3);

    k=k+1;m=1;

    end

    if m==0

    n=n+1;

    else

    rest(n,:)=[];N=N-1;Now=Now-1;rest(50,:)=0;%删除要注意!

    end

    end  %求出剩余矩形数组,下面要对其进行整理.

    n=1;m=0;

    while n<=N

    k=i+1;

    while k<=25

    if (rest(n,3)>=w(k)&&rest(n,4)>=h(k))

    m=1;break;

    else

    k=k+1;%

    end

    end

    if m==1

    n=n+1;

    else

    N=N-1;rest(n,:)=[];rest(50,:)=0;

    %删去面积为零的或已无法排下所剩的任何一个矩形件的剩余矩形

    end

    end

    n=1;

    while n<=N

    k=1;

    while k

    if rest(n,1)>=rest(k,1)&&rest(n,2)>=rest(k,2)&&rest(n,1)+rest(n,3)<=rest(k,1)+rest(k,3)&&rest(n,2)+rest(n,4)<=rest(k,2)+rest(k,4)

    if n~=k

    N=N-1;m=1;

    rest(n,:)=[];rest(50,:)=0;%删去被包含的剩余矩形

    break;

    else

    k=k+1;m=0;

    end

    else

    k=k+1;m=0;

    end

    end

    if m==0

    n=n+1;

    end

    end  %

    end

    %下面进行制图

    rectangle('position',[0,0,15,60]);axis equal;

    hold on;

    x=zeros(1,25);y=zeros(1,25);

    for i=1:25

    if A(i,3)>0&&A(i,4)>0

    rectangle('position',A(i,:),'facecolor','g');

    end

    x(1,i)=A(i,1)+A(i,3)/2;y(1,i)=A(i,2)+A(i,4)/2;

    end

    text(x,y,num2str(D(:,1)));

    hold off;

    %求板材利用率.

    a='%';

    fprintf('板材的利用率为:\n %f %s \n',4000/H,a);

    end

    展开全文
  • 维下料问题是说,在固定宽度的板材上切割下一些要求大小的目标物,使得消耗的板材长度最小。对于这个问题,可以把他抽象为这样的数学模型:每个目标物设置个id号,这样组id号就构成了个切割顺序。显然,在...
  • 针对类状态和状态时滞具有不确定性的时滞系统,研究了该系统基于T-S模糊模型的鲁棒H∞控制器的设计问题。采用线性矩阵不等式LMI的方法,设计个包含状态变量导数的模糊控制器,得到了系统鲁棒镇定且满足H∞性能...
  • 下料算法

    万次阅读 2005-02-21 15:54:00
    基于动态分割与合上的排样算法文贵华 丁月华如何合理地在原矩形板材上切割给定规格的矩形零件,以提高原板材的利用率是个有重大经济意义的课题。许多工业问题如钢板、玻璃、卷纸等的切割均属此类矩形件排料问题,...
  • 在工业生产中经常遇到二不规则材料切割问题,如何给出材料利用率最高或接近最高的切割方案是有意义的.该文对这类生产实践中的实际问题设计了个新算法.实际数据测试结果表明该算法是有效的.
  • 根据目前对优化下料问题新特性的研究,指出优化下料问题呈现多目标和复杂约束状态,建立了以原料消耗最少和不同交货期的惩罚最小为目标函数的优化下料问题的数学模型。利用多目标智能优化算法求解模型,并结合算例...
  • 圆木二维下料问题是木材企业中常见问题,针对一些头部与尾部直径相差不大的木材,可以将这些木材看作是圆柱体,下料时将其切成和圆木长度相等的多个长方体毛坯,该问题可转化为二维下料问题。采用顺序价值校正框架和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,560
精华内容 5,024
关键字:

一维下料算法