ESC算法/逃生:一种基于人群疏散行为的优化方法
文章介绍了一种有用的算法,称为逃生或逃生算法(ESC),受人群疏散行为的启发,用于解决现实世界的案例和基准问题。ESC算法模拟了疏散过程中人群的行为,其中人群在探索阶段被分为平静、羊群和恐慌组,反映了不同级别的决策和情绪状态。
冷静的个体引导人群走向安全,放牧的个体在不太安全的区域模仿他人,恐慌的个体在最危险的区域做出不稳定的决定。随着算法过渡到利用阶段,人群趋向最优解决方案,类似于找到最安全的出口。该算法于2024年11月最新发表在JCR1区,中科院2区Top SCI期刊 Artificial Intelligence Review。
NO.1|ESC算法模型
ESC算法的有效性在CEC 2017和CEC 2022两个可调节问题大小测试套件上得到验证。ESC在CEC 2017的10维、30维测试以及CEC 2022的10维和20维测试中排名第一,在CEC 2017的50维和100维测试中排名第二。

(1)灵感来源
ESC的灵感来自人们在紧急疏散期间的行为。本节解释了人群疏散系统的背景,以及这些行为如何启发了ESC算法的设计。通过对人群中个体的不同反应——平静、羊群和恐慌——进行建模,ESC算法有效地平衡了解决复杂优化问题的探索和利用。
ESC的发展从紧急疏散期间人类行为的微妙动态中汲取了深刻的灵感(周等人2019年)。在紧急情景的混乱背景下——从自然灾害到人为威胁——个体表现出一系列受恐慌、环境条件和人群集体运动影响的行为。这些行为显著影响疏散过程的效率,凸显了适应性和战略规划的重要性。我们的算法通过计算镜头封装了这种复杂性,将观察到的人类行为转化为解决优化问题的元启发式框架。
ESC算法特别受到在人群中观察到的“领导者-追随者”系统的启发,在这个系统中,个人自然承担指导集体运动的角色。在这个系统中,领导者(静态和动态)出现影响疏散的方向和速度,而追随者构成了人群的主体,他们的运动受到周围人的影响。这一现象反映在我们的算法中,通过在算法的探索阶段将代理划分为平静、羊群和恐慌的人群,每个人都表现出不同的行为,共同推动搜索过程走向最佳解决方案。
冷静人群:人群中冷静的个体,他们以清晰的头脑评估情况并做出理性的决定。这些代理人有条不紊地搜索问题空间,类似于冷静的个体在疏散中找到有效的路径,引导他人通过他们稳定的影响。
羊群行为:个体在没有明确个人方向的情况下跟随人群的羊群行为反映在我们算法的一致性代理中。这种行为增强了利用阶段,因为代理聚集在搜索空间的有希望的区域,类似于人群中的个体如何跟随其他人到达感知的出口或安全区域。
恐慌人群:惊慌失措的个体,其不可预测和不稳定的动作既会阻碍也会出人意料地帮助寻找逃生路线,激发了我们算法中的多样化机制。他们的行为在恐慌代理中被复制,引入随机性并防止过早收敛到局部最优,类似于人群中的恐慌如何导致发现非常规出口。
通过ESC算法,我们利用紧急情况下人群行为的内在智慧,将平静、羊群和恐慌的相互作用转化为计算模型。这种方法不仅为算法设计提供了一个有用的视角,还强调了自然和人类现象作为开发高级问题解决策略灵感来源的潜力。
(2)初始化
x i , j = r a n d ⋅ ( U B j − L B j ) + L B j , i = 1 , 2 , … … , N , j = 1 , 2 , … , n \begin{aligned}&x_{i,j} = rand \cdot(UB_j - LB_j) +LB_j, i = 1, 2,\ldots\ldots, N,j= 1, 2,\ldots, n\end{aligned} xi,j=rand⋅(UBj−LBj)+LBj,i=1,2,……,N,j=1,2,…,n
LB为下届,UB为上届,rand为0到1之间的随机数,xij为种群位置。初始化总体后,使用适应度函数f评估每个个体的适应度 。然后根据适应度按升序对群体进行排序,将最优秀的个体存储在精英池E中,该参数表示群体发现的潜在安全出口的数量。
E = { x ( 1 ) , x ( 2 ) , … , x ( exist) } {{E}}=\{{{{x}}}_{(1)},{{{x}}}_{(2)},\dots ,{{{x}}}_{(\text{exist)}}\} E={x(1),x(2),…,x(exist)}
(3)恐慌指数和迭代过程
ESC算法对迭代过程进行建模,以反映人群在疏散过程中不断变化的行为。该算法根据个人运动的分类调整其平静、一致或恐慌群体,对应疏散过程中的不同行为反应在每次迭代t开始时,恐慌指数P(t)计算如下:
P ( t ) = c o s ( π t 6T ) P(t)=\mathit{cos}\left(\frac{\pi t}{\text{6T}}\right) P(t)=cos(6Tπt)
恐慌指数反映了人群中恐慌的总体水平,数值越高表明行为越混乱。随着时间的推移,该指数会下降从0到迭代次数T,模拟人群对疏散环境的适应。
(4)冷静组更新

冷静群体中的个体行为理性,走向中心位置Cj,代表小组的集体决定:
x i , j new = x i , j + m 1 × ( w 1 × ( C j − x i , j ) + v c , j ) × P ( t ) {x}_{i,j}^{\text{new}}={x}_{i,j}+{m}_{1}\times \left({w}_{1}\times ({C}_{j}-{x}_{i,j})+{v}_{c,j}\right)\times P(t) xi,jnew=xi,j+m1×(w1×(Cj−xi,j)+vc,j)×P(t)
v c , j = R c , j − x i , j + ϵ j {v}_{c,j}={R}_{c,j}-{x}_{i,j}+{\epsilon }_{j} vc,j=Rc,j−xi,j+ϵj
R c , j = r m i n , j c + r i , j × ( r m a x , j c − r m i n , j c ) {R}_{c,j}={r}_{min,j}^{c}+{r}_{i,j}\times ({r}_{max,j}^{c}-{r}_{min,j}^{c}) Rc,j=rmin,jc+ri,j×(rmax,jc−rmin,jc)
(5)牧群更新(随大流组)
放牧个体遵循冷静和恐慌群体的行为。他们的位置会根据两者的影响进行更新:
x i , j new = x i , j + m 1 × ( w 1 × ( C j − x i , j ) + m 2 × w 2 × ( x p , j − x i , j ) + v h , j × P ( t ) ) {x}_{i,j}^{\text{new}}={x}_{i,j}+{m}_{1}\times \left({w}_{1}\times ({C}_{j}-{x}_{i,j})+{m}_{2}\times {w}_{2}\times ({x}_{p,j}-{x}_{i,j})+{v}_{h,j}\times P(t)\right) xi,jnew=xi,j+m1×(w1×(Cj−xi,j)+m2×w2×(xp,j−xi,j)+vh,j×P(t))
v h , j = R h , j − x i , j + ϵ j {v}_{h,j}={R}_{h,j}-{x}_{i,j}+{\epsilon }_{j} vh,j=Rh,j−xi,j+ϵj
R h , j = r m i n , j h + r i , j × ( r m a x , j h − r m i n , j h ) {R}_{h,j}={r}_{min,j}^{h}+{r}_{i,j}\times ({r}_{max,j}^{h}-{r}_{min,j}^{h}) Rh,j=rmin,jh+ri,j×(rmax,jh−rmin,jh)
(6)恐慌群更新
恐慌驱动的个体更不稳定地探索解决方案空间,受到潜在出口(精英池)和其他个体随机方向的影响:
x i , j new = x i , j + m 1 × ( w 1 × ( E j − x i , j ) + m 2 × w 2 × ( x rand, j − x i , j ) + v p , j × P ( t ) ) {x}_{i,j}^{\text{new}}={x}_{i,j}+{m}_{1}\times \left({w}_{1}\times ({E}_{j}-{x}_{i,j})+{m}_{2}\times {w}_{2}\times ({x}_{\text{rand,}j}-{x}_{i,j})+{v}_{p,j}\times P(t)\right) xi,jnew=xi,j+m1×(w1×(Ej−xi,j)+m2×w2×(xrand,j−xi,j)+vp,j×P(t))
v p , j = R p , j − x i , j + ϵ j {v}_{p,j}={R}_{p,j}-{x}_{i,j}+{\epsilon }_{j} vp,j=Rp,j−xi,j+ϵj
R p , j = r m i n , j p + r i , j × ( r m a x , j p − r m i n , j p ) {R}_{p,j}={r}_{min,j}^{p}+{r}_{i,j}\times ({r}_{max,j}^{p}-{r}_{min,j}^{p}) Rp,j=rmin,jp+ri,j×(rmax,jp−rmin,jp)
开发阶段
随着迭代的进行,超出T/2,算法将过渡到开发阶段,在该阶段,所有个体都被视为 Calm。重点转移到根据迄今为止确定的最佳解决方案进行微调。在此阶段,个体通过更接近 Elite Pool 的成员来完善自己的位置,Elite Pool 代表可能的安全出口和之前迭代中确定的最佳解决方案,以及从人群中随机选择的个体。这个过程模拟了人群逐渐向确定的最佳出口收敛。此阶段的位置更新由方程给出。
x i , j n e w = x i , j + m 1 ⋅ w 1 ⋅ ( E j − x i , j ) + m 2 ⋅ w 2 ⋅ ( x rand, j − x i , j ) {x}_{i,j}^{new}={x}_{i,j}+{m}_{1}\cdot {w}_{1}\cdot \left({E}_{j}-{x}_{i,j}\right)+{m}_{2}\cdot {w}_{2}\cdot \left({x}_{\text{rand,}j}-{x}_{i,j}\right) xi,jnew=xi,j+m1⋅w1⋅(Ej−xi,j)+m2⋅w2⋅(xrand,j−xi,j)
这允许个人通过更接近 Elite Pool 成员和随机选择的个人来优化他们的位置,模拟人群逐渐向确定的最佳出口汇聚。
Ref: Ouyang, K., Fu, S., Chen, Y. et al. Escape: an optimization method based on crowd evacuation behaviors. Artif Intell Rev 58, 19 (2025). https://doi.org/10.1007/s10462-024-11008-6.
相关文章:
ESC算法/逃生:一种基于人群疏散行为的优化方法
文章介绍了一种有用的算法,称为逃生或逃生算法(ESC),受人群疏散行为的启发,用于解决现实世界的案例和基准问题。ESC算法模拟了疏散过程中人群的行为,其中人群在探索阶段被分为平静、羊群和恐慌组࿰…...
构建安全的数据库环境:群晖NAS安装MySQL和phpMyAdmin详细步骤
文章目录 前言1. 安装MySQL2. 安装phpMyAdmin3. 修改User表4. 本地测试连接MySQL5. 安装cpolar内网穿透6. 配置MySQL公网访问地址7. 配置MySQL固定公网地址8. 配置phpMyAdmin公网地址9. 配置phpmyadmin固定公网地址 前言 本文将详细讲解如何在群晖NAS上安装MySQL及其数据库管理…...
【人工智能】深入理解图神经网络(GNN):用Python实现社交网络节点分类与分子结构分析
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 图神经网络(Graph Neural Network, GNN)是近年来在深度学习领域迅速发展的新兴方向,主要用于处理图结构数据。GNN在社交网络分析、化学分…...
Qt 日志文件的滚动写入
Qt 日志文件的滚动写入 flyfish 日志文件的滚动写入功能。在日志文件达到10MB时创建新的日志文件,并且在总日志文件大小达到10GB时开始覆盖最早的日志文件 以监控一个文件夹的写日志为例 日志文件创建与管理 初始化日志文件:在FileMonitor类的构造函…...
【c语言】数据包捕获和分析工具
请解释一下数据包捕获和分析工具(如Wireshark)的工作原理和用途。 数据包捕获和分析工具,如Wireshark(前身为Ethereal),是一种网络协议分析软件,它允许用户实时监控、抓取并分析计算机网络中的网…...
移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——14.哈希(2)(模拟实现)
1.概念介绍 1.1开散列 开散列(Open Hashing),也叫链地址法,是一种解决哈希冲突的方法。每个哈希表槽位保存一个链表,所有散列到同一位置的元素都存储在该链表中。当插入元素发生冲突时,将新元素添加到相应…...
请描述一下JVM(Java虚拟机)的生命周期及其对应用程序性能的影响
1、请描述一下JVM(Java虚拟机)的生命周期及其对应用程序性能的影响。 JVM(Java虚拟机)的生命周期主要涉及以下几个阶段:加载、验证、准备、解析、执行、卸载。每个阶段都有其特定的作用和影响。 加载:JVM…...
展会邀约|加速科技与您相约IC China 2024!
第二十一届中国国际半导体博览会( IC China 2024)将于 2024 年11月18日—11月20日在北京国家会议中心举行。加速科技将携高性能测试机ST2500EX、ST2500E、eATE及全系测试解决方案亮相E2馆B150展位。博览会期间,将同期举办"半导体产业前沿…...
鸿蒙中服务卡片数据的获取和渲染
1. 2.在卡片中使用LocalStorageProp接受传递的数据 LocalStorageProp("configNewsHead") configNewsHeadLocal: ConfigNewsHeadInfoItem[] [] 注意:LocalStorageProp括号中的为第一步图片2中的键 3.第一次在服务卡片的第一个卡片中可能会获取不到数据…...
运维篇-修复centos7无法下载docker问题
修复centos7无法下载docker问题 1、安装docker时报错2、docker无法下载镜像 1、安装docker时报错 linux的centos系统,安装docker时会报错 –> Finished Dependency Resolution Error: Package: glibc-2.17-307.el7.1.i686 (base) Requires: glibc-common 2.17…...
【论文阅读】WaDec: Decompiling WebAssembly Using Large Language Model
论文阅读笔记:WaDec: Decompiling WebAssembly Using Large Language Model 1. 来源出处 论文标题: WaDec: Decompiling WebAssembly Using Large Language Model作者: Xinyu She, Yanjie Zhao, Haoyu Wang会议: 39th IEEE/ACM International Conference on Automated Softwar…...
redis类型介绍
1. 字符串(String): • 简介:最基础的数据类型,可以存储任何形式的字符串,包括文本数据和数字数据。 • 常用操作:SET、GET、INCR、DECR等。 2. 列表(List): …...
kubernetes如何配置默认存储
如果不想每次都创建PV,希望k8s集群中能够配置号默认存储,然后根据你的PVC自动创建PV,就需要安装一个默认存储,也就是storageclass 什么是storageclass Kubernetes提供了一套可以自动创建PV的机制,即:Dyna…...
【微服务】Spring AI 使用详解
目录 一、前言 二、Spring AI 概述 2.1 什么是Spring AI 2.2 Spring AI 特点 2.3 Spring AI 带来的便利 2.4 Spring AI 应用领域 2.4.1 聊天模型 2.4.2 文本到图像模型 2.4.3 音频转文本 2.4.4 嵌入大模型使用 2.4.5 矢量数据库支持 2.4.6 数据工程ETL框架 三、Sp…...
DataGrip 连接 dm
参考链接 使用DataGrip链接达梦数据库_datagrip连接达梦数据库-CSDN博客 下载 jdbc 驱动包 第一种 通过链接下载:下载 第二种【特指 window 安装包】 在达梦安装包 iso 文件里面 source/drivers/jdbc 将驱动添加进 DataGrip 选中 jdbc 驱动包,然后选…...
数据库监控工具DBdoctor v3.2.4.3版本发布,新增对openGauss、Vastbase G100的支持!
新引擎扩展 新增对openGauss数据库的支持:支持对openGauss数据库的SQL审核、实例巡检、性能洞察、锁透视、根因诊断、基础监控、索引推荐、存储分析; 新增对Vastbase G100数据库的支持:支持对Vastbase G100数据库的SQL审核、实例巡检、性能洞…...
Git 常用命令大全与详解
Git 是一种广泛使用的分布式版本控制系统。无论是管理个人项目还是进行团队协作,掌握 Git 的常用命令都是开发者必备的技能之一。本文将介绍一些常用的 Git 命令,并对其进行详细说明。 1. 基础命令 初始化仓库 git init:在当前目录下初始化…...
执行flink sql连接clickhouse库
手把手教学,flink connector打通clickhouse大数据库,通过下发flink sql,来使用ck。 组件版本jdk1.8flink1.17.2clickhouse23.12.2.59 1.背景 flink官方不支持clickhouse连接器,工作中难免会用到。 2.方案 利用GitHub大佬提供…...
什么是C++中的友元函数和友元类?
友元函数(Friend Function)和 友元类(Friend Class)是用于控制类的访问权限的机制。这允许特定的函数或类访问另一个类的私有成员和保护成员,打破了 C 的封装性规则。 友元函数 定义 友元提供了不同类的成员函数之间…...
基于Spring Boot+Vue的多媒体素材管理系统的设计与实现
一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构:B/S架构 运行环境:win10/win11、jdk17 前端: 技术:框架Vue.js;UI库:ElementUI; 开发工具&…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...
相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...
C++11 constexpr和字面类型:从入门到精通
文章目录 引言一、constexpr的基本概念与使用1.1 constexpr的定义与作用1.2 constexpr变量1.3 constexpr函数1.4 constexpr在类构造函数中的应用1.5 constexpr的优势 二、字面类型的基本概念与使用2.1 字面类型的定义与作用2.2 字面类型的应用场景2.2.1 常量定义2.2.2 模板参数…...
大模型真的像人一样“思考”和“理解”吗?
Yann LeCun 新研究的核心探讨:大语言模型(LLM)的“理解”和“思考”方式与人类认知的根本差异。 核心问题:大模型真的像人一样“思考”和“理解”吗? 人类的思考方式: 你的大脑是个超级整理师。面对海量信…...
解密鸿蒙系统的隐私护城河:从权限动态管控到生物数据加密的全链路防护
摘要 本文以健康管理应用为例,展示鸿蒙系统如何通过细粒度权限控制、动态权限授予、数据隔离和加密存储四大核心机制,实现复杂场景下的用户隐私保护。我们将通过完整的权限请求流程和敏感数据处理代码,演示鸿蒙系统如何平衡功能需求与隐私安…...
