¿Alguna vez has escuchado sobre la genética?, es absurdo hasta cierto punto escucharlo por aquí, ¿no?, pero no es tan descabellado, pues la genética también está basada en algoritmos muy complejos, realmente complejos.
Imagina esto, tu abuelo y tu abuela, obviamente de familias distintas tuvieron a tu padre, y tu padre con tu madre te tuvieron a ti, es también obvio que tu madre tiene sus propios padres; y quizá ella heredó algo de sus padres, pero tu padre no, hasta que naciste tú. "Abueleaste", dirían en mi humilde pueblo, es decir, tuviste una característica genética que le llevó a familia algunas generaciones "fallidas", es decir, ni tus tíos, ni tu padre, ni tus hermanos obtuvieron esa característica extra que tú tienes. Puede ser desde una marca de nacimiento, hasta color de ojos, cabello, y sin fin de tonterías que las mamás encuentran para justificar por qué su hijo tiene características que "su padre" no (eso sonó a que eres hijo del lechero).
En fin, eso es un algoritmo genético, y en esta ocasión traigo un programa bastante relacionado con el tema, sin embargo es más básico que las morras que dicen "¡WEEEEEEY, NOOOOO!".
Incluye una población, que en este caso sería nuestra frase, nuestra selección sería toda la población, pues queremos cambiar de posición cada una de las letras, pero como no todas cambian siempre, diremos que nuestra selección es variable desde 0 hasta la longitud de nuestra frase. También tenemos un cruce implícito, pues si bien no tenemos una selección fija, tampoco tenemos un cruce distinguible, POR ESO DECIMOS QUE ES PARECIDO AL ALGORITMO GENÉRICO mas no representa la genética en su esplendor.
Y nuestra mutación sería el producto de lo que ocurrió en el cruce, normalmente la mutación es la probabilidad de que ocurra un cambio, pero como nuestra probabilidad está ligada únicamente a la generación de una número aleatorio no tenemos definido un % de mutación, solo tenemos nuestro producto final que obtendrá la palabra idéntica una vez generadas frases al azar con todos los caracteres que la conforman, toma en cuenta que entre más larga sea la palabra, más larga será la espera para que encuentre una resolución.
También podemos decir el el algoritmo genético se relaciona aún más si colocamos un contador de generaciones para saber en cuál fue donde se obtuvo el resultado esperado.
Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Dale clic en el logo del lenguaje de programación que sea de tu gusto y descarga el código.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.
Gracias, lo ocupabas. Nuevo sub
ResponderBorrarPor nada, Oliver. Manda mensaje cuando necesites ayuda y comparte para que tus amigos y/o compañeros también se vean beneficiados. Saludos.
Borrar