CEC2013 (MATLAB): Algoritmo Genético (GA) resuelve 28 funciones de CEC2013

1. Algoritmo genético GA

El Algoritmo Genético (GA) se originó a partir de la investigación de simulación por computadora en sistemas biológicos, es un método estocástico de optimización de búsqueda global que simula la replicación, cruce y mutación que ocurren en la selección natural y la herencia, partiendo de cualquier población inicial (Población), hasta llegar al azar. operaciones de selección, cruce y mutación, se genera un grupo de individuos más adecuados al entorno, de modo que el grupo evoluciona hacia una zona cada vez mejor en el espacio de búsqueda, de modo que generación tras generación continúa reproduciéndose y evolucionando, finalmente converge. a un grupo de individuos (Individuo) más adecuados al entorno, para obtener una solución de alta calidad al problema.

2. Introducción a cec2013

Hay 28 funciones de prueba en la sesión especial de la CCA de 2013 sobre optimización de parámetros reales, y sus dimensiones se pueden seleccionar como 10/30/50/100. Los detalles de cada función de prueba se muestran en la siguiente tabla:

referencias:

[1] Liang JJ, Qu BY, Suganthan PN, et al. Definiciones de problemas y criterios de evaluación para la sesión especial de 2013 de la CCA sobre optimización de parámetros reales [J]. 2013.

3. GA resuelve CEC2013

Pruebe diferentes funciones en el código y modifique el valor de Function_name. La dimensión tenue de cada función se puede seleccionar como 10/30/50/100. El tamaño de población SearchAgents_no y el número máximo de iteraciones Max_iteration se pueden modificar según sea necesario.

(1) Código parcial

%%
close all
clear 
clc
Function_name=1; %测试函数可以选择 1-28
dim=10;%维度可以选择 10/30/50/100
SearchAgents_no=100; % 种群大小(可以自己修改)
Max_iteration=1000; % 最大迭代次数(可以自己修改)
[Fun_Name,lb,ub,opt_f,err] = get_fun_info_CEC2013(Function_name,dim);
fob=str2func('cec13_0');
fobj=@(x)Fun(x,fob,Function_name,opt_f);
[fMin,bestX,curve]=GA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
figure
plot(curve,'Color','r','linewidth',2.5)
title(Fun_Name)
xlabel('Iteration');
ylabel('Best score obtained so far');
grid on
legend('GA')
display(['The best solution obtained by GA is : ', num2str(bestX)]);
display(['The best optimal value of the objective funciton found by GA is : ', num2str(fMin)]);

(2) Resultados parciales (tome F1, F5 y F10 como ejemplos)

4. Código completo de MATLAB

Supongo que te gusta

Origin blog.csdn.net/weixin_46204734/article/details/132202629
Recomendado
Clasificación