P-CAGE:对等网络中的进化计算环境
1. 引言
对等(P2P)计算正在吸引研究界和工业界的关注,像Napster、Gnutella和Morpheus等文件共享系统的流行更是推动了这一趋势。在P2P网络中,各个节点自主且异步地运行,能够很好地适应去中心化环境,它们可以复用现有架构,保证互操作性,还能充分利用网络资源。P2P网络作为一种新的分布式计算范式,能够汇聚网络中各个主机的计算能力,让那些未被充分利用的资源为其他节点所用。
遗传编程(GP)是遗传算法(GAs)的扩展,它通过应用变异算子,迭代地进化一个可变大小的树种群。每个个体编码一个候选解决方案,并与一个适应度值相关联,该适应度值衡量了该解决方案的优劣。GP在解决来自不同应用领域的挑战性问题方面的能力已得到广泛认可,但对于困难问题,GP需要大量的种群规模和足够多的迭代代数。由于需要大量的计算资源,包括用于存储大树种群的内存和评估种群中个体适应度的时间,这可能会严重降低GP的性能,甚至在处理大型复杂问题时使算法无法适用。而P2P资源的使用可以通过在网络中分布大量种群,让GP能够处理大型问题。
目前虽然已有P2P实现的遗传算法相关研究,但P2P实现的遗传编程却很少见。不过已经有一些相关的努力,例如有研究探讨了异步和分布式GP模型如何适应P2P实现,还有研究致力于解决P2P在无线传感器网络中的应用问题。
为了解决这些问题,我们设计了一个名为P-CAGE(P2P CellulAr Genetic Environment)的系统,它是最早的P2P实现的遗传编程系统之一。该系统使用JXTA - J2SE库开发,这是JXTA协议的Java实现,能保证互操作性、平台独立性和普遍性。JXTA技术是一套开放的、通用的P2P协议,允许网络中的任何连接设备(从手机到PDA,从PC到服务器)进行通信和协作。
P-CAGE基于经典多岛模型的混合变体,这不仅使算法运行更快,还能带来更优的数值性能。这种混合模型结合了岛模型和细胞模型。岛模型将原始种群划分为多个不相交的子种群,通常每个子种群大小相同,每个子种群可分配给一个处理器,并在其上执行标准(随机交配)GP算法。经过固定代数后,会在子种群之间进行迁移过程,例如将一个子种群中的k个最优个体复制到其他子种群,以实现种群间的遗传信息交换。而我们的混合模型将标准GP算法替换为细胞GP算法。在细胞模型中,每个个体都有一个空间位置、一个小邻域,并且只在其邻域内进行交互。与随机交配算法相比,细胞GP的主要区别在于其去中心化的选择机制和所采用的遗传算子(交叉、变异)。在P-CAGE中,为了利用GP的细胞模型优势,细胞岛并非独立进化,而是异步交换最外层个体,使得所有岛可以被视为一个单一种群的不同部分。P-CAGE使用虚拟环配置将实现检测模型的进化过程(岛)分布在网络节点上,它将混合模型实现为在异构网络中各个主机上运行的一组协作自主岛,该网络作为P2P系统工作。P-CAGE具备P2P系统的诸多优点,如异步性、可扩展性、容错性,并且能保持其他分布式GP方法的准确性。
2. P-CAGE架构与实现
P-CAGE构建在JXTA服务之上,如发现和成员服务,并且提供了图形用户界面。节点以自配置的环形拓扑结构排列,因此每个节点只需要知道其左右邻居的信息。每个节点采用文献中描述的GP细胞方法,并执行特定算法。
具体步骤如下:
1.
寻找节点并构建环
:构建虚拟环的思路借鉴了相关策略。算法使用两个参数
min peers
和
max peers
分别定义形成环的节点的最小和最大数量。开始时,每个节点使用JXTA成员服务创建并加入一个名为“GeneticProgramming”的组,然后使用JXTA发现服务开始搜索属于该组的节点,直到超时或达到最大节点数。记录每个节点的发现时间,将信息分发给所有发现的节点,并按最小发现时间对节点进行排序。此排序可确定每个节点的左右邻居,即排序序列中的前一个和后一个节点。第一个节点被命名为组的领导者。如果未达到最小节点数,领导者会尝试发现其他领导者,并按照特定模式合并两个或更多节点组,直到达到最小节点数。
2.
构建管道和指代表
:每个节点使用JXTA的管道服务与其左右邻居创建双向通道。为了使系统更健壮,会构建一个指代表,存储k个左后继和k个右后继,k通常取值为2到4。如果管道出现故障,节点会使用指代表中的信息创建新管道,即检查指代表直到找到一个节点,然后用管道连接它。
3.
种群进化
:在进化阶段,每个节点上会进化一个维度为a × b的树种群,遵循P-CAGE采用的混合多岛模型(实际上,每个节点代表一个采用细胞模型的岛)。每k(
gen migration
参数)代,种群的边界(左右两侧的外部b棵树)会通过管道在相邻节点之间异步交换(即如果在计算开始前边界信息未到达节点,节点将继续使用旧的树)。
4.
终止准则
:算法在满足以下终止准则之一时停止执行:
-
max - gen
:当每个节点达到最大代数时,P-CAGE结束。此准则易于实现,但较快的节点必须等待较慢的节点。为避免等待已失效的节点而陷入无限等待,引入了超时机制。
-
时间
:固定一个最大时间,当该时间到期时,所有节点必须终止。此准则无需同步,但很难估计合适的时间,因为要考虑参与计算的计算机的不同负载和速度。如果选择的时间过短,算法可能无法收敛。
-
努力值
:根据相关定义计算努力值。设G为代数,N为每个节点上的个体数量,
AVG LENp
为关于节点p的每个个体的平均节点数。则在特定代n所需的努力值为:
[
\sum_{p = 1}^{n} G \times N \times AVG LENGTHp
]
努力值考虑了系统进行的总体有效计算,但需要额外的开销来计算努力值并通信相关信息。实际上,在每个预定义的时间段内,必须通过求和每个节点产生的努力值来计算总努力值。
以下是每个节点执行的伪代码:
find peers();
build ring();
build pipes();
create populations();
gen = 0;
while(!termination criterion()){
evolve population(gen);
evaluate fitness();
if(gen%gen migration == 0)
send borders();
asinc receive borders();
gen++;
}
report on run();
3. 实验结果
为了验证我们实现的有效性,我们在准确性方面将异步混合多岛模型与经典顺序实现的GP和并行细胞实现的GP进行了比较。我们使用sgpc1.1作为顺序实现的遗传编程,使用CAGE作为并行细胞实现的GP。对等网络实验在CNR - ICAR研究所的局域网中进行,所有实验均运行100代,并进行20次尝试取平均值。
我们使用了以下问题作为基准测试:
| 问题名称 | 问题描述 |
| — | — |
| 符号回归 | 寻找一个非平凡的数学表达式,对于给定的自变量值xi,该表达式总能得到因变量的相应值yi。在第一个实验中,目标函数是多项式x⁴ + x³ + x² + x,在区间[-1,1]内随机选择自变量x的值,生成20个数据点(xi, yi)。 |
| 三角恒等式发现 | 发现cos2x的三角恒等式。在区间[0,2π]内随机选择20个自变量x的值,计算相应的yi = cos2xi。这20对(xi, yi)构成适应度案例,适应度计算为yi与程序在xi上生成的值之间的绝对差值之和。 |
| 符号积分 | 寻找一个符号数学表达式,该表达式是给定曲线的积分。在本实验中,曲线为cosx + 2x + 1,因此遗传程序需要得到sinx + x² + x,给定区间[0,2π]内的50对(xi, yi)。 |
| 4位偶数奇偶校验 | 确定一组4位的奇偶性。布尔函数接收4个布尔变量,仅当偶数个变量为真时返回TRUE。目标函数为f(x1, x2, x3, x4) = x1x2x3x4 ∨ x1x2x3x4 ∨ x1x2x3x4 ∨ x1x2x3x4 ∨ x1x2x3x4 ∨ x1x2x3x4 ∨ x1 x2 x3 x4,探索的适应度案例是变量的2⁴种组合,适应度是目标函数与找到的解决方案之间的汉明距离之和。 |
| 5位偶数奇偶校验 | 与4位偶数奇偶校验类似,只是考虑5位而不是4位。 |
| 圣达菲蚂蚁问题 | 找到蚂蚁在32 × 32矩阵上执行的最佳移动列表,以使蚂蚁能够吃掉网格上放置的所有食物颗粒。在本实验中,使用圣达菲轨迹,其中包含89个食物颗粒。适应度函数通过每次蚂蚁到达包含食物的单元格时将食物颗粒数减1来获得。蚂蚁只有在其前方单元格中有食物时才能看到食物(
IfFoodAhead
移动);否则,它可以随机向左或向右移动2次(
Progn2
)或3次(
Progn3
)。 |
方法的参数如下表所示:
| 参数 | 值 |
| — | — |
| 最大代数 | 100 |
| 交叉概率 | 0.8 |
| 选择交叉内部点的概率 | 0.1 |
| 变异概率 | 0.1 |
| 繁殖概率 | 0.1 |
| 初始随机种群的生成方法 | Ramped |
| 新树的最大深度 | 6 |
| 交叉后树的最大深度 | 17 |
| 变异时树的最大深度 | 4 |
| 简约因子 | 0.0 |
对于所有实验,除符号回归问题的种群大小设置为800个个体外,总体种群大小为3200。在并行实现和对等网络实现中,种群大小在节点或对等节点之间平均分配,并且都采用Moore邻域。对于P-CAGE,我们使用5个对等节点,每5代进行一次迁移,终止准则为
max - gen
。
实验结果表明,P-CAGE在所有问题上都优于经典GP,并且与并行细胞实现相比,要么更好,要么至少相当。对于4位偶数奇偶校验问题,P-CAGE的准确性明显更好;对于三角恒等式发现和符号回归问题,略好一些;仅在圣达菲蚂蚁问题上略差。
为了研究系统的可扩展性,我们在保持总体种群相同的情况下,改变对等节点的数量(3、5、10)运行系统。结果显示,差异在统计上不显著或非常小。
mermaid流程图如下:
graph LR
A[开始] --> B[寻找节点]
B --> C[构建环]
C --> D[构建管道和指代表]
D --> E[创建种群]
E --> F{是否满足终止准则}
F -- 否 --> G[种群进化]
G --> H[评估适应度]
H --> I{是否到迁移代}
I -- 是 --> J[发送边界信息]
J --> K[异步接收边界信息]
K --> L[代数加1]
L --> F
I -- 否 --> L
F -- 是 --> M[结束并报告结果]
综上所述,P-CAGE在解决复杂问题方面具有很大的潜力,它结合了P2P网络的优势和遗传编程的能力,为进化计算提供了一个高效、可扩展的环境。未来,我们将进一步研究不同拓扑结构(如小世界和无标度网络)的应用,以进一步提升系统的性能。
P-CAGE:对等网络中的进化计算环境
4. 实验结果深入分析
在之前的实验中,我们已经看到了P-CAGE在不同问题上与经典GP和并行细胞实现的对比结果。下面我们进一步深入分析这些结果背后的原因。
对于P-CAGE在不同问题上的表现差异,主要与问题的特性和P-CAGE的模型特点有关。
-
偶数奇偶校验问题
:这类问题对局部信息的处理要求较高,P-CAGE的细胞模型能够更好地利用局部邻域信息进行进化,其异步迁移机制也有助于快速传播优秀个体,所以在4位偶数奇偶校验问题上准确性明显更好。
-
三角恒等式发现和符号回归问题
:这些问题的解空间相对较为规则,P-CAGE的混合多岛模型通过岛间的信息交换,能够更快地探索解空间,从而取得略好的结果。
-
圣达菲蚂蚁问题
:该问题具有较高的复杂性和不确定性,需要全局的搜索和规划能力。虽然P-CAGE的异步迁移和细胞模型在一定程度上有助于信息传播,但在处理这种复杂问题时,其局部搜索的特性可能限制了全局最优解的发现,导致结果略差。
在可扩展性方面,我们改变对等节点数量(3、5、10)进行实验,结果差异不显著。这表明P-CAGE具有良好的可扩展性,主要得益于其分布式架构和异步迁移机制。随着节点数量的增加,系统能够有效地分配计算任务,并且异步迁移可以减少节点间的同步开销,使得系统在不同规模下都能保持相对稳定的性能。
5. P-CAGE的优势总结
P-CAGE作为一种基于P2P网络的遗传编程实现,具有以下显著优势:
1.
分布式计算能力
:通过P2P网络,P-CAGE能够汇聚多个节点的计算资源,处理大规模的种群和复杂问题,大大提高了计算效率。
2.
异步性和容错性
:异步迁移机制使得节点可以独立进行进化计算,不需要严格的同步,同时也增强了系统的容错能力。即使部分节点出现故障,系统仍能继续运行。
3.
可扩展性
:实验结果表明,P-CAGE在不同节点数量下都能保持较好的性能,能够适应不同规模的计算需求。
4.
准确性
:在大多数问题上,P-CAGE的准确性优于经典GP,并且与并行细胞实现相当或更好,证明了其混合多岛模型的有效性。
6. 未来研究方向
虽然P-CAGE已经取得了较好的实验结果,但仍有许多方面值得进一步研究和改进。
1.
不同拓扑结构的应用
:目前P-CAGE采用虚拟环拓扑结构,未来可以研究小世界和无标度网络等不同拓扑结构的应用。这些拓扑结构可能会改变节点间的信息传播方式,进一步提高系统的性能。
2.
自适应迁移策略
:当前的迁移策略是固定的,即每5代进行一次迁移。可以研究自适应迁移策略,根据问题的特点和进化的阶段动态调整迁移频率和迁移个体的选择,以更好地平衡探索和利用。
3.
与其他算法的结合
:可以探索将P-CAGE与其他优化算法或机器学习方法相结合,如模拟退火算法、神经网络等,以提高解决复杂问题的能力。
7. 总结
本文介绍了P-CAGE——一个基于P2P网络的遗传编程环境。通过结合岛模型和细胞模型,P-CAGE实现了高效的分布式进化计算。实验结果表明,P-CAGE在准确性和可扩展性方面表现出色,优于经典GP,并且与并行细胞实现相当或更好。同时,P-CAGE具备P2P系统的异步性、容错性等优点,为解决复杂的现实问题提供了一个强大的工具。
未来,我们将继续探索不同拓扑结构和自适应策略的应用,进一步提升P-CAGE的性能,使其在更多领域发挥作用。
以下是一个总结P-CAGE主要步骤的表格:
| 步骤 | 描述 |
| — | — |
| 寻找节点并构建环 | 使用
min peers
和
max peers
参数,通过JXTA服务寻找节点并构建虚拟环 |
| 构建管道和指代表 | 创建双向通道,构建指代表以增强系统健壮性 |
| 种群进化 | 每个节点上的种群按照混合多岛模型进化,定期进行边界交换 |
| 终止准则判断 | 根据
max - gen
、时间或努力值判断是否终止算法 |
mermaid流程图展示未来研究方向的探索过程:
graph LR
A[P-CAGE现状] --> B[研究不同拓扑结构]
A --> C[开发自适应迁移策略]
A --> D[与其他算法结合]
B --> E[评估性能提升]
C --> E
D --> E
E --> F{是否满足需求}
F -- 是 --> G[应用于实际问题]
F -- 否 --> B
通过以上的研究和探索,我们相信P-CAGE将在进化计算领域发挥更大的作用,为解决各种复杂问题提供更有效的解决方案。
超级会员免费看
18

被折叠的 条评论
为什么被折叠?



