Sí, este es el campo de los algoritmos evolutivos, un subconjunto del campo de la vida artificial. Los ejemplos principales son los algoritmos genéticos y la programación genética.
Funciona así:
Tiene un problema que desea resolver, en este caso, un algoritmo de clasificación. Desarrolla algún tipo de codificación de soluciones. Por ejemplo, una cadena de números o un árbol de nodos, que de alguna manera representa una solución.
Luego creas una población de ‘soluciones’ aleatorias. Usted prueba cada uno para determinar qué tan bien resuelve el problema. Esto se hace con una función de fitness. Ahora, ha asignado un valor a cada solución de acuerdo con qué tan bien resuelve el problema.
- ¿Cuál es la mejor aplicación de pago en India?
- ¿Cuáles son las mejores aplicaciones indias?
- ¿Qué es la pila de tecnología de Udacity?
- ¿Qué aplicaciones son más útiles para los efectos de video?
- ¿Por qué una aplicación de transmisión de música india no puede proporcionar una interfaz de usuario fácil de usar y un servicio sencillo como Spotify?
Obviamente, dado que la población inicial era cadenas aleatorias o árboles aleatorios, las soluciones serán muy malas. Pero aquí viene la analogía de la selección natural. Algunas soluciones serán un poco mejores que otras . Selecciona soluciones individuales de la población, al azar, para ser padres, pero la probabilidad de que un individuo sea elegido es proporcional a su aptitud.
Las soluciones seleccionadas se crean, usando algo como un operador cruzado (que básicamente es cortar y pegar de ambos ‘padres’), agregar algunas perturbaciones a la solución (mutación) y repetir hasta que tenga una nueva población (bueno, generación). Ahora pruebe todos estos nuevos individuos contra la función de aptitud física.
Enjuague y repita durante tantas generaciones como sea necesario.
Estadísticamente, la nueva generación se realiza mezclando los datos de lo mejor de la población anterior.
Lo que encontrará es que el estado físico promedio aumenta con el tiempo. Después de muchas generaciones, se habrán encontrado soluciones decentes, si no óptimas.
A veces, estas soluciones descubiertas son formas completamente intuitivas de resolver el problema, pero funcionan. Así es como funciona la evolución. Tiene poblaciones de individuos y elimina a aquellos que son menos aptos para la supervivencia. En el análogo artificial, supervivencia significa “resolver el problema deseado”.
Aquí hay un ejemplo de cómo se puede codificar una ecuación en un árbol:
Aquí hay un ejemplo de cómo criar dos padres para crear hijos que son una mezcla de los dos:
Y aquí hay un gráfico típico que muestra la mejora del estado físico promedio a lo largo de las generaciones:
Tengo un título en algoritmos evolutivos y los he usado mucho para resolver una amplia variedad de tareas, desde la locomoción de robots hasta los oponentes de juegos de IA y la optimización de gráficos.
Básicamente, siempre que pueda encontrar una codificación desde la representación evolutiva hasta la solución, y una función de adecuación adecuada que encapsule qué es una buena solución, puede usar estos algoritmos para encontrar soluciones automáticamente. No garantizan la mejor solución (depende de la tarea y la codificación), pero la mayoría de las veces las soluciones que encuentra son lo suficientemente buenas.