Descripción del problema:
Es mejor introducir nuevamente el algoritmo inmunológico.
Análisis:
El algoritmo Geic (GA) es un nuevo algoritmo de optimización global desarrollado en los últimos años.
Desde la perspectiva de la biogenética, la adaptabilidad de cada individuo se consigue mediante los mecanismos de selección natural, herencia y variación.
mejoras. Esto refleja el proceso evolutivo de "selección natural y supervivencia del más apto" en la naturaleza. En 1962, un profesor holandés propuso por primera vez la idea del algoritmo genético, que atrajo a un gran número de investigadores y rápidamente se expandió a campos como la optimización, la búsqueda y el aprendizaje automático.
Este aspecto ha sentado una sólida base teórica. Cuando utilizamos algoritmos genéticos para resolver problemas, primero debemos ocuparnos de la estructura del modelo del problema.
El problema queda simbolizado y discretizado en este proceso. También existen definiciones de espacio continuo de Ga (algoritmos Geic en espacios continuos, GAC) que no se discutirán por el momento.
El algoritmo genético de operación en serie (SGA) se ejecuta de la siguiente manera:
(1) Codificar el problema a resolver
(2) Inicializar aleatoriamente el; población x ( 0): = (x1, x2,…xn);
(3) Calcule la aptitud F(xi) de cada individuo xi en el desempeño de la población actual.
No es bueno;
(4) Aplicar el operador de selección para generar la generación intermedia xr(t)
(5) Aplicar otras operaciones a Xr(); t) operadores para generar una nueva generación de población X(t+1). El objetivo de estos operadores es la expansión limitada.
La cobertura de individuos refleja la idea de búsqueda global
(6)t:= t+1; si no se cumple la condición de terminación, continúa con (3) .
Los operadores más utilizados en GA son los siguientes:
(1) Selección/reproducción: el operador de selección selecciona un par de la población de acuerdo con una cierta probabilidad.
La probabilidad Pi de que el individuo xi sea seleccionado es proporcional a su valor de aptitud. La implementación más común es la ruleta.
modelo rueda).
(2) Operador de cruce: El operador de cruce cruzará las cadenas genéticas de dos individuos seleccionados según la probabilidad pc.
, genera dos nuevos individuos, con posiciones de intersección aleatorias. Donde Pc es el parámetro del sistema.
(3) Mutación: el operador de mutación muta cada bit de la nueva cadena genética individual de acuerdo con la probabilidad pm, lo cual es correcto.
Lo contrario ocurre con la cadena genética binaria (código 0,1).
La implementación de los operadores anteriores es diversa y se han propuesto muchos operadores nuevos para mejorar GA.
Algunos atributos. La velocidad de convergencia de los parámetros del sistema (número de individuos N, longitud de la cadena genética L, probabilidad de cruce Pc, probabilidad de mutación Pm, etc.). ) al algoritmo.
Y elegir distintos valores según problemas concretos.
La programación de algoritmos genéticos debe considerar la versatilidad y tener una gran capacidad de adaptación a nuevos operadores. Herencia de clases en programación orientada a objetos
Las promesas nos brindan esta posibilidad.
Definir dos estructuras básicas: alelos e individuos, siendo el * * * del individuo la clase poblacional TP.
Los datos de los miembros de la población, mientras que la clase TSGA se deriva de la población y define las operaciones básicas del algoritmo genético. Para cualquier aplicación real
Por ejemplo, puede derivar de la clase TSGA y definir nuevas operaciones.
La clase TPopulation contiene dos procesos importantes:
FillFitness: función de evaluación, decodifica cada individuo y calcula su valor de fitness. Las operaciones específicas son las siguientes
implementadas en la clase de usuario.
Estadísticas: Estadísticas de la población actual, como sumfitness, fitness promedio, mejor fitness.
Fmax individual, peor fmin individual, etc.
La clase TSGA se deriva de la clase TPopulation y toma los parámetros del sistema de GA como parámetros del constructor. Hay cuatro clases TSGA.
Funciones importantes de los miembros:
Select: Operador de selección. La estrategia de selección básica es el modelo de ruleta (Figura 2).
La ruleta se detiene con cualquier giro.
El área señalada por el puntero inverso está seleccionada, por lo que la probabilidad de ser seleccionado es alta con un valor fi grande.
Crossover: Operador de cruce, intercambia subcadenas en posiciones aleatorias con probabilidad Pc en las dos cadenas de genes.
Mutación: El operador de mutación interfiere aleatoriamente (niega) cada gen en la cadena genética con probabilidad Pm.
Generar: Generar la siguiente generación, incluyendo todo el proceso de evaluación, estadística, selección, cruce, mutación, etc. , cada vez que se ejecuta.
En segundo lugar, crear una nueva generación.
La estructura y definición de clase de SGA son las siguientes (escritas en C++):
alelo typedef char;
tipo de gen
typedef Estructura
{ ...
Alelo* chrom
Aptitud flotante;
Aptitud cromosómica
} Personal;
Definición personal
Relleno de categorías
{ ...
Definición de clase de grupo
público: int size;
Tamaño de la población: n
int lchrom
Longitud del cromosoma: l
Suma de punto flotante, promedio;
Individual *fmin, *fmax
Individual *pop
TPopulación (int popsize, int strlength);
~ t población ();
Personal y en línea. individuo(int i)
{ ...
return pop[I];
}
;
void fill fitness();
Función de evaluación
Estadísticas virtuales de vacío();
Función estadística
}; p> p>
Clase TSGA: población pública
{ ...
La clase TSGA se deriva de la clase de población.
public:float pcross;
Probabilidad de cruce
Operación de punto flotante;
Probabilidad de mutación
int gen
Contador de generación
TSGA (int size, int strlength, float pm =0.03, float pc =0.6): TPopulación (tamaño, strlength)
{ . ..
gen = 0
pcross = pc
pmutación = pm
} ;
virtual personal&select();
Intersección nula virtual (personal&parent1, personal&parent2, personal&child1, personal&child2);
&child1, personal & ampchild 2
Mutación del alelo virtual ( variación alélica);
Virtual void Generate();
Generar nueva generación
};
La clase GA de usuario se define como siguiente: clase TSGAfit: TSGA pública.
{ ...
público: TSGAfit (tamaño int, pm flotante =0.0333, pc flotante =0.6) :TSGA (tamaño, 24, pm, pc)
{ ...
}
;
impresión nula();
};
Debido a que GA es un proceso probabilístico, la situación es diferente para cada iteración. Los diferentes parámetros del sistema y las condiciones de iteración
también son diferentes.
En el experimento, los parámetros generalmente se seleccionan de la siguiente manera: número de individuos n=50-200, probabilidad de mutación Pm=0,03 y probabilidad de cruce Pc=
0,6. La probabilidad de mutación es demasiado alta y provocará inestabilidad.
Referencia
●Algoritmo Goldberg D E. Geic en búsqueda, optimización y aprendizaje automático
Aprendizaje. Edison-Wesley Co., Reading, Massachusetts, 1989
Chen Genshe, Chen Xinhai, "Investigación y progreso de algoritmos genéticos", Información y control, Volumen 23,
No. , 1994, PP215-222
● Vittorio Maniezzo, "Evolución Geica de la Topología y Distribución de Peso"
Distribución de Redes Neuronales. "Neurología", Volumen 5, Número 1
1, 1994, PP39-53
●Qi Xiaofeng, Francisco Palmieri, "Análisis teórico de la evolución"
l Neorks, Volumen 5, No. 1, 1994, PP102-119
●Qi Xiaofeng, Francesco Palmieri, "Análisis teórico de Evolución
Algoritmos para tamaños de población infinitos en un espacio continuo. Parte 2
al Neorks, Volumen 5, No. 1, 1994, PP102-119
Günter Rudolf, Análisis de convergencia del algoritmo Geic canónico, I
EEE, trad. "Investigación en Neurología", Volumen 5, N° 1, Página 1994, Páginas 96-101
● Ben, Alt, Fanci. Convergencia global del algoritmo geic
Algoritmo: análisis de cadenas de Markov. Resolver problemas paralelos desde Nat
Sí. H.-P.Schwefel, R.Manner, editores Berlin y Heidelberg: Springer, 1991
, PP4-12
● Wirt Atmar, "Notas sobre simulaciones evolutivas", IEEE, Trans. en la Universidad Northeastern
ral Neorks, Volumen 5, Número 1, 1994, PP130-147
● Anthony V. Sebald, Jennifer Schlenzig, "Minimax Design en Neural Networks Inc. p>
p>
Controladores para dispositivos altamente inciertos
ol.5, No. 1, 1994, PP73-81
Fang Jian'an, Shao. Shihuang, "Reglas de control de modelos de autoaprendizaje con algoritmo genético", Teoría, tecnología y aplicación de la automatización
Actas de la novena conferencia académica juvenil de la Sociedad China de Automatización, 1993, PP233-238. >Fang Jian'an, Shao Shihuang, "Controlador de red neuronal para el aprendizaje de algoritmos genéticos", Control and Decision, 199, 3, 8(3), PP208-212
Su y Tsukaya, "Maze Learning". Usando algoritmos genéticos", Robótica, Volumen 16, Número 5, 199
4, págs. 286-289
● M. Srinivas. , L.M. Patnaik, "Probabilidades de adaptabilidad de cruce y mutación", IEEE Trans. sobre cruce y mutación en SMC, volumen 24, número 4, 1994,
IEEE Trans. "Convenio de Estocolmo", Volumen 24, N° 4, 1994
● Dai Xi Park, Abraham Kandel, Gideon Langholz, "Nuevo modelo difuso basado en Geic
Modelo de inferencia y su aplicación en control difuso
Volumen 24, No. 1, págs. 39-47, 1994
●Alian· Vasek, Tanja Urbanz y Bodgen Filipic, "Conferencia sobre algoritmos Geic en controlador". Diseño y puesta a punto", IEEE Trans. Convenio de Estocolmo, Volumen 23, N° 5, Páginas 1330-13
39, 1993