Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Construir un Algoritmo Genético | Algoritmos Genéticos
Algoritmos Bioinspirados
Sección 2. Capítulo 4
single

single

Desafío: Construir un Algoritmo Genético

Desliza para mostrar el menú

Tarea

Desliza para comenzar a programar

Se te asigna la tarea de implementar el bucle principal de un algoritmo genético para encontrar el valor máximo de una función matemática. La función a optimizar es una parábola simple: f(x) = -(x - 3)² + 10. Esta función tiene un pico claro en x = 3, donde su valor es 10.

Todas las funciones auxiliares (init_population, fitness_function, tournament_selection, arithmetic_crossover, mutate) y la estructura del bucle principal ya están proporcionadas.

Tu tarea consiste en completar la lógica central del proceso evolutivo:

  1. Dentro del bucle principal for, primero debes evaluar toda la population aplicando la fitness_function a cada individuo. Almacena estos puntajes en la lista fitness.
  2. Encuentra el índice del individuo con mejor desempeño en la generación actual y guárdalo en gen_best_idx. (Sugerencia: np.argmax() es útil aquí).
  3. Dentro del bucle while len(new_population) < POP_SIZE:, debes crear un nuevo individuo mediante:
  • Selección de parent1 usando la función tournament_selection.
  • Selección de parent2 usando la función tournament_selection.
  • Creación de un child combinando los padres con la función arithmetic_crossover.
  • Aplicación de variación al child usando la función mutate.
  1. Después del bucle while, reemplaza la antigua population con la new_population para completar la generación.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 4
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

some-alt