# A-new-Nature-inspired-optimization-algorithm-AFO
A new Nature-inspired optimization algorithm: Aptenodytes Forsteri Optimization algorithm (AFO)
The code for the AFO algorithm and the use of the algorithm to solve the shifted classical benchmark functions.
Update log.
2021.1.1
Version 1.0
All experiments of the paper are run based on this version, except for the experiments of running time.
2021.1.7
Version 1.1
The runtime experiments of the paper are based on this version
Disadvantages of Version 1.0
(1) Too slow
(2) The total number of evaluations is T*(N+m) after the catastrophe strategy is triggered, and m is the number of times the catastrophe strategy is triggered.
However, this problem will not affect the results of this experiment because the maximum number of iterations of the experiment is 50, and the catastrophe strategy will basically not be triggered.
Updated content of Version 1.1
(1) Optimization based on the advantages of MATLAB. The problem of too slow speed is solved.
The core reason for the excessive slowness was that strategy 2 did not use matrix operations in version 1.0.
Note1: In order to use matrix operations, this version updates all individuals of the population when using the third strategy, but calculates the fitness value only for those individuals that are eligible. The total number of evaluations is still T*N.
Note2:If you want to rewrite this code in another language, we suggest you refer to AFO1. AFO2 is optimized for MATLAB and may not be suitable for your language.
(2) After using the catastrophe strategy, the current iteration number +1,the total evaluation number reverts to T*N
Author: Zhe Yang
E-mail: 454170989@qq.com
School:University of Manchester
更新日志:
1、2021.1.1
版本 1.0
论文所有的实验基于该版本运行,除运行时间的实验。
2、2021.1.7
版本 1.1
论文的运行时间实验基于该版本
版本 1.0的缺点:
(1)速度过慢
(2)灾变策略触发后,总评价次数为T*(N+m),m为灾变策略的触发次数。但是,该问题不会影响本实验的结果,因为实验最大迭代次数为50,灾变策略基本不会触发。
更新内容:
(1)基于MATLAB的优点,进行优化。解决了速度过慢的问题。
速度过慢的原因是,(1)策略2在1.0版本中未使用矩阵运算。(2)在编程时使用了结构体,结构体的传递和操作严重减缓程序速度
注1:为了使用矩阵运算,该版本在使用第三种策略时,对种群的全部个体进行更新,但仅对符合条件的个体,计算适应度值。总评价次数仍为T*N。
注2: 减少了调用结构体的次数,如果最求更快的速度,可进一步改写程序,删除所有的结构体,直接传递变量
(2)使用灾变策略后,当前迭代次数+1,总评价次数恢复为T*N
作者:杨喆
邮箱:454170989@qq.com
学校:曼彻斯特大学