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
Quizzes & Challenges
Quizzes
Challenges
/
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?

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