¿Qué es un algoritmo de colonia de abejas artificiales y cómo se puede utilizar para la optimización de estructuras de celosía?

En los últimos 40 o 50 años se han propuesto muchos algoritmos que imitan el comportamiento de algunos seres vivos, o de los “mecanismos” de la vida. A menudo, estos algoritmos se dedican a tareas de optimización relacionadas con problemas de optimización de gran tamaño o muy complejos. Probablemente los precursores y más populares (en mi humilde opinión) son los algoritmos genéticos (GA), el recocido simulado (SA) y las estrategias de evolución (ES). A menudo están implícitamente vinculados al área general de Inteligencia Artificial (IA) porque se aplican a problemas que se encuentran en el catálogo de preguntas de IA.

Entre los algoritmos de seguimiento de GA, SA y otros algoritmos “pioneros” inspirados en sistemas biológicos, se encuentran la “optimización de colonias de hormigas” (ACO) y la “optimización de colonias de abejas” (o algoritmo de colonias de abejas) (BCO). Las colonias reales de hormigas y abejas dan inmediatamente la idea de paralelismo o concurrencia, muchos miles de agentes similares que realizan repetidamente las mismas tareas aburridas un millón de veces 🙂, por lo que el paradigma parece encajar en problemas de optimización de alta dimensión con muchos máximos y mínimos.

Sucede que el diseño de la estructura del braguero puede estar relacionado con un problema de optimización convexo, como se explica en https://ocw.mit.edu/courses/sloa…. Dada esta relación, puede realizar diseños con cualquier algoritmo de optimización adecuado, como Bee Colony.

Ant Colony Optimization estudia sistemas artificiales que se inspiran en el comportamiento de las colonias de hormigas reales y que se utilizan para resolver problemas de optimización discretos. Consulte Acerca de ACO para obtener un breve resumen sobre ACO y ACO: Publicaciones para obtener enlaces a algunas publicaciones relevantes. Obviamente también hay algoritmos de optimización de colonias de hormigas – Wikipedia para consultar.

Con respecto a la optimización de colonias de abejas, una muy buena descripción se encuentra en el algoritmo de colonias de abejas artificiales (mejor que Wikipedia en mi humilde opinión …). En BCO, una colonia de abejas recolectoras artificiales (agentes) busca fuentes ricas de alimentos artificiales (buenas soluciones para un problema dado). Para aplicar BCO, el problema de optimización considerado (diseño de estructura de celosía) se convierte primero en el problema de encontrar el mejor vector de parámetros que minimice una función objetivo. Luego, las abejas artificiales descubren al azar una población de vectores de soluciones iniciales y luego las mejoran iterativamente empleando las estrategias: avanzar hacia mejores soluciones por medio de un mecanismo de búsqueda de vecinos mientras abandonan las soluciones pobres.

Dado que el diseño de la estructura de celosía es un problema de optimización convexo, de hecho un problema cuadrático convexo, existen algoritmos eficientes y exactos para obtener el óptimo. Sin embargo, si las estructuras son muy grandes, y las matrices de equilibrio involucradas en la definición del problema son muy grandes, puede ser más eficiente aplicar un algoritmo de optimización aproximado como BCO. O, al menos, probablemente sea ​​más divertido programar y usar BCO que aplicar ciegamente un paquete numérico para resolver problemas convexos 🙂

More Interesting

Cómo fusionar dos arreglos ordenados

¿Es un nodo raíz un nodo interno en una estructura de datos de árbol?

¿Qué estructuras de datos admiten la inserción, eliminación y selección de un elemento aleatorio con un límite de complejidad de tiempo [matemática] O (1) [/ matemática]?

¿Cuáles son los posibles algoritmos utilizados en los juegos de carrera sin fin?

Dadas las coordenadas de 3 puntos, cómo encontrar el centro del círculo formado por estos puntos con alta precisión. Para lograr una alta precisión, debe haber algún proceso de división. ¿Hay alguna forma de hacerlo?

Cómo demostrar que puedes ir de C a L con secuencias de vuelos

¿Cómo podemos revertir una pila usando solo las operaciones push () y pop () sin usar ningún DS secundario?

¿Qué es un algoritmo eficiente para encontrar un número mágico?

¿Qué alternativas hay para los algoritmos de escalada?

¿Qué tan bueno es quicksort y cadenas?

¿Los mismos algoritmos dan resultados diferentes en diferentes paquetes / idiomas?

¿Por qué el NN recurrente agrega el paso T-1 a la entrada actual pero se concatena?

¿Encontrar el número máximo de reinas que puedes colocar en un tablero de ajedrez modificado con paredes negras? Por favor, discuta el enfoque del algoritmo, la implementación y la complejidad en detalles.

Dados N cajas grandes y M cajas pequeñas de diferentes tamaños, ¿cómo elegir una caja grande óptima para empacar todas las cajas más pequeñas?

¿Cuál es una versión más amigable para principiantes de CLRS para algoritmos de aprendizaje? ¿Estaría rompiendo la entrevista de codificación?