【智能算法】吉萨金子塔建造算法(GPC)原理及实现

目录


1.背景

2021年,S Harifi等人受到观古代遗迹构造启发,提出了吉萨金子塔建造算法(Giza Pyramids Construction, GPC)。


2.算法原理

2.1算法思想

GPC模拟了古埃及人通过神奇的运动方式推动石块以搭建金字塔的过程,工人根据其表现在工地上的角色和地位进行分类,表现好的工人得到地位提升作为奖励。通过内部竞争机制,优秀的工人获得提升,而表现差的工人可能被更有活力的工人替换,模拟自然选择,提高劳动效率。工人在完成任务过程中积累经验和专业知识,提升其解决复杂任务的能力。有效管理资源如劳动力和材料,考虑物理因素如坡道坡度和摩擦力,优化石块的运输和安装。

2.2算法过程

工人推动石块时的受力分析,fk为动摩擦力:
f k = μ k m g cos ⁡ θ (1) f_k=\mu_kmg\cos\theta \tag{1} fk=μkmgcosθ(1)

在算法的每次迭代中,初始速度被认为是一个随机数,因为每次工人试图移动石块时,所施加的力都会根据工人消耗的功率而变化:
v 0 = r a n d ( 0 , 1 ) (2) v_0=rand(0,1)\tag{2} v0=rand(0,1)(2)

GPC基本思想是推动石料的工人不断移动或晃动,以获得对石料的最佳支配和最佳控制。这些冲击使工人进行非重复性动作以更好地推动石块,工人的位置更新方式为:
x = ν 0 2 2 g sin ⁡ θ (3) x=\frac{\nu_0^2}{2g\sin\theta}\tag{3} x=2gsinθν02(3)

计算石料位移和工人运动:
p ⃗ = ( p ⃗ i + d ) × x ϵ ⃗ i (4) \vec{p}=\begin{pmatrix}\vec{p}_i+d\end{pmatrix}\times x\vec{\epsilon}_i\tag{4} p =(p i+d)×xϵ i(4)
ϵ ⃗ \vec{\epsilon} ϵ 是服从均匀、正态或莱维分布,工人们会通过协作而进行位置替换:
ζ k = { ψ k , i f r a n d 0 , 1 ≤ 0.5 φ k , o t h e r w i s e (5) \left.\zeta_k=\left\{\begin{array}{l}\psi_k,ifrand0,1\leq0.5\\\varphi_k,otherwise\end{array}\right.\right.\tag{5} ζk={ψk,ifrand0,1≤0.5φk,otherwise(5)

伪代码

3.结果展示

使用测试框架,测试GPC性能 一键run.m

CEC2017-F7


4.参考文献

1 Harifi S, Mohammadzadeh J, Khalilian M, et al. Giza Pyramids Construction: an ancient-inspired metaheuristic algorithm for optimizationJ. Evolutionary Intelligence, 2021, 14(4): 1743-1761.

相关推荐
UIU1145 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
论文复现现场5 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
ZhengEnCi5 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
秋天的怀念_David6 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
碧海银沙音频科技研究院7 小时前
在PC电脑上用Whisper→Marian算法实现离线语音翻译功能
算法·whisper
niyongsheng7 小时前
3D 装箱算法工程化:数据结构、放置启发式与支撑规则
数据结构·算法·rust
j7~10 小时前
【穷举、深搜与回溯算法】一棵决策树讲透全排列与子集
数据结构·c++·算法·leetcode·回溯·递归
傅科摆 _ py11 小时前
DP,贪心,堆和栈,二分力扣复习
开发语言·python·算法
Shaoshing11 小时前
LeetCode100 42.接雨水
java·算法·leetcode
域限奇点访客12 小时前
用AI生成问卷的网站怎么选?看题目录入结构、题型映射和生成后的校验
算法