18、ERNe:用于进化反应网络的框架

ERNe:用于进化反应网络的框架

1. ERNe 编码与命名机制

ERNe 是一种用于进化反应网络的框架。以 Oligator 为例,其图表示和对应的 ERNe 编码中,节点代表序列,箭头代表模板,带杠箭头代表抑制。如信号序列 a 和 b,绿色节点 Iaa 是抑制序列,它抑制模板 a→a(即 a 的自我激活)。该系统有三个序列和三个模板,所以在其 ERNe 编码中有三个节点基因和三个连接基因。

由于后续突变可能改变序列的角色,很难保持理想条件。不过,可通过简单的命名机制部分解决此问题。用一个列表将节点名称与创建方式映射起来,例如“A→A to B”表示在模板 A→A 中间添加新节点时,该节点必须命名为 B。

2. ERNe 中的遗传操作

在 ERNe 中,突变可用于改变参数和网络结构,主要的突变操作符有:
- 参数突变 :每个参数都有一定概率突变为新的随机值,计算公式为 newValue = oldValue × (1 + f1 × rand1) + f2 × rand2 ,其中 f1 和 f2 固定(后续实验中分别设为 0.2 和 2.0),rand 是标准正态偏差。为保持生化相关性,可用参数范围限制在合理的物理值内。对突变后的浓度进行两次检查:
- 若值小于零,发生模板切换突变。因为负浓度不存在,所以将此变化解释为切换到抑制性模板。
- 若模板浓度的新值大于零但低于阈值(此处设为 1.0 [nM]),有概率通过禁用模板突变将其禁用。
- 添加序列突变 :有两种方式向系统添加新的信号序列:
- 选择现有模板,将其拆分并把新序列放在中间。
- 添加带有自我激活连接的新序列,以抑制现有模板或激活现有序列。
- 添加激活突变 :随机选择两个未连接的序列,并在它们之间添加新模板。
- 添加抑制突变 :随机选择一个模板,创建相应的抑制节点,然后选择一个随机起始节点并添加模板。若序列 a 和 b 之间已有激活模板,则将其禁用,此时该突变相当于模板切换突变。

ERNe 编码和创新编号的使用使交叉操作变得直接。使用创新编号将双亲的模板基因排列好,可轻松应用一点和两点交叉等交叉技术。对于子代节点基因的创建,目前是按创新编号顺序读取模板基因组,并选择提供连接的父代中相应节点的参数。

3. ERNe 中的物种形成

在进化复杂系统时,保护拓扑创新很重要。因为较小结构往往比较大结构更快优化,而且在很多情况下,向系统添加新节点和连接最初会降低适应度,所以新进化的结构很少能存活超过一代。因此,引入物种概念,将具有相似拓扑的个体分组到同一物种中,个体主要在自己的生态位内竞争,这样拓扑创新能得到保护并获得优化机会。

使用拓扑兼容性距离 δ 来判断两个个体是否属于同一物种,公式为 δ = M / N ,其中 M 是两个个体之间不匹配的模板基因数量,N 是较大基因组中的总模板基因数量。若 δ 低于物种形成阈值 δt,则两个个体可归为同一物种。

确定新创建个体的物种的方法如下:
1. 计算其与上一代所有物种最佳个体的距离,第一个距离低于物种形成阈值 δt 的匹配决定其物种。
2. 若未找到合适物种,考虑上一代的所有个体。
3. 若仍未找到,考虑进化历史中的所有物种,计算个体与物种代表的距离。
4. 若经过上述步骤仍无法确定物种,则创建一个新物种,该个体作为代表。

每个当前世代的物种会根据其个体的平均适应度分配不同数量的后代。此外,实施了上限机制,将一个物种的增长限制在整个种群的最多 10%,以防止某些暂时良好的物种增长过快并占据整个种群。

为解决物种数量问题,实施了物种形成阈值的动态调整:

if 物种数量 > Ns:
    δt = δt + ϵ
else if 物种数量 < Ns:
    δt = δt - ϵ

其中 ϵ 称为修改步长。

4. 实验参数设置

实验中使用的参数设置如下表所示:
|参数类型|参数名称|参数值|
| ---- | ---- | ---- |
|通用参数|种群大小|200|
|通用参数|代数|100|
|通用参数|选择方法|锦标赛(大小 5)|
|通用参数|交叉技术|一点交叉|
|物种形成参数|首选物种数量|10|
|物种形成参数|起始物种形成阈值|0.6|
|物种形成参数|最小物种形成阈值|0.1|
|物种形成参数|物种形成修改步长 ϵ|0.03|
|交叉和突变参数|仅突变概率|0.5|
|交叉和突变参数|种间交配概率|0.01|
|交叉和突变参数|交叉后突变概率|0.75|
|突变参数|仅参数突变概率|0.9|
|突变参数|单基因突变概率|0.8|
|突变参数|结构添加节点概率|0.2|
|突变参数|结构添加激活概率|0.2|

5. ERNe 进化基因调控网络的实验

最初的测试证实,ERNe 可以轻松找到已知的振荡或双稳态网络。从单个节点开始,只需几代就能找到这些结构并优化其参数。

尝试寻找与特定周期函数(正弦、矩形和锯齿振荡)匹配的振荡生化系统。目标输出具有合理的振幅和周期,使用字典序适应度函数,先检查振荡的存在,然后计算适应度: fitness = 1000 / (MSE × limitcycle) ,其中 MSE 是信号序列 a 的浓度与目标函数之间的均方误差(对于两个不连续函数使用几何 MSE),limitcycle 通过比较信号序列 a 浓度在观察区间(实验中设为 300 - 1500 分钟)内第一个和最后一个峰值的振幅来评估极限环的接近程度。

最初对 Oligator 进行参数优化的尝试并不理想,表明在不改变拓扑结构的情况下,优化器无法同时满足振荡的周期、振幅和形状要求。

为评估 ERNe 哪些特征最重要,针对矩形振荡问题进行实验,比较了四种算法(每种运行 50 次):
- ERNe 带交叉和不带交叉。
- 使用交叉但不进行物种形成(类似简单遗传算法)。
- ERNe 使用原始 NEAT 交叉技术。

实验结果表明,带交叉和物种形成的完整 ERNe 表现最佳。没有物种形成时性能显著下降,原始 NEAT 交叉表现不佳,甚至比不使用交叉更差。使用 ERNe 一点交叉时,找到满意适应度的解决方案平均比不使用交叉快约 50%。

后续实验使用带交叉的 ERNe 对三种振荡形状各运行 50 次,结果如下:
- 正弦振荡 :典型解决方案的结构基于扩展的 Oligator 结构,负反馈回路中有更长的延迟线,侧面前馈回路可能用于微调时间轨迹的形状,观察输出与目标输出几乎完美匹配。
- 矩形振荡 :适应度值不如连续函数。大多数运行(40/50)收敛到一种未报道且无关的振荡拓扑,称为开关振荡器,涉及三个通过三个抑制反应连接在一起的自我激活序列。其余 20% 的运行属于长 Oligator 类别,无法准确匹配目标函数的恒定部分,适应度较低。
- 锯齿振荡 :所有运行都收敛到拉长的 Oligator 拓扑,其中 7/50 的拓扑中序列 a 是自我激活序列,43/50 的拓扑中序列 a 是负反馈回路的最后一个序列,后者提供更好的解决方案。

下面是一个简单的 mermaid 流程图,展示 ERNe 中确定新个体物种的过程:

graph TD;
    A[新创建个体] --> B[计算与上一代物种最佳个体距离];
    B --> C{距离 < δt?};
    C -- 是 --> D[确定物种];
    C -- 否 --> E[考虑上一代所有个体];
    E --> F{找到合适物种?};
    F -- 是 --> D;
    F -- 否 --> G[考虑进化历史所有物种];
    G --> H{找到合适物种?};
    H -- 是 --> D;
    H -- 否 --> I[创建新物种];

综上所述,ERNe 框架在探索搜索空间方面表现出有效性,能够找到复杂的振荡结构以匹配特定的周期函数。交叉和物种形成在进化过程中起着重要作用,不同的振荡问题可能收敛到不同的拓扑结构。

ERNe:用于进化反应网络的框架

6. 矩形振荡网络的进化示例

以矩形振荡为例,展示网络的进化过程。初始网络(第 0 代)仅有一个节点,此时无振荡,适应度为 0。随后,通过在自激活模板 a→a 中间添加新节点 d,网络突变到第 1 代,但适应度仍未提升。

接着,将激活 a→d 切换为抑制,形成了 Oligator 基序(第 2 代),此结构具备振荡的可能性,但参数尚未优化。之后,通过添加新节点 h,网络进化为长 Oligator(第 3 代),这是一种更稳健的振荡器。该系统在接下来的几代中不断优化参数,在第 8 代时达到强烈振荡,适应度为 40.8673。

到第 9 代,又添加了新节点 k 来延长反馈回路,进一步优化网络性能。整个进化过程可概括为以下步骤:
1. 第 0 代:初始单节点网络,无振荡,适应度为 0。
2. 第 1 代:在 a→a 中间添加节点 d,适应度未提升。
3. 第 2 代:a→d 切换为抑制,形成 Oligator 基序。
4. 第 3 代:添加节点 h,进化为长 Oligator。
5. 第 8 代:优化参数,达到强烈振荡,适应度 40.8673。
6. 第 9 代:添加节点 k,延长反馈回路。

7. 不同算法性能对比分析

在矩形振荡问题的实验中,对四种算法的性能进行了详细对比,结果如下表所示:
|算法|平均达到满意适应度所需代数|t 分布 p 值(与完整 ERNe 对比)|
| ---- | ---- | ---- |
|完整 ERNe(带交叉和物种形成)|59.6 ± 50.7| - |
|ERNe 不带物种形成|145.6 ± 22.1|1.48E - 09|
|ERNe 带原始 NEAT 交叉|125.2 ± 45.9|2.59E - 5|
|ERNe 不带交叉|84.2 ± 61.1|0.0310|

从这些数据可以看出,完整 ERNe 的性能明显优于其他算法。p 值表明完整 ERNe 与其他算法在达到满意适应度所需代数上存在显著差异。不带物种形成时,算法性能大幅下降,说明物种形成机制对于保护拓扑创新、促进网络进化至关重要。原始 NEAT 交叉技术表现不佳,这反映出人工神经网络(ANN)和生化反应网络之间存在显著差异,不能简单地将 ANN 的交叉技术应用到生化反应网络中。

8. 不同振荡形状的拓扑结构特点

不同的振荡形状(正弦、矩形、锯齿)在进化过程中收敛到不同的拓扑结构,这些结构具有各自的特点:
- 正弦振荡 :基于扩展的 Oligator 结构,负反馈回路中的长延迟线和侧面前馈回路是其关键特征。长延迟线有助于控制振荡的周期,而侧面前馈回路则可对时间轨迹的形状进行微调,使得观察输出能够与目标输出几乎完美匹配。
- 矩形振荡 :多数情况下收敛到开关振荡器拓扑,该拓扑由三个通过抑制反应连接的自激活序列组成。这种结构能够产生快速切换和扁平平台,符合矩形振荡的特点。部分运行中还出现了扩展变体,进一步丰富了拓扑结构。而长 Oligator 类别在匹配矩形振荡的恒定部分时表现不佳,适应度较低。
- 锯齿振荡 :所有运行都收敛到拉长的 Oligator 拓扑。当序列 a 作为负反馈回路的最后一个序列时,能够提供更好的解决方案,这可能是因为这种结构更有利于控制振荡的上升和下降过程,从而更接近锯齿振荡的形状。

下面是一个 mermaid 流程图,展示不同振荡形状的拓扑收敛情况:

graph LR;
    A[正弦振荡] --> B[扩展 Oligator 结构];
    C[矩形振荡] --> D[开关振荡器拓扑];
    C --> E[长 Oligator 类别];
    F[锯齿振荡] --> G[拉长 Oligator 拓扑];
    G --> H[序列 a 为负反馈回路最后一个序列];
    G --> I[序列 a 为自激活序列];
9. 总结与展望

通过对 ERNe 框架在进化反应网络中的应用研究,可以得出以下结论:
- ERNe 框架能够有效地探索搜索空间,找到复杂的振荡结构以匹配特定的周期函数,证明了其在进化基因调控网络方面的可行性和有效性。
- 交叉和物种形成机制在进化过程中起着至关重要的作用。交叉操作可以加速进化进程,而物种形成机制能够保护拓扑创新,使新的结构有机会得到优化和发展。
- 不同的振荡问题会收敛到不同的拓扑结构,这表明生化反应网络具有丰富的多样性和复杂性,需要根据具体问题选择合适的拓扑结构进行优化。

未来的研究可以进一步探索 ERNe 框架在其他类型的生化反应网络中的应用,如代谢网络、信号转导网络等。同时,可以对遗传操作和物种形成机制进行更深入的研究和优化,以提高算法的性能和效率。此外,结合实验数据对进化得到的网络进行验证和改进,将有助于推动生化反应网络研究的发展。

基于分布式模型预测控制的多个固定翼无人机一致性控制(Matlab代码实现)内容概要:本文围绕“基于分布式模型预测控制的多个固定翼无人机一致性控制”展开,采用Matlab代码实现相关算法,属于顶级EI期刊的复现研究成果。文中重点研究了分布式模型预测控制(DMPC)在多无人机系统中的一致性控制问题,通过构建固定翼无人机的动力学模型,结合分布式协同控制策略,实现多无人机在复杂环境下的轨迹一致性和稳定协同飞行。研究涵盖了控制算法设计、系统建模、优化求解及仿真验证全过程,并提供了完整的Matlab代码支持,便于读者复现实验结果。; 适合人群:具备自动控制、无人机系统或优化算法基础,从事科研或工程应用的研究生、科研人员及自动化、航空航天领域的研发工程师;熟悉Matlab编程和基本控制理论者更佳; 使用场景及目标:①用于多无人机协同控制系统的算法研究与仿真验证;②支撑科研论文复现、毕业设计或项目开发;③掌握分布式模型预测控制在实际系统中的应用方法,提升对多智能体协同控制的理解与实践能力; 阅读建议:建议结合提供的Matlab代码逐模块分析,重点关注DMPC算法的构建流程、约束处理方式及一致性协议的设计逻辑,同时可拓展学习文中提及的路径规划、编队控制等相关技术,以深化对无人机集群控制的整体认知。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值