1. Introduction to Artificial Rabbit Optimization Algorithm
Artificial Rabbits Optimization (ARO) was proposed by Liying Wang et al. in 2022. This algorithm simulates the survival strategies of rabbits, including detours for food and random hiding, and switches between the two strategies through energy contraction. The detour foraging strategy forces the rabbit to eat grass near other rabbits' nests, which prevents its nest from being discovered by predators. The random hiding strategy enables the rabbit to randomly choose a burrow from its own burrows to hide in, which can reduce the possibility of being captured by the enemy. Furthermore, energy contraction in rabbits will result in a transition from a detour foraging strategy to a stochastic hiding strategy.
ARO algorithm description:
ARO algorithm process:
参考文献: Liying Wang, Qingjiao Cao, Zhenxing Zhang, et al. Artificial rabbits optimization: A new bio-inspired meta-heuristic algorithm for solving engineering optimization problems[J]. Engineering Applications of Artificial Intelligence, 2022, 114: 105082.
2. Introduction to Multi-objective Artificial Rabbit Optimization Algorithm
Multi-Objective Artificial Rabbits Optimization (MOARO) is a combination of the excellent strategy of the artificial rabbit optimization algorithm and the idea of multi-objective optimization. In order to verify the effectiveness of the proposed MOARO, it was tested on 46 multi-objective test functions (ZDT1, ZDT2, ZDT3, ZDT4, ZDT6, DTLZ1-DTLZ7, WFG1-WFG10, UF1-UF10, CF1-CF10, Kursawe, Poloni, Viennet2, Viennet3) and an engineering application (disc brake design) were tested, and IGD, GD, HV, and SP were used for index evaluation. Some results are as follows:
close all;
clear ;
clc;
%%
% TestProblem测试问题说明:
%一共46个多目标测试函数,详情如下:
%1-5:ZDT1、ZDT2、ZDT3、ZDT4、ZDT6
%6-12:DTLZ1-DTLZ7
%13-22:wfg1-wfg10
%23-32:uf1-uf10
%33-42:cf1-cf10
%43-46:Kursawe、Poloni、Viennet2、Viennet3
%47 盘式制动器设计(工程应用)
%%
TestProblem=1;%1-47
MultiObj = GetFunInfo(TestProblem);
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np = 100; % Population size
params.Nr = 200; % Repository size
params.maxgen =200; % Maximum number of generations
params.ngrid = 30; % Number of grids in each dimension
params.maxvel = 5; % Maxmium vel in percentage
% MOARO
REP = MOARO(params,MultiObj);