Una introducción a los Algoritmos Evolutivos

in #spanish5 years ago (edited)

Genetic Algorithms
Figura 1: Algoritmos evolutivos

¿Qué son los algoritmos evolutivos?

Desde tiempos remotos la naturaleza ha sido una fuente de inspiración para el hombre, gracias a esto tenemos máquinas que dominan el cielo, mar y tierra. Diversas ramas de la ingeniería han logrado avances inimaginables al basar sus diseños en el mundo natural y la computación no es ninguna excepción.

Los algoritmos evolutivos son métodos computacionales basados en la evolución de sistemas biológicos. Estos emulan diversos fenómenos naturales con el fin de encontrar soluciones a problemas que son difíciles de resolver por métodos convencionales.

Un poco de biología

DNA
Figura 2: ADN

Cada uno de los individuos de nuestro planeta posee una carga genética, esta contiene la información necesaria para su desarrollo y reproducción. Los genes son la unidad genética de almacenamiento, al conjunto de todos los genes se les conoce como genotipo.

Por otra parte, todos los habitantes de nuestro planeta poseen rasgos que los definen, sea el color de ojos, la estatura, el tipo de sangre, entre muchas otras. A todas estas características se les llama fenotipo.

Podemos notar que existe una relación importante entre el genotipo y el fenotipo. pues del genotipo depende en gran medida el fenotipo del individuo: Nuestras características físicas pueden cambiar si modificamos nuestro material genético.

Lo importante es recordar que el genotipo es el conjunto de genes, mientras que el fenotipo es el conjunto de características visibles que un individuo presenta. Dicho de otra manera, el fenotipo es la expresion del genotipo.

¿Cómo funcionan los algoritmos genéticos?

Cells
Figura 3: Evolución en acción

A cada una de las posibles soluciones se les llama individuos (como ya vimos están definidos completamente por su genotipo), al conjunto de todas las posibles soluciones que va a tener nuestro programa le llamamos población.

Una vez teniendo la población los individuos son modificados por uno o varios operadores genéticos, dicho de otra manera, los individuos de nuestra población se cruzan y reciben pequeñas mutaciones. La idea es repetir este proceso hasta encontrar una solución suficientemente buena.

El corazón de los algoritmos evolutivos es la supervivencia del más apto. Los mejores miembros de nuestra población van a tener una mayor probabilidad de heredar su material genético, por lo que en la siguiente generación nuestras posibles soluciones van a ser mejores.

Etapas de los Algoritmos Evolutivos

Stages of Genetic Algorithms
Figura 4: Etapas de los algoritmos evolutivos

Los algoritmos evolutivos están compuestos usualmente de 5 etapas:

  • Inicialización: Creamos la primera generación de individuos de manera aleatoria.
  • Evaluación: Le damos un valor numérico a cada uno de los individuos en función de que tan buenos sean.
  • Selección: Tomamos a dos individuos de la población para cruzarlos y mutarlos.
  • Cruzamiento: Se mezclan los genotipos de dos individuos.
  • Mutación: Aleatoriamente se modifica el material genético de los individuos.

Cada una de estas etapas puede implementarse de distinta forma. La implementación depende del tipo de algoritmo evolutivo que se use, así como en el tipo de problema que estamos afrontando.

Algunos tipos de algoritmos evolutivos

Los algoritmos evolutivos se clasifican de acuerdo con el tipo de genotipo que manipulan, además de los operadores genéticos que usan. Algunos ejemplos son:

  • Algoritmos Genéticos:
    Son el tipo de algoritmos evolutivos más populares. Se caracterizan por usar genotipos binarios, dependen principalmente del cruzamiento y la mutación (Dando prioridad a la mutación). Son particularmente útiles en problemas de optimización.

  • Programación genética:
    La población de estos algoritmos son posibles programas de computadora y la evaluación de la población está determinada por la capacidad de sus individuos de resolver problemas computacionales.

  • Neuroevolución:
    Son similares a la programación genética, solo que sus genotipos representan conexiones de redes neuronales.

Conclusión

Nature as inspiration
Figura 5: Naturaleza como fuente de inspiración

Los algoritmos evolutivos son un ejemplo más del avance científico derivado de la observación de la naturaleza. Resulta extraordinario que problemas que son difíciles (si no imposibles) de resolver por métodos convencionales, puedan ser resueltos por medio de técnicas evolutivas.

La naturaleza es la fuente de todo conocimiento verdadero. Ella tiene su propia lógica, sus propias leyes, no tiene efecto sin causa ni invención sin necesidad.
Leonardo da Vinci

Sort:  

Hola @binarybox

Al ver tu post quede impresioando , recuerda que todo lo que el humano a logrado, construido y descubierto ha sido gracias a la naturelaza.
Compartire tu post para que más gente conozca acerca de los Algoritmos Evolutivos.
: ) Saludos

Congratulations @binarybox! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You received more than 100 upvotes. Your next target is to reach 250 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.029
BTC 67477.32
ETH 3474.01
USDT 1.00
SBD 2.69