Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Algoritmo de Seleção Clonal | Sistemas Imunológicos Artificiais
Algoritmos Bioinspirados

bookAlgoritmo de Seleção Clonal

Note
Definição

O algoritmo de seleção clonal é inspirado na forma como os sistemas imunológicos biológicos respondem a antígenos.

Quando o sistema imunológico detecta um invasor, ele seleciona as células imunes com maior afinidade, clona essas células e introduz mutações para criar diversidade. Esse processo, chamado de maturação por afinidade, possibilita adaptação e memória.

O algoritmo de seleção clonal utiliza esses conceitos para otimização:

  • Avaliação das soluções candidatas quanto à sua afinidade (qualidade da solução);
  • Clonagem mais frequente das soluções com maior afinidade;
  • Mutação dos clones para gerar novas variações.

Esse processo explora o espaço de soluções e foca em áreas promissoras.

123456789101112131415161718192021222324252627282930313233
import numpy as np # Objective function: maximize f(x) = -x**2 + 5 def affinity(x): return -x**2 + 5 # Initial candidate solutions population = np.random.uniform(-5, 5, size=10) # --- Main Clonal Selection Loop --- for generation in range(5): # Evaluate affinities affinities = np.array([affinity(ind) for ind in population]) # Select top candidates num_selected = 4 selected_indices = affinities.argsort()[-num_selected:] selected = population[selected_indices] # Clone proportionally to affinity num_clones = [int(5 * (affinity(ind) - min(affinities)) / (max(affinities) - min(affinities) + 1e-6)) + 1 for ind in selected] clones = np.concatenate([[ind] * n for ind, n in zip(selected, num_clones)]) # Mutation: add small noise mutation_strength = 0.1 mutated_clones = clones + np.random.normal(0, mutation_strength, size=clones.shape) # Form new population population = np.concatenate([selected, mutated_clones]) # Keep population size fixed population = np.random.choice(population, size=10, replace=False) print("Best solution:", population[np.argmax([affinity(ind) for ind in population])])
copy

Diversidade e Adaptação na Seleção Clonal

O algoritmo de seleção clonal mantém a diversidade ao mutar clones, gerando novas soluções candidatas e evitando a convergência prematura. Por meio da seleção repetida, clonagem e mutação—conhecida como maturação por afinidade—a população se adapta ao longo do tempo. Esse processo equilibra a exploração de soluções de alta qualidade com a exploração de novas possibilidades, tornando o algoritmo eficaz para tarefas complexas de otimização.

question mark

Quais afirmações sobre o algoritmo de seleção clonal estão corretas?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Suggested prompts:

Can you explain how the clonal selection algorithm differs from genetic algorithms?

What are some real-world applications of the clonal selection algorithm?

Can you walk me through the code and explain each step in detail?

Awesome!

Completion rate improved to 6.25

bookAlgoritmo de Seleção Clonal

Deslize para mostrar o menu

Note
Definição

O algoritmo de seleção clonal é inspirado na forma como os sistemas imunológicos biológicos respondem a antígenos.

Quando o sistema imunológico detecta um invasor, ele seleciona as células imunes com maior afinidade, clona essas células e introduz mutações para criar diversidade. Esse processo, chamado de maturação por afinidade, possibilita adaptação e memória.

O algoritmo de seleção clonal utiliza esses conceitos para otimização:

  • Avaliação das soluções candidatas quanto à sua afinidade (qualidade da solução);
  • Clonagem mais frequente das soluções com maior afinidade;
  • Mutação dos clones para gerar novas variações.

Esse processo explora o espaço de soluções e foca em áreas promissoras.

123456789101112131415161718192021222324252627282930313233
import numpy as np # Objective function: maximize f(x) = -x**2 + 5 def affinity(x): return -x**2 + 5 # Initial candidate solutions population = np.random.uniform(-5, 5, size=10) # --- Main Clonal Selection Loop --- for generation in range(5): # Evaluate affinities affinities = np.array([affinity(ind) for ind in population]) # Select top candidates num_selected = 4 selected_indices = affinities.argsort()[-num_selected:] selected = population[selected_indices] # Clone proportionally to affinity num_clones = [int(5 * (affinity(ind) - min(affinities)) / (max(affinities) - min(affinities) + 1e-6)) + 1 for ind in selected] clones = np.concatenate([[ind] * n for ind, n in zip(selected, num_clones)]) # Mutation: add small noise mutation_strength = 0.1 mutated_clones = clones + np.random.normal(0, mutation_strength, size=clones.shape) # Form new population population = np.concatenate([selected, mutated_clones]) # Keep population size fixed population = np.random.choice(population, size=10, replace=False) print("Best solution:", population[np.argmax([affinity(ind) for ind in population])])
copy

Diversidade e Adaptação na Seleção Clonal

O algoritmo de seleção clonal mantém a diversidade ao mutar clones, gerando novas soluções candidatas e evitando a convergência prematura. Por meio da seleção repetida, clonagem e mutação—conhecida como maturação por afinidade—a população se adapta ao longo do tempo. Esse processo equilibra a exploração de soluções de alta qualidade com a exploração de novas possibilidades, tornando o algoritmo eficaz para tarefas complexas de otimização.

question mark

Quais afirmações sobre o algoritmo de seleção clonal estão corretas?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3
some-alt