Notas sobre algoritmos de optimización (2) Clasificación de algoritmos de optimización
Antes de clasificar, primero enumeremos los algoritmos de optimización comunes (¿qué más clasificar?).
1 algoritmo genético
2 Optimización del enjambre de partículas
3 Evolución diferencial
4 Colonia de abejas artificiales
4 Colonia de abejas artificiales
5 Optimización de colonias de hormigas
6 Algoritmo de enjambre de peces artificiales
7 Búsqueda de cuco
8 Algoritmo de luciérnaga
9 Optimización del lobo gris
10 Algoritmo de optimización de ballenas
11 Optimizador de búsqueda grupal
12 Algoritmo de salto de rana híbrido Algoritmo de salto de rana aleatorio
13 Algoritmo de fuegos artificiales Algoritmo de fuegos artificiales
14 Optimización de búsqueda de alimento bacteriano
Los algoritmos de optimización anteriores son todos algoritmos con los que he entrado en contacto. Los algoritmos de optimización anteriores son todos algoritmos a los que he estado expuesto. No puedo sacar conclusiones sobre algoritmos a los que no he estado expuesto. De hecho, puede haber cientos de algoritmos de optimización hasta ahora. Es imposible y no necesitamos comprender completamente todos los algoritmos, y los algoritmos de optimización son muy flexibles. Estudiemos algunos en profundidad antes de optimizar los algoritmos. comenzó muy rápidamente.
Los algoritmos de optimización solo existen desde hace cincuenta o sesenta años (el algoritmo genético apareció en 1975. La mayoría de los algoritmos son relativamente similares. Aunque hay muchos tipos, esto es normal, en comparación, los plátanos y los humanos). genes También hay cincuenta o sesenta por ciento de similitudes. Por supuesto, la similitud entre los algoritmos es mayor que la similitud entre los plátanos y los humanos. Después de todo, ambos son algoritmos de optimización y tienen el mismo objetivo, pero solo lo logran de diferentes maneras. Al igual que todos los caminos conducen a Roma, podemos caminar, tomar un automóvil, tomar un tren o volar, no importa el camino que usemos, estamos en el camino a Roma, no en avión. solo una herramienta, y el plan final aún depende de nuestra elección.
Algunos algoritmos comunes se enumeran arriba. Incluso si nunca ha visto ninguno de ellos, no importa, los presentaremos en detalle más adelante. Sin embargo, puede tener un pequeño impacto en la clasificación posterior. , pero no es un gran problema. Trátelo como si fuera un resumen.
Antes de clasificar los algoritmos de optimización, comprendamos primero el modelo de algoritmo. El flujo del algoritmo de optimización se describe en la nota (1), pero ese era un modelo más simple, mientras que el modelo aquí es más complejo. Como se señaló anteriormente, los algoritmos de optimización tienen grandes similitudes, y estas similitudes se reflejan principalmente en los procedimientos operativos de los algoritmos.
El proceso de solución del algoritmo de optimización puede considerarse como un proceso de supervivencia grupal.
Hay un grupo de pueblos primitivos que buscan alimento en la naturaleza. Los pueblos primitivos son la unidad más pequeña de este grupo. Su objetivo final es encontrar el lugar más fácil para obtener alimento en este entorno. es decir, el lugar más fácil para conseguir comida. Un lugar para sobrevivir. Cada hombre primitivo iba solo a buscar comida. Tenían una sola estrategia para conseguir comida cada día: recoger frutas, hacer trampas o esperar conejos. Es decir, no cambiaban de ubicación todos los días. Al día siguiente, cambian de posición según su estrategia. Un día, se reunieron nuevamente y eligieron el lugar donde tenían más fácil acceso a la comida.
Un grupo de primitivas = una población, es decir, un grupo en el algoritmo de optimización
Una primitiva = un individuo en el algoritmo de optimización
A; primitiva La posición de = la posición, genes y otros atributos del individuo en el algoritmo de optimización;
El cambio de posición de una primitiva = la operación de actualización de la población total en el algoritmo de optimización;
Obtener comida de esta ubicación La dificultad de = la función de aptitud óptima en el algoritmo de optimización
Un día = una iteración en el algoritmo de optimización
La ubicación de liquidación final de; la fauna original = la solución del algoritmo de optimización.
El diagrama de flujo del algoritmo de optimización es el siguiente:
Debe existir un estándar para clasificar los algoritmos de optimización. Según diferentes estándares, se obtendrán diferentes resultados.
Permítanme hablar primero sobre los criterios de clasificación que uso (actualizados dinámicamente y agregados cuando se adquiere una nueva comprensión):
Es más fácil de entender según el origen de la clasificación, es decir, qué tipo de fenómeno es. ¿El algoritmo inspirado e inventado? La esencia es la clasificación.
Se puede ver que los algoritmos se pueden dividir a grandes rasgos en aquellos creados por la teoría humana, aprendidos de la biología e inspirados en fenómenos físicos según su origen. Entre ellos, los algoritmos aprendidos de la biología son los más comunes. Otras categorías de algoritmos son menos precisas debido a que los humanos han resumido demasiados fenómenos físicos y algunos se superponen con los fenómenos humanos, pero aún son independientes entre sí.
Se han dividido las categorías, ¿por qué todavía necesitamos clasificarlas así?
Por supuesto que es por el recuento de palabras, ah, por supuesto que es para comprender mejor los principios de aprendizaje y las características de estos algoritmos.
Un algoritmo que aprende de la supervivencia animal debe ser un método bien probado para garantizar su eficiencia y precisión, porque si los animales que utilizan esta estrategia no sobreviven el tiempo suficiente, no podremos. Si se estudia, podremos no podrá aprender su estrategia de supervivencia. (Este es también el sesgo de los sobrevivientes. Solo podemos ver estrategias efectivas, pero las estrategias que no podemos ver no son necesariamente basura. Después de todo, también ha habido eventos destructivos de pequeña probabilidad, como asteroides que chocan contra la Tierra). Cuenta un chiste frío y abre la silla de manos: Un pequeño dinosaurio le dijo a su amiguito, Estoy tan feliz, mi estrella favorita se vuelve cada vez más brillante (Fin). Sin embargo, debido a las limitaciones de los organismos, los algoritmos creados por las personas también tendrán limitaciones: todos los organismos que conocemos viven en un espacio tridimensional, las condiciones que afectan la supervivencia de los organismos son relativamente limitadas. se refleja en los algoritmos. Funciona muy bien al resolver problemas de baja dimensión. Cuando me encuentro con problemas de dimensiones ultraaltas (dimensión gt; 500), es posible que los resultados no sean optimistas, así que no me atrevo a decirlo. cualquier cosa.
La clasificación según el proceso de actualización es relativamente complicada y se basa principalmente en el método de cálculo de actualización de la posición en el proceso del algoritmo de optimización. Según tengo entendido, la operación de actualización de la posición se puede dividir aproximadamente en dos categorías: 1. Seguir la solución óptima 2. No seguir la solución óptima;
O el ejemplo del hombre primitivo anterior. Cada día tiene la oportunidad de ir a cazar a otro lugar ¿Cómo deciden adónde ir hoy?
Si su estrategia es "seguir la solución óptima", entonces la forma en que eligen la ubicación es acercarse al mejor lugar de caza conocido por el grupo (históricamente) de acuerdo con una determinada estrategia (la estrategia de su grupo) punto ideal) o el mejor lugar de caza para el grupo actual (punto ideal de hoy). Por supuesto, su objetivo no es reunirse en el mejor lugar de caza, su objetivo es ver si pueden encontrar un mejor lugar de caza en el camino. No tiene sentido volver a cazar en un lugar de caza que ya ha sido visitado, porque. todos La facilidad para obtener alimentos en cada ubicación es fija. Con una meta, todos avanzarán hacia la meta. Un día, todos se encontrarán cerca del lugar donde están buscando un lugar. Esto es ciertamente algo bueno, pero no favorece la búsqueda de comida posterior y fácilmente cae en la optimización local.
¿Qué es un óptimo local? Supongamos que hay una "Primavera en flor de durazno" en el entorno actual. Desde la perspectiva de Dios, sabemos que este lugar es el lugar más adecuado para que sobrevivan los pueblos primitivos, pero la entrada a este lugar está oculta ". la montaña, como si hubiera luz." Estrecho, sólo accesible a la gente." Este es un lugar difícil de encontrar. Este es un lugar difícil de encontrar. Si los pueblos primitivos no hubieran venido aquí, les sería difícil encontrar esta "Tierra del Melocotón" a medida que se acercaban al lugar más conocido, y a medida que más y más personas se reunieran, la posibilidad de descubrir la "Tierra del Melocotón" se convertiría en cada vez menos. Aunque los pueblos primitivos obtuvieron su solución, no era la "fuente" que estábamos buscando. Después de reunirlos, perdieron la posibilidad de encontrar la "fuente", y este grupo de pueblos primitivos cayó en la optimización local.
Si su estrategia es "no seguir la solución óptima", entonces ¿cuál es su estrategia? No lo sé, ellos deciden. Después de todo, "lo que es" es mucho más pequeño que "lo que no es".
En resumen, sin seguir la solución óptima, el algoritmo tendrá sus propios pasos específicos para actualizar la posición del individuo, ya sea buscando aleatoriamente dentro de su propio vecindario o aprendiendo aleatoriamente de otros. Sin seguir la solución óptima, los pueblos primitivos no deberían reunirse rápidamente en un solo lugar, lo que hace que sus opciones sean más diversas.
Los resultados de clasificar los algoritmos anteriores según el proceso de actualización son los siguientes
Se puede observar que los únicos algoritmos que no siguen la solución óptima son los algoritmos genéticos y de evolución diferencial. algoritmos. Sus estrategias de actualización son similares a los algoritmos genéticos de evolución y recombinación. Por lo tanto, estos algoritmos que no siguen la solución óptima, la mayoría actualizan la posición (gen) según la teoría de la evolución, yo lo llamo algoritmo evolutivo y aquellos algoritmos que siguen la solución óptima de grupo, en su mayoría se basan en la cooperación; y colaboración del grupo, lo llamo Es un algoritmo de inteligencia de enjambre.
En la actualidad, solo he resumido estos dos métodos de clasificación. Si tiene más métodos de clasificación excelentes, podemos intercambiarlos:
Tabla de contenido
Anterior. Una nota sobre el algoritmo de optimización (1) Introducción al algoritmo de optimización
La siguiente nota sobre el algoritmo de optimización (3) Optimización del enjambre de partículas (1)