[Optimierung] Funktionsoptimierungsanalyse basierend auf dem Matlab-Algorithmus zur Suche nach Bakterien [einschließlich Matlab-Quellcode 217]

1. Einleitung

Die tatsächlichen Bedürfnisse fördern die Entwicklung von Optimierungsmethoden. Seit mehr als einem halben Jahrhundert haben einige evolutionäre Algorithmen mit globaler Optimierungsleistung und starker Vielseitigkeit aufgrund der Mängel traditioneller Optimierungsmethoden aufgrund ihrer effizienten Optimierungsleistung und der Notwendigkeit einer genauen Beschreibung von Problemen umfangreiche Aufmerksamkeit und Anwendungen in verschiedenen Bereichen erhalten. . Der früheste und repräsentativste evolutionäre Algorithmus ist der genetische Algorithmus (GA), der in den 1970er Jahren aus Darwins Theorie der natürlichen Selektion und der Mendelschen Theorie der genetischen Variation abgeleitet wurde. In den letzten Jahren haben Menschen eine Reihe intelligenter Optimierungsalgorithmen entwickelt, die auf dem Verhalten natürlicher Organismen basieren. So schlugen Dorigo et al. 1991 die Ant Colony Optimization (ACO) vor, indem sie das Wegfindungsverhalten von Ameisen simulierten; Eberhart und Kennedy adoptiert 1995 wurde die Partikelschwarmoptimierung (PSO) vorgeschlagen, um das Raubverhalten von Vögeln zu simulieren. Diese Algorithmen sind im technischen Bereich weit verbreitet und haben bemerkenswerte Ergebnisse erzielt. Mit der intensiven Entwicklung von Algorithmen zur Optimierung der Schwarmintelligenz schlug Passino im Jahr 2002 einen BFOA-Algorithmus (Bacteria Foraging Optimization Algorithm) vor, der das Futtersuchverhalten von menschlichen E. coli simuliert und die Familie der biomimetischen Evolutionsalgorithmen um ein neues Mitglied erweitert. Dieses Kapitel konzentriert sich auf die Einführung des grundlegendsten Algorithmus zur Suche nach Bakterien für die Mehrheit der Programmierbegeisterten. Jeder Programmierforscher kann den Algorithmus in diesem Kapitel verbessern und auf tatsächliche Fälle anwenden.
1 Standardalgorithmus zur Optimierung der bakteriellen Nahrungssuche
Fügen Sie hier eine Bildbeschreibung ein
2 Chemotaxis-Betrieb
Fügen Sie hier eine Bildbeschreibung ein
3 Schwarmbetrieb
Fügen Sie hier eine Bildbeschreibung ein
4 Fortpflanzungsbetrieb
Fügen Sie hier eine Bildbeschreibung ein
5 Eliminierung und Ausbreitung
Der lokale Bereich, in dem Bakterien in der tatsächlichen Umgebung leben, kann auftreten ). Dies kann dazu führen, dass die in diesem Gebiet lebenden Bakterienpopulationen in ein neues Gebiet wandern oder gemeinsam von externen Kräften getötet werden. Die Simulation dieses Phänomens im BFO-Algorithmus wird als Migrationsoperation bezeichnet.
6 Ablauf des BFO-Algorithmus
Fügen Sie hier eine Bildbeschreibung ein

Zweitens der Quellcode

%%%%%%%%%%%%-----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

Drei laufende Ergebnisse

Fügen Sie hier eine Bildbeschreibung ein

Viertens Bemerkungen

Vollständiger Code oder Schreiben hinzufügen QQ1564658423 frühere Überprüfung
>>>>>>
[Optimierung] basierend auf Matlab-Partikelschwarmoptimierung Gray-Wolf-Algorithmus [einschließlich Matlab-Quellcode 006]
[Optimierung] basierend auf Matlab-Mehrziel-Gray-Wolf-Optimierungsalgorithmus MOGWO [einschließlich Matlab Quellcode-Problem 007]
[optimierte Lösung] Optimale Anordnung der Ladestationen basierend auf dem Matlab-Partikelschwarmalgorithmus [einschließlich Matlab-Quellcode 012]
[optimierte Lösung] Problem mit mehreren reisenden Verkäufern basierend auf dem genetischen Matlab-Algorithmus [einschließlich Matlab-Quellcode 016]
[optimiert Lösung】 Finden Sie den kürzesten Weg basierend auf dem genetischen Matlab-Algorithmus [einschließlich Matlab-Quellcode 023]
[Optimierungslösung] 3D-Packungsproblem basierend auf genetischem und simuliertem Matlab-Annealing [einschließlich Matlab-Quellcode 031]
[Optimierungslösung] Lösen Sie die Optimierung des Fahrzeugabfahrtsintervalls basierend auf dem genetischen Matlab-Algorithmus Problem [Einschließlich Matlab-Quellcode 132]
[Optimierungslösung] Krill-Schwarm-Algorithmus [Einschließlich Matlab-Quellcode 133]
[Optimierungslösung] Differential-Evolutions-Algorithmus [Einschließlich Matlab-Quellcode 134]
[Optimierungslösung] Straffunktionsmethode basierend auf Optimierung der Matlab-Einschränkung [Matlab-Quellcode einschließen 163 Periode]
[Optimierungslösung] Basierend auf dem von Matlab verbesserten Gray-Wolf-Algorithmus zur Lösung des Schwerölpyrolysemodells [Matlab-Quellcode einschließen 164 Periode]
[Optimierte Lösung] Basierend auf dem Verteilungsnetzwerkfehler des Matlab-Ameisenkolonie-Algorithmus Standort [Matlab-Quellcode
einschließen 165 Periode] [Optimierungslösung basierend auf dem genetischen Matalb-Algorithmus zur Lösung des Optimierungsproblems der Inselmaterialnachfüllung [einschließlich Matlab-Quellcode 172]
[Optimierungslösung] Coronavirus-Populationsimmunoptimierungsalgorithmus (CHIO) [einschließlich Matlab-Quellcode 186 ]
[Optimierungslösung] Golden Eagle Optimierungsalgorithmus (GEO)) 【Matlab-Quellcode einschließen 187 Periode】
[Multi-Objective-Optimierungslösung] Multi-Objective-Optimierungslösung basierend auf dem Matlab Golden Eagle-Algorithmus (MOGEO) [einschließlich Matlab-Quellcode 188]
[Optimierungslösung] BP-Optimierungslösung für neuronale Netze basierend auf der Matlab-GUI-Schnittstelle [Matlab-Quellcode 208]
[Optimierung Lösung] Optimierungslösung für genetische Algorithmen basierend auf der Matlab-GUI-Schnittstelle [einschließlich Matlab-Quellcode 209]
[Optimierungslösung] Numerische Approximationsoptimierungsanalyse basierend auf Matlab-Immunalgorithmus [einschließlich Matlab-Quellcode 211]
[Optimierungslösung] Funktionsoptimierungsanalyse basierend auf Matlab-Heuristikalgorithmus [Matlab-Quellcode 212
einschließen ] [Optimierungslösung ] Optimierung des städtischen Verkehrssignals basierend auf dem verbesserten genetischen Algorithmus von Matalb (GA + IGA) [Zeitraum des Matlab-Quellcodes 213 einschließen ]
[Optimierungslösung] Optimierung des städtischen Verkehrssignals basierend auf dem verbesserten genetischen Algorithmus GA von Matalb [ Einschließlich Matlab-Quellcode 214 Periode]

[Optimierungslösung] Optimierung des städtischen Verkehrssignals basierend auf dem verbesserten genetischen Algorithmus IGA von matalb [einschließlich Matlab-Quellcode 215] [Optimierungslösung] Optimierung der Partikelschwarmoptimierungsfunktion auf Basis der Matlab-Straffunktion
[einschließlich Matlab-Quellcode 216]

Ich denke du magst

Origin blog.csdn.net/TIQCmatlab/article/details/113642565
Empfohlen
Rangfolge