多目标优化框架

随着模型越来越复杂,优化目标越来越多,传统算法都慢慢地无法胜任复杂优化任务,更为智能的优化方法也就应运而生了。其中有一类是进化优化算法,这类算法的思想来源是自然界的“优胜劣汰”法则,通过不停地保留好的个体最终达到优化目的。IEEE下有IEEE Transactions on Evolutionary Computation是为这类算法而开的。
算法是好,但初学者要如何尽快地用它来解决自己的优化模型呢,毕竟不能都去研究实现这类算法。为了帮助读者更快地能够使用算法,本文将介绍一些比较流行的优化框架。使用优化框架,你不用再管算法如何实现,而只需要选择算法、编制优化问题,编译运行,相信会大大地降低优化研究的门槛。

PlatEMO

在这里插入图片描述
PlatEMO是安徽大学BIMK团队(生物智能与知识发现研究所Institute of Bio-inspired Intelligence and Mining Knowledge)开发的一款以进化算法为基础的多目标优化框架库,这个库是由田野同学、程然博士、张兴义老师和金耀初老师开发。PlatEMO使用Matlab平台搭建而成,并带有GUI界面,是一款易用性、功能性和扩展性俱佳的优化工具。当前,该工具可在Windows、Linux双平台稳定使用了,对于Macos平台,开发人员还在验证测试中。对于Matlab熟悉的同学相信可以很快上手部署自己的优化模型使用PlatEMO进行多目标优化。
在这里插入图片描述
PlatEMO的特色主要有以下几点:

50+的开源优化算法,包括常用的NSGA-II、GDE3及MOEA-D等等
100+的开源多目标优化测试例题,包括常用的ZDT系列、DTLZ系列及WFG系列
可以通过界面完成优化实验
可以一键导出优化结果至Excel以及Latex
目前始终在维护并不断地有新算法的添加
Matlab开发对于数据有丰富的展现形式
BIMK上PlatEMO的主页链接:http://bimk.ahu.edu.cn/12957/list.htm

PlatEMO Github主页:https://github.com/BIMK/PlatEMO,主页介绍中有QQ群联系方式,入门级别的一些中文资料可参考:https://blog.csdn.net/qq_40434430/article/details/88366639以及该博主所发布的其它关于PaltEMO的文章。

PlatEMO综述文章:Tian Y, Cheng R, Zhang X, et al. PlatEMO: A MATLAB platform for evolutionary multi-objective optimization[J]. IEEE Computational Intelligence Magazine, 2017, 12(4): 73-87.

Jmetal

在这里插入图片描述
Jmetal是一个优秀的启发式算法(包含进化算法)开源框架,Github项目主页为https://github.com/jMetal。当前Jmetal已经进入了Jmetal5.0时代了。Jmetal框架成熟,同样也是适用于作为优化算法的测试以及二次开发的原始框架。Jmetal项目中包含了对最初的Java版本的全面介绍。虽然这些介绍十分精简,但对于深入理解Jemtal 的设计思路是有益的。
Jmetal的特点主要有以下几点:

Jmetal分支众多,包含java版本、python版本以及c++版本
30+的优化算法,包含单目标、多目标优化
除常用ZDT系列等例题,还包含CEC2009、CEC2018等优化竞赛例题
目前始终在维护并不断地有新算法的添加
变量编码形式较多
版本模块化很强易开发,且有着很好的性能
遗憾的是Jmetal当前并没有GUI界面,这对于想要使用这一优化工具的新手来说显得有一点不友好,但好在Jemtal版本有着较为详细的配置手册(限于Java\python版本),且python版本借助于所在平台可以干很多可视化的事。下图例:
Jmetal5(java)的介绍主页:http://jmetal.github.io/jMetal/ (Jmetal开发者连网页代码都开源了==)

Jmetal-cpp的介绍主页:http://jmetalcpp.sourceforge.net/

Jmetal-Py的综述文章:Benitez-Hidalgo A, Nebro A J, Garcia-Nieto J, et al. jMetalPy: a Python Framework for Multi-Objective Optimization with Metaheuristics[J]. arXiv preprint arXiv:1903.02915, 2019.

MOEA FRAMEWORK

在这里插入图片描述
MOEA Framework(以下简称MOEA)框架是David Hadka等人开发的一款开源Java优化框架。MOEA也是为多目标优化而开发,但同时也是包含许多单目标优化算法的,它的特性总结起来有以下几点:

40+的开源优化算法(有些是从jmetal和pisa等拿过来的),常用的测试例题
易扩展性
并行支持好,无需进行并行代码的编写
内含有丰富的测试算法的工具
为企业提供专业支持
比较详细的使用文档
在这里插入图片描述
如果当前你的计算机带有JDK(可以打开java文件),可以运行MOEA给的运行实例(主页右侧),感受一下。

MOEA的主页链接:http://moeaframework.org/

MOEA的Github链接:https://github.com/MOEAFramewor

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/138527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大漠插件(二、Qt使用插件时注意事项)

本章目的 在上篇已经注册完毕大漠,那么怎么使用大漠来制作脚本,我选择了我最熟悉的Qt来开发,毕竟只是小软件,用脚本或者c都差不了多少。本章就是开发途中的一些坑。 本人开发环境是 win11 64、Qt 5.15.2安装了5.10.0的msvc2015 32…

Linux - 基础IO(Linux 当中的文件,文件系统调用接口,文件描述符)- 上篇

前言 首先,关于文件我们最先要理解的是,文件不仅仅存储的是数据,一个文件包括 内容 数据。内容好理解,就是我们先要这文件存储哪一些数据,这些数据就是文件的内容。 但是,在计算机当中,有两种…

【数据结构】树与二叉树(十):二叉树的先序遍历(非递归算法NPO)

文章目录 5.2.1 二叉树二叉树性质引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i≥0。引理5.2:高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点,其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

WAF入侵防御系统标准检查表

软件开发全文档获取:进主页

GitHub Copilot Chat将于12月全面推出;DeepLearning.AI免费新课

🦉 AI新闻 🚀 GitHub Copilot Chat将于12月全面推出,提升开发者的生产力 摘要:GitHub宣布将于12月全面推出GitHub Copilot Chat,这是GitHub Copilot的一个新功能,旨在帮助开发者编写代码。它能够集成到开…

【Linux】语言层面缓冲区的刷新问题以及简易模拟实现

文章目录 前言一、缓冲区刷新方法分类a.无缓冲--直接刷新b.行缓冲--不刷新,直到碰到\n才刷新c.全缓冲--缓冲区满了才刷新 二、 缓冲区的常见刷新问题1.问题2.刷新本质 三、模拟实现1.Mystdio.h2.Mystdio.c3.main.c 前言 我们接下来要谈论的是我们语言层面的缓冲区&…

No source control providers registered

使用vscode时碰到这个问题 git扩展没启动

centos 7.9系统安装老版本jenkins,并解决插件问题

1.初衷 因为jenkins随着时间推移,其版本也越来越新,支持它运行的JDK也越来越新。基于不折腾的目标,我们安装一个老的固定版本就行。以前安装新版本,经常碰到的问题就是插件安装不兼容的问题。现在这个问题,可以把以前…

Sprint Boot 学习路线 4

微服务 Spring Microservices是一个框架,它使用Spring框架更容易地构建和管理基于微服务的应用程序。微服务是一种架构风格,其中一个大型应用程序被构建为一组小型、独立可部署的服务。每个服务具有明确定义的职责,并通过API与其他服务通信。…

解析html生成Word文档

内容:读取html文件中的文本内容,然后生成Word文档导出。 事例场景:需求开发完成之后需要写文档(代码修改清单),文档内容就是这次需求修改/新增的所有代码,需要列出修改的文件路径以及代码片段&…

Python实战:绘制直方图的示例代码,数据可视化获取样本分布特征

文章目录 一、初步二、参数三、绘图类型四、多组数据直方图对比Python技术资源分享1、Python所有方向的学习路线2、学习软件3、精品书籍4、入门学习视频5、实战案例6、清华编程大佬出品《漫画看学Python》7、Python副业兼职与全职路线 一、初步 对于大量样本来说,如…

systemctl enable docker.service报错“Failed to execute operation: Bad message“

将docker加入到开机自启,报错: 解决: 重新粘贴复制: [Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Wantsnetwork-online.target…

VS c++多文件编译

前言:记录下我这个菜鸡学习的过程,如有错误恳请指出,不胜感激! 1.简单多文件编译调试 文件目录: 编译: -g选项是告诉编译器生成调试信息,这样可以在程序崩溃或出现错误时更容易地进行调试。这…

Windows下安装Anaconda5.3.1+Python3.8+TensorFlow2.13.0-CPU版本总结

Python3.8安装可以参考博文https://janus.blog.csdn.net/article/details/55274849 进行安装即可。 【1】Anaconda 清华的开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/下载,这里选择的是5.3.1版本。 然后正常安装就可以&am…

华为ensp:交换机接口划分vlan

现在要把 e0/0/1 接口放入vlan1 e0/0/2 接口放入vlan2 e0/0/3 接口放入vlan3 默认所有接口都在vlan1所以 e0/0/0 接口不用动 1.创建vlan 进入系统视图模式 直接输入 vlan 编号 即可创建对应vlan vlan 编号 vlan 2 创建vlan2 vlan 3 创建vlan3 2.将接口进入vlan…

HALSTM32通用定时器+EXTI实现单击/双击/长按功能

HALSTM32通用定时器EXTI实现单击/双击/长按功能 ✨在使用USB功率计的时候,发现上面的一个按键实现多画面功能切换,于是探索了一下是如何实现的,将其实现的基本思路以及综合网上收集的相关实现方法,粗陋的整理了一下,将…

用趋动云GPU部署自己的Stable Diffusion

注:本文内容来自于对DataWhale的开源学习项目——免费GPU线上跑AI项目实践的学习,参见:Docs,引用了多处DataWhale给出的教程。 1.创建项目 1)进入趋动云用户工作台,在当前空间处选择注册时系统自动生成的…

开发知识点-NodeJs-npm/Pnpm/Vite/Yarn包管理器

包管理器 vue-cli-service 不是内部或外部命令,也不是可运行的程序npm 全局变量pnpmPnpm介绍ViteYarn ‘vue-cli-service’ 不是内部或外部命令,也不是可运行的程序 yarn yarn add vue-amap yarn add vue-amap ant-design-vue npm 全局变量 换主机 新…

tomcat下载与使用教程

1. tomcat下载 官网:https://tomcat.apache.org/ 镜像地址:https://mirrors.huaweicloud.com/apache/tomcat/ 1、选择一个版本下载,官网下载速度缓慢,推荐镜像 2、对压缩包进行解压,无需进行安装,解压放…

Verilog 之 initial 模块与always 模块的用法与差异

文章目录 initial语法和用法特点和注意事项用途 always语法和用法特点和注意事项用途 二者差异 initial 在 Verilog 中,initial 块是用来在模拟开始时执行一次性初始化操作的一种建模方式。它通常用于模拟初始条件或进行一次性的初始化设置,而且只会在模…