基于改进免疫禁忌算法的农机调度方法与流程

文档序号:12469712阅读:202来源:国知局
基于改进免疫禁忌算法的农机调度方法与流程

本发明属于智能农业领域,特别是涉及一种基于改进免疫禁忌算法的农机调度方法。



背景技术:

我国传统农业正在向现代农业转型,实现信息化与农业行业的深度融合以及广泛的智能化,是我国现代农业未来发展的主要特征和必然趋势,而农业物联网正是农业走向信息化、智能化的必要条件。改造传统农业、发展现代农业,迫切需要运用物联网技术对大田种植、设施园艺等各种农业要素实行数字化设计、智能化控制、精准化运行和科学化管理,从而实现对各种农业要素的“全面感知、可靠传输以及智能处理”。二十世纪世界农业机械化的发展进程,实际上是农业机械等装备技术向智能化、机电一体化方向加速发展的过程。我国的农机信息化工作起步较晚,农机信息化总体水平还较低,尤其农机信息资源的开发利用,与发达国家即国内其他行业相比仍然存在较大差距。

现有农机调度的研究主要集中在农机监控系统的硬件平台搭建及测试运行,面向管理部门,仅能对农机的作业信息进行监控和反馈,或是用简单的寻路算法确定农机的行驶路径。且在当今农业生产过程中,农机调度多由专家系统评测或通过人工决策控制,很少有自动调度系统或工具对农机进行智能化调度决策,不能适应包括时间、地点、路况、天气等多种干扰决策的影响因素,尚不能做到精准和高效。并且在推进农业机械化精准化的过程中,由于农田分布不够集中,经常会出现农机跨区作业的现象,这也对农机的信息化管理增加了难度。目前,农机智能化在全局信息更新,实时信息更新及其反馈控制上存在的问题比较突出。为了通过最小的消耗获得最大的生产力,在最短时间内完成农业生产过程,同时提高资源的利用率,就需要对农机调度问题进行深入细致的研究,找到更优的算法对农机作业进行自动调度控制。

农机调度问题属于组合优化问题,涉及到农机调度路径和农机的分配问题。不仅要考虑如何选择运输调度路径,还要考虑如何为已选的农田作业点分配合适的农机。近几年来,已经提出了如遗传算法、免疫算法、禁忌搜索等多种用于求解组合优化问题的启发式算法,通过对过去经验的归纳推理以及实验分析来解决问题。在求解中小规模组合优化问题时,启发式算法与精确算法相比,在精度上不占优势,但在求解大规模组合优化问题时,启发式方法总可以在有限时间里,找到满意的可行解,这是精确算法难以做到的。因此,在实际应用中,启发式算法要更广泛。

正如以上所说,农机调度问题是制约农业机械化进程的重要影响因素。通过科学智能的调配农机进行作业,解决农机调度问题,可以满足各个地区农业生产的需要,同时给农业生产带来可观的经济效益,对引导农机作业向自动化、智能化、信息化发展具有十分重要的现实意义。



技术实现要素:

本发明的目的是针对现有技术的不足,提供基于改进免疫禁忌算法的农机调度方法,相对于传统免疫算法能够加速寻优过程,本发明进一步提高求解质量的改进免疫禁忌算法,将其应用到农机调度中,可以适应各种农业生产实际,增强农业机械的生产服务效率。

本发明的思路是在免疫算法的变异阶段,分迭代阶段采用由改进禁忌搜索算法设计的算子TSA的搜索结果作为变异后的抗体,以改善算法的爬山性能,加快收敛速度;之后采用均匀变异和禁忌搜索并行的策略,以保证种群的多样性,缩短优化时间。

农机调度问题模型表述如下:

G=(S,E)是一完全无向图,其中s∈S是一节点集合,S中1,…N代表N个待访问的农田块,0代表农机中心;E={(i,j)|i,j∈S且i≠j}是两两连接所有节点的边的集合。对于每个节点s∈S都有:

1)对每块农田需要的服务需求用Svi来描述,农机中心对应的Sv0=0;

2)每块农田由它所分配的农机进行服务的总时间Ti,农机中心对应的T0=0。

任意一条边(i,j∈E)都对应一距离dij,因此对于E可定义一满足三角不等式定理的对称距离矩阵D=(dij)。此处dij是欧氏距离,在随后的处理中会根据实际情况进行细化。

针对所述农机调度任务的假设如下:

(1)所有农田块到最终都必须得到服务,每辆农机都必须参与服务,且同一时间每个农田块可以接受多辆农机共同进行服务;

(2)由于农机对农田作业服务时,农机服务能力与农机服务时间理论上成正比,考虑农机平均以匀速行驶,农机行驶时间与农机路程成正比,本问题将时间与农机行驶路程归约到一个维度上考虑,即目标函数以时间为维度。

(3)每辆农机的服务路径必须是从农机中心出发,途径多块农田,最后回到农机中心,

且农机在整个过程中匀速行驶。

在定义数学模型之前先陈述所有用到的符号:

M:农机车队规模即总的农机数目;

H:有待访问的总的农田块数目;

O:农机中心;

im,jm∈Sk,G,m,即表示和农机m的服务农田序列中Sk,G,m中的ik,G,m对应的农田块im或农田块jm

从农田块im到农田块jm行驶的距离;

农田块im对服务的需求量;

Mpm:农机m对农田块的服务效率,即代表农机m每小时能够提供的服务量;

w:农机行驶总时间的重要程度权值;

r:每辆农机服务总时间的方差的重要程度权值;

v:农机行驶速度;

tij:从农田块im到农田块jm的农机行驶时间,在这里;

Dm:农机m总的行驶距离;

为决策变量,具体如下:

两个决策变量如下:

基本数学模型如下:

式(1)表示求解目标是找出给定约束条件下最小化农机行驶总路程以及保证负载均衡;

对于i=O,(即农机中心),

式(2)表示农机中心对农田块进行服务的农机数应为农机总数;

式(3)表示从农田块im到农田块jm需要耗费的行驶时间等于两农田块间的距离除以农机的行驶速度;

式(4)表示农机路径m服务其路线上所有农田块后行驶的总路程。

因此所述农机任务调度问题可描述为:在一定范围内,一共分布H块农田,每块农田的所需服务时间不同。农机中心位于所给范围的中心,共M农机参与农田作业。要求在一定时间内尽量同时完成农机作业服务,且农机行驶总路程尽量小。设定每一台农机每小时能提供的服务量不同(Machine_perhour),能够提供的服务有限,每一块农田所需要的服务量(Service)也不一样。一块田总的工作时间等于这块田的所需服务总量除以它所分配到的农机每小时工作效率之和,即Service/sum(Marchine_perhour)。并且,为了负载均衡,需要每块田的结束时间相差越小越好(std_time尽量小)。同时,为了提高资源利用率,农机的消耗也要越小越好,即农机走过的总路程之和尽量小(sumpath),这反映了保证农机的耗油量尽量少。

为实现上述目的,本发明采取的技术方案是:

如上所述的基于改进免疫禁忌算法的农机调度方法,农机对农田进行作业服务时,对于多块农田和多辆农机的情况下,为农田分配农机时,采用基于改进免疫禁忌算法的农机调度方法,具体步骤为:

1)初始化所有单元:首先初始化改进免疫禁忌算法中的所有单元,将所有农田块对应的服务农机号的序列记为调度矢量其中,H表示农田数量,调度矢量中的每一位xi的取值表示服务第i块农田块的农机号,i=1,2,...,H;然后载入需要服务的农田位置信息、农田数量H、可用农机数量M、抗体种群大小N、记忆库容量n、当前迭代数G、最大迭代次数MAXGEN、分阶段迭代阈值IG、多样性评价参数ps、交叉概率pc和变异概率pm的初始值和阈值;

所述可用农机数量M为改进免疫禁忌算法中调度矢量每一位取值的上界约束;调度矢量每一位取值的下界约束为1,所述抗体种群大小N为改进免疫禁忌算法中变异操作后的抗体种群中的抗体个数,所述记忆库容量n为改进免疫禁忌算法的选择操作阶段保存的高繁殖概率的抗体数量,所述最大迭代次数MAXGEN为改进免疫禁忌算法迭代进行的最大次数;

改进免疫禁忌算法调度矢量的上界约束矢量为:[m1,m2,...mH],其中m1=m2=...=mH=M;

改进免疫禁忌算法调度矢量的下界约束矢量为:[m1,m2,...mH],其中m1=m2=...=mH=1;

2)初始化抗体种群:根据调度矢量的上、下界约束,生成由调度矢量上、下界约束矢量间的随机值构成的(N+n)×H维的种群矩阵,即为初始化抗体种群,初始化抗体种群矩阵中的每个行向量取值为上、下界约束矢量间的随机值,每个行向量代表一个抗体,其中,k为该抗体在初始化抗体种群中的编号,初始化第一个行向量即第一个抗体为

3)抗体群多样性评价:在第G次迭代中,对初始化抗体种群中的每一个抗体进行多样性评价,共有四个指标,具体如下:

a)抗体的适应度:

适应度函数为:

根据抗体中每一位的取值提取出每一辆农机的服务农田序列qm为农机m服务的农田数,且提取规则为:对抗体进行逐位判断,若的抗体位取值为m,即农田块i的服务农机号取值为m,则将农田块i加入对应的农机m的服务农田序列Sk,G,m中,加入是指将Sk,G,m中与农田块i对应的ik,G,m赋值为i;

则抗体的适应度为:

其中:

im,jm∈Sk,G,m,即表示和农机m的服务农田序列中Sk,G,m中的ik,G,m对应的农田块im或农田块jm

从农田块im到农田块jm行驶的距离;

农田块im对服务的需求量;

Mpm:农机m对农田块的服务效率,即代表农机m每小时能够提供的服务量;

w:农机行驶总时间的重要程度权值;

r:每辆农机服务总时间的方差的重要程度权值;

v:农机行驶速度;

为决策变量,具体如下:

两个决策变量如下:

b)抗体间的相似度:

k,l代表初始化抗体种群中两个不同的抗体和simk,l为抗体和含有相同数值的位数,H为抗体长度,即农田数量;

c)抗体浓度:

所述抗体浓度是指初始化抗体种群中相似抗体所占的比例,计算公式为:

其中,l是指由N+n个抗体组成的初始化抗体种群中的任意一个抗体;当抗体种群中任一抗体与的相似比例超过预设的阈值T时,浓度增加1;

d)期望繁殖概率:由抗体的适应度和抗体浓度共同决定

该值越大代表抗体越优秀;所述中,k,l=1,2,...,n+N,且k≠l,G=1,2,...,MAXGEN;

4)记录当前最优适应度值,计算平均适应度并记录;

5)更新记忆库和形成父代抗体群:对步骤(3)中的N+n个抗体,根据繁殖概率exc进行降序排列,取前n个抗体形成抗体记忆库,取前N个抗体形成父代抗体群,淘汰后n个抗体;然后对父代抗体群中每一个抗体进行免疫操作,具体包括选择、交叉、变异操作以产生抗体种群,即经过免疫操作后产生的抗体种群:

a)选择操作:根据抗体的繁殖概率exc,采用轮盘赌法从父代种群中选择抗体,共转N次轮盘,得到N个经历自然选择后的群体,即适应度高的种群;

b)交叉操作:从上述选择操作产生的种群中随机选择两个抗体随机选择1到抗体长度H范围内的两个位置cr1,cr2,对两个位置范围内的所有抗体位进行交叉互换,是否进行交叉取决于交叉概率pc是否超过预先设定的阈值,当每次迭代中产生的交叉概率pc低于设置的阈值时,就进行交叉,N次循环后得到产生交叉后的种群;交叉前两个抗体分别为:交叉后两个抗体分别为:

c)变异操作:从上述交叉操作产生的新抗体种群中随机选择一个抗体进行变异操作,是否进行变异由变异概率pm决定,当每次迭代中产生的变异概率pm低于预先设定设置的阈值时,就进行变异,N次循环后得到产生变异后的抗体种群,即经过免疫操作后产生的抗体种群;

当进行变异操作时,利用改进的禁忌搜索TSA算子进行变异,先利用TSA算子先对所选抗体进行禁忌搜索,然后将搜索到的最优解作为变异后的抗体;

所述改进的禁忌搜索TSA算子采用了三个移动算子,第一个移动算子交换任意两块田的位置,来改变农机对它们的访问顺序;第二个移动算子一次增加一辆对某块农田服务的农机,直至达到可用农机数的最大值;第三个移动算子一次减少一辆对某块农田服务的农机,直至达到可用农机数的最小值;

所述TSA算子特点如下:从一个初始解开始,TSA算法检验局部解的邻域,得到一个新的解,并不断地重复这个过程。这个算法通过限制一些移动或增加禁忌,来限制一个移动在一段时间内不被再次执行。这个过程使得该搜索方法可以依赖于先前的经验来作出决定,因此搜索空间高效。一个解的邻域是通过使用特殊的算子产生的。本文中的TSA算法采用了三个算子产生个体的邻域解,扩大每个个体的局部寻优范围,更好的锁定个体的局部最优解。

6)判断终止条件:判断是否达到最大迭代次数MAXGEN,若否,则将记忆库中保存的n个抗体加入到上述经过免疫操作产生的N个抗体组成的抗体种群中,形成下一次迭代的父代种群,继续进行算法的迭代,跳转到步骤(3)的抗体群多样性评价步骤中;若是,输出最优值,即最优农机调度序列;然后根据最优农机调度序列,完成农机调度。

如上所述的基于改进免疫禁忌算法的农机调度方法,所述TSA算子采用了三个移动算子产生邻域解;

其中,第一个移动算子交换任意两块农田的位置,来改变农机对它们的访问顺序,其中S0和SH+1不参与移动;

对抗体该移动算子具体实施过程为:

第二个移动算子一次增加一辆对某块农田服务的农机,直至达到可用农机数的最大值;

Uh→Uh+1h=1,...H;Uh+1≤M;

对抗体该移动算子具体实施过程为:

第三个移动算子一次减少一辆对某块农田服务的农机,直至达到可用农机数的最小值;

Uh→Uh-1h=1,...H;Uh-1≥1;

对抗体其具体实施过程为:

上述式中,H为农田总数,S0和SH+1分别为农机行驶路程的起始点和结束点,即农机中心,Uh为第h块农田使用的农机数,M为可使用的农机总数;

每个局部最优解经过以上的三个步骤一共会产生H*(H-1)/2+2*H种邻域解。

如上所述的基于改进免疫禁忌算法的农机调度方法,所述利用TSA算子禁忌搜索得到的最优解是指禁忌搜索结果中适应度值最优的抗体矢量,将该抗体矢量作为变异矢量覆盖原来的抗体矢量。

如上所述的基于改进免疫禁忌算法的农机调度方法,在变异阶段利用TSA算子进行禁忌搜索时的具体过程为:

1)在当前迭代数G达到分阶段迭代阈值IG前,只利用所述TSA变异来改善免疫算法的爬山性能,加速每个抗体在邻域寻优;

2)在当前迭代数G达到分阶段迭代阈值IG后,为保证算法找到最优解,在对交叉操作后的种群进行随机变异的同时,对种群的适应度排名后百分之四十的抗体用TSA变异进行邻域寻优,只有在经过TSA算法找到的个体优于当前个体时才覆盖。只有在经过TSA算法找到的值优于当前个体时才覆盖,这样既保证了种群的多样性,又加速了寻优过程,保证了算法对最优解的搜索质量。由定理知,TSP的最优路径所组成的区域必须是单联通。对每次循环得到的最优解进行去交叉策略,才可提高解的质量。

如上所述的基于改进免疫禁忌算法的农机调度方法,所述随机变异指从上述交叉操作产生的种群中随机选择一个抗体选择1到抗体长度H范围内的任意一个位置mu,随机产生一个在抗体上、下界约束间的随机值对该抗体位的取值进行覆盖,即由此产生的变异矢量为用该变异矢量覆盖原来的抗体矢量。

如上所述的基于改进免疫禁忌算法的农机调度方法,所述最大迭代次数MAXGEN为改进免疫禁忌算法迭代进行的最大次数,取值为100,所述分阶段迭代阈值IG为分迭代代数使用TSA变异时的阈值,设为10,所述多样性评价参数ps的阈值为0.95,所述交叉概率pc的阈值为0.9,所述变异概率pm的阈值为0.7;所述阈值T设置为0.7。

如上所述的基于改进免疫禁忌算法的农机调度方法,所述农机行驶总时间的重要程度权值w取0.2;每辆农机服务总时间的方差的重要程度权值r取0.8。

如上所述的基于改进免疫禁忌算法的农机调度方法,所述选择操作中抗体被选择概率为:

中,k,l=1,2,...,N,且k≠l。

如上所述的基于改进免疫禁忌算法的农机调度方法,采用适应度函数计算抗体的适应度时,对农机在两农田之间的行驶路径进行优化,即对农机从农田块im到农田块jm行驶的距离进行优化,具体为农机在两农田之间的行驶距离为两农田中心连线对应的直角三角形的两直角边距离之和。具体为农机在两农田之间的行驶距离为两农田中心连线对应的直角三角形的两直角边距离之和,使调度结果更加符合实际。如图2所示,1和2是两块农田的中心,在道路整齐的农田中,农机从1行驶到2处,无论以怎样的路径行驶,所行驶过得总距离必定为AB和BC两段之和。因此将农机路径使用与实际路程一样的AB+BC段显示。由于在抗体中判断每一辆农机均参与服务会使算法运行时间大大增加,因此适应度函数采用w*std_time+v*sumpath,负载均衡对应的权重设置较大便可避免这一情况,同时也是符合实际需求的,权重根据经验定为(0.2,0.8)。

如上所述的基于改进免疫禁忌算法的农机调度方法,采用适应度函数计算抗体的适应度时,对适应度函数进行去交叉处理;

所述去交叉处理为:

对农机的服务农田序列进行逐个判断,具体为检查其内抗体位取值为m的从农田块im到农田块jm行驶的距离,若则交换农机对这两块农田的服务顺序,确保农机服务的农田序列是一个单连通区域;若否,则不交换农机对这两块农田的服务顺序。

有益效果

本发明由于采取以上技术方案,其具有以下优点:

1.本发明对适应度函数采用了去交叉和农机路径细化的策略,提高了解的质量,使之更适应实际农业生产实际。

2.本发明设计的改进免疫禁忌算法,是根据先验经验进行个体邻域寻优的算法,改善了免疫算法的爬山性能,加速了算法寻优过程的同时保证了种群的多样性,提高了农机调度问题找到最优解的效率。

附图说明

图1是本发明设计的改进免疫禁忌算法流程图;

图2是农机在两农田之间的行驶路径细化示意图;

图3是实施例1的改进免疫禁忌算法和基础免疫算法收敛对比图;

图4是实施例2的改进免疫禁忌算法和基础免疫算法收敛对比图。

具体实施方式

下面结合具体实施方式,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

实施例1

一种基于改进免疫禁忌算法的农机调度方法,其特征是:农机对农田进行作业服务时,对于多块农田和多辆农机的情况下,为农田分配农机时,采用基于改进免疫禁忌算法的农机调度方法,具体步骤为:

(1)初始化所有单元:首先初始化改进免疫禁忌算法中的所有单元,将所有农田块对应的服务农机号的序列记为调度矢量其中,H表示农田数量,调度矢量中的每一位xi的取值表示服务第i块农田块的农机号,i=1,2,…,H;然后载入需要服务的农田位置信息、农田数量H、可用农机数量M、抗体种群大小N、记忆库容量n、当前迭代数G、最大迭代次数MAXGEN、分阶段迭代阈值IG、多样性评价参数ps、交叉概率pc和变异概率pm的初始值和阈值;

农田位置信息见表1,所述可用农机数量M为改进免疫禁忌算法中调度矢量每一位取值的上界约束,取值为4,调度矢量每一位取值的下界约束为1,所述抗体种群大小N为改进免疫禁忌算法中抗体种群中的抗体个数,取值为100,所述记忆库容量n为改进免疫禁忌算法的选择操作阶段保存的高繁殖概率的抗体数量,取值为15,所述最大迭代次数MAXGEN为改进免疫禁忌算法迭代进行的最大次数,取值为100,所述分阶段迭代阈值IG为分迭代代数使用TSA变异时的阈值,取值为10,设置交叉概率pc在每次判断是否要交叉前的初始值为0~1之间的随机数,阈值为0.9,设置变异概率pm在每次判断是否要变异前的初始值为0~1之间的随机数,阈值为0.7;农田块数H为10;改进免疫禁忌算法(ITSA)其余参数:禁忌表长度T为3、TSA每次禁忌的个数Ti为10、禁忌迭代次数g为20。

所述改进免疫禁忌算法调度矢量的上界约束矢量为:[m1,m2,…m10],其中m1=m2=…=m10=4;

所述改进免疫禁忌算法调度矢量的下界约束矢量为:[m1,m2,…m10],其中m1=m2=…=m10=1;

(2)初始化抗体种群:根据调度矢量的上、下界约束,生成由调度矢量上、下界约束矢量间的随机值构成的(N+n)×H=(100+15)×10维的种群矩阵,即为初始化抗体种群,初始化抗体种群矩阵中的每个行向量取值为上、下界约束矢量间的随机值,每个行向量代表一个抗体,其中,k为该抗体在初始化抗体种群中的编号,初始化第一个行向量即第一个抗体为

(3)抗体群多样性评价:在第G次迭代中,对初始化抗体种群中的每一个抗体进行多样性评价,共有四个指标,具体如下:

a)抗体的适应度:

适应度函数为:

根据抗体中每一位的取值提取出每一辆农机的服务农田序列qm为农机m服务的农田数,且提取规则为:对抗体进行逐位判断,若的抗体位取值为m,即农田块i的服务农机号取值为m,则将农田块i加入对应的农机m的服务农田序列Sk,G,m中,加入是指将Sk,G,m中与农田块i对应的ik,G,m赋值为i;

则抗体的适应度为:

其中:

im,jm∈Sk,G,m,即表示和农机m的服务农田序列中Sk,G,m中的ik,G,m对应的农田块im到农田块jm

从农田块im到农田块jm行驶的距离;

农田块im对服务的需求量;

Mpm:农机m对农田块的服务效率,即代表农机m每小时能够提供的服务量;

w:农机行驶总时间的重要程度权值;

r:每辆农机服务总时间的方差的重要程度权值;

v:农机行驶速度;

为决策变量,具体如下:

两个决策变量如下:

b)抗体间的相似度:

k,l代表初始化抗体种群中两个不同的抗体和simk,l为抗体和含有相同数值的位数,H为抗体长度,即农田数量;

c)抗体浓度:

所述抗体浓度是指初始化抗体种群中相似抗体所占的比例,计算公式为:

其中N为抗体总数,n为记忆库容量,l是指由N+n个抗体组成的初始化抗体种群中的任意一个抗体;当抗体种群中任一抗体与的相似比例超过预设的阈值T时,浓度增加1;

d)期望繁殖概率:由抗体的适应度和抗体浓度共同决定

该值越大代表抗体越优秀;所述中,k,l=1,2,…,n+N,且k≠l,G=1,2,...,MAXGEN;

(4)记录当前最优适应度值,计算平均适应度并记录;

(5)更新记忆库和形成父代抗体群:对步骤(3)中的(N+n)×H=(100+15)×10个抗体,根据繁殖概率exc进行降序排列,取前15个抗体形成抗体记忆库,取前100个抗体形成父代抗体群,淘汰后15个抗体;然后对父代抗体群中每一个抗体进行免疫操作,具体包括选择、交叉、变异操作以产生抗体种群,即经过免疫操作后产生的抗体种群:

a)选择操作:根据抗体的繁殖概率exc,采用轮盘赌法从父代种群中选择抗体,共转N次轮盘,得到N个经历自然选择后的群体,即适应度高的种群;

交叉操作:从上述选择操作产生的种群中随机选择两个抗体随机选择1到抗体长度H范围内的两个位置cr1,cr2,对两个位置范围内的所有抗体位进行交叉互换,是否进行交叉取决于交叉概率pc是否超过预先设定的阈值,当每次迭代中产生的交叉概率pc低于设置的阈值时,就进行交叉,N次循环后得到产生交叉后的种群;

b)变异操作:从上述交叉操作产生的新抗体种群中随机选择一个抗体进行变异操作,是否进行变异由变异概率pm决定,当每次迭代中产生的变异概率pm低于预先设定设置的阈值时,就进行变异,N次循环后得到产生变异后的抗体种群,即经过免疫操作后产生的抗体种群;

当进行变异操作时,利用改进的禁忌搜索TSA算子进行变异,先利用TSA算子先对所选抗体进行禁忌搜索,然后将搜索到的最优解作为变异后的抗体;

所述改进的禁忌搜索TSA算子采用了三个移动算子,第一个移动算子交换任意两块田的位置,来改变农机对它们的访问顺序;第二个移动算子一次增加一辆对某块农田服务的农机,直至达到可用农机数的最大值;第三个移动算子一次减少一辆对某块农田服务的农机,直至达到可用农机数的最小值;

(6)判断终止条件:判断是否达到最大迭代次数MAXGEN,若否,则将记忆库中保存的n个抗体加入到上述经过免疫操作产生的N个抗体组成的抗体种群中,形成下一次迭代的父代种群,继续进行算法的迭代,跳转到步骤(3)的抗体群多样性评价步骤中;若是,输出最优值,即最优农机调度序列;然后根据最优农机调度序列,完成农机调度。

本实施例的仿真运行过程如图1所示,仿真运行结果如表2所示。

表1 本发明实施例1的农田参数信息

注:所有农田分布在100*100的方形区域内,农机中心位于坐标(50,50)处。

表2 本发明实施例1算法的运行结果

实施例2

一种基于改进免疫禁忌算法的农机调度方法,其特征是:农机对农田进行作业服务时,对于多块农田和多辆农机的情况下,为农田分配农机时,采用基于改进免疫禁忌算法的农机调度方法,具体步骤为:

(1)初始化所有单元:首先初始化改进免疫禁忌算法中的所有单元,将所有农田块对应的服务农机号的序列记为调度矢量其中,H表示农田数量,调度矢量中的每一位xi的取值表示服务第i块农田块的农机号,i=1,2,…,H;然后载入需要服务的农田位置信息、农田数量H、可用农机数量M、抗体种群大小N、记忆库容量n、当前迭代数G、最大迭代次数MAXGEN、分阶段迭代阈值IG、多样性评价参数ps、交叉概率pc和变异概率pm的初始值和阈值;

农田位置信息见表3,所述可用农机数量M为改进免疫禁忌算法中调度矢量每一位取值的上界约束,取值为4,调度矢量每一位取值的下界约束为1,所述抗体种群大小N为改进免疫禁忌算法中抗体种群中的抗体个数,取值为100,所述记忆库容量n为改进免疫禁忌算法的选择操作阶段保存的高繁殖概率的抗体数量,取值为15,所述最大迭代次数MAXGEN为改进免疫禁忌算法迭代进行的最大次数,取值为100,所述分阶段迭代阈值IG为分迭代代数使用TSA变异时的阈值,取值为10,设置交叉概率pc在每次判断是否要交叉前的初始值为0~1之间的随机数,阈值为0.9,设置变异概率pm在每次判断是否要变异前的初始值为0~1之间的随机数,阈值为0.7;农田块数H为10;改进免疫禁忌算法(ITSA)其余参数:禁忌表长度T为3、TSA每次禁忌的个数Ti为10、禁忌迭代次数g为20。

所述改进免疫禁忌算法调度矢量的上界约束矢量为:[m1,m2,...m10],其中m1=m2=…=m10=4;

所述改进免疫禁忌算法调度矢量的下界约束矢量为:[m1,m2,…m10],其中m1=m2=…=m10=1;

(2)初始化抗体种群:根据调度矢量的上、下界约束,生成由调度矢量上、下界约束矢量间的随机值构成的(N+n)×H=(100+15)×10维的种群矩阵,即为初始化抗体种群,初始化抗体种群矩阵中的每个行向量取值为上、下界约束矢量间的随机值,每个行向量代表一个抗体,其中,k为该抗体在初始化抗体种群中的编号,初始化第一个行向量即第一个抗体为

(3)抗体群多样性评价:在第G次迭代中,对初始化抗体种群中的每一个抗体进行多样性评价,共有四个指标,具体如下:

a)抗体的适应度:

适应度函数为:

根据抗体中每一位的取值提取出每一辆农机的服务农田序列qm为农机m服务的农田数,且提取规则为:对抗体进行逐位判断,若的抗体位取值为m,即农田块i的服务农机号取值为m,则将农田块i加入对应的农机m的服务农田序列Sk,G,m中,加入是指将Sk,G,m中与农田块i对应的ik,G,m赋值为i;

则抗体的适应度为:

其中:

im,jm∈Sk,G,m,即表示和农机m的服务农田序列中Sk,G,m中的ik,G,m对应的农田块im或农田块jm

从农田块im到农田块jm行驶的距离;

农田块im对服务的需求量;

Mpm:农机m对农田块的服务效率,即代表农机m每小时能够提供的服务量;

w:农机行驶总时间的重要程度权值;

r:每辆农机服务总时间的方差的重要程度权值;

v:农机行驶速度;

为决策变量,具体如下:

两个决策变量如下:

b)抗体间的相似度:

k,l代表初始化抗体种群中两个不同的抗体和simk,l为抗体和含有相同数值的位数,H为抗体长度,即农田数量;

c)抗体浓度:

所述抗体浓度是指初始化抗体种群中相似抗体所占的比例,计算公式为:

其中N为抗体总数,n为记忆库容量,l是指由N+n个抗体组成的初始化抗体种群中的任意一个抗体;当抗体种群中任一抗体与的相似比例超过预设的阈值T时,浓度增加1;

d)期望繁殖概率:由抗体的适应度和抗体浓度共同决定

该值越大代表抗体越优秀;所述中,k,l=1,2,…,n+N,且k≠l,G=1,2,…,MAXGEN;

(4)记录当前最优适应度值,计算平均适应度并记录;

(5)更新记忆库和形成父代抗体群:对步骤(3)中的(N+n)×H=(100+15)×10个抗体,根据繁殖概率exc进行降序排列,取前15个抗体形成抗体记忆库,取前100个抗体形成父代抗体群,淘汰后15个抗体;然后对父代抗体群中每一个抗体进行免疫操作,具体包括选择、交叉、变异操作以产生抗体种群,即经过免疫操作后产生的抗体种群:

a)选择操作:根据抗体的繁殖概率exc,采用轮盘赌法从父代种群中选择抗体,共转N次轮盘,得到N个经历自然选择后的群体,即适应度高的种群;

交叉操作:从上述选择操作产生的种群中随机选择两个抗体随机选择1到抗体长度H范围内的两个位置cr1,cr2,对两个位置范围内的所有抗体位进行交叉互换,是否进行交叉取决于交叉概率pc是否超过预先设定的阈值,当每次迭代中产生的交叉概率pc低于设置的阈值时,就进行交叉,N次循环后得到产生交叉后的种群;

b)变异操作:从上述交叉操作产生的新抗体种群中随机选择一个抗体进行变异操作,是否进行变异由变异概率pm决定,当每次迭代中产生的变异概率pm低于预先设定设置的阈值时,就进行变异,N次循环后得到产生变异后的抗体种群,即经过免疫操作后产生的抗体种群;

当进行变异操作时,利用改进的禁忌搜索TSA算子进行变异,先利用TSA算子先对所选抗体进行禁忌搜索,然后将搜索到的最优解作为变异后的抗体;

所述改进的禁忌搜索TSA算子采用了三个移动算子,第一个移动算子交换任意两块田的位置,来改变农机对它们的访问顺序;第二个移动算子一次增加一辆对某块农田服务的农机,直至达到可用农机数的最大值;第三个移动算子一次减少一辆对某块农田服务的农机,直至达到可用农机数的最小值;

(6)判断终止条件:判断是否达到最大迭代次数MAXGEN,若否,则将记忆库中保存的n个抗体加入到上述经过免疫操作产生的N个抗体组成的抗体种群中,形成下一次迭代的父代种群,继续进行算法的迭代,跳转到步骤(3)的抗体群多样性评价步骤中;若是,输出最优值,即最优农机调度序列;然后根据最优农机调度序列,完成农机调度。

本实施例仿真运行结果如表4所示。

表3 本发明实施例2的农田参数信息

注:所有农田分布在100*100的方形区域内,农机中心位于坐标(50,50)处。

表4 本发明实施例2算法的运行结果

在多块农田和多辆农机的情况下,对农田分配农机的方法进行调度决策时,为了说明发明求得最优解的能力,现采用基本免疫算法(IMMUNE)作为进行仿真实验,将基本免疫算法运行结果与本发明的运行结果进行对比。基本免疫算法(IMMUNE)与上述两个实施例中需要的农田位置信息、农田所需服务量(Service)、农机服务效率(Machine_perhour)对应相同,相关参数如表1、表3,基本免疫算法的实施步骤为:1)初始化所有单元;2)初始化抗体种群;3)抗体群多样性评价;4)记录当前最优适应度值,计算平均适应度并记录;5)更新记忆库和形成父代抗体群;6)判断终止条件。

使用本发明的改进免疫禁忌算法(ITSA)和常规的基本免疫算法(IMMUNE)的仿真结果如图3、4所示。图3、4为实施例1和实施例2针对两个算例分别运行一次的收敛情况。首先可以看出,对比例(即采用基本免疫算法(IMMUNE)的仿真实验)并不一定能找到最优解。其次,免疫部分采用相同参数的情况下,ITSA算法相对于对比例有明显的收敛趋势,并且能在较早代数收敛到最优解。

另外从表2和表4中也可以看出,ITSA算法运行十次,每次都能找到该算例的最优解,说明其求解精度高,收敛速度快的优势比较明显。这说明把禁忌搜索的思想引入到算法中,能够有效地搜到最优解,使算法求解效率提高。本发明的ITSA在求解效率和迭代时间上有明显优势。可知ITSA在全局搜索和局部搜索方面都有更强的搜索能力,能更好的用于问题的寻优。

本发明在免疫算法的变异阶段,通过改进邻域解的产生方式设计了基于禁忌搜索算法的TSA算子,在免疫算法的变异阶段,分迭代阶段采用TSA算子的搜索结果作为变异后的抗体,以改善算法的爬山性能,加快收敛速度;之后采用均匀变异和禁忌搜索并行的策略,保证种群的多样性,缩短优化时间。将本发明的改进免疫禁忌算法应用到农机调度中,可以适应各种农业生产实际,增强农业机械的生产服务效率。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1