摘要

使用膜算法解决优化问题的能力是膜计算的一个重要应用。本文将膜系统和遗传算子相结合,建立了一个具有时间窗的车辆路径问题的近似算法。该算法基于组织状膜结构,结合细胞分离规则和通信规则;在这些过程中,膜收集和传播信息。遗传算子被用作系统的子算法。我们还设计了一种特殊的改进策略来加快子系统中的搜索过程。实验结果表明,该算法的求解质量与文献中的其他启发式或元启发式算法相比具有竞争力。

1.简介

膜计算是自然计算的一个分支:它的灵感来自活细胞的结构和功能[1]以及组织、器官和其他高级结构中的细胞组织。膜计算中的计算设备被称为P系统,它由三部分组成:膜结构、膜区域中的对象和进化规则。粗略地说,有三种类型的P系统,即细胞样P系统[2,]、组织样P系统[4,5]和神经元样P系统[6,7]. 它们提供分布式并行和非确定性计算设备。膜将空间划分为不同的区域,物体根据每个区域的进化规则进化。

Nishida介绍的膜算法[8]2005年,是一种膜计算优化算法。它将P系统的概念与一些局部近似算法相结合。在膜计算框架中,对象和膜根据特定的进化规则(如重写、通信和除法规则)逐步进化。这个过程可以描述活细胞的许多进化概念。膜算法也称为基于P的算法。在膜算法中,膜将空间划分为几个区域,在这些区域中放置子算法和试探性解,以及膜结构的传输机制和转换机制。子算法总是从启发式算子中选择。从计算的角度来看,P系统由于其层次结构和内在并行性,为近似算法提供了良好的框架。与传统的混合优化算法相比,膜算法在算法结构和随机过程上有着丰富的变化。

正确的体系结构设计是膜算法的一个重要研究方向。西田提出的膜系统(见[8])包括嵌套膜结构(有时结构可以在计算过程中更改),而局部搜索算法为每个区域提供进化方案。将试探性溶液放置在由膜分隔的区域。在计算不同区域的结果时,通过应用传输和膜结构转换机制包括交换。在中设计的膜算法[8]有效地处理旅行商问题(TSP)。在[9],使用膜算法成功地解决了最小存储量问题。在[10]Zaharie和Ciobanu讨论了分布式进化算法和P系统之间的相似性。他们提出了分布式进化算法的新变体来解决数值优化问题。已经提出了几种将(嵌套膜结构)NMS与遗传算法相结合的方法来解决数值优化问题[11],旅行推销员问题[12]船用柴油机控制器设计问题[13]汽油调合与调度问题[14],以及时变不稳定对象的最优控制问题[15]. 年提出了一种基于P系统的量子激励进化算法(QEPS)[16]. 它结合了一个单层膜结构(OLMS)和一个量子进化算法。分析了OLMS膜算法和嵌套膜结构膜算法的性能差异。在[17]通过对雷达辐射源信号的分析,讨论了一种改进的局部搜索QEPS。在[18],OLMS与DE和蚁群优化方法相结合,解决了数值优化和旅行商问题。这些研究清楚地表明,膜系统可以用于提高许多元启发式搜索方法的性能,并且它们有时可以有效地平衡探索和开发[19,20]. 迄今为止,很少有论文认为组织P系统是基于P的算法的膜结构[21],但我们的论文是对这一研究方向的贡献。

带时间窗的车辆路径问题(VRPTW)是一个NP-hard问题,可以应用于许多配电系统[2225]例如铁路配送系统、校车路线系统、邮件和报纸递送系统[26]. 文献中提出了许多启发式或元启发式方法来求解VRPTW[27]. 在[28],禁忌搜索首次应用于VRPTW。其他关于VRPTW禁忌搜索的研究可以在参考文献中找到[2931]. 遗传算法被提出用于VRPTW[3237]. 其他基于模拟退火或蚁群方法的元启发式算法已应用于VRPTW。近年来,混合算法备受关注[3841]; 它们结合了不同算法的优点,总是比单个算法产生更好的解决方案。然而,很少有论文强调在整个计算过程中对建筑设计实验结果的影响。

在本研究中,提出了一种基于P的混合进化算法(PHEA)来解决VRPTW问题。PHEA的结构基于组织状膜结构,并使用遗传算子作为系统的子算法。与膜系统相关的子算法受到了生物现象的启发。众所周知,DNA序列是由细胞核中的一种特殊物质组成的。DNA携带几乎所有的遗传信息,它有自己特定的进化概念,包括重组、突变和选择。我们关注膜结构对这些遗传操作的影响。

PHEA可以被视为一种生物启发技术。它始于组织膜结构。细胞分离后,子系统中的遗传算子被用于逐步生成更好的解。膜系统的一些特性,如细胞分离和细胞通讯,可以极大地提高遗传算子的性能。此外,本文还包括一种特殊的改进策略,以加快搜索过程。我们的算法通过Solomon的基准问题进行了测试。与文献中最著名的解相比,我们的算法在解的质量方面具有竞争力。

2.带时间窗的车辆路径问题

VRPTW可以描述为设计一组为所有客户服务的最优路线的问题。在给定的时间间隔内,每辆车只访问一次每个客户;所有路线的起点和终点都在车辆段,所有客户在一条特定路线上的总需求不得超过车辆的容量。从数学上讲,它可以描述如下[33]. 在车辆段使用相同容量的车辆提供服务的客户,针对每个客户,其中,有一个需求(),服务时间(),以及服务时间窗口(); 服务于开始.下限,,描述了开始维修的最早时间和上限,,描述了最近开始维护的时间。需求客户的将在此外,描述了车辆可以离开0号仓库的最早时间,以及描述了车辆到达停车场的最晚时间。目标是确定一个可行的路线时间表,主要是最小化车辆数量,其次是总行程。

考虑以下内容:从属于哪里表示来自客户的运输成本致客户是车辆数量。

3.基于P的混合遗传算法

本文提出了一种基于P的混合进化算法(PHEA)。它是根据组织P系统和遗传进化的概念设计的。PHEA流程图如图所示1.

我们在这里使用的解决方案的表示是一个整数字符串,Tan等人首先应用了这个字符串[33]. 长度是路线中的客户数。字符串中的每个点都是最初分配给该客户的整数节点号。字符串中的点的顺序是访问这些客户的顺序。

初始结构为.我们称带标签2的膜为操作膜,将带标签1的膜称为输出膜。操作膜中的局部最佳溶液表示为系统的全局最佳解表示为.获得的操作膜被称为最佳操作膜,而获得最差操作膜被称为最差操作膜。

PHEA程序描述如下。

步骤1。在设置了迭代次数、种群大小、交叉率和突变率等参数后,PHEA使用随机数生成器在膜2中随机生成问题的初始染色体。

第2步。分离规则用于生成用数字2标记的细胞。结构变体如图所示2.最初的染色体分为膜,也带有标签2。染色体的数目相差不超过一条。

步骤3。在每个操作膜中,使用混合进化算法来改进初始路径。

步骤4。为了避免过早收敛并增加新种群的多样性,通信规则用于在最佳操作膜和最差操作膜之间交换每条染色体台阶;参见图3(a).

步骤5。操作膜将其染色体发送到每个细胞的输出膜步骤,然后输出膜将种群重新分配给手术膜;请参见图3(b)3(c)染色体的数目相差不超过一条。

步骤6。如果迭代次数达到最大迭代次数,输出膜输出; 参见图3(d); 否则,染色体被发送到操作膜,并返回步骤.

3.1. 子系统中的混合遗传算法

在每个操作膜中,混合进化算法(HEA)将多个遗传算子与改进策略相结合。流程图如图所示4.

HEA程序简述如下。

步骤1。初始化填充。

第2步。评估个人并选择父母。

步骤3。使用顺序交叉操作符、单亲交叉操作符和变异操作符从选定的父项生成子项。

步骤4。使用改进策略改进个人并更新人口。

步骤5。如果操作膜中的局部搜索的迭代次数达到或的倍数操作膜将其染色体送入输出膜。否则,返回步骤6.

步骤6。如果操作膜中局部搜索的迭代次数达到或的倍数在最佳操作膜和最差操作膜之间交换多条染色体。否则,返回步骤2.

3.1.1. 选择和评估

我们实现了锦标赛选择方法来选择父母,然后生成后代。在从种群中随机选择的几个个体中执行“锦标赛”,并选择最佳的父母。比赛规模是调整选择压力的重要参数。如果比赛规模较大,弱者被选中的机会较小。然而,较小的规模是更好的选择,以确保多样性。

个人评估的目标是确定一个可行的路线时间表,主要是最小化车辆数量,其次是总行程。

3.1.2. 重组

重组运算符旨在从选定的父项生成子项。我们在算法中使用了两种复制操作符。其中一个使用的复制算子是经典顺序交叉(OX),其中父染色体中客户的相对顺序保留在子染色体中[43].

示例1。考虑以下顺序交叉:家长1:  24165789家长2:  15982467后代1:19865724后代2:16982457使用的另一个再生算子是单亲交叉算子(SPO)[44]. 此运算符允许更多多样性。其中,父解决方案中的每次旅行(一系列客户)都有一个在子代溶液中复制的机会。所有其他未复制的客户将被逐个随机插入序列。在所有可能插入客户的位置中,客户被添加到导致总成本增加最小的位置。

3.1.3. 突变

本文采用三点突变来促进种群多样性。此操作的步骤如下所示。

步骤1。从序列中随机选取三个点。

第2步。生成选定点的所有可能排列,同时保持序列中的其他点不变。然后,可以获得五个新的序列,并将它们视为后代。

通过交换三个基因,可以从父母的序列中创建五条染色体,如示例所示2。只有最好的转化被用作突变产生的后代。

示例2。考虑以下三点突变:起源:  24165789后代1:24185769后代2:26145789后代3:26185749后代4:28165749后代5:28145769

3.1.4. 改进策略

我们提出了一种新的改进策略,在更新种群之前合并甚至删除较短的路径。该策略基于INSERT算法[19]. 我们首先设定长度.路线中长度小于的所有客户将使用INSERT算法重新插入其他路由因此,如果路线上的长度不小于,可以在下一步中保存路线。否则,长度小于需要选择一个新的合适的插入位置。我们尝试将这些客户添加到其他路线,使其长度不小于.方程式() [19]用于计算客户的最佳可行插入位置.方程式(5) [19]用于选择客户谁将在下一步中被插入。

考虑以下内容:哪里三重功能代表客户在点之间插入,代表客户数量,表示与客户的距离致客户,表示在客户处服务的时间开始,并且表示客户的开始时间插入客户后.

考虑以下内容:哪里当找不到更多具有可行插入的客户时,算法开始新的路由(除非它已经路由了所有客户)。该过程如图所示5.在图中5(a),圆点表示客户,正方形表示存储设施。在图中5(b),旅游由三条路线组成。假设是这样,只有图中最长的路线5(c)保持不变。其他路线的客户,其长度小于,用于重建新路由。5(d)显示了由改进策略构建的新路线。

4.计算实验

4.1. 基准问题

我们的实验研究了Solomon描述的56个基准问题[19]. 使用六组问题(R1、R2、C1、C2、RC1和RC2)验证建议的PHEA的效率。R1和R2集合中的问题是在一个正方形上随机生成客户的位置。集合C1和C2中的问题具有集群客户,其时间窗口是根据已知解决方案生成的。集合RC1和RC2中的问题包含随机放置的客户和集群客户。每个基准问题包含100个客户。集合R1、C1和RC1中的问题具有较窄的时间窗口和较小的车辆容量,而集合R2、C2和RC2中的问题的时间窗口较大,车辆容量较大。

4.2. 参数设置

提出的算法框架用C语言编码,并在AMD 3500+2.21上执行1千兆赫Windows XP下的GB RAM。建议算法PHEA中使用的参数如表所示1对于每个基准问题,进行了10次独立运行。

4.3. PHEA结果

文献中最著名的解决方案之间的比较[29,42,45]PHEA获得的溶液如表所示2对于R107、R109、R112、RC101、RC105、RC106和R202,PHEA获得的解决方案优于先前文献中的解决方案。如果每个参数都设置得更合理,解决方案将得到进一步改进。还比较了混合遗传算法PHEA获得的最优解[29],以及一种改进的遗传算法[42]; 参见表2结果表明,我们的算法与其他遗传算法相比具有竞争力。

C103和C104的解决方案比之前的最佳解决方案少了一辆车。表中描述了包括客户序列的两个完整解决方案.

4.4。与PHEA结果的比较

在本小节中,我们简要分析了算法,没有单元分离和单元通信过程。我们使用这个术语表示基于PHEA但不包括膜结构转换的方法。从每种类型的基准问题中选择两个实例。它们是R107、R109、C109、C159、RC101、RC105、R201、R210、C201、C202、RC201和RC208。The performances of the使用以下标准进行评估:10次运行中的最佳解决方案和最差解决方案、10次运行时的平均最佳解决方案、标准偏差和运行时间。实验结果如表所示4我们可以看到,尽管改进策略和遗传算子仍在继续使用,但这些解决方案比PHEA生成的解决方案差得多。

5.结论和未来工作

膜系统由于其层次结构和内在并行性,是近似算法的良好框架。由于膜中的对象根据特定规则进化,此过程类似于许多类型的启发式算法。膜系统中的规则有时可以描述这些算法。例如,如果我们假设染色体在膜系统中由字符串对象表示,则可以通过重写规则来描述变异算子和交叉算子。

结构设计是优化算法领域的一个非常重要的研究课题。我们的研究重点是算法结构变化对遗传算子性能的影响。本文提出了一种新的膜算法PHEA。它包含一个具有分离规则和通信规则的组织样膜结构。该算法引入了膜结构变化。几个子系统最初是通过分离规则产生的。在每个子系统中,染色体通过遗传算子并行进化。子系统之间使用反端口规则交换一定数量的个人。这种规则可以增加每个子系统中种群的多样性,提高遗传算子的性能。为了研究VRPTW,我们还设计了一种特殊的改进策略来加快子系统中的搜索过程。该算法使用Solomon的基准问题进行了测试。实验结果表明,我们的算法与文献中描述的经典算法非常有竞争力。

进一步的研究可能包括研究大型VRPTW或其他类型优化问题的可扩展方法。本文所考虑的车辆路径问题具有一个停车场和硬时间窗。其他类型的VRPTW,如带时间窗的多基地车辆路径问题[46,47],具有软时间窗的车辆路径问题[48,49],以及分批交货的车辆路径问题[50],可以通过我们的算法进行测试,但需要进行一些更改。另一方面,未来应该考虑膜系统的其他特性对近似算法性能的影响,例如以不确定性的方式选择规则。

利益冲突

作者声明,本论文的出版不存在利益冲突。

确认

作者得到了国家自然科学基金资助(61127005、61272071和61373066)。