dissabte, 16 de febrer del 2019

Los algoritmos genéticos

Qué son los algoritmos genéticos?

Un algoritmo es una serie de pasos que describen el proceso de búsqueda de una solución a un problema concreto
Y un algoritmo genético es cuando se usan mecanismos que simulan la evolución de las especies de la biología.

Cadena de ADN.

Cómo se implementa esto con fórmulas matemáticas?

Lo que haces es transformar la resolución de cualquier problema en un conjunto de soluciones en el que cada una de ellas funciona como si fuera un individuo
Para poder aplicar algoritmos genéticos debes ser capaz de convertir las soluciones a tu problema en vectores matemáticos.
Los algoritmos genéticos tienen como punto de partida un conjunto de soluciones aleatorio. Una vez que tengo ese conjunto de soluciones inicial aleatorio aplico lo que se llama una función de ajuste o función objetivo.


Para que se implementa estas fórmulas? 

Esa función objetivo sirve para clasificar las soluciones aleatorias, reproduzco las soluciones, como se reproducen los individuos en una población, e implemento los tres mecanismos que intervienen en la selección de las especies: la reproducción en sí, el cruzamiento y la mutación.


¿Qué son los algoritmos genéticos?
Para imitar la reproducción hay diferentes mecanismos matemáticos, uno de ellos es a partir de la función objetivo, es decir que se reproduzcan más aquellas soluciones que son mejores y por lo tanto las que son peores desaparecerán; al aplicar el cruzamiento combinas unas soluciones con otras.
Una vez que he aplicado todo esto, de nuevo hay que calcular la función objetivo.
Cuando estás buscando resolver problemas en un campo enorme no es viable el procedimiento enumerativo de ir de una en una porque puedes tener millones y millones de posibles soluciones. Estos algoritmos genéticos combinan la aleatoriedad porque se inician con un conjunto de soluciones totalmente aleatorio pero luego también están dirigidas porque buscan el resultado más óptimo. Y gracias a ello encuentras soluciones muy eficientes en muy poco tiempo de computación.