多目标优化框架

news2025/1/11 10:08:56

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

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

相关文章

Linux学习-破解Root密码

破解root密码思路 1)重启系统,进入 救援模式 开启虚拟机A,在此界面按e键 在linux开头的该行,将此行的ro修改为rw 然后空格输入 rd.break 按 ctrl x 启动,会看到switch_root:/# 2)切换到硬盘操作系统环境 # chroot …

浅谈工厂电能管理系统改造与产品选型

叶根胜 安科瑞电气股份有限公司 上海嘉定202001 摘要:随着经济的快速发展,能源紧张和环境恶化引起了全世界的密切关注。电能在所有能源中消耗量大,但不可或缺,因此对电能的统一管理尤为重要。只有准确可靠的计量电能、分级管理和…

显卡服务器租用价格受哪些因素影响

显卡服务器也叫做GPU服务器,是一种有高性能显卡的服务器系统,显卡服务器能在大数据处理、科学计算等领域有很好的性能表现。今天小编就给大家讲一讲显卡服务器租用价格受哪些因素影响呢? 1.显卡类型和数量:一般说来中高端显卡的租…

【华为OD题库-007】代表团坐车-Java

题目 某组织举行会议,来了多个代表团同时到达,接待处只有一辆汽车,可以同时接待多个代表团,为了提高车辆利用率,请帮接待员计算可以坐满车的接待方案,输出方案数量。 约束: 1.一个团只能上一辆车&#xff0…

性格软弱怎么办?如何改变性格软弱?

软弱指的是身体衰弱无力气,而这里要说的是性格软弱,性格软弱的人,大多是不自信的,无主见,容易妥协,害怕产生矛盾,遇到问题就想逃避,自我否定,担心自己这也不行那也不行。…

剑指JUC原理-18.同步协作

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码🔥如果感觉博主的文章还不错的话,请👍三连支持&…

AD9371 Crossbar 和 I、Q数据 映射JESD204B传输层

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方…

vim相关命令讲解!

本文旨在讲解vim 以及其相关的操作! 希望读完本文,读者会有一定的收获!好的,干货马上就来! 初识vim 在讲解vim之前,我们首先要了解vim是什么,有什么作用?只有了解了vim才能更好的理…

ModStartBlog v8.5.0 评论开关布局调整,系统后台全面优化

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键快速安装 …

怎么用电脑开发安卓app?能外包吗?

随着智能手机的普及,安卓应用程序的开发需求也越来越高,许多人都想开发自己的安卓应用程序,但苦于缺乏相关知识和技能,本文将介绍如何使用电脑开发安卓应用程序,以及是否可以将开发工作外包给专业的开发团队。 一、了…

7天入门python系列之第三天Python的函数和模块

第3天主要是学习Python的函数和模块 编者打算开一个python 初学主题的系列文章,用于指导想要学习python的同学。关于文章有任何疑问都可以私信作者。对于初学者想在7天内入门Python,这是一个紧凑的学习计划。但并不是不可完成的。第三天开始python函数和…

python3GUI--PyQt5打包心得(二)nuitka、inno Setup(详细图文演示、附所有软件)

文章目录 一.前言二.准备1.nuitka1.1介绍1.3项目地址1.3安装 2.mingw641.1介绍1.2下载安装 3.Inno Setup1.1介绍1.2安装 三.nuitka打包1.打包2.装mingw643.装ccahe4.打包完成 四.测试效果五.inno Setup制作安装软件1.配…

呼叫中心系统如果对接大模型

电话机器人对接大模型的例子 介绍 自chatgpt3.5发布以来,各种大模型飞速发展,各行各业都有接入大模型的需求,呼叫中心行业非常适合通过接入大模型用AI来回答用户的各种咨询,降低人力资源,使用顶顶通呼叫中心中间件&a…

日志收集的方式和优点

日志是组织 IT 环境中发生的所有事情的记录。它们通常是一系列带有时间戳的消息,可为您提供有关网络中所有活动的第一手信息。 网络中的每个设备和应用程序都会生成日志数据以及用于监控网络流量的 NetFlow 数据,日志是安全信息和事件管理(S…

宠物医院信息展示预约小程序的效果如何

养宠家庭越来越多,随之带来的就是宠物健康问题,生活条件稍微好点的家庭,只要宠物生病或洗护、寄养、美容等就会前往宠物医院,而近些年来,市场中的宠物医院也在连年增加,可以预见市场需求度较高。 而对宠物…

Linux shell编程学习笔记23:[] [[]]的用法小结

上回梳理 了Linux Shell编程中 () 、$()和 (())的用法,现在接着梳理 [] 和[[]]的用法。 1 单中括号(方括号)[] 1.1 检测某个条件是否成立 [和test等同,是 Shell 内置命令,用来检测某个条件是否成立。条件成立时退出状…

vue实战——登出【详解】

登出逻辑 弹窗询问用户是否确定登出清除登录状态 登录状态通常存储在 vuex 和 sessionStorage 中&#xff0c;更彻底的登出还可以把所有本地存储数据都清除掉&#xff0c;如 Cookie 和 localStorage 。跳转到登录页面 代码实现 <div class"loginBox" v-if"is…

操作系统:输入输出管理(一)系统概述与设备独立性软件

一战成硕 5.1 I/O系统概述5.1.1 I/O设备5.1.2 I/O控制方式5.1.3 I/O软件层次结构5.1.4 应用程序的I/O接口 5.2 设备独立性软件5.2.1 与设备无关的软件5.2.2 高速缓存与缓冲区5.2.3 设备分配与回收5.2.4 spooling技术&#xff08;假脱机技术&#xff09; 5.1 I/O系统概述 5.1.1…

合并两个链表 --- 递归回溯算法练习二

目录 1. 分析题意 2. 分析算法原理 2.1. 递归思路&#xff1a; 1. 挖掘子问题&#xff1a; 3. 编写代码 3.1. step one 3.2. step two 3.3. step three 3.1. 递归写法 4. 补充 --- 迭代写法 5. 总结 1. 分析题意 力扣上原题链接如下&#xff1a; 21. 合并两个有序链表…

ubuntu16.04 交叉编译 mbedtls

在为客户交叉编译项目时需要依赖 mbedtls&#xff0c; 客户的机器是 arm64 的 ubuntu 16.04&#xff0c; 交叉编译过程中遇到几个问题。 首先&#xff0c; mbedtls 需要依赖 python, 在 cmake 的过程中&#xff0c; 如果不是使用系统默认的 cmake 可能会导致&#xff0c;mbedt…