多目标优化框架

随着模型越来越复杂,优化目标越来越多,传统算法都慢慢地无法胜任复杂优化任务,更为智能的优化方法也就应运而生了。其中有一类是进化优化算法,这类算法的思想来源是自然界的“优胜劣汰”法则,通过不停地保留好的个体最终达到优化目的。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…

Java 和 JavaScript 有什么区别?

什么是Java? Java是一种OOP(面向对象的编程语言)、基于类的、具有VM(虚拟机)平台的多平台编程语言。OOP 是一种基于包含代码和数据的对象概念的编程范式。虚拟机可帮助您创建可在任何平台、任何地方灵活运行的编译程序…

服务器硬件有哪些组成

服务器是由处理器、硬盘、内存、显卡、主板、网卡等组成,今天小编带大家了解一下服务器有哪些硬件吧! 1.最重要的当然就是处理器了,处理器就相当于是服务器的大脑,负责执行各种运算和指令,例如运行程序或者处理数据&am…

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

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

二十三种设计模式全面解析-享元模式(Flyweight Pattern)详解:构建高效共享的对象结构

在软件开发中,我们经常会面临大量相似对象的创建和管理问题。这些相似对象的创建和销毁过程可能会占用大量的内存和系统资源,导致性能下降。为了解决这个问题,享元模式(Flyweight Pattern)应运而生。本文将深入探讨享元…

【数据结构】树与二叉树(十):二叉树的先序遍历(非递归算法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…

Java 学习笔记

文章目录 一、集合1.1 List1.1.1 ArrayList1.1.2 Vector1.1.3 LinkedList 1.2 Deque1.3 Set1.4 Map1.4.1 HashMap1.4.2 LinkedHashMap 1.5 注意事项 二、函数式接口和 Lambda 表达式三、方法引用3.1 静态方法引用3.2 实例方法引用3.2 特定类型的方法引用3.4 构造器引用 四、Str…

VS c++多文件编译

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

如何在不结束tcpdump的情况下复制完整的pcap

tcpdump正在运行的时候,他写入的pcap可能是不完整的,通常我们要结束掉tcpdump才能拿到完整的pcap,否则wireshark打开的时候会提示:The capture file appears to have been cut short in the middle of a packet。这可能是因为tcpd…

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…

Oracle-Ogg集成模式降级为经典模式步骤

前言: Ogg集成模式降级为经典模式的场景比较少,因为降级为经典模式会导致无法支持压缩表同步,XA事务,多线程模式,PDB模式同步等功能,除非遇到集成模式暂时无法解决的bug或者环境不支持集成模式,比如DG备库环…