CN103714198B - 一种船舶多芯管下料的优化方法 - Google Patents
一种船舶多芯管下料的优化方法 Download PDFInfo
- Publication number
- CN103714198B CN103714198B CN201310637887.0A CN201310637887A CN103714198B CN 103714198 B CN103714198 B CN 103714198B CN 201310637887 A CN201310637887 A CN 201310637887A CN 103714198 B CN103714198 B CN 103714198B
- Authority
- CN
- China
- Prior art keywords
- chromosome
- raw material
- num
- algorithm
- selecting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明一种船舶多芯管下料的优化方法,对多芯管下料问题进行数学抽象,将生产实际问题转化为数学问题,建立数学模型,针对该数学模型采用首次自适应降序算法和遗传算法进行求解,通过实现以上两种算法,计算出原材料的总需求量,并详细给出每一根原料对应的切割模式。本发明在完成造船生产任务的同时,使多芯管的管材使用量最少,利用率显著提高,达到90%以上,余料安排合理,提高工作效率,起到降本增效的作用。
Description
技术领域
本发明涉及一种船舶多芯管下料的优化方法,即运用科学的数学计算对多芯管进行下料安排的方法。
背景技术
船舶多芯管用于控制船舶上的遥控蝶阀,每段多芯管的拉放长度不尽相同。在传统的多芯管下料方法中,均是由人工大致估算多芯管的总需求量,然后根据多芯管制造厂家给出的单卷长度规格,计算总体采购数量,而在铺设多芯管时,往往缺少全局观念和统一规划,导致管材切割的余料较多,造成严重的浪费,而补订货又会引起库存管理、生产节点和造船成本等各方面的问题。
发明内容
本发明主要是为解决多芯管浪费严重、原料利用率低的生产技术问题,通过改进多芯管的下料方式,提供一种多芯管下料的优化方案,实现下料的自动化、科学化、合理化,同时也实现从订货到加工等各个生产环节的节约控制,降低生产成本。
为了达到上述目的,本发明提供了一种船舶多芯管下料的优化方法,其特征在于,对多芯管下料问题进行数学抽象,将生产实际问题转化为数学问题,建立数学模型,针对该数学模型采用首次自适应降序算法和遗传算法进行求解,通过实现以上两种算法,计算出原材料的总需求量,并详细给出每一根原料对应的切割模式。具体包括如下步骤:
第一步,建立数学模型;
对于首次自适应降序算法,该数学模型为:
其中L为原材料长度,n为需求规格的数量,n>0,lj和dj为每种需求规格的长度和数量,1≤j≤n,0≤lj≤L,m为需要原材料的根数,aij为每根原料的切割数量1≤i≤m,1≤j≤n,约束条件为xi为第i根原材料的余料xmax为余料的最大值;
对于遗传算法,可描述为下述数学模型:
式中,X=[x1,x2,…,xn]T为决策变量,f(X)为目标函数,式1b和1c为约束条件,U是基本空间,Ω是U的一个子集,满足约束条件的解X称为可行解,集合Ω表示由所有可行解所组成的一个集合,叫做可行解集合;
第二步,针对该数学模型采用首次自适应降序算法和遗传算法进行求解,通过实现以上两种算法,计算出原材料的总需求量,并详细给出每一根原料对应的切割模式;
首次自适应降序算法求解步骤为:
S1、将所需规格按长度大小排序,编号为l1≥l2≥…≥ln,对应的数量为d1,d2,…,dn,原材料长度为L;
S2、对原料进行分割,首先满足l1的需求,需要d1/g+1根,g=L/l1,取整,每根原料的余量为L1,如果L1≤li且L1≥li+1,并且di+1>0,则将余量分割规格li+1,如果余量还能分割,就进行下去;
S3、按照S2依次计算,将所需规格全部满足;
遗传算法求解步骤为:
S1、初始群体的确定,设初始群体的规模为Q,即产生问题中Q个可行解,设t为进化代数计数器,T为最大进化代数,设染色体Pk为初始群体中第k个染色体,在产生每个染色体可行解过程中,tni是指当前第i种材料剩下的需求量,RL是在输出时为总切边损失,TL是当前切边损失,C是当前订货材料的总根数,d是第i种订货材料当前能选取的最大数量;
具体算法如下:
1.1.k=1;
1.2.当k>Q时,完成染色体的选取过程,输出目前包含多种信息的染色体Pk,k=1,2,…,Q;否则,tni=li,i=1,2,…,m,l1,l2,…,lm排序满足下列条件:
l1*tn1≥l2*tn2≥…≥lm*tnm (2)
转1.3;
1.3.产生第k个染色体;
1.4.
1.5.当C=0时,转1.8;否则TL=L,num=num+1;
1.6.i=1;
1.6.1.如果i<m,转1.6.2;否则,转1.7;
1.6.2.如果li≤TL且tni>0,转1.6.3;否则,i=i+1转1.6.1;
1.6.3.从1到d中随机地选取一个整数g,tni=tni-g,TL=TL-g*li,i=i+1,转1.6.1;循环1.6会产生一根原材料的切割方式;
1.7.RL=TL+RL,对改变需求量后的订货材料综合长度重新进行排序,使得(1)成立,转1.5;
1.8.储存第k个染色体Pk的信息,其中num为消耗的原材料的数量,总的切边损失为RL,同时记录所有的切割方式;k=k+1,转1.2;
S2、个体评价,即计算个体的适应值,采用数字符号编码方法,使用目标函数的倒数作为其适应度函数;假设第t代第k个染色体为P(t,k),它是对应问题(1)一个可行解,其中消耗根原材料,每根原材料对应一个切割模式,它们分别记为将其排列在一起,得到P(t,k)的编码为:
其中编码记录了第j个切割模式的数据和其中:
适应度函数为:
S3、选择运算,采用比例选择(Proportional Model)算子,其基本思想为个体被选中的概率与适应度大小成正比,设第t代第k个个体的适应度为则它被选中的概率为:
具体算法如下:
3.1.计算计算令csum1=0;
3.2.在[0,1]之间随机产生一个整数d,若csumk<d≤csumk+1,1≤k≤Q,则染色体被选中;这一步重复Q次,便有Q个染色体(包含重复的)被选为下一代的父本;
S4、交叉运算,对于第t代染色体,选择单点交叉算子进行运算;
假设交叉点取为w,则相应产生两个候选子代为:
但是在一般情况下,它们不一定是问题(1)的一个可行解;我们先计算P(t,k)和P(t,k')的对应第i种材料的根数与需求量的差:
其中这里表示第t代第k个染色体中第j个切割模式长度为li的切割数量;然后分别对子代染色体P(t,k)和P(t,k')进行修正,修正后得到问题(1)的可行解;
具体算法如下:
4.1.确定整数j0,先令j0=w+1,tni=ni-y'i,i=1,2,…,m,计算若tni≥0,i=1,2,…,m,并且则j0=j0+1,转4.2.1;若tni<0,且则停止;否则
4.2.补充订货材料的差额部分,
4.2.1.若C=0,则停止;否则,TL=L,j=j+1,i=1,转4.2.2;
4.2.2.如果i<m,转4.2.3;否则,转4.2.5;
4.2.3.如果li≤TL且tni>0,转4.2.4;否则,i=i+1,转4.2.2;
4.2.4.从0到d中随机地选取一个整数g,tni=tni-g,TL=TL-g*li,i=i+1,转4.2.2;
4.2.5.RL=TL+RL,对改变需求量后的订货材料按当前综合长度进行排序,使得(2)成立,转4.2.1;
S5、变异运算,采用简单变异(Simple Mutation)策略对经过交叉后的群体中以变异概率pm随机选取染色体进行变异,首先随机选取变位的个数,即在1至等概率选一个整数为然后再随机选择Iα个变异,设为接着对这Iα个切割模式进行重新选择;
具体算法如下:
5.1.令u=1,tni=0,i=1,2,…,m;
5.2.随机选取在区间随机产生Iα个数j1,j2,…,
5.3.tni=tni+aiu,i=1,2,…,m,u=j1,j2,…,P(t,k)中消去后记为P'(t,k);
5.4.对重新选择,numk=0;
5.4.1若tni=0,i=1,2,…,m,则停止;否则,TL=L,numk=numk+1,i=1,转5.4.2;
5.4.2.如果i<m,转5.4.3;否则,转5.4.5;
5.4.3.如果li≤TL且tni>0,转5.4.4;否则,i=i+1,转5.4.1;
5.4.4.从1到d中随机地选取一个整数g,tni=tni-g,TL=TL-g*li,i=i+1,转5.4.1;
5.4.5.对改变需求量后的订货材料按当前综合长度重新进行排序,转5.4.1;
5.6.将上一步中产生的numk个切割方式加入P'(t,k)中,就完成了变异运算;
S6、终止条件判断,若t≤T,则t=t+1,转到S2;若t>T,则输出具有最大适应度的个体最优解,终止计算。
本发明多芯管下料问题的实质为一维单规格下料问题,它指的是采购一定数量、一定长度的多芯管原材料,使其满足整船上多芯管的需求总量,同时要求在每根原料上安排相应的拉放长度组合,实现采购数量最少,余料安排合理,管材利用率最高。对于类似这样的优化问题,在复杂的约束条件下要想完全精确地求出最优解或近似最优解是很困难的,本发明选择的两种算法都能以有限的代价来解决问题,求出令人满意的结果,是比较合理和有效的方法。与以往技术相比,本发明产生了如下技术效果:在完成造船生产任务的同时,使多芯管的管材使用量最少,利用率显著提高,达到90%以上,余料安排合理,提高工作效率,起到降本增效的作用。
具体实施方式
本发明的技术方案为:对多芯管下料问题进行数学抽象,将生产实际问题转化为数学问题,建立数学模型,针对该数学模型采用首次自适应降序算法和遗传算法进行求解,通过实现以上两种算法,计算出原材料的总需求量,并详细给出每一根原料对应的切割模式。
本发明分为以下几个步骤:
第一步,建立数学模型;
对于首次自适应降序算法,该数学模型为:
其中L为原材料长度,n为需求规格的数量,n>0,lj和dj为每种需求规格的长度和数量,1≤j≤n,0≤lj≤L,m为需要原材料的根数,aij为每根原料的切割数量1≤i≤m,1≤j≤n,约束条件为xi为第i根原材料的余料xmax为余料的最大值;
对于遗传算法,可描述为下述数学模型:
式中,X=[x1,x2,…,xn]T为决策变量,f(X)为目标函数,式1b和1c为约束条件,U是基本空间,Ω是U的一个子集,满足约束条件的解X称为可行解,集合Ω表示由所有可行解所组成的一个集合,叫做可行解集合;
第二步,针对该数学模型采用首次自适应降序算法和遗传算法进行求解,通过实现以上两种算法,计算出原材料的总需求量,并详细给出每一根原料对应的切割模式;
首次自适应降序算法求解步骤为:
S1、将所需规格按长度大小排序,编号为l1≥l2≥…≥ln,对应的数量为d1,d2,…,dn,原材料长度为L;
S2、对原料进行分割,首先满足l1的需求,需要d1/g+1根,g=L/l1,取整,每根原料的余量为L1,如果Ll≤li且Ll≥li+1,并且di+1>0,则将余量分割规格li+1,如果余量还能分割,就进行下去;
S3、按照S2依次计算,将所需规格全部满足;
遗传算法求解步骤为:
S1、初始群体的确定,设初始群体的规模为Q,即产生问题中Q个可行解,设t为进化代数计数器,T为最大进化代数,设染色体Pk为初始群体中第k个染色体,在产生每个染色体可行解过程中,tni是指当前第i种材料剩下的需求量,RL是在输出时为总切边损失,TL是当前切边损失,C是当前订货材料的总根数,d是第i种订货材料当前能选取的最大数量;
具体算法如下:
1.1.k=1;
1.2.当k>Q时,完成染色体的选取过程,输出目前包含多种信息的染色体
Pk,k=1,2,…,Q;否则,tni=li,i=1,2,…,m,l1,l2,…,lm排序满足下列条件:
l1*tn1≥l2*tn2≥…≥lm*tnm (2)
转1.3;
1.3.产生第k个染色体;
1.4.
1.5.当C=0时,转1.8;否则TL=L,num=num+1;
1.6.i=1;
1.6.1.如果i<m,转1.6.2;否则,转1.7;
1.6.2.如果li≤TL且tni>0,转1.6.3;否则,i=i+1转1.6.1;
1.6.3.从1到d中随机地选取一个整数g,tni=tni-g,TL=TL-g*li,i=i+1,转1.6.1;循环1.6会产生一根原材料的切割方式;
1.7.RL=TL+RL,对改变需求量后的订货材料综合长度重新进行排序,使得(1)成立,转1.5;
1.8.储存第k个染色体Pk的信息,其中num为消耗的原材料的数量,总的切边损失为RL,同时记录所有的切割方式;k=k+1,转1.2;
S2、个体评价,即计算个体的适应值,采用数字符号编码方法,使用目标函数的倒数作为其适应度函数;假设第t代第k个染色体为P(t,k),它是对应问题(1)一个可行解,其中消耗根原材料,每根原材料对应一个切割模式,它们分别记为将其排列在一起,得到P(t,k)的编码为:
其中编码记录了第j个切割模式的数据和其中:
适应度函数为:
S3、选择运算,采用比例选择(Proportional Model)算子,其基本思想为个体被选中的概率与适应度大小成正比,设第t代第k个个体的适应度为则它被选中的概率为:
具体算法如下:
3.1.计算计算令csum1=0;
3.2.在[0,1]之间随机产生一个整数d,若csumk<d≤csumk+1,1≤k≤Q,则染色体被选中;这一步重复Q次,便有Q个染色体(包含重复的)被选为下一代的父本;
S4、交叉运算,对于第t代染色体,选择单点交叉算子进行运算;
假设交叉点取为w,则相应产生两个候选子代为:
但是在一般情况下,它们不一定是问题(1)的一个可行解;我们先计算P(t,k)和P(t,k')的对应第i种材料的根数与需求量的差:
其中这里表示第t代第k个染色体中第j个切割模式长度为li的切割数量;然后分别对子代染色体P(t,k)和P(t,k')进行修正,修正后得到问题(1)的可行解;
具体算法如下:
4.1.确定整数j0,先令j0=w+1,tni=ni-y'i,i=1,2,…,m,计算若tni≥0,i=1,2,…,m,并且则j0=j0+1,转4.2.1;若tni<0,且则停止;否则
4.2.补充订货材料的差额部分,
4.2.1.若C=0,则停止;否则,TL=L,j=j+1,i=1,转4.2.2;
4.2.2.如果i<m,转4.2.3;否则,转4.2.5;
4.2.3.如果li≤TL且tni>0且tni>0,转4.2.4;否则,i=i+1,转4.2.2;
4.2.4.从0到d中随机地选取一个整数g,tni=tni-g,TL=TL-g*li,i=i+1,转4.2.2;
4.2.5.RL=TL+RL,对改变需求量后的订货材料按当前综合长度进行排序,使得(2)成立,转4.2.1;
S5、变异运算,采用简单变异(Simple Mutation)策略对经过交叉后的群体中以变异概率pm随机选取染色体进行变异,首先随机选取变位的个数,即在1至等概率选一个整数为然后再随机选择Iα个变异,设为接着对这Iα个切割模式进行重新选择;
具体算法如下:
5.1.令u=1,tni=0,i=1,2,…,m;
5.2.随机选取在区间随机产生Iα个数j1,j2,…,
5.3.tni=tni+aiu,i=1,2,…,m,u=j1,j2,…,P(t,k)中消去后记为P'(t,k);
5.4.对从新选择,numk=0;
5.4.1若tni=0,i=1,2,…,m,则停止;否则,TL=L,numk=numk+1,i=1,转5.4.2;
5.4.2.如果i<m,转5.4.3;否则,转5.4.5;
5.4.3.如果li≤TL且tni>0,转5.4.4;否则,i=i+1,转5.4.1;
5.4.4.从1到d中随机地选取一个整数g,tni=tni-g,TL=TL-g*li,i=i+1,转5.4.1;
5.4.5.对改变需求量后的订货材料按当前综合长度重新进行排序,转5.4.1;
5.7.将上一步中产生的numk个切割方式加入P'(t,k)中,就完成了变异运算;
S6、终止条件判断,若t≤T,则t=t+1,转到S2;若t>T,则输出具有最大适应度的个体最优解,终止计算。
下述表格为下料实施例中最终输出数据文件的部分内容,其中“多芯管规格”为全船所有的多芯管对应的规格,“订货单卷长度”为下料时给定的原材料长度,“理论拉放长度”为实际铺设的各个多芯管长度的集合,以上数据为已知条件,而“套料结果”和“余料”为计算结果,其中“套料结果”为拉放模式的集合,数据是n就表示第n根原材料的拉放集合,“余料”为每一根原材料所剩的余量。
例如,第1根长度为300米的原材料,拉放长度为293米,所剩余料为7米。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种船舶多芯管下料的优化方法,其特征在于,对多芯管下料问题进行数学抽象,将生产实际问题转化为数学问题,建立数学模型,针对该数学模型采用遗传算法进行求解,通过实现以上算法,计算出原材料的总需求量,并详细给出每一根原料对应的切割模式;
包括如下步骤:
第一步,建立数学模型;
对于遗传算法,可描述为下述数学模型:
<mrow>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>m</mi>
<mi>a</mi>
<mi>x</mi>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>f</mi>
<mrow>
<mo>(</mo>
<mi>X</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mn>1</mn>
<mi>a</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>s</mi>
<mo>.</mo>
<mi>t</mi>
<mo>.</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>X</mi>
<mo>&Element;</mo>
<mi>&Omega;</mi>
</mrow>
</mtd>
<mtd>
<mrow>
<mn>1</mn>
<mi>b</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow></mrow>
</mtd>
<mtd>
<mrow>
<mi>&Omega;</mi>
<mo>&SubsetEqual;</mo>
<mi>U</mi>
</mrow>
</mtd>
<mtd>
<mrow>
<mn>1</mn>
<mi>c</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
式中,X=[x1,x2,…,xn]T为决策变量,f(X)为目标函数,式1b和1c为约束条件,U是基本空间,Ω是U的一个子集,满足约束条件的解X称为可行解,集合Ω表示由所有可行解所组成的一个集合,叫做可行解集合;
第二步,针对该数学模型采用遗传算法进行求解,通过实现以上算法,计算出原材料的总需求量,并详细给出每一根原料对应的切割模式;
遗传算法求解步骤为:
S1、初始群体的确定,设初始群体的规模为Q,即产生问题中Q个可行解,设t为进化代数计数器,T为最大进化代数,设染色体Pk为初始群体中第k个染色体,在产生每个染色体可行解过程中,tni是指当前第i种材料剩下的需求量,RL是在输出时为总切边损失,TL是当前切边损失,C是当前订货材料的总根数,d是第i种订货材料当前能选取的最大数量;
具体算法如下:
1.1.k=1;
1.2.当k>Q时,完成染色体的选取过程,输出目前包含多种信息的染色体Pk,k=1,2,…,Q;否则,tni=li,i=1,2,…,m,l1,l2,…,lm排序满足下列条件:
l1*tn1≥l2*tn2≥…≥lm*tnm (2)
转1.3;
1.3.产生第k个染色体;
1.4.
1.5.当C=0时,转1.8;否则TL=L,num=num+1;
1.6.i=1;
1.6.1.如果i<m,转1.6.2;否则,转1.7;
1.6.2.如果li≤TL且tni>0,转1.6.3;否则,i=i+1转1.6.1;
1.6.3.从1到d中随机地选取一个整数g,tni=tni-g,TL=TL-g*li,i=i+1,转1.6.1;循环1.6会产生一根原材料的切割方式;
1.7.RL=TL+RL,对改变需求量后的订货材料综合长度重新进行排序,使得(1)成立,转1.5;
1.8.储存第k个染色体Pk的信息,其中num为消耗的原材料的数量,总的切边损失为RL,同时记录所有的切割方式;k=k+1,转1.2;
S2、个体评价,即计算个体的适应值,采用数字符号编码方法,使用目标函数的倒数作为其适应度函数;假设第t代第k个染色体为P(t,k),它是对应问题(1)一个可行解,其中消耗根原材料,每根原材料对应一个切割模式,它们分别记为将其排列在一起,得到P(t,k)的编码为:
<mrow>
<mi>P</mi>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<msubsup>
<mi>P</mi>
<mrow>
<mi>k</mi>
<mn>1</mn>
</mrow>
<mi>t</mi>
</msubsup>
<msubsup>
<mi>P</mi>
<mrow>
<mi>k</mi>
<mn>2</mn>
</mrow>
<mi>t</mi>
</msubsup>
<mo>...</mo>
<msubsup>
<mi>P</mi>
<mrow>
<msubsup>
<mi>kN</mi>
<mi>k</mi>
<mi>t</mi>
</msubsup>
</mrow>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
<mo>,</mo>
<mn>2</mn>
<mo>,</mo>
<mn>3</mn>
<mo>,</mo>
<mo>...</mo>
<mo>,</mo>
<mi>Q</mi>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
其中编码记录了第j个切割模式的数据和其中:
<mrow>
<msubsup>
<mi>u</mi>
<mi>j</mi>
<mrow>
<mi>t</mi>
<mi>k</mi>
</mrow>
</msubsup>
<mo>=</mo>
<mi>L</mi>
<mo>-</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>m</mi>
</munderover>
<msubsup>
<mi>a</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mi>t</mi>
<mi>k</mi>
</mrow>
</msubsup>
<msub>
<mi>l</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</mrow>
适应度函数为:
<mrow>
<mi>F</mi>
<mrow>
<mo>(</mo>
<mi>P</mi>
<mo>(</mo>
<mrow>
<mi>t</mi>
<mo>,</mo>
<mi>k</mi>
</mrow>
<mo>)</mo>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mn>1</mn>
<mo>/</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<msubsup>
<mi>N</mi>
<mi>k</mi>
<mi>t</mi>
</msubsup>
</munderover>
<msubsup>
<mi>u</mi>
<mi>j</mi>
<mrow>
<mi>t</mi>
<mi>k</mi>
</mrow>
</msubsup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</mrow>
S3、选择运算,采用比例选择算子,其基本思想为个体被选中的概率与适应度大小成正比,设第t代第k个个体的适应度为则它被选中的概率为:
<mrow>
<msubsup>
<mi>p</mi>
<mi>k</mi>
<mi>t</mi>
</msubsup>
<mo>=</mo>
<msubsup>
<mi>F</mi>
<mi>k</mi>
<mi>t</mi>
</msubsup>
<mo>/</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>v</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>Q</mi>
</munderover>
<msubsup>
<mi>F</mi>
<mi>v</mi>
<mi>t</mi>
</msubsup>
<mo>,</mo>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
<mo>,</mo>
<mn>2</mn>
<mo>,</mo>
<mo>...</mo>
<mo>,</mo>
<mi>Q</mi>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>6</mn>
<mo>)</mo>
</mrow>
</mrow>
具体算法如下:
3.1.计算计算令csum1=0;
3.2.在[0,1]之间随机产生一个整数d,若csumk<d≤csumk+1,1≤k≤Q,则染色体被选中;这一步重复Q次,便有Q个染色体被选为下一代的父本;
S4、交叉运算,对于第t代染色体,选择单点交叉算子进行运算;
假设交叉点取为w,则相应产生两个候选子代为:
但是在一般情况下,它们不一定是问题(1)的一个可行解;我们先计算P(t,k)和P(t,k')的对应第i种材料的根数与需求量的差:
<mrow>
<msub>
<mi>y</mi>
<mi>i</mi>
</msub>
<mo>=</mo>
<msub>
<mi>n</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msubsup>
<mi>y</mi>
<mi>i</mi>
<mo>&prime;</mo>
</msubsup>
<mo>-</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mi>w</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<msubsup>
<mi>N</mi>
<msup>
<mi>k</mi>
<mo>&prime;</mo>
</msup>
<mi>t</mi>
</msubsup>
</munderover>
<msubsup>
<mi>a</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<msup>
<mi>tk</mi>
<mo>&prime;</mo>
</msup>
</mrow>
</msubsup>
<mo>,</mo>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
<mo>,</mo>
<mn>2</mn>
<mo>,</mo>
<mo>...</mo>
<mo>,</mo>
<mi>m</mi>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>7</mn>
<mi>a</mi>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>z</mi>
<mi>i</mi>
</msub>
<mo>=</mo>
<msub>
<mi>n</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msubsup>
<mi>z</mi>
<mi>i</mi>
<mo>&prime;</mo>
</msubsup>
<mo>-</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mi>w</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<msubsup>
<mi>N</mi>
<mi>k</mi>
<mi>t</mi>
</msubsup>
</munderover>
<msubsup>
<mi>a</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mi>t</mi>
<mi>k</mi>
</mrow>
</msubsup>
<mo>,</mo>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
<mo>,</mo>
<mn>2</mn>
<mo>,</mo>
<mo>...</mo>
<mo>,</mo>
<mi>m</mi>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>7</mn>
<mi>b</mi>
<mo>)</mo>
</mrow>
</mrow>
其中这里表示第t代第k个染色体中第j个切割模式长度为li的切割数量;然后分别对子代染色体P(t,k)和P(t,k')进行修正,修正后得到问题(1)的可行解;
具体算法如下:
4.1.确定整数j0,先令j0=w+1,tni=ni-y′i,i=1,2,…,m,计算若tni≥0,i=1,2,…,m,并且则j0=j0+1,转4.2.1;若tni<0,且则停止;否则
4.2.补充订货材料的差额部分,
4.2.1.若C=0,则停止;否则,TL=L,j=j+1,i=1,转4.2.2;
4.2.2.如果i<m,转4.2.3;否则,转4.2.5;
4.2.3.如果li≤TL且tni>0,转4.2.4;否则,i=i+1,转4.2.2;
4.2.4.从0到d中随机地选取一个整数g,tni=tni-g,TL=TL-g*li,i=i+1,转4.2.2;
4.2.5.RL=TL+RL,对改变需求量后的订货材料按当前综合长度进行排序,使得(2)成立,转4.2.1;
S5、变异运算,采用简单变异策略对经过交叉后的群体中以变异概率pm随机选取染色体进行变异,首先随机选取变位的个数,即在1至等概率选一个整数为然后再随机选择Iα个变异,设为接着对这Iα个切割模式进行重新选择;
具体算法如下:
5.1.令u=1,tni=0,i=1,2,…,m;
5.2.随机选取在区间随机产生Iα个数
5.3.tni=tni+aiu,i=1,2,…,m,u=j1,P(t,k)中消去后记为P'(t,k);
5.4.对重新选择,numk=0;
5.4.1若tni=0,i=1,2,…,m,则停止;否则,TL=L,numk=numk+1,i=1,转5.4.2;
5.4.2.如果i<m,转5.4.3;否则,转5.4.5;
5.4.3.如果li≤TL且tni>0,转5.4.4;否则,i=i+1,转5.4.1;
5.4.4.从1到d中随机地选取一个整数g,tni=tni-g,TL=TL-g*li,i=i+1,转5.4.1;
5.4.5.对改变需求量后的订货材料按当前综合长度重新进行排序,转5.4.1;
5.5.将上一步中产生的numk个切割方式加入P'(t,k)中,就完成了变异运算;
S6、终止条件判断,若t≤T,则t=t+1,转到S2;若t>T,则输出具有最大适应度的个体最优解,终止计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310637887.0A CN103714198B (zh) | 2013-11-29 | 2013-11-29 | 一种船舶多芯管下料的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310637887.0A CN103714198B (zh) | 2013-11-29 | 2013-11-29 | 一种船舶多芯管下料的优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103714198A CN103714198A (zh) | 2014-04-09 |
CN103714198B true CN103714198B (zh) | 2017-12-26 |
Family
ID=50407169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310637887.0A Active CN103714198B (zh) | 2013-11-29 | 2013-11-29 | 一种船舶多芯管下料的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103714198B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557836A (zh) * | 2016-10-27 | 2017-04-05 | 重庆大学 | 一种针对导爆索下制加工生产优化方法 |
CN108399298B (zh) * | 2018-03-02 | 2022-02-15 | 中船第九设计研究院工程有限公司 | 一种管材切割的套料算法 |
CN108519960B (zh) * | 2018-04-13 | 2022-04-05 | 上海船舶研究设计院(中国船舶工业集团公司第六0四研究院) | 船舶材料利用率的计算方法、装置及设备 |
CN108805288B (zh) * | 2018-06-15 | 2022-02-15 | 广东工业大学 | 一种一维套料方法、装置及计算机可读存储介质 |
CN109472103A (zh) * | 2018-11-20 | 2019-03-15 | 蓬莱中柏京鲁船业有限公司 | 一种型材套料管理方法、装置、计算机设备及可存储介质 |
CN109583661A (zh) * | 2018-12-09 | 2019-04-05 | 天津市双盈盛制管有限公司 | 一种金属管材排产优化系统 |
CN110091133B (zh) * | 2019-05-28 | 2020-05-19 | 广东三维家信息科技有限公司 | 型材加工优化方法及装置 |
CN111008458A (zh) * | 2019-11-12 | 2020-04-14 | 天津博迈科海洋工程有限公司 | 一种大型油气模块管线的智能化套料方法 |
CN111159887B (zh) * | 2019-12-27 | 2024-03-19 | 天津博迈科海洋工程有限公司 | 一种模块结构型材优化套料方法 |
CN111353189A (zh) * | 2020-02-21 | 2020-06-30 | 广东三维家信息科技有限公司 | 家装线条材料的配置方法、装置及电子设备 |
CN112308283B (zh) * | 2020-02-28 | 2023-10-27 | 中铁宝桥集团有限公司 | 一种多规格、多目标一维下料方法 |
CN112974973A (zh) * | 2021-02-09 | 2021-06-18 | 烟台中集来福士海洋工程有限公司 | 角钢裁剪控制方法以及装置 |
CN113052376B (zh) * | 2021-03-19 | 2024-06-04 | 杭州晨龙智能科技有限公司 | 生产排程方法及装置,存储介质和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739606A (zh) * | 2008-11-19 | 2010-06-16 | 北京理工大学 | 一种节省原材料的一维下料方法 |
CN101862948A (zh) * | 2010-05-27 | 2010-10-20 | 重庆大学 | 一种三阶段条材优化下料方法 |
-
2013
- 2013-11-29 CN CN201310637887.0A patent/CN103714198B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739606A (zh) * | 2008-11-19 | 2010-06-16 | 北京理工大学 | 一种节省原材料的一维下料方法 |
CN101862948A (zh) * | 2010-05-27 | 2010-10-20 | 重庆大学 | 一种三阶段条材优化下料方法 |
Non-Patent Citations (2)
Title |
---|
混合遗传算法求解一维优化下料问题;卢仁甫等;《中国水运(理论版)》;20060420;第4卷(第4期);第205-206页 * |
用遗传算法解决下料问题;张文俊;《科技情报开发与经济》;20060605;第16卷(第16期);第178-179页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103714198A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714198B (zh) | 一种船舶多芯管下料的优化方法 | |
CN109284858B (zh) | 一种钢筋下料优化方法、装置及存储设备 | |
CN104636813B (zh) | 一种求解车间作业调度问题的混合遗传模拟退火算法 | |
CN102346882B (zh) | 炼钢-连铸生产智能调度的二层规划方法 | |
CN109636011B (zh) | 一种基于改进的变邻域遗传算法的多班制计划排程法 | |
CN104751297A (zh) | 一种混流生产线产能分配方法 | |
CN106971236A (zh) | 一种基于遗传算法的柔性作业车间分批调度方法 | |
CN112907150B (zh) | 一种基于遗传算法的生产排程方法 | |
CN105204472A (zh) | 一种单件离散型生产作业排程优化方法 | |
CN102737356A (zh) | 智能公交调度排班计算方法 | |
CN108805403A (zh) | 一种基于改进遗传算法的单件车间调度方法 | |
CN105550771A (zh) | 一种基于nsga-ii的炼钢连铸生产调度的多目标优化方法 | |
Guo et al. | Genetic optimization of order scheduling with multiple uncertainties | |
CN113159687B (zh) | 一种车间agv-uav协同的物料配送路径规划方法和系统 | |
CN108776845A (zh) | 一种基于双目标作业车间调度的混合果蝇算法 | |
CN114707432B (zh) | 一种基于遗传算法的锻造工厂智能排产方法 | |
CN110188951A (zh) | 一种基于最小能耗的砖厂摆渡车的调度优化的建立方法 | |
CN106327053B (zh) | 一种基于多模式集合的纺织工艺推荐模型的构建方法 | |
CN115952896A (zh) | 一种基于物料过程齐套的柔性作业车间调度方法 | |
CN113762811B (zh) | 一种考虑加班的无拖期Job Shop调度问题求解方法及系统 | |
CN109543921B (zh) | 基于改进遗传算法的石油专用管流水车间的生产排产方法 | |
CN114881301A (zh) | 生产线的仿真排产方法、系统、终端设备及存储介质 | |
CN116985146B (zh) | 退役电子产品的机器人并行拆解规划方法 | |
Uturbey et al. | Dynamic optimal power flow approach to account for consumer response in short term hydrothermal coordination studies | |
CN106875031B (zh) | 一种多车间作业调度方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |