C/C++教程

多目标优化算法:多目标晶体结构算法MOCryStAl(提供Matlab代码)

本文主要是介绍多目标优化算法:多目标晶体结构算法MOCryStAl(提供Matlab代码),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、算法原理

晶体结构算法(Crystal Structure Algorithm ,CryStAl)由Siamak Talatahari等人于2021年提出,该算法主要受从基向晶格点添加形成晶体结构的原理的启发。
在这里插入图片描述
众所周知,固体矿物的组成成分(分子、原子或离子)在三个空间方向上有规律地重复排列或具有晶体顺序,称为晶体。晶体固体具有高度多样性,可以具有各向同性或各向异性特性。晶体的基本成分是“晶格”,它代表预定义空间中的周期性点阵列,尽管它不能定义材料中原子的特定位置。另一方面,原子在晶体结构中的位置由与每个晶格点相关联的“基”决定。由于晶格只决定晶体的整体形状,考虑到自然界存在无限几何形状,因此可以组合不同的几何形状。在此基础上,考虑晶格中原子的不同构型,其原子的位置可以位于其他不规则图案旁边的角点。

二、算法简介

晶体结构算法是基于结晶学中的“基”概念,将角上的所有晶体都被视为主晶体,即Crmain,其由最初创建的晶体(候选溶液)随机确定。具有最佳配置的晶体被确定为Crb,而随机选择的晶体(忽略当前个体)的平均值用Fc表示。为了更新候选解在搜索空间中的位置,基于基本格原理,得出以下四种更新过程:

2.1简易隔室:

请添加图片描述

2.2包含最优晶体的隔室:

请添加图片描述

2.3包含平均晶体的隔室:

请添加图片描述

2.4包含最优晶体及平均晶体的隔室:

请添加图片描述

三、算法描述

在这里插入图片描述

四、多目标晶体结构算法MOCryStAl

将晶体结构算法的优良策略与多目标优化算法框架结合形成多目标晶体结构算法(MOCryStAl),为了验证所提的MOCryStAl的有效性,将其在**46个多目标测试函数(ZDT1、ZDT2、ZDT3、ZDT4、ZDT6、DTLZ1-DTLZ7、WFG1-WFG10、UF1-UF10、CF1-CF10、Kursawe、Poloni、Viennet2、Viennet3)**上实验。

4.1部分实验结果

ZDT1:

请添加图片描述

ZDT2:

请添加图片描述

ZDT3:

请添加图片描述

ZDT4:

请添加图片描述

DTLZ5:

请添加图片描述

DTLZ6:

请添加图片描述

4.2源代码见评论区

这篇关于多目标优化算法:多目标晶体结构算法MOCryStAl(提供Matlab代码)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!