[Optimisation] Analyse d'optimisation des fonctions basée sur l'algorithme de recherche de nourriture bactérienne matlab [y compris le code source 217 de Matlab]

1. Introduction

Les besoins réels favorisent le développement de méthodes d'optimisation. Depuis plus d'un demi-siècle, en raison des lacunes des méthodes d'optimisation traditionnelles, certains algorithmes évolutifs avec des performances d'optimisation globale et une forte polyvalence ont reçu une attention et des applications approfondies dans divers domaines en raison de leurs performances d'optimisation efficaces et de l'absence de description précise des problèmes. . L'algorithme évolutif le plus ancien et le plus représentatif est l'algorithme génétique (GA) dérivé de la théorie de Darwin de la sélection naturelle et de la théorie de la variation génétique mendélienne dans les années 1970. Ces dernières années, les gens ont produit une série d'algorithmes d'optimisation intelligents basés sur le comportement des organismes naturels. Par exemple, Dorigo et al. Ont proposé l'optimisation des colonies de fourmis (ACO) en 1991 en simulant le comportement de recherche de chemin des fourmis; Eberhart et Kennedy a adopté En 1995, l'optimisation des essaims de particules (PSO) a été proposée pour simuler le comportement de prédation des oiseaux. Ces algorithmes sont largement utilisés dans le domaine de l'ingénierie et ont obtenu des résultats remarquables. Avec le développement vigoureux d'algorithmes d'optimisation de l'intelligence des essaims, Passino a proposé un algorithme d'optimisation de la recherche de bactéries (BFOA) en 2002 qui simule le comportement de recherche de nourriture d'E. Coli humain, ajoutant un nouveau membre à la famille des algorithmes d'évolution biomimétiques. Ce chapitre se concentrera sur l'introduction de l'algorithme de recherche de bactéries le plus élémentaire à la majorité des passionnés de programmation.Chaque chercheur en programmation peut améliorer l'algorithme de ce chapitre et l'appliquer à des cas réels.
1 Algorithme standard d'optimisation de la recherche de nourriture bactérienne
Insérez la description de l'image ici
2 Opération de chimiotaxie
Insérez la description de l'image ici
3 Opération d' essaimage
Insérez la description de l'image ici
4 Opération de reproduction
Insérez la description de l'image ici
5 Élimination et dispersion
La zone locale où les bactéries vivent dans l'environnement réel peut se produire Des changements graduels (tels que l'épuisement des aliments) ou des changements soudains (tels qu'une augmentation soudaine de la température ). Cela peut entraîner la migration des populations bactériennes vivant dans cette zone locale vers une nouvelle zone ou être collectivement tuées par des forces extérieures. La simulation de ce phénomène dans l'algorithme BFO est appelée opération migratoire.
6 Flux d'algorithme BFO
Insérez la description de l'image ici

Deuxièmement, le code source

%%%%%%%%%%%%-----BF0算法-----%%%%%%%%%%%%%%%
clc; clear;  close all
warning off
feature jit off  % 加速代码执行
%-----初始化参数-----
bounds = [-5.12, 5.12;-5.12, 5.12]; % 函数变量范围
p = 2;   % 搜索范围的维度
s = 26;  % 细菌的个数
Nc = 50; % 趋化的次数
Ns = 4;  % 趋化操作中单向运动的最大步数
C(:,1) = 0.001*ones(s,1);    % 翻转选定方向后,单个细菌前进的步长
Nre = 4;     % 复制操作步骤数
Ned = 2;     % 驱散(迁移)操作数
Sr = s/2;    % 每代复制(分裂)数
Ped = 0.25;  % 细菌驱散(迁移)概率
d_attract = 0.05;         % 吸引剂的数量
ommiga_attract = 0.05;    % 吸引剂的释放速度
h_repellant = 0.05;       % 排斥剂的数量
ommiga_repellant = 0.05;  % 排斥剂的释放速度
for i = 1:s               % 产生初始细菌个体的位置
    P(1,i,1,1,1) = -5.12 + rand*10.24;
    P(2,i,1,1,1) = -5.12 + rand*10.24;
end
%----细菌趋药性算法循环开始
%---- 驱散(迁移)操作开始
for l = 1:Ned
	%-----复制操作开始
    for k = 1:Nre
        %-----趋化操作(翻转或游动)开始
        for j = 1:Nc
            %-----对每一个细菌分别进行以下操作
            for i = 1:s
                %-----计算函数J(i,j,k,l),表示第i个细菌在第l次驱散第k次
                %--------复制第j次趋化时的适应度值
                J(i,j,k,l) = fitness(P(:,i,j,k,l));
                %-----修改函数,加上其它细菌对其的影响
                Jcc = sum(-d_attract*exp(-ommiga_attract*((P(1,i,j,k,l)-...
                    P(1,1:26,j,k,l)).^2+(P(2,i,j,k,l)-P(2,1:26,j,k,l)).^2)))+...
                    sum(h_repellant*exp(-ommiga_repellant*((P(1,i,j,k,l)-...
                    P(1,1:26,j,k,l)).^2+(P(2,i,j,k,l)-P(2,1:26,j,k,l)).^2)));
                J(i,j,k,l) = J(i,j,k,l) + Jcc;
                %----保存细菌目前的适应度值,直到找到更好的适应度值取代之
                Jlast = J(i,j,k,l);
                %-----翻转,产生一个随机向量C(i),代表翻转后细菌的方向
                Delta(:,i) = (2*round(rand(p,1))-1).*rand(p,1);
                % PHI表示翻转后选择的一个随机方向上前进
                PHI = Delta(:,i)/sqrt(Delta(:,i)'*Delta(:,i));
                %-----移动,向着翻转后细菌的方向移动一个步长,并且改变细菌的位置
                P(:,i,j+1,k,l) = P(:,i,j,k,l) + C(i,k)*PHI;
                %-----计算细菌当前位置的适应度值
                J(i,j+1,k,l) = fitness(P(:,i,j+1,k,l));
                %-----游动-----
                m = 0;         % 给游动长度计数器赋初始值
                while(m < Ns)  % 未达到游动的最大长度,则循环
                    m = m + 1;
                    % 新位置的适应度值是否更好?如果更好,将新位置的适应度值
                    % 存储为细菌i目前最好的适应度值
                    if(J(i,j+1,k,l)<Jlast)
                        Jlast = J(i,j+1,k,l);  % 保存更好的适应度值
                        % 在该随机方向上继续游动步长单位,修改细菌位置
                        P(:,i,j+1,k,l) = P(:,i,j+1,k,l) + C(i,k)*PHI;
                        % 重新计算新位置上的适应度值
                        J(i,j+1,k,l) = fitness(P(:,i,j+1,k,l));
                    else
                        % 否则,结束此次游动
                        m = Ns;
                    end
                end

Trois, résultats en cours

Insérez la description de l'image ici

Quatre, remarques

Code complet ou écriture ajouter QQ1564658423 examen précédent
>>>>>>
[Optimisation] basé sur l'optimisation de l'essaim de particules matlab algorithme de loup gris [y compris le code source 006 de Matlab]
[Optimisation] basé sur l'algorithme d'optimisation multi-objectif du loup gris matlab MOGWO [y compris Matlab code source issue 007]
[solution optimisée] disposition optimale des bornes de recharge basée sur l'algorithme matlab de l'essaim de particules [y compris le code source Matlab 012]
[solution optimisée] problème de vendeur multi-voyageurs basé sur l'algorithme génétique matlab [y compris le code source Matlab 016]
[optimisé solution】 Trouver le chemin le plus court basé sur l'algorithme génétique matlab [y compris le code source Matlab 023]
[Solution d'optimisation] Problème de compactage 3D basé sur le recuit génétique et simulé matlab [y compris le code source Matlab 031]
[Solution d'optimisation] Résoudre l'optimisation de l'intervalle de départ des véhicules basé sur l'algorithme génétique matlab Problème [Incluant le code source de Matlab 132]
[Solution d'optimisation] Algorithme de Krill Swarm [Incluant le code source de matlab 133]
[Solution d'optimisation] Algorithme d'évolution différentielle [Incluant le code source de Matlab 134]
[Solution d'optimisation] Méthode de fonction de pénalité basée sur Optimisation des contraintes matlab [Inclure le code source Matlab 163 période]
[Solution d'optimisation] Basé sur l'algorithme de loup gris amélioré de matlab pour résoudre le modèle de pyrolyse du pétrole lourd [Inclure le code source Matlab 164 période]
[Solution optimisée] Basé sur une erreur de réseau de distribution d'algorithme de colonie de fourmis matlab location [Inclure la période 165 du code source Matlab]
[Solution d'optimisation basée sur l'algorithme génétique matalb pour résoudre le problème d'optimisation de la reconstitution du matériel de l'île [y compris le code source Matlab 172]
[Solution d'optimisation] Algorithme d'optimisation immunitaire de la population de coronavirus (CHIO) [y compris le code source Matlab 186 ]
[Solution d'optimisation] Algorithme d'optimisation Golden Eagle (GEO)) 【Inclut le code source Matlab 187 période】
[Solution d'optimisation multi-objectif] Solution d'optimisation multi-objectif basée sur l'algorithme matlab golden eagle (MOGEO) [y compris le code source Matlab 188]
[Solution d'optimisation] Solution d'optimisation du réseau neuronal BP basée sur l'interface GUI matlab [Code source Matlab 208]
[Optimisation solution] Solution d'optimisation d'algorithme génétique basée sur l'interface GUI matlab [y compris le code source Matlab 209]
[Solution d'optimisation] Analyse d'optimisation d'approximation numérique basée sur l'algorithme matlab immun [y compris le code source Matlab 211]
[Solution d'optimisation] Analyse d'optimisation des fonctions basée sur l'algorithme heuristique matlab [Inclure le code source Matlab 212]
[Solution d'optimisation ] Optimisation du signal de trafic urbain basé sur l'algorithme génétique amélioré de matalb (GA + IGA) [Inclure le code source de Matlab 213 période]
[Solution d'optimisation] Optimisation du signal de trafic urbain basé sur l'algorithme génétique amélioré de matalb GA [ Y compris le code source Matlab 214 période]

[Solution d'optimisation] Optimisation du signal de trafic urbain basée sur l'algorithme génétique amélioré de matalb IGA [y compris le code source Matlab 215]
[Solution d'optimisation] Optimisation de la fonction d'optimisation des essaims de particules basée sur la fonction de pénalité Matlab [y compris le code source 216 de Matlab]

Je suppose que tu aimes

Origine blog.csdn.net/TIQCmatlab/article/details/113642565
conseillé
Classement