PlateEMO源码阅读,调试NSGA-II算法+ZDT1问题,查看调用链路 一、启动项目 1、方法一、用GUI工具运行 2、方法二、用程序运行(推荐) 直接用命令运行 %% NSGA-II求ZDT1问题 platemo('algorithm', @NSGAII, 'prob...... 言曌 06月18日 40 阅读全文
惩罚函数方法介绍和简单代码实现 惩罚函数方法通过对不可行解进行惩罚,将约束优化问题转化为无约束优化问题,从而简化约束处理过程。 惩罚函数方法可以通过静态、动态和自适应策略来平衡目标函数和约束之间的关系。 一、简单原理 简单来说,将原...... 言曌 06月17日 40 阅读全文
MOEA/D简单实现和一些简单问题 一、MODE/D特点 分解策略:MOEA/D通过将多目标优化问题分解为若干单目标子问题,每个子问题通过一个权重向量表示。每个子问题在其邻域内进行优化。 邻域更新:通过在邻域内更新个体,MOEA/D能...... 言曌 06月15日 46 阅读全文
NSGA-II简单实现和一些简单问题 关于NSGA-II的介绍可以参考这篇文章 一、伪代码 初始化种群 P0 评估种群目标函数值 非支配排序和拥挤度计算 while (未达到最大代数) do 基于非支配排序和拥挤度选择父代 ...... 言曌 06月15日 56 阅读全文
实现简单的差分进化算法(DE),用MATLAB和java实现 一、MATLAB实现 clc; clear; % 定义常量 max_generations = 1000; population_size = 100; dimensions = 2; CR = 0...... 言曌 05月28日 105 阅读全文
实现简单的人工蜂群算法(ABC),用MATLAB和Java实现 一、MATLAB实现 clc;clear; % 定义常量 num_employed_beas = 20; num_onlooker_beas = 20; dim = 2; max_generatio...... 言曌 05月28日 110 阅读全文
轮盘赌算法个体的选择概率为什么不是取决于顺序和累积概率分布 一、什么是轮盘赌算法 1、先看一段代码 我在ABC中使用的 % 适应度越高(目标值越小),最终选中概率越高 fitness = [18 19 20]; roulette_wheel = cumsum...... 言曌 05月26日 96 阅读全文
多目标代码详细注释, optimoptions、gamultiobj、plot、datacursormode、dataCursorUpdate的逐行注释 一、多目标三维无约束优化代码示例 % 运行主脚本 solveMultiObjective; % 定义第一个目标函数 function f1 = objective1(x) f1 = x(1)...... 言曌 05月23日 107 阅读全文
利用正交表和在人工蜂群算法中使用 最近在学基于正交学习的人工蜂群算法,正交设计中需要建立正交表。 一、什么是正交表 正交表的核心理念是通过合理的实验组合,在有限的实验次数下,尽可能多保证每个因素及其水平的组合在实验中均匀分布。 什么是...... 言曌 05月22日 204 阅读全文
代码分析 PopDec - repmat(obj.O(1:size(PopDec,2)),size(PopDec,1),1); 随机平移种群 一、先看代码 刚刚下载了PlatEMO的代码,学习学习 准备自己新建一个算法和问题试试 先拷贝一个简单的问题,如 CEC2008_F1 有这样一段代码 %% Calculate objec...... 言曌 05月18日 93 阅读全文