本发明涉及仓储管理技术领域,特别是涉及一种基于遗传思想粒子群算法的拣选顺序确定的方法及装置。
背景技术:
仓储管理是指对仓库和仓库中的存储的物资进行管理,由于现代仓储的作用不仅是保管,更多的是物资流转中心,对仓储管理的重点不仅仅是着眼于物资保管的安全性,更多关注的是如何运用现代技术,如信息技术、自动化技术来提高仓储运作的速度和效益。
仓储管理的基本内容包括货物的出库作业和入库作业等,巷道堆垛机是仓储管理中常用的工具,可以完成货物在货架范围内的纵向和横向移动,将位于巷道口的货物存入货格,或者取出货格内的货物运送到巷道口,实现货物的三维立体拣选。固定货架中货物的货位点相对固定,利用巷道堆垛机进行固定货架中货物拣选,一般情况下,拣选货物的数量较多,不同的拣选顺序所花费的拣选时间往往不同,若能够确定出拣选时间最少的一种拣选顺序,将极大的节省拣选货物花费的时间,从而提高拣选的工作效率。
传统方式中,采用粒子群算法对拣选顺序进行优化,以期望确定出最优解即最优的拣选顺序,依照该拣选顺序,使得巷道堆垛机拣选货物花费的时间最少。但是粒子群算法初期收敛速度非常快,当粒子接近最优解时,速度几乎变为零,导致收敛速度变慢,使得粒子群出现趋同性,带来早熟,也即确定出的最优解出现局部最优的情况。
因此,如何改善粒子群算法的早熟问题,从而确定出最优的拣选顺序,是本领域技术人员亟待解决的技术问题。
技术实现要素:
本发明的目的是提供一种基于遗传思想粒子群算法的拣选顺序确定的方法及装置,可以有效改善粒子群算法的早熟问题,从而确定出一种最优的拣选顺序即花费时间最少的拣选顺序。
为解决上述技术问题,本发明提供一种基于遗传思想粒子群算法的拣选顺序确定的方法包括:
S1、根据优化目标,建立拣选顺序问题的目标函数;
S2、利用粒子群算法对目标函数进行初始化,生成父代粒子群;
S3、计算所述父代粒子群中各个粒子的适应度;
S4、比较所述父代粒子群中目标粒子的适应度和所述目标粒子的个体最优位置的适应度,将适应度最优值作为所述目标粒子的个体极值;所述目标粒子为所述父代粒子群中的任意一个粒子;
S5、比较所述父代粒子群中各个粒子的适应度和所述父代粒子群的群体最优位置的适应度,将适应度最优值作为所述父代粒子群的局部极值;
S6、依据所述个体极值和所述局部极值,对所述父代粒子群进行交叉变异操作,生成子代粒子群;
S7、将所述子代粒子群作为下一次迭代的父代粒子群;
S8、判断迭代次数是否达到预设的最大迭代次数,若是,输出拣选顺序问题的结果;若否则返回所述S3。
可选的,所述目标函数具体为:
其中,T表示拣选顺序花费的时间,n表示货位点个数,xi表示货位点i的列号,zi表示货位点i的行号,b为货格宽度,h为货格高度;vx为水平运动速度,vz为垂直运动速度。
可选的,在所述S6中:
S61:将所述目标粒子与所述目标粒子相对应的个体极值进行交叉操作,产生第一子代粒子,比较所述目标粒子的适应度和所述第一子代粒子的适应度;将适应度最优的粒子作为第二子代粒子,产生第二子代粒子群;所述第二子代粒子群由所述至少一个第二子代粒子构成;
S62、将所述第二子代粒子与所述局部极值进行交叉操作,产生第三子代粒子,比较所述第二子代粒子的适应度和所述第三子代粒子的适应度;将适应度最优的粒子作为第四子代粒子,产生第四子代粒子群;所述第四子代粒子群由所述至少一个第四子代粒子构成;
S63、将所述第四子代粒子进行变异操作,产生第五子代粒子,比较所述第四子代粒子的适应度和所述第五子代粒子的适应度;将适应度最优的粒子群作为第六子代粒子,产生第六子代粒子群;所述第六子代粒子群由所述至少一个第六子代粒子构成;
所述将所述子代粒子群作为下一次迭代的父代粒子群,包括:将所述第六子代粒子群作为下一次迭代的父代粒子群。
可选的,在所述S61中:
将所述目标粒子与所述目标粒子相对应的个体极值采用部分映射交叉算子进行交叉操作,产生第一子代粒子。
可选的,在所述S62中:
将所述第二子代粒子与所述局部极值采用部分映射交叉算子进行交叉操作,产生第三子代粒子。
可选的,在所述S63中:
将所述第四子代粒子采用换序变异方式进行变异操作,产生第五子代粒子。
本发明还提供一种基于遗传思想粒子群算法的拣选顺序确定装置包括,所述拣选顺序确定装置包括建立单元、生成单元、计算单元、比较单元、交叉变异单元、替换单元和判断单元:
所述建立单元,用于根据优化目标,建立拣选顺序问题的目标函数;
所述生成单元,用于利用粒子群算法对目标函数进行初始化,生成父代粒子群;
所述计算单元,用于计算所述父代粒子群中各个粒子的适应度;
所述比较单元,用于比较所述父代粒子群中目标粒子的适应度和所述目标粒子的个体最优位置的适应度,将适应度最优值作为所述目标粒子的个体极值;所述目标粒子为所述父代粒子群中的任意一个粒子;
所述比较单元还用于比较所述父代粒子群中各个粒子的适应度和所述父代粒子群的群体最优位置的适应度,将适应度最优值作为所述父代粒子群的局部极值;
所述交叉变异单元,用于依据所述个体极值和所述局部极值,对所述父代粒子群进行交叉变异操作,生成子代粒子群;
所述替换单元,用于将所述子代粒子群作为下一次迭代的父代粒子群;
所述判断单元,用于判断迭代次数是否达到预设的最大迭代次数,若是,输出拣选顺序问题的结果;若否则触发所述计算单元。
可选的,所述目标函数具体为:
其中,T表示拣选顺序花费的时间,n表示货位点个数,xi表示货位点i的列号,zi表示货位点i的行号,b为货格宽度,h为货格高度;vx为水平运动速度,vz为垂直运动速度。
可选的,所述交叉变异单元包括交叉子单元和变异子单元:
所述交叉子单元,用于将所述目标粒子与所述目标粒子相对应的个体极值进行交叉操作,产生第一子代粒子,比较所述目标粒子的适应度和所述第一子代粒子的适应度;将适应度最优的粒子作为第二子代粒子,产生第二子代粒子群;所述第二子代粒子群由所述至少一个第二子代粒子构成;
所述交叉子单元还用于将所述第二子代粒子与所述局部极值进行交叉操作,产生第三子代粒子,比较所述第二子代粒子的适应度和所述第三子代粒子的适应度;将适应度最优的粒子作为第四子代粒子,产生第四子代粒子群;所述第四子代粒子群由所述至少一个第四子代粒子构成;
所述变异子单元,用于将所述第四子代粒子进行变异操作,产生第五子代粒子,比较所述第四子代粒子的适应度和所述第五子代粒子的适应度;将适应度最优的粒子群作为第六子代粒子,产生第六子代粒子群;所述第六子代粒子群由所述至少一个第六子代粒子构成;
所述替换单元具体用于将所述第六子代粒子群作为下一次迭代的父代粒子群。
由上述技术方案可以看出,根据优化目标,建立拣选顺序问题的目标函数,利用粒子群算法对目标函数进行初始化,生成父代粒子群,通过将父代粒子群中各个粒子与其对应的个体最优位置进行适应度的比较,确定出每个粒子对应的个体极值,并将父代粒子群中各个粒子与群体最优位置进行适应度的比较,确定出父代粒子群的局部极值。通过依据所述个体极值和所述局部极值,对所述父代粒子群进行交叉变异操作,生成子代粒子群,将所述子代粒子群作为下一次迭代的父代粒子群,重复执行上述操作,直到迭代次数达到预设的最大迭代次数,则停止重复执行上述操作,输出拣选顺序问题的结果。上述技术方案可以有效的避免粒子群算法接近最优解时带来的早熟问题,从而有效避免最优解为局部最优的情况,从而可以确定出一种花费时间最少的拣选顺序。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于遗传思想粒子群算法的拣选顺序确定方法的流程图;
图2为本发明实施例提供的一种交叉变异操作方法的流程图;
图3为本发明实施例提供的一种基于遗传思想粒子群算法的拣选顺序确定装置的装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种基于遗传思想粒子群算法的拣选顺序确定方法。本发明实施例提供的方法,可以应用于对货物拣选时,确定出一种拣选代价最小的拣选顺序。拣选代价具体可以是依照拣选顺序拣选货物时花费的时间。
图1为本发明实施例提供的一种基于遗传思想粒子群算法的拣选顺序确定方法的流程图,所述拣选顺序确定方法包括:
S1、根据优化目标,建立拣选顺序问题的目标函数。
在实际应用中,利用巷道堆垛机对货物进行拣选时,每个或每类货物有其固定的存放位置即货位点,本发明实施例中,拣选顺序可以是拣选货物时经过的货位点的顺序。在本发明实施例中,可以采用顺序编码的方式,来表示拣选顺序,例如,有9个货位点,可以用1-9这9个不重复的自然数来表示。
不同的拣选顺序,其花费的时间不尽相同。优化目标可以是确定出一种花费时间最少的拣选顺序。
根据优化目标可以建立相对应的目标函数,该目标函数可以是能够实现该优化目标的一个函数。因为优化目标是关于花费时间最少,因此建立的目标函数可以是一个与时间相关的函数,该目标函数具体可以为:
其中,T表示拣选顺序花费的时间,n表示货位点个数,xi表示货位点i的列号,zi表示货位点i的行号,xi+1表示货位点i+1的列号,zi+1表示货位点i+1的行号,b为货格宽度,h为货格高度;vx为水平运动速度,vz为垂直运动速度。
在本发明实施例中,拣选顺序花费的时间,可以是巷道堆垛机从原点例如巷道口出发遍历各个货位点一次且仅一次,完成拣选货物任务最后回到原点所使用的时间。
S2、利用粒子群算法对目标函数进行初始化,生成父代粒子群。
父代粒子群可以是一次迭代过程中,最初生成的粒子群。
利用粒子群算法对目标函数进行初始化,可以在n维解空间中随机生成m个粒子,在本发明实施例中,可将生成的m个粒子作为父代粒子群,父代粒子群中的每个粒子都有其对应的位置和速度。
n维解空间可以是一个n列m行的二维矩阵,每个粒子占用一行。n的具体取值可以是拣选货物的货位点个数。本发明实施例,对于m的具体数值不做限定,可以是根据优化的具体要求确定,或者是参考n的取值确定,例如m的取值可以是n取值的倍数。
S3、计算所述父代粒子群中各个粒子的适应度。
每个粒子可以代表一种拣选顺序,粒子的适应度可以反映出花费时间的长短。
可以根据适应度函数计算每个粒子的适应度,在本发明实施例中,适应度函数可以是与目标函数相同的函数,即适应度函数可以是:
在本发明实施例中,需要确定出花费时间最少的拣选顺序,故此,每个粒子的适应度越小,说明该粒子代表的拣选顺序花费的时间越少。
S4、比较所述父代粒子群中目标粒子的适应度和所述目标粒子的个体最优位置的适应度,将适应度最优值作为所述目标粒子的个体极值;所述目标粒子为所述父代粒子群中的任意一个粒子。
每个粒子都有其对应的一个个体极值,个体极值可以是该粒子在最优位置得到的适应度值,即当前发现的最优解。
利用粒子群算法,生成父代粒子群时,每个粒子都会有其对应的一个个体最优位置,在上述过程中随机产生m个粒子,则这m个粒子其对应的有m个个体最优位置。在初始化时,将粒子对应的个体最优位置的适应度值默认为该粒子对应的个体极值。
为了进一步明确默认的粒子对应的个体极值是否为该粒子在最优位置得到的适应度值,可以将每个粒子的适应度与其对应的个体最优位置的适应度进行比较,从而选取出每个粒子对应的个体极值。
以一个粒子为例,当该粒子的适应度小于其对应的个体最优位置的适应度时,则可以将该粒子的适应度值作为该粒子的个体极值;同理,当该粒子的适应度大于其对应的个体最优位置的适应度时,则可以仍将该个体最优位置的适应度值作为该粒子的个体极值。对于该粒子的适应度等于其对应的个体最优位置的适应度的情况,则可以选取其中的任意一个作为个体极值,例如,可以是将该粒子的适应度值作为该粒子的个体极值,或者是仍将该个体最优位置的适应度值作为该粒子的个体极值。
S5、比较所述父代粒子群中各个粒子的适应度和所述父代粒子群的群体最优位置的适应度,将适应度最优值作为所述父代粒子群的局部极值。
在一个粒子群中会其对应的一个局部极值,局部极值可以是该粒子群中最优位置的粒子的适应度值,即该粒子群中发现的全局最优解。
利用粒子群算法,生成父代粒子群时,该父代粒子群会有对应的一个群体最优位置。在初始化时,将粒子群的群体最优位置的适应度值默认为该粒子群对应的局部极值。
为了进一步明确默认的粒子群对应的局部极值是否为该粒子群中最优位置的粒子的适应度值,可以将每个粒子的适应度与该群体最优位置的适应度进行比较,从而选取出该粒子群对应的局部极值。
本发明实施例中,对于比较每个粒子的适应度与该群体最优位置的适应度的方式不做限定,可以将该粒子群中的每个粒子依次与该群体最优位置进行适应度的比较,最终确定出该粒子群的局部极值,例如,一个粒子群中包含有30个粒子,分别为粒子1-粒子30,该粒子群对应有一个群体最优位置,将粒子1与该群体最优位置的适应度进行比较,选择出适应度较小的作为新的群体最优位置,再将粒子2与该新的群体最优位置的适应度进行比较,选择出适应度较小的作为新的群体最优位置,依次类推,直到将该粒子群所有的粒子比较完毕,则最终得到的新的群体最优位置的适应度值即为该粒子群的局部极值。
也可以是先将该粒子群中的各个粒子的适应度进行比较,选出适应度最小的粒子,再将该粒子与该群体最优位置进行适应度的比较,若该粒子的适应度小于该群体最优位置的适应度值,则将该粒子的适应度值作为该粒子群的局部极值,若该粒子的适应度大于该群体最优位置的适应度值,则可以仍将该群体最优位置的适应度值作为该粒子群的局部极值。对于该粒子的适应度等于该群体最优位置的适应度值的情况,则可以选取其中的任意一个作为局部极值,例如,可以是将该粒子的适应度值作为该粒子群的局部极值,或者是仍将该个体最优位置的适应度值作为该粒子群的局部极值。
通过将粒子群体中每个粒子的适应度值与该群体最优位置的适应度值进行比较,可以确定出一个最优的适应度值作为该粒子群体的局部极值。
S6、依据所述个体极值和所述局部极值,对所述父代粒子群进行交叉变异操作,生成子代粒子群。
利用粒子群算法进行优化时,当粒子接近最优位置时,该最优位置可以用于标识花费时间最少的一种拣选顺序,收敛速度会变慢,导致粒子群出现趋同性,带来早熟,为了降低该早熟造成的影响,本发明实施例中,可以采用遗传算法中的交叉变异操作,对该粒子群进行处理,生成子代粒子群。相比于父代粒子群,该子代粒子群中的粒子接近最优位置时,可以有效避免产生局部最优解。
以一个粒子群P={p1,p2,...,pN}为例,其中p代表单个粒子,N表示群体规模,即粒子群中包含的粒子的个数。每个粒子通过所在的位置和速度来描述,不同位置的粒子其适应度值不同。粒子pi在d维解空间的位置表示为Xi=[xi1,xi2,...,xid]T,而速度表示为Vi=[vi1,vi2,...,vid]T。粒子pi的个体极值表示为pbesti,即pbesti是粒子pi当前发现的最优解。pi的局部极值表示为gbesti,即gbesti是粒子pi所在粒子群发现的全局最优解。
假设第i个粒子在第n代的位置和速度为Xi(n)和Vi(n),则第n+1代粒子的信息为:
Vi(n+1)=w·Vi(n)+c1·rand()·(pbesti-Xi(n))+c2·rand()·(gbesti-Xi(n)) (4)
其中,w是一个正常数,称为惯性权重系数,c1、c2分别表示粒子自身加速度权重和全局加速度权重,rand()是在[0,1]中服从均匀分布的随机数。
融入遗传思想的粒子群算法是将公式(4)中的w·Vi(n)项看作是一种变异操作,c1·rand()·(pbesti-Xi(n))+c2·rand()·(gbesti-Xi(n))项看作是一种交叉操作。
S7、将所述子代粒子群作为下一次迭代的父代粒子群。
S8、判断迭代次数是否达到预设的最大迭代次数,若是,输出拣选顺序问题的结果;若否则返回所述S3。
在上述操作中粒子群中包含有m个粒子,每个粒子可以用于标识一种拣选顺序,通过将粒子的位置不断进行优化,即将该粒子不断接近最优位置。通过迭代操作,该粒子群中的每个粒子最终会趋向于同一个最优位置,即拣选顺序问题的结果。
预设的最大迭代次数,可以根据实际操作的需求进行设置。当迭代次数达到预设的最大迭代次数后,可以输出拣选顺序问题的结果,该结果即为标识花费时间最少的一种拣选顺序。
需要说明的是,在每一次迭代过程中都有其对应的父代粒子群和子代粒子群,每次迭代过程中父代粒子群与上一次迭代过程中的父代粒子群可以不同,每次迭代过程得到的子代粒子群与上一次迭代过程得到的子代粒子群可以不同。
接下来,将对该父代粒子群进行交叉变异操作的具体操作过程展开介绍,如图2所示,为一种可行的交叉变异操作的方式,具体操作如下:
S61:将所述目标粒子与所述目标粒子相对应的个体极值进行交叉操作,产生第一子代粒子,比较所述目标粒子的适应度和所述第一子代粒子的适应度;将适应度最优的粒子作为第二子代粒子,产生第二子代粒子群;所述第二子代粒子群由所述至少一个第二子代粒子构成。
在本发明实施例中,每个粒子可以用于标识一种拣选顺序,该拣选顺序可以通过一个编码串来表示,例如,有9个货位点,分别用自然数1-9表示这9个货位点,编码串123456789表示一种从货位点1依次到货位点9的拣选顺序。
将目标粒子与所述目标粒子相对应的个体极值进行交叉操作,具体可以是将该目标粒子对应的编码串与该个体极值对应的编码串采用部分映射交叉(Partially Mapped Crossover,PMX)进行交叉操作。例如
A=1 2|3 4 5 6|7 8 9
B=9 8|7 6 5 4|3 2 1
其中,A可以是父代粒子群中的一个粒子对应的编码串,可以称作父代编码串,B可以是与该粒子对应的个体极值对应的编码串。
首先在父代编码串上随机选择两个交叉点,例如X=3,Y=6,按照对应的映射关系交换A、B中的3到6的基因串,然后对A、B进行修复,若交叉区域中的基因与未交换的基因有重复,则根据基因串的映射关系进行替换。本例的映射关系为:
映射关系:3-7,4-6,5-5
利用PMX计算结束后,可以得到新编码串为:
A'=1 2|7 6 5 4|3 8 9
B'=9 8|3 4 5 6|7 2 1
其中,A'表示的编码串所对应的粒子即为得到的第一子代粒子,将该第一子代粒子与A表示的编码串所对应的粒子的适应度进行比较,当该粒子的适应度小于第一子代粒子的适应度时,则可以将该粒子作为第二子代粒子;当该粒子的适应度大于第一子代粒子的适应度时,则可以将该第一子代粒子作为第二子代粒子。对于该粒子的适应度等于第一子代粒子的适应度的情况,则可以选取其中的任意一个作为第二子代粒子。
以此类推,可以将每个粒子与其对应的第一子代粒子的适应度进行比较,选择适应度较小的粒子作为第二子代粒子,从而完成对粒子位置的更新,使得粒子群中的每个粒子都可以更加接近最优位置。
在上述S4中可以得到父代粒子群中每个粒子对应的个体极值,将每个粒子与该粒子相对应的个体极值采用部分映射交叉进行计算,可以产生第一子代粒子,在父代粒子群中包含有m个粒子,对应的可以产生m个第一子代粒子,将每个粒子与其对应的第一子代粒子的适应度进行比较,选择适应度较小的粒子作为第二子代粒子,对应的可以产生m个第二子代粒子,该m个第二子代粒子可以构成一个第二子代粒子群。
其中粒子的适应度的计算方式与上述S3中计算粒子的适应度的计算方式类似,在此不再赘述。
S62、将所述第二子代粒子与所述局部极值进行交叉操作,产生第三子代粒子,比较所述第二子代粒子的适应度和所述第三子代粒子的适应度;将适应度最优的粒子作为第四子代粒子,产生第四子代粒子群;所述第四子代粒子群由所述至少一个第四子代粒子构成。
该步骤中的交叉操作与上述S61中交叉操作的方式类似,在此不再赘述。
通过将第二子代粒子群中每个第二子代粒子与上述S5中得到的局部极值的适应度进行交叉操作,产生第三子代粒子。第二子代粒子群中每一个第二子代粒子都有其对应的一个第三子代粒子。
通过将第二子代粒子与第三子代粒子的适应度进行比较,选择适应度较小的粒子作为第四子代粒子,从而完成对粒子位置的更新,使得粒子群中的每个粒子都可以更加接近最优位置。
其中粒子的适应度的计算方式与上述S3中计算粒子的适应度的计算方式类似,在此不再赘述。
在上述S61中可以得到m个第二子代粒子,可以构成一个第二子代粒子群。通过S62的操作可以将m个第二子代粒子的位置进行进一步的优化,得到m个第四子代粒子,可以构成一个第四子代粒子群。与第二子代粒子群相比,该第四子代粒子群中的粒子更加接近最优位置。
S63、将所述第四子代粒子进行变异操作,产生第五子代粒子,比较所述第四子代粒子的适应度和所述第五子代粒子的适应度;将适应度最优的粒子群作为第六子代粒子,产生第六子代粒子群;所述第六子代粒子群由所述至少一个第六子代粒子构成。
本发明实施例中可以采用换序变异的方式进行变异操作,随机在编码串上选择两个位置,倒置其间的数字,这样就可以避免非法解的产生。举例说明如下:
假设有一个粒子的编码串为:
L=1 3 5 7 2 4 6 8 9
其中,L可以是第四子代粒子群中的一个粒子对应的编码串。
随机选择编码串中的第3位和第5位进行换序变异,新的编码串为:
N=1 3 2 7 5 4 6 8 9
其中,N表示的编码串所对应的粒子即为得到的第五子代粒子。
通过将第四子代粒子与第五子代粒子的适应度进行比较,选择适应度较小的粒子作为第六子代粒子,从而完成对粒子位置的更新,使得粒子群中的每个粒子都可以更加接近最优位置。
其中粒子的适应度的计算方式与上述S3中计算粒子的适应度的计算方式类似,在此不再赘述。
通过S63的操作可以将m个第四子代粒子的位置进行进一步的优化,得到m个第六子代粒子,可以构成一个第六子代粒子群。与第四子代粒子群相比,该第六子代粒子群中的粒子更加接近最优位置。
本发明实施例中,对于S63和S61-S62的执行顺序不做限定,可以是先执行S61和S62,再执行S63,也可以是先执行S63,再执行S61和S62。
上述过程S61-S63是对S6中交叉变异操作的具体介绍,由此产生第六子代粒子群即为S6中所述的子代粒子群,故此,将所述子代粒子群作为下一次迭代的父代粒子群包括:将所述第六子代粒子群作为下一次迭代的父代粒子群。
由上述技术方案可以看出,根据优化目标,建立拣选顺序问题的目标函数,利用粒子群算法对目标函数进行初始化,生成父代粒子群,通过将父代粒子群中各个粒子与其对应的个体最优位置进行适应度的比较,确定出每个粒子对应的个体极值,并将父代粒子群中各个粒子与群体最优位置进行适应度的比较,确定出父代粒子群的局部极值。通过依据所述个体极值和所述局部极值,对所述父代粒子群进行交叉变异操作,生成子代粒子群,将所述子代粒子群作为下一次迭代的父代粒子群,重复执行上述操作,直到迭代次数达到预设的最大迭代次数,则停止重复执行上述操作,输出拣选顺序问题的结果。上述技术方案可以有效的避免粒子群算法接近最优解时带来的早熟问题,从而有效避免最优解为局部最优的情况,从而可以确定出一种花费时间最少的拣选顺序。
图3为本发明实施例提供的一种基于遗传思想粒子群算法的拣选顺序确定装置的装置结构图,所述拣选顺序确定装置包括建立单元31、生成单元32、计算单元33、比较单元34、交叉变异单元35、替换单元36和判断单元37:
所述建立单元31,用于根据优化目标,建立拣选顺序问题的目标函数。
所述生成单元32,用于利用粒子群算法对目标函数进行初始化,生成父代粒子群。
所述计算单元33,用于计算所述父代粒子群中各个粒子的适应度。
所述比较单元34,用于比较所述父代粒子群中目标粒子的适应度和所述目标粒子的个体最优位置的适应度,将适应度最优值作为所述目标粒子的个体极值;所述目标粒子为所述父代粒子群中的任意一个粒子。
所述比较单元34还用于比较所述父代粒子群中各个粒子的适应度和所述父代粒子群的群体最优位置的适应度,将适应度最优值作为所述父代粒子群的局部极值。
所述交叉变异单元35,用于依据所述个体极值和所述局部极值,对所述父代粒子群进行交叉变异操作,生成子代粒子群。
所述替换单元36,用于将所述子代粒子群作为下一次迭代的父代粒子群。
所述判断单元37,用于判断迭代次数是否达到预设的最大迭代次数,若是,输出拣选顺序问题的结果;若否则触发所述计算单元。
可选的,所述目标函数具体为:
其中,T表示拣选顺序花费的时间,n表示货位点个数,xi表示货位点i的列号,zi表示货位点i的行号,xi+1表示货位点i+1的列号,zi+1表示货位点i+1的行号,b为货格宽度,h为货格高度;vx为水平运动速度,vz为垂直运动速度。
可选的,所述交叉变异单元包括交叉子单元和变异子单元:
所述交叉子单元,用于将所述目标粒子与所述目标粒子相对应的个体极值进行交叉操作,产生第一子代粒子,比较所述目标粒子的适应度和所述第一子代粒子的适应度;将适应度最优的粒子作为第二子代粒子,产生第二子代粒子群;所述第二子代粒子群由所述至少一个第二子代粒子构成;
所述交叉子单元还用于将所述第二子代粒子与所述局部极值进行交叉操作,产生第三子代粒子,比较所述第二子代粒子的适应度和所述第三子代粒子的适应度;将适应度最优的粒子作为第四子代粒子,产生第四子代粒子群;所述第四子代粒子群由所述至少一个第四子代粒子构成;
所述变异子单元,用于将所述第四子代粒子进行变异操作,产生第五子代粒子,比较所述第四子代粒子的适应度和所述第五子代粒子的适应度;将适应度最优的粒子群作为第六子代粒子,产生第六子代粒子群;所述第六子代粒子群由所述至少一个第六子代粒子构成;
所述替换单元具体用于将所述第六子代粒子群作为下一次迭代的父代粒子群。
图3所对应实施例中特征的说明可以参见图1、图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,根据优化目标,建立拣选顺序问题的目标函数,利用粒子群算法对目标函数进行初始化,生成父代粒子群,通过将父代粒子群中各个粒子与其对应的个体最优位置进行适应度的比较,确定出每个粒子对应的个体极值,并将父代粒子群中各个粒子与群体最优位置进行适应度的比较,确定出父代粒子群的局部极值。通过依据所述个体极值和所述局部极值,对所述父代粒子群进行交叉变异操作,生成子代粒子群,将所述子代粒子群作为下一次迭代的父代粒子群,重复执行上述操作,直到迭代次数达到预设的最大迭代次数,则停止重复执行上述操作,输出拣选顺序问题的结果。上述技术方案可以有效的避免粒子群算法接近最优解时带来的早熟问题,从而有效避免最优解为局部最优的情况,从而可以确定出一种花费时间最少的拣选顺序。
以上对本发明所提供的基于遗传思想粒子群算法的拣选顺序确定方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。