C-TAEA算法源代码复现

多目标优化算法:从帕累托前沿到约束处理的工程实践 多目标优化是解决多个相互冲突目标平衡问题的核心技术,其核心在于寻找帕累托最优解集。在工程实践中,问题往往伴随各种约束条件,演变为受约束的多目标优化问题,这要求算法不仅能逼近帕累托前沿,还需严格满足约束。约束处理技术成为算法优劣的关键分水岭,主流方法包括基于可行性优先的约束支配原则、将约束转化为优化目标的多目标转化法,以及基于分类的协同进化策略。这些技术通过巧妙处理约束违反度,在保持解集多样性和收敛性的同时,确保解的可行性,广泛应用于电动汽车设计、资源调度等复杂工程场景。本文聚焦于CMOO的前沿算法与实战经验 阅读详情
AI摘要

本文介绍了一种名为C-TAEA的无参数双档案进化算法,针对约束多目标优化问题,通过协作的趋同导向档案和多样性导向档案,实现了收敛性、多样性和可行性的平衡。算法在基准问题和真实案例中展现出竞争力,超越了领先算法。

论文:《Two-Archive Evolutionary Algorithm for Constrained Multiobjective Optimization》

双档案进化的约束多目标优化算法

1、摘要

在求解约束多目标优化问题时,如何同时兼顾收敛性、多样性和可行性是一个重要问题。为了解决这一问题,本文提出了一种无参数约束处理技术——双档案进化算法,用于约束多目标优化。它同时保持着两种协作性档案:一种称为趋同导向档案(CA),是推动人口走向帕累托前沿的驱动力;另一种是多样性导向档案(DA),主要倾向于维持种群多样性。特别是,为了补充CA的行为,提供尽可能多的多样化信息,DA旨在探索CA未开发的区域,包括不可行的区域。为了利用这两种基因的互补效应,我们开发了一种限制性交配选择机制,根据它们的进化状态自适应地选择合适的交配亲本。在一系列基准问题上的综合实验和一个真实世界的案例研究充分证明了我们提出的算法的竞争力,与五种最先进的受限进化多目标优化器相比。

2、模型及数学问题

本文所考虑的约束多目标优化问题定义为:

 其中X=(x_1,...x_n)^T是一个候选解,Ω定义搜索(或决策变量)空间

 其中是一个足够小的容忍项(例如 = 10−6),用于将等式约束放松为不等式约束。α如果α≥0则返回0,否则返回α的负数。x的约束违背值计算为;

3、本文创新   


        近二十年来,人们致力于发展进化多目标优化算法,如精英非支配排序遗传算法(NSGA-II)[2]、基于指标的遗传算法[3]和基于分解[4]的多目标遗传算法。然而,尽管大多数(如果不是全部的话)现实优化场景都有各种性质的约束。一般来说,收敛性、多样性和可行性是cops的三个基本问题。大多数(如果不是全部的话)现有的约束处理技术首先倾向于将种群尽可能地推向可行区域,而不考虑可行区域内收敛和多样性的平衡。这可能会导致种群陷入某些局部最优或局部可行区域,特别是当可行区域较窄且/或在搜索空间中分布不均匀时。
具体来说,我们同时维护两个协作和互补的档案:一个被称为趋同导向档案(convergence-oriented archive, CA);而另一个被标记为面向多样性的归档(DA)。C-TAEA的主要特征如下:1)顾名思义,CA是保持进化过程收敛性和可行性的驱动力。2)在不考虑可行性的情况下,动态进化算法主要倾向于保持进化过程的收敛性和多样性。特别是,DA探索了CA尚未利用的区域。这不仅提高了CA在当前调查可行区域内的种群多样性,而且有助于跳过局部最优或局部可行区域。3)为了利用这两种协作档案的互补效应和精英信息,我们建立了一种限制性交配选择机制,根据进化状态分别从CA和DA中选择合适的交配亲本。在EMO中使用两个档案的想法自2006年以来一直存在。例如,[6][8]开发了几个两种存档EMO算法,使用两个概念上互补的种群来实现进化过程的收敛性和多样性之间的平衡。Li等人[9]开发了一种双种群范式,结合了基于分解和帕累托选择机制的优势。


具体来说,我们同时维护两个协作和互补的档案:一个被称为趋同导向档案(convergence-oriented archive, CA);而另一个被标记为面向多样性的归档(DA)。C-TAEA的主要特征如下:1)顾名思义,CA是保持进化过程收敛性和可行性的驱动力。2)在不考虑可行性的情况下,动态进化算法主要倾向于保持进化过程的收敛性和多样性。特别是,DA探索了CA尚未利用的区域。这不仅提高了CA在当前调查可行区域内的种群多样性,而且有助于跳过局部最优或局部可行区域。3)为了利用这两种协作档案的互补效应和精英信息,我们建立了一种限制性交配选择机制,根据进化状态分别从CA和DA中选择合适的交配亲本。
例如,[6][8]开发了几个两种存档EMO算法,使用两个概念上互补的种群来实现进化过程的收敛性和多样性之间的平衡。Li等人[9]开发了一种双种群范式,结合了基于分解和帕累托选择机制的优势。在本文中,我们想要,第一次,探索双档案策略的潜在优势。本文的其余部分组织如下。第二节简要概述了为cops开发的最先进的进化方法,然后引出我们的动机。第三节逐步介绍了所提算法的技术细节。随后,在第四节和第五节中,对所提算法的有效性和竞争力进行了实证研究,并与五种最新的约束EMO算法在各种基准问题上进行了比较。最后,第六部分对全文进行了总结,并对未来的发展方向提出了设想。

4、核心代码:

import math
import matplotlib.pyplot as plt
import numpy as np
from ctaea import constrained_two_archive_evolutionary_algorithm


# Target Function 1: Kursawe 1
def kursawe_f1(variables_values=[0, 0]):
    f1 = 0
    if (len(variables_values) == 1):
        f1 = f1 - 10 * math.exp(-0.2 * math.sqrt(variables_values[0] ** 2 + variables_values[0] ** 2))
    else:
        for i in range(0, len(variables_values) - 1):
            f1 = f1 - 10 * math.exp(-0.2 * math.sqrt(variables_values[i] ** 2 + variables_values[i + 1] ** 2))
    return f1


# Target Function 2: Kursawe 2
def kursawe_f2(variables_values=[0, 0]):
    f2 = 0
    for i in range(0, len(variables_values)):
        f2 = f2 + abs(variables_values[i]) ** 0.8 + 5 * math.sin(variables_values[i] ** 3)
    return f2


# CTAEA - Parameters
size = 25
m_r = 0.10
minv = [-5, -5]
maxv = [5, 5]
lof = [kursawe_f1, kursawe_f2]
gen = 500
mu = 1
eta = 1
k = 2  # Population = k*(Total Number of Points in the Reference Hyperplane)
# Calling CTAEA Function
ctaea_kursawe = constrained_two_archive_evolutionary_algorithm(references=size, mutation_rate=m_r, min_values=minv,
                                                               max_values=maxv, list_of_functions=lof, generations=gen,
                                                               mu=mu, eta=eta, k=k)

# Kursawe Pareto Front
x = np.arange(-5, 5, 0.1)
kursawe = np.zeros((x.shape[0] ** 2, 4))
count = 0
for j in range(0, x.shape[0]):
    for k in range(0, x.shape[0]):
        kursawe[count, 0] = x[j]
        kursawe[count, 1] = x[k]
        count = count + 1
for i in range(0, kursawe.shape[0]):
    kursawe[i, 2] = kursawe_f1(variables_values=[kursawe[i, 0], kursawe[i, 1]])
    kursawe[i, 3] = kursawe_f2(variables_values=[kursawe[i, 0], kursawe[i, 1]])
kursawe_1 = kursawe[:, 2]
kursawe_2 = kursawe[:, 3]

# Graph Pareto Front Solutions
plt.style.use('bmh')
plt.figure(figsize=(25, 15))
plt.xlabel('Function 1', fontsize=12)
plt.ylabel('Function 2', fontsize=12)
plt.scatter(ctaea_kursawe[:, -2], ctaea_kursawe[:, -1], c='r', s=45, marker='o', label='CTAEA')
plt.scatter(kursawe_1, kursawe_2, c='k', s=2, marker='.', label='Solutions')
plt.legend(loc='upper right')
plt.show()

算法运行结果:

 

python源代码下载链接:

🍞正在为您运送作品详情

多目标遗传算法与模糊优化Python实战:从NSGA-II到C-TAEA 遗传算法在工程优化中应用广泛,但当目标不止一个、约束还带有模糊性时,简单的单目标实现往往力不从心。NSGA-II通过快速非支配排序与拥挤度距离维护种群多样性,NSGA-III借助参考点机制应对高维目标,而C-TAEA用双种群协同处理复杂约束。结合模糊隶属度函数,可以将“成本尽量低”这类柔性要求转化为可优化的目标。基于Python的混合实现框架,涵盖算法选型、关键算子和参数配置,帮助工程师从帕累托前沿中选出真正可落地的方案。 阅读详情

相关推荐

Python实现多目标优化:NSGA-II、NSGA-III与C-TAEA对比实战

在市政管网改造、资源调度等工程场景中,成本、工期与环境影响等目标往往相互冲突,传统单目标寻优难以收敛,必须借助多目标优化在帕累托前沿上寻找均衡解。遗传算法作为一类经典的进化算法,通过非支配排序、拥挤距离与参考点机制,衍生出NSGA-II、NSGA-III及C-TAEA等多种变体,分别适用于低维离散、高维目标与连续决策空间等不同问题。掌握这些算法的原理与实现差异,能够显著提升工程决策的质量与效率。本文以一套完整的Python源码为载体,对比三种算法的运行效果与调参策略,并展示如何利用进度图与超体积指标验证收敛

weixin_31236101的博客 152

【论文研读】-用于约束多目标优化的新型双阶段双种群进化算法

论文研读-用于约束多目标优化的新型双阶段双种群进化算法 A Novel Dual-Stage Dual-Population Evolutionary Algorithm for Constrained Multi-Objective Optimization 觉得有用的话,欢迎一起讨论相互学习~ 最近我在学习约束多目标问题的论文,其中由明博士和张教授发表在TEVC上的DD-CMOEA非常不错~ 原文链接 此篇文章为 M. Ming, R. Wang, H. Ishibuchi and T. Zhang

泛用演化计算、通用人工智能优化模型 1万+

多目标优化实战:从NSGA-II到模糊决策的Python实现

实际工程中,能耗、产率、设备损耗等目标往往相互冲突,单目标优化只能返回一个折中点,无法满足业务对多种方案的探索需求。多目标优化算法通过非支配排序与拥挤度距离等机制,在一次运行中生成完整的Pareto前沿,将决策空间留给工程师。然而目标数超过三个时,传统算法面临选择压力退化的问题;强约束场景下,罚函数又容易让种群陷入不可行区域。针对这些痛点,NSGA-III的参考点机制与C-TAEA的双存档策略分别提供了解决方案。得到前沿后,还需借助模糊优化方法,将“能耗尽量低”这类模糊描述转化为隶属度函数,结合Bellma

weixin_29061531的博客 44

多目标优化中常用的进化算法简介及原论文(最全概括)

多目标优化中常用的进化算法介绍及原论文(最全概括) 1.NSGA-II: Non-dominated Sorting Genetic Algorithm 原文:A fast and elitist multiobjective genetic algorithm: nsga-II,2002 该算法引入快速非支配排序以及拥挤距离,以及使用到了二进制竞标赛选择,至今也是一个非常好用且常用的MOEA算法。 迭代示意图 拥挤度示意图 2.DE(Differential Evolution) 原文:Differe

大模型天花板 1万+

PlatEMO v2.0实战:MATLAB多目标优化实验避坑指南

进化多目标优化通过种群迭代在多个冲突目标间逼近帕累托前沿,其工程落地依赖算法、测试问题、评价指标与实验流程的一致实现。MATLAB平台将NSGA-II、NSGA-III、RVEA等算法与ZDT/DTLZ测试问题统一接口,并集成IGD、HV等指标计算,可降低自定义问题、批量对比与结果复现中的重复开发成本。在课程设计、论文对比实验和算子验证等场景中,合理设置评价次数、真实前沿与随机种子尤为关键。PlatEMO v2.0正是围绕这些实验基础设施提供可复用模板与避坑实践,帮助研究者把精力集中到算法设计与结论分析上。

weixin_29056101的博客 3

多目标优化算法或多目标优化算法的 python 库

C-NSGA II(聚类非支配排序遗传算法 II);CTAEA(约束两个档案进化算法);GREA(基于网格的进化算法);具有快速比较的IBEA (基于指标的进化算法);MOEA/D(基于分解的多目标进化算法);NAEMO(邻域敏感存档进化多目标优化);NSGA II(非支配排序遗传算法 II); NSGA III(非支配排序遗传算法 III);欧泊索(优化多目标粒子群优化);具有快速非优势排序的PAES (Pareto Archived Evolution Strategy);RVEA(参考向量引导进化算法);SMPSO(速度约束多目标粒子群优化);SPEA2(强度帕累托进化算法 2); U-NSGA III(统一非支配排序遗传算法 III)。 C-NSGA II(Colab 演示) CTAEA(Colab 演示) GREA(Colab 演示) IBEA(Colab 演示) MOEA/D(Colab 演示) NAEMO(Colab 演示) NSGA II(Colab 演示) NSGA III(Colab 演示) OMOPSO(Colab 演示) PAES(Colab 演示) RVEA(

现存的约束多目标进化算法总结

1.基于罚函数的方法 适应度函数定义:f(x)为目标函数值,P(x)是惩罚项,f′(x)为计算后的适应度值 核心思想:这种方法主要是基于约束违反值来构建惩罚项,通过添加惩罚项到目标函数中,这个约束优化问题被转成了一个无约束问题。可以简单分为三类:静态罚函数方法、动态罚函数方法、自适应罚函数方法。该方法的核心在于惩罚系数的设定,在算法的效率中惩罚系数扮演了决定性的作用。 优点:这些方法简单易行,灵活且应用广泛。 缺点:惩罚系数难以调整,当处理更复杂的问题时,算法的性能不够优秀。 1.1.静态

weixin_53900550的博客 1991

基于多种遗传算法(NSGA-II,NSGA-III,C-TAEA)和模糊优化算法的实现(python)

基于多种遗传算法(NSGA-II,NSGA-III,C-TAEA)和模糊优化算法的实现,用于在大海得拉巴市政公司地区优化最佳管理

【论文研读】基于对偶种群的约束多目标优化进化算法

基于对偶种群的约束多目标优化进化算法 A Dual-Population-Based Evolutionary Algorithm for Constrained Multiobjective Optimization 觉得有用的话,欢迎一起讨论相互学习~ 最近我在学习约束多目标问题的论文,其中由明博士和张教授发表在TEVC上的c-DPEA非常不错~ 此篇文章为 M. Ming, A. Trivedi, R. Wang, D. Srinivasan and T. Zhang, "A Dual-Popul

泛用演化计算、通用人工智能优化模型 5233

多目标优化的双层档案进化算法

多目标优化的双层档案进化算法

电力现货交易市场-报价方式

电是一种能源,也是一种商品,既然是商品自然可以在市场中进行自由交易。

qq_38225433的博客 5118

基于自适应约束调节的约束多目标进化算法研究

约束多目标优化问题(CMOPs)广泛存在于工程优化领域,其挑战性在于如何平衡解的可行性、收敛性和多样性。传统方法如约束支配原则(CDP)易陷入局部可行区域,而忽略约束的策略又可能导致解偏离真实帕累托前沿。本文提出一种基于自适应约束调节的进化算法(ACR),通过动态调整约束违反度评估策略,有效解决不同区域的搜索不平衡问题。

1318

如何将一个向量投影到一个平面上_线性代数19——投影矩阵和最小二乘

一维空间的投影矩阵  先来看一维空间内向量的投影:  向量p是b在a上的投影,也称为b在a上的分量,可以用b乘以a方向的单位向量来计算,现在,我们打算尝试用更“贴近”线性代数的方式表达。  因为p趴在a上,所以p实际上是a的一个子空间,可以将它看作a放缩x倍,因此向量p可以用p = xa来表示,只要找出x就可以了。因为a⊥e,所以二者的点积为0:  我们希望化简这个式子从而得出x:  x是一个实数...

weixin_39741101的博客 5230

《Two-Archive Evolutionary Algorithm for Constrained Multiobjective Optimization》阅读笔记

在求解约束多目标优化问题时,一个重要的问题是如何同时兼顾收敛、多样性和可行性。针对这一问题,提出了一种无参数约束处理技术--两档案进化算法,用于有约束的多目标优化问题。它同时维护两个协同档案:一个是推动种群走向帕累托前沿的驱动力,称为收敛导向档案(convergence-oriented archive);另一个是主要倾向于维持种群多样性的多样性导向档案(diversity-oriented archive)。

m0_59466752的博客 1692

以太网硬件核心:MAC、PHY、MII与交换机原理与实战排查

计算机网络通信的基础依赖于一套完整的硬件协议栈。在OSI模型中,数据链路层和物理层是实现设备间可靠、高效数据传输的基石。其核心原理在于将上层数据包封装成帧,并通过特定的介质访问控制与物理信号转换机制进行传输。这一过程的技术价值在于为上层应用提供了透明、稳定的通信信道,是互联网和所有局域网通信的物理承载。在嵌入式系统、网络设备开发及运维等应用场景中,深入理解底层硬件交互至关重要。本文将聚焦于以太网硬件的两大核心组件:负责逻辑成帧与流量控制的MAC控制器,以及负责数模转换与链路协商的PHY芯片。它们通过MII、

dgqvhtlwq472235338的博客 424

H3C IPsec over GRE VPN 实验

配置 IPsec over GRE VPN 来连通两端内网

M建的博客 2473

一种基于混合协作的约束多目标优化的新型多群体进化算法

实际应用中的各种挑战通常需要同时优化多个目标,并且这些目标有时可能会出现相互冲突的优先级。此类场景的示例包括汽车设计的优化 [1] 和电网效率的提高 [2]。

erjia_的博客 1712

【OpenClaw 故障排查完全指南】

OpenClaw 故障排查指南摘要 本指南针对OpenClaw 2026.2.26版本常见问题提供解决方案,适用于Windows/Linux/macOS平台。 核心问题及修复方案: 飞书插件连接失败:删除冲突插件或重装OpenClaw Ollama认证错误:设置环境变量OLLAMA_API_KEY="ollama-local" 配置警告:可安全忽略的安全扫描提示 端口占用:查找并终止占用18789端口的进程 插件重复加载:清理重复插件目录 快速修复: 提供一键修复PowerShell脚本

weixin_37572294的博客 1万+

智能优化算法:材料生成优化算法-附代码

智能优化算法:材料生成优化算法 文章目录智能优化算法:材料生成优化算法1.算法原理1.1 模拟化合物1.2 模拟化学反应1.3 模拟化学稳定性2.实验结果3.参考文献4.Matlab 摘要:材料生成优化算法(Material Generation Algorithm, MGA)是于2021年提出的一种新型智能优化算法,该算法通过模拟材料化学行为来达到寻优的目的,具有收敛速度快,寻优能力强的特点。 1.算法原理 首先MGA确定了一系列由多个周期表元素($PTE_s )组成的材料()组成的材料()组成的材料(M

Jack旭的博客 2837

apollo-慢速车向左绕行

当主车前方出现其他车辆时,通过左侧车道对前车绕行。

是菜鸟o的博客 311

一些笔者原创或者搜集的 ABAP 小工具集合(一),持续更新中!!

每个报表短小精悍,拷贝到系统激活即可运行。不少报表脑洞大开。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2734

约束多目标c-DPEA

约束多目标c-DPEA

tiger0113的博客 572

ardupilot如何让官网支持自己的硬件方案

本节主要记录ardupilot中如何让官网支持自己的硬件方案。参考1参考2。

陌城烟雨 159

一种使用新合作机制解决具有多约束的多目标问题的多种群进化算法(MCCMO)

对于这篇论文,三个创新点。1.将种群数量划分为C+2个,充分利用了不同约束之间的有效信息,但是种群数量的增加会消耗更多的计算资源,计算的时间也会大大增加,为此提出2.ADD策略来控制种群的激活和休眠,在进化过程中让一些满足条件即帮助作用不大的种群进行休眠,一些帮助作用大的种群进行激活,有效的节省计算资源的消耗,除此之外利用3.COD策略来控制SCP种群的合并。使得一些作用不大的SCP种群进行合并。来逐渐满足所有约束的同时节省计算资源的消耗。最终找到收敛性好的可行解,并且也能很好的平衡种群的多样性。

weixin_53900550的博客 1673

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 基于NSGA2算法的多AGV柔性车间调度多目标优化【附python源码】
下一篇: 蝗虫优化算法(GOA)优化深度置信网络DBN【matlab源码】
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能优化_数据分析_AI算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值