多目标优化框架

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

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

相关文章

ubuntu16.04 交叉编译 mbedtls

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

Matlab的多项式留数与极点的计算

Matlab的多项式留数与极点的计算 以下面的多项式为例: 运算代码: clc clear closesyms p % 定义多项式 Zp(5*p^571*p^370*p)/(2*p^635*p^4117*p^236); % 提取分子与分母 [I,D]numden(Zp); Idouble(coeffs(I,p,"All"));%分子 Ddouble(coeffs…

【数据结构】单链表OJ题(一)

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 前言一、移除链表元素二、寻找链表中间结点三、输出链表倒数第k个结点四、反转单链表五…

STM32MPU6050角度的读取(STM32驱动MPU6050)

注:文末附STM32驱动MPU6050代码工程链接,需要的读者请自取。 一、MPU6050介绍 MPU6050是一款集成了三轴陀螺仪和三轴加速度计的传感器芯片,由英国飞利浦半导体(现为恩智浦半导体)公司生产。它通过电子接口&#xff08…

conda环境中pytorch1.2.0版本安装包安装一直失败解决办法!!!

conda环境中pytorch1.2.0版本安装包安装一直失败解决办法 cuda10.0以及cudnn7.4现在以及安装完成,就差torch的安装了,现在torch我要装的是1.2.0版本的,安装包以及下载好了,安装包都是在这个网站里下载的(点此进入&…

Postgres的级数生成函数generate_series应用

Postgres的级数生成函数generate_series应用 引用:http://postgres.cn/docs/12/functions-srf.html 函数文档 函数 参数类型 返回类型 描述 generate_series(start, stop) int、bigint或者numeric setof int、setof bigint或者setof numeric(与参数类型相…

【React入门实战】实现Todo代办

文章目录 效果功能-状态管理相关接口定义相关方法定义 UIinput输入框:回车添加todo标题列表列表项Main 总体代码 非常简单入门的react-todo练习,代码写的很小白。 效果 技术栈:react-typeScript 数据分为代办Todo和已办完Done,可…

php实现钉钉机器人推送消息和图片内容(完整版)

先来看下实现效果: 代码如下: function send_dingtalk_markdown($webhook , $title , $message "", $atMobiles [], $atUserIds []) {$data ["msgtype" > "markdown","markdown" > ["title" > $title,&quo…

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

目录 1解题思路&#xff1a; 2代码如下&#xff1a; 3运行结果&#xff1a; 4总结&#xff1a; 5介绍&#xff1a; 1解题思路&#xff1a; 利用循环&#xff08;穷举法&#xff09;来 对 所 需要的数 进行确定 2代码如下&#xff1a; #include <stdio.h>int main() …

Java自学第9课:JSP基础及内置对象

目录&#xff1a; 目录 1 JSP基础知识架构 1 指令标识 1 Page命令 2 Including指令 3 taglib指令 2 脚本标识 1 JSP表达式 2 声明标识 3 代码片段 3 JSP注释 1 HTML注释 2 带有JSP表达式的注释 3 隐藏注释 4 动态注释 4 动作标识 1 包含文件标识 2 请求转发标…

原文远知行COO张力加盟逐际动力 自动驾驶进入视觉时代?

11月7日&#xff0c;通用足式机器人公司逐际动力LimX Dynamics官宣了两位核心成员的加入。原文远知行COO张力出任逐际动力联合创始人兼COO&#xff0c;香港大学长聘副教授潘佳博士为逐际动力首席科学家。 根据介绍&#xff0c;两位核心成员的加入&#xff0c;证明一家以技术驱…

Stable Diffusion webui 源码调试(三)

Stable Diffusion webui 源码调试&#xff08;三&#xff09; 个人模型主页&#xff1a;LibLibai stable-diffusion-webui 版本&#xff1a;v1.4.1 内容更新随机&#xff0c;看心情调试代码~ shared 变量 shared变量&#xff0c;简直是一锅大杂烩&#xff0c;shared变量存放…

第三届 “鹏城杯”(初赛)

第三届 “鹏城杯”&#xff08;初赛&#xff09; WEB Web-web1 反序列化tostring打Hack类 Payload:O%3A1%3A%22H%22%3A1%3A%7Bs%3A8%3A%22username%22%3BO%3A6%3A%22Hacker%22%3A2%3A%7Bs%3A11%3A%22%00Hacker%00exp%22%3BN%3Bs%3A11%3A%22%00Hacker%00cmd%22%3BN%3B%7D%7D…

Leetcode Hot100之六:42.接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 提示&#xff1a; n height.length 1 < n < 2 * 10^4 0 < height[i] < 10^5 思路 暴力循环&#xff1a; 原本的思路是左边界i从左到…

原型制作神器ProtoPie的使用Unity与网页跨端交互

什么是ProtoPie&#xff1f; ProtoPie是一款面向设计师的软件原型设计工具&#xff0c;例如制作App界面交互展示&#xff0c;制作好的原型可以一键发布到Web服务器&#xff0c;就可以浏览器访问。由于其内置了大量常用交互类型&#xff0c;以及"程序化"模块&#xf…

人工智能基础_机器学习024_梯度下降进阶_L1正则可视化图形---人工智能工作笔记0064

然后我们就来用代码实现一下L1正则的可视化,我们来看看 首先导入 import numpy as np 数学计算 import matplotlib.pyplot as plt 画图用的 然后我们把L1正则的公式写出来 可以看到L1的正则 其实就是w1和w2的绝对值相加对吧 然后这里我们写一个公式: f(x,y) = |x|+|y| …

可以体现Python语法精妙的十个例子!

文章目录 前言1.for - else2.一颗星*和两颗星**3.三元表达式4.with - as5.列表推导式6.列表索引的各种骚操作7.lambda函数8.yield 以及生成器和迭代器9.装饰器10.巧用断言assertPython技术资源分享1、Python所有方向的学习路线2、学习软件3、精品书籍4、入门学习视频5、实战案例…

《网络协议》02. 物理层 · 数据链路层 · 网络层

title: 《网络协议》02. 物理层 数据链路层 网络层 date: 2022-08-31 22:26:48 updated: 2023-11-08 06:58:52 categories: 学习记录&#xff1a;网络协议 excerpt: 物理层&#xff08;数据通信模型&#xff0c;信道&#xff09;、数据链路层&#xff08;封装成帧&#xff0c…

演示文稿制作软件 Deckset mac中文版介绍

Deckset mac是一款Mac上的演示文稿制作软件&#xff0c;它可以让你使用Markdown语言快速地创建演示文稿。与传统的演示文稿制作软件相比&#xff0c;Deckset采用了全新的设计理念&#xff0c;旨在让用户更加专注于内容的创作&#xff0c;而不是花费过多的时间在排版和设计上。 …

Kotlin文件和类为什么不是一对一关系

在Java中&#xff0c;一个类文件的public类名必须和文件名一致&#xff0c;如何不一致就会报异常&#xff0c;但是在kotlin的文件可以和类名一致&#xff0c;也可以不一致。这种特性&#xff0c;就跟c有点像&#xff0c;毕竟c的.h 和 .cpp文件是分开的。只要最终编译的时候对的…