Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Construir um Algoritmo Genético | Algoritmos Genéticos
Algoritmos Bioinspirados
Seção 2. Capítulo 4
single

single

Desafio: Construir um Algoritmo Genético

Deslize para mostrar o menu

Tarefa

Deslize para começar a programar

Você deve implementar o loop principal de um algoritmo genético para encontrar o valor máximo de uma função matemática. A função a ser otimizada é uma parábola simples: f(x) = -(x - 3)² + 10. Esta função possui um pico claro em x = 3, onde seu valor é 10.

Todas as funções auxiliares (init_population, fitness_function, tournament_selection, arithmetic_crossover, mutate) e a estrutura do loop principal já estão fornecidas.

Sua tarefa é preencher a lógica central do processo evolutivo:

  1. Dentro do loop principal for, primeiro avalie toda a population aplicando a fitness_function a cada indivíduo. Armazene esses valores na lista fitness.
  2. Encontre o índice do indivíduo com melhor desempenho na geração atual e armazene em gen_best_idx. (Dica: np.argmax() é útil aqui).
  3. Dentro do loop while len(new_population) < POP_SIZE:, crie um novo indivíduo:
  • Selecione parent1 usando a função tournament_selection.
  • Selecione parent2 usando a função tournament_selection.
  • Crie um child combinando os pais com a função arithmetic_crossover.
  • Aplique variação ao child usando a função mutate.
  1. Após o loop while, substitua a antiga population pela new_population para completar a geração.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt