天天看点

【智能优化算法-凌日搜索算法】基于凌日搜索算法求解单目标优化问题附matlab代码

1 内容介绍

在本文中,基于著名的系外行星探测方法,提出了一种新的天体物理学启发式元启发式优化算法,即 Transit Search (TS)。太空望远镜数据库使用凌日技术探测到了 3800 多颗行星。 Transit 是一种比第二种众所周知的成功方法(径向速度)更具潜力的方法,在 2022 年 3 月之前已发现 915 颗行星。由于行星在宇宙尺度上的尺寸很小,因此很难探测到它们。由于过境方法在天体物理学中的高效率及其能力,它已被用于制定本研究的优化技术。在凌日算法中,通过研究每隔一段时间从恒星接收到的光,检查光度的变化,如果观察到接收到的光量减少,则表明有行星从恒星前沿经过。为了评估所提出算法的能力,考虑了 73 个约束和无约束问题,并将结果与 13 个著名的优化算法进行了比较。这组示例包括广泛的问题类型,包括数学函数(28 个高维问题和 15 个低维问题)、CEC 函数(10 个问题)、约束数学基准问题(G01-G13)以及 7 个约束工程问题。结果表明,与其他有效算法相比,所提出算法的总体平均误差是基准问题的最低量

【智能优化算法-凌日搜索算法】基于凌日搜索算法求解单目标优化问题附matlab代码
【智能优化算法-凌日搜索算法】基于凌日搜索算法求解单目标优化问题附matlab代码

2 部分代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% The following code are extracted from the reference below:

% https://authors.elsevier.com/sd/article/S2666-7207(22)00018-2

% Please cite this article as:

%  M. Mirrashid and H. Naderpour, Transit search: An optimization algorithm

%  based on exoplanet exploration; Results in Control and Optimization

%  (2022), doi: https://doi.org/10.1016/j.rico.2022.100127.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clc; clear; close all

%% Definition of the Cost Function and its variables

Function_name='branin';   % Define your cost function (here is "Branin", a benchmark function"

[Vmin,Vmax,nV,Function] = CostFunction(Function_name);

CostFunction = @(x) Function(x);

%% Definition of the Algorithm Parameters

ns = 5;                 % Number of Stars

SN = 10;                % Signal to Noise Ratio

% Note: (ns*SN)=Number of population for the TS algorithm

maxcycle=100;           % max number of iterations

%% Transit Search Optimization Algorithm

disp('Transit Search is runing...')

[Bests] = TransitSearch (CostFunction,Vmin,Vmax,nV,ns,SN,maxcycle);

Best_Cost = Bests(maxcycle).Cost

Best_Solution = Bests(maxcycle).Location

%% Figure

figure = figure('Color',[1 1 1]);

G1=subplot(1,1,1,'Parent',figure);

x=zeros(maxcycle,1);

y=zeros(maxcycle,1);

for i = 1:maxcycle

    y(i,1) = Bests(i).Cost;

    x(i,1) = i;

end

plot(x,y,'r-','LineWidth',2);

xlabel('Iterations','FontWeight','bold','FontName','Times');

ylabel('Costs','FontWeight','bold','FontName','Times');

title (['Best Cost = ',num2str(Bests(maxcycle).Cost)])

box on

xlim ([1 maxcycle]);

ylim ([Bests(maxcycle).Cost Bests(1).Cost]);

set(G1,'FontName','Times','FontSize',20,'FontWeight','bold',...

    'XMinorGrid','on','XMinorTick','on','YMinorGrid','on','YMinorTick','on');

3 运行结果

4 参考文献

部分理论引用网络文献,若有侵权联系博主删除。