【优化算法】多目标蝗虫优化算法(MOGOA)

2023-11-12

一、简介

在这里插入图片描述\ 1 GOA数学模型\ 在这里插入图片描述\ 在这里插入图片描述\ 在这里插入图片描述\ 2 GOA迭代模型\ 在这里插入图片描述\ 在这里插入图片描述\ 3 GOA算法的基本流程\ 在这里插入图片描述\ 在这里插入图片描述\ 4 GOA缺点\ 在这里插入图片描述\ 在这里插入图片描述

二、源代码

``` clc; clear; close all;

% Change these details with respect to your problem%%%%%%%%%%%%%% ObjectiveFunction=@ZDT1; dim=5; lb=0; ub=1; obj_no=2;

if size(ub,2)==1 ub=ones(1,dim)ub; lb=ones(1,dim)lb; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% flag=0; if (rem(dim,2)~=0) dim = dim+1; ub = [ub, 1]; lb = [lb, 0]; flag=1; end

max_iter=100; N=200; ArchiveMaxSize=100;

ArchiveX=zeros(100,dim); ArchiveF=ones(100,obj_no)*inf;

Archivememberno=0;

%Initialize the positions of artificial whales GrassHopperPositions=initialization(N,dim,ub,lb);

TargetPosition=zeros(dim,1); TargetFitness=inf*ones(1,obj_no);

cMax=1; cMin=0.00004; %calculate the fitness of initial grasshoppers

for iter=1:max_iter for i=1:N

Flag4ub=GrassHopperPositions(:,i)>ub';
    Flag4lb=GrassHopperPositions(:,i)<lb';
    GrassHopperPositions(:,i)=(GrassHopperPositions(:,i).*(~(Flag4ub+Flag4lb)))+ub'.*Flag4ub+lb'.*Flag4lb;

    GrassHopperFitness(i,:)=ObjectiveFunction(GrassHopperPositions(:,i)');
    if dominates(GrassHopperFitness(i,:),TargetFitness)
        TargetFitness=GrassHopperFitness(i,:);
        TargetPosition=GrassHopperPositions(:,i);
    end

end

[Archive_X, Archive_F, Archive_member_no]=UpdateArchive(Archive_X, Archive_F, GrassHopperPositions, GrassHopperFitness, Archive_member_no);

if Archive_member_no>ArchiveMaxSize
    Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
    [Archive_X, Archive_F, Archive_mem_ranks, Archive_member_no]=HandleFullArchive(Archive_X, Archive_F, Archive_member_no, Archive_mem_ranks, ArchiveMaxSize);
else
    Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
end

Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
index=RouletteWheelSelection(1./Archive_mem_ranks);
if index==-1
    index=1;
end
TargetFitness=Archive_F(index,:);
TargetPosition=Archive_X(index,:)';

c=cMax-iter*((cMax-cMin)/max_iter); % Eq. (3.8) in the paper

for i=1:N

    temp= GrassHopperPositions;

    for k=1:2:dim
        S_i=zeros(2,1);
        for j=1:N
            if i~=j
                Dist=distance(temp(k:k+1,j), temp(k:k+1,i));
                r_ij_vec=(temp(k:k+1,j)-temp(k:k+1,i))/(Dist+eps);
                xj_xi=2+rem(Dist,2);

                %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Eq. (3.2) in the paper 
                s_ij=((ub(k:k+1)' - lb(k:k+1)') .*c/2)*S_func(xj_xi).*r_ij_vec;
                S_i=S_i+s_ij;
                %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            end
        end
        S_i_total(k:k+1, :) = S_i;

    end

    X_new=c*S_i_total'+(TargetPosition)'; % Eq. (3.7) in the paper
    GrassHopperPositions_temp(i,:)=X_new';
end
% GrassHopperPositions
GrassHopperPositions=GrassHopperPositions_temp';

display(['At the iteration ', num2str(iter), ' there are ', num2str(Archive_member_no), ' non-dominated solutions in the archive']);

end

if (flag==1) TargetPosition = TargetPosition(1:dim-1); end

figure

Draw_ZDT1();

hold on

plot(ArchiveF(:,1),ArchiveF(:,2),'ro','MarkerSize',8,'markerfacecolor','k');

legend('True PF','Obtained PF'); title('MOGOA');

set(gcf, 'pos', [403 466 230 200])

```

三、运行结果

在这里插入图片描述

四、备注

版本:2014a

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【优化算法】多目标蝗虫优化算法(MOGOA) 的相关文章

随机推荐

  • Eos离线签名PHP代码

    EOS区块链的钱包服务器Keosd 提供了sign transaction开发接口 允许开发者进行交易签名 但是 如果我们希望自己管理密钥而不是交给keosd管理 应该如何在PHP代码中实现交易的离线签名功能 答案是使用 EosTool 这
  • jq+swiper 实现今日头条App的选项卡效果

  • 新版iTunes 不能安装 ipa 包的五种解决办法

    前言 1 新版iTunes指的是 V12 7 2 新版iTunes界面无应用按钮 即无法安装ipa包 五种方法 1 使用iTools 2 使用低版本的iTunes 1 降低iTunes版本的方法 http bbs feng com read
  • C语言基础入门详解二

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 一 C语言多级指针入门 include
  • 1.5 条件生成对抗网络(CGAN)

    1 什么是CGAN 在CGAN训练期间 生成器学习为训练数据集中的每个标签生成逼真的样本 而鉴别器则学习区分真的样本 标签对与假的样本 标签对 只学习接受真实且样本 标签匹配正确的对 拒绝不匹配的对和样本为假的对 2 生成器 条件标签称为y
  • 深入理解Android相机体系结构之十一

    手机相机的未来与发展 Android相机发展至今 通过开发者对框架的不断优化 算法人员对图像处理算法的不断提升 硬件工程师对硬件性能地不断调教 换来了在某些领域完全可以媲美专业相机的成像效果 这些成绩是有目共睹的 但是我们不能仅仅着眼于过去
  • 开源知识库平台Raneto

    什么是 Raneto Raneto 是一个开源知识库平台 它使用静态 Markdown 文件来支持您的知识库 官方提供了 doc demo 网站 即是帮助文档 也是个 demo 地址 https docs raneto com 准备 项目使
  • 【Yarn】ContainerAllocator Container申请工作机制

    文章目录 1 概述 2 继承体系 3 serviceStart 4 RMContainerAllocator 4 1 构造方法 4 1 1 createAssignedRequests 4 2 serviceInit 4 3 service
  • python 十大经典排序算法

    排序算法可以分为内部排序和外部排序 内部排序是数据记录在内存中进行排序 而外部排序是因排序的数据很大 一次不能容纳全部的排序记录 在排序过程中需要访问外存 常见的内部排序算法有 插入排序 希尔排序 选择排序 冒泡排序 归并排序 快速排序 堆
  • 利用python基于GBDT算法建立轨道交通客流预测模型,并使用网格搜索法进行参数调优...

    你可以使用Python来建立一个基于GBDT算法的轨道交通客流预测模型 为了得到最佳的预测效果 你可以使用网格搜索法来调整模型的参数 网格搜索法是一种通过对参数的不同取值进行试验来选择最优参数的方法
  • 机器学习笔记Machine Learning 之SVD (Singular Value Decomposition) 奇异值分解

    一 特征值和特征向量 A x x Ax lambda x Ax x A 是一个 n n 矩阵 x 是一个 n 维向量
  • webpack的四大核心概念

    webpack中文文档 https doc webpack china org concepts 一 Entry 入口 1 单个入口 简写 语法 语法 entry string Array
  • 3.9 使用Java的文档注释

    Java支持三种形式的注释 前两种是 和 第三种方式被称为文档注释 它以 开始 以 标志结束 文档注释提供将程序信息嵌入程序的功能 开发者可以使用javadoc工具将信息取出 然后转换为HTML文件 文档注释提供了编写程序文档的便利方式 j
  • 简洁直观的飞行器的坐标系与旋转矩阵推导

    Part1 定义5个坐标系 惯性坐标系 载具坐标系 载具1坐标系 载具2坐标系 机体坐标系 总结 载具坐标系与惯性坐标系的关系是平移关系 原点位置不同 载具坐标系绕Z旋转 psi 得到载具1坐标系 载具1坐标系绕Y旋转 theta
  • python爬虫———多线程threading模块爬取抖音用户信息

    爬虫背景 由于原来的数据库中有1 5亿左右的用户id 但是其中有1 2亿的用户资料是不完整的 没有粉丝数量 点赞数量等 算是无用数据 现在老板要求将这些没有资料的用户更新信息 咋办 刚开始的想法是使用主从模式 scrapy爬取 但是写着写着
  • window下安装mysql5.7

    一 配置环境 1 将安装包解压 本文中解压至G mysql5 7 23目录下 2 此电脑 gt 右击 gt 属性 gt 高级系统设置 gt 环境变量 在系统变量 gt 找到Path gt 编辑 将mysql的安装路径添加上去即可 即添加 G
  • 开发了一个抠图/去背景应用

    jr们早上好 iPhone 的 iOS 16有个很酷的功能 长按照片就能把其中的拍摄主体提取出来 抠图过程比一般的抠图App方便 精细度也更高 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img KIlpLyow 1
  • linux系统下搜索文件,Linux系统下搜索文件的方法

    我们知道在Linux中要搜索一个文件的话并是像在Windows中去直接在搜索栏中输入文件名称那么简单 那么对于初学者来说我们该怎么在Linux环境中去搜索文件呢 下面将为初学者带来一个简单的一个演示 操作起来相对比较简单易懂 感兴趣的朋友们
  • 精通软件性能测试与LoadRunner最佳实战 连载七

    9 1 基于不同用户群的性能测试 随着互联网的蓬勃发展 软件的性能测试已经越来越受到软件开发商 用户的重视 如 一个网站前期由于用户较少 随着使用用户的逐步增长 以及宣传力度的加强 软件的使用者可能会成几倍 几十倍甚至几百倍数量级的增长 如
  • 【优化算法】多目标蝗虫优化算法(MOGOA)

    一 简介 1 GOA数学模型 2 GOA迭代模型 3 GOA算法的基本流程 4 GOA缺点 二 源代码 clc clear close all Change these details with respect to your proble