利用Jmetal解决多目标优化问题并使用python画图(算法:NSGA-II,问题:ZDT6)_jmetal问题构建-程序员宅基地

技术标签: 算法  python  java  

1.使用jmetal实现算法的方法:

首先在Jmetal体系框架中在jmetal-algorithm文件中选择src文件,再从src文件中选择test文件,点开其中的java文件,再继续向下点击,找到multiobjective与singleobjective两个文件,这两个文件分别是多目标优化算法与单目标优化算法,从这两个文件中找到你需要的对应文件,例如我们需要的是NSGA2,那我们便打开nsgaii文件夹下面的NSGAIIBuilderTest测试类(顺序如下图:)
在这里插入图片描述
打开对应的测试类,我们会看到一堆方法(感觉NSGAII是方法最多的,而且看起来极为劝退),在这里我们只需要关注开始(startup方法)与其他的set方法,通过分析这些方法,我们可以知道NSGAII在Jmetal算法实现中需要的众多算子,譬如说 problem问题集,CrossoverOperator交叉算子运算符,MutationOperator变异算子运算符,SelectionOperator选择算子运算符(在setNewSelectionOperator中),还有相应的builder算法(builder的作用就是建立算法,所以我们可以直接使用algorithm算法类来代替),然后我们便可以构建我们自己的test类了(以下的代码由一个大佬的博客抄来的,但我忘了从哪抄的了,尴尬。。。)

public class test {
   
    
    public static void main(String[] args) {
   
    
        Problem<DoubleSolution> problem;//问题类
        Algorithm<List<DoubleSolution>> algorithm;//算法类
        CrossoverOperator<DoubleSolution> crossover;//交叉算子类
        MutationOperator<DoubleSolution> mutation;//变异算子类
        SelectionOperator<List<DoubleSolution>, DoubleSolution> selection;//选择算子类
      

        // 这里是定义优化问题的过程

        problem = new ZDT6();//声明问题,换成其他问题同理
        String s="NSGA"+problem.getName();//这里构建了一个字符串,接下来文件中使用
        //以下的参数设置都是根据test类中来构建的,但是在自己使用时可以调节参数使算法表现更好
        // 种群规模
        int popSize = 100;
        // 配置SBX交叉算子
        double crossoverProbability = 0.9;
        double crossoverDistributionIndex = 20.0;
        crossover = 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43270242/article/details/104659768

智能推荐

【SparkDesk vs. ChatGPT4】科大讯飞“星火”实测:AI 写作能力(92分+)ChatGPT 大模型在电商业务中的应用、技术方案、价值创新,5000字。-程序员宅基地

文章浏览阅读1.1w次。ChatGPT可以用于电商平台的智能客服,通过对话的方式为用户提供服务。通过ChatGPT大模型的数据分析和挖掘能力,可以更好地了解用户的行为和反馈信息,从而为电商平台提供更有价值的数据支持,帮助电商平台做出更明智的决策。通过ChatGPT大模型的分析和预测能力,可以更好地了解用户的喜好和需求,从而为用户提供更符合他们口味和需求的产品推荐,提高用户的购买意愿和满意度。通过ChatGPT大模型的智能客服,可以更好地了解用户的需求和反馈信息,从而为广告主提供更精准的广告投放服务,提高广告的转化率和ROI。

15级南阳理工软件学院卓越班笔试面试总结_软件工程卓越班面试-程序员宅基地

文章浏览阅读919次。笔试:不得不说,笔试题对于我这个在ACM队呆了一年的人来说应该特别简单,但是考试的时候,当我开始看题的时候,就开始紧张,看题的时候完全不懂题意,不过一开始状态还不错,是一分钟A了我的第一道题,当时只有我们队的另外一个人A了题,觉得还不错,我又开始找另外一道写,我现在都想不明白,前面那么多基础的C语言题我当时就不写,找了一道我以为是简单DP的题开始写,花了十几分钟也没写完,越写越不对劲,感觉没我之前_软件工程卓越班面试

支持向量机(SVM)-程序员宅基地

文章浏览阅读52次。1.SVM:SVM,全称是support vector machine,中文名叫支持向量机。SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。2.SVM为什么采用间隔最大化:1.当训练数据可分的时候,存在很多超平面可以将数据分开2.感知机利用误分类最小策略,求得分离超平面,不过此时的解有无穷多个。3.线性可分支持向量机利用间隔最大化求得最优..._支持向量机引入了什么机制

决策树模型 ID3/C4.5/CART三种算法的区别-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏22次。转载自:https://www.cnblogs.com/wxquare/p/5379970.html 决策树模型在监督学习中非常常见,可用于分类(二分类、多分类)和回归。虽然将多棵弱决策树的Bagging、Random Forest、Boosting等tree ensembel 模型更为常见,但是“完全生长”决策树因为其简单直观,具有很强的解释性,也有广泛的应用,而且决策树是tree ense...

LeetCode String to Integer (atoi) c++_c++ atoi越界-程序员宅基地

文章浏览阅读561次。首先总结下做题的过程,最开始我又忘记了应该先明确思路再写代码的信条,写一点提交一次,改一次,效率极低,直到自己崩溃,推翻重做。问题分析(题目中有) String转int考虑空格问题考虑+,-号问题考虑整型越界问题解决办法 考虑从前遍历还是从后遍历空格问题 空格在数字前:跳过空格在数字中间:跳出+号问题:在数字前跳过即可,在数字中跳出-号问题:在数字前,记录,最后结果*-1,在_c++ atoi越界

Android 音乐APP(五)音乐通知栏、后台播放音乐,程序员必须要了解的知识点_android 音视频播放通知栏控制-程序员宅基地

文章浏览阅读780次,点赞13次,收藏25次。外链图片转存中…(img-W5XkH1g3-1712366644249)][外链图片转存中…(img-J2Cr3hvG-1712366644250)][外链图片转存中…(img-39HoYf8D-1712366644250)][外链图片转存中…(img-utHeNPyS-1712366644250)][外链图片转存中…(img-jRrbl8QM-1712366644251)]_android 音视频播放通知栏控制

随便推点

基于CubeMX-STM32 驱动 WS2812B(__nop()函数方式)_stmcubemx stm32l051c8 io口驱动ws2812b-程序员宅基地

文章浏览阅读2.1k次,点赞3次,收藏15次。WS2812B引脚定义特性参数数据传输48MHz 主频下的代码.h 文件#ifndef _WS2812B_48_H_#define _WS2812B_48_H_#include "gpio.h"#define WS2812B_Port GPIOB#define WS2812B_Pin GPIO_PIN_12#define WS2812B_Pin_H (WS2812B_Port->BSRR |= WS2812B_Pin)#define WS2812B_Pin_L_stmcubemx stm32l051c8 io口驱动ws2812b

看完这篇,你应该知道什么是Linux了~_看完这篇 你应该就知道什么是linux-程序员宅基地

文章浏览阅读211次。Linux文件系统详解Linux上的文件系统一般来说就是EXT2或EXT3,但这篇文章并不准备一上来就直接讲它们,而希望结合Linux操作系统并从文件系统建立的基础——硬盘开始,一步步认识Linux的文件系统。1.机械硬盘的物理存储机制现代计算机大部分文件存储功能都是由机械硬盘这种设备提供的。(现在的SSD和闪存从概念和逻辑上都部分继承自机械硬盘,所以使用机械硬盘来进行理解也是没有问题..._看完这篇 你应该就知道什么是linux

minio用生成的预签名上传链接上传文件报SignatureDoesNotMatch,The request signature we calculated does not match the si_x-amz-credential minio-程序员宅基地

文章浏览阅读1.4w次。minio客户端调用方法,如果生成的预签名上传链接,如下:http://192.168.1.167:80/image/20210105154215.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minio%2F20210105%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210105T074217Z&X-Amz-Expires=3600&X-Amz-SignedHea_x-amz-credential minio

Android 低功耗蓝牙 不回调onServicesDiscovered_discoverservices()没反应-程序员宅基地

文章浏览阅读914次。Android 低功耗蓝牙 不回调onServicesDiscovered_discoverservices()没反应

linux ld.so.conf,ld.so.conf.d配置文件-程序员宅基地

文章浏览阅读676次。ld.so.conf.d用来加载Linux系统中的动态库文件的:在/etc下我们会发现下面三个文件ld.so.conf.dld.so.confld.so.cache查看ld.so.conf以后可以看到是包含了ld.so.conf.d中的所有配置文件include ld.so.conf.d/*.conf查看ld.so.conf.d中的内容可以看到配置文件很多[root@linuxidc mcrypt..._include ld.so.conf

C# Winform发送HTTP请求-程序员宅基地

文章浏览阅读3.8k次,点赞2次,收藏23次。C# Winform发送HTTP请求方法体 public class HttpUitls { public static string Get(string Url) { //System.GC.Collect(); HttpWebRequest request = (HttpWebRequest)W..._winform发送http请求