Actualmente la gran mayoría de problemas vienen de la mano de soluciones basadas en el uso de las tecnologías, nos vemos envueltos en una lógica que quizá la mayoría de personas desconoce, no le importa o simplemente no entiende. En gran medida, la población sólo hace uso de ellas, y no presenta un interés real en crearla y, por ende, menos en entenderla, sin embargo, una gran parte de las soluciones a problemas complicados proviene de fuentes que están de alguna manera relacionadas a cualquier tipo de persona; hablamos de la misma naturaleza. En esta ocasión veremos algunos ejemplos de cómo la naturaleza sirvió de marco para generar soluciones tecnológicas a diversos problemas, dando paso a la creación de diversos algoritmos.
La idea general de estos algoritmos proviene del proceso de observar cómo funciona la naturaleza frente a algún problema en específico, luego, analizar y entender la lógica detrás de ellos y plasmarla en un código que simule ese comportamiento para posteriormente poder aplicarlo a un entorno similar.
Redes neuronales
Quizá este sea el ejemplo más común. Las redes neuronales son un concepto que fue adquiriendo bastante popularidad estos últimos años debido al desarrollo de sistemas expertos y resulta el ejemplo perfecto de cómo un algoritmo tan útil tiene origen en el funcionamiento del cuerpo humano.
Una red neuronal artificial está implementada con una serie de nodos relacionados entre sí, que emiten y reciben una respuesta, que está siendo evaluada en el trascurso del paso hacia otro nodo, de modo que el peso de su valor se incremente o decremente. El resultado influye en la activación o inhibición de otros nodos. Su comportamiento busca emular en cierta medida a una red neuronal bilógica. La diferencia más resaltante con sistemas que están programados de una forma más ordinaria es que estos se forman y aprenden de sí mismos, si bien existen muchas más variables que actúan en el funcionamiento de una red neuronal artificial, su uso es perfecto en tareas como la computación visual, el reconocimiento de voz y generalmente en problemas que son complicados de expresar con la programación tradicional.
Algoritmos genéticos
Los algoritmos genéticos son otro modelo que tiene un comportamiento basado en una característica bilógica, precisamente en el ADN. La idea general tras su funcionamiento pretende someter a una ‘Población de individuos’ a un proceso de 'Evolución'. Con lo que este busca replicarse, generando una secuencia de ‘Herederos’ que vienen a ser la posible solución a un determinado problema, y estos a su vez realizan la misma labor creando así una cadena de soluciones que se entrelaza con otras ‘Secuencias genéticas’. Estos a su vez son sometidos a variables aleatorias con las cuales pueden ‘Mutar o recombinarse’. Los resultados son consideraos o descartados de acuerdo a algún criterio de modo que se busca tener solo los mejores ‘Genes’ o resultados. Este proceso se replica durante numerosas iteraciones.Uno de sus usos más comunes se da en la solución de funciones no derivables o que requieren una derivación sumamente compleja.
Enjambre de partículas
Este algoritmo simula el comportamiento de un grupo de individuos que se mueven de forma conjunta, pero con un comportamiento individual (Banco de peces, parvada de aves, enjambre de abejas etc.). Dicho de forma general, el conjunto de partículas se mueve en un espacio de soluciones, mientras su desplazamiento a las soluciones está sometida a variables como la posición inicial de la partícula, la velocidad y calidad de la solución. Lo que se busca emulando este comportamiento es que el conjunto de partículas converja a una región donde se encuentren las soluciones óptimas a un problema.
Colonia de hormigas
Este algoritmo de optimización toma su funcionamiento inspirándose en el comportamiento de las hormigas a la hora de buscar alimento. En la naturaleza, al iniciar la tarea de búsqueda de alimentos de una colonia de hormigas, en un principio todas estas se movilizan de manera aleatoria sobre un terreno, hasta que alguna encuentre una fuente de alimento, entonces, esta vuelve a la colonia dejando tras de sí un rastro de feromonas. Entonces cuando otra hormiga encuentre el rastro, es posible que esta deje de movilizarse de forma aleatoria y siga rastro hasta la fuente de comida y en caso de que el recurso sea basto, reforzará el rastro con cada trayecto, caso congtrario si el alimento es escaso la falta de recorrido hará que el rastro simplemente desaparezca. De la misma forma los caminos más cortos son marcados con una cantidad superior de feromonas. Simulando este comportamiento en un esquema de nodos que se van interconectando. Con este algoritmo, se puede obtener soluciones a problemas relacionados con el enrutamiento de vehículos, líneas de producción, inteligencia artificial, optimización de funciones numéricas y demás.
CONCLUSIÓN
Como pudimos ver con los ejemplos mencionados en el presente artículo, el conocimiento obtenido observando y analizando el comportamiento del entorno que nos rodea, dio paso a la creación de algoritmos capaces de emular esta conducta y generar soluciones que no serían posibles de obtener al ser evaluadas de una manera más tradicional. Todas estas conductas naturales tuvieron lugar tras un proceso que tomó años en ser perfeccionado y continua en constante evolución, por lo que es importante tomar muy en cuenta la capacidad de la naturaleza y aprender de ella. De esta forma se busca continuar con un desarrollo tecnológico inspirado en un entorno biológico que siempre nos demuestra lo sorprendente y perfecto que es.
- Debes estar logueado para realizar comentarios