Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Algoritmo di Selezione Clonale | Sistemi Immunitari Artificiali
Algoritmi Bio-Ispirati

bookAlgoritmo di Selezione Clonale

Note
Definizione

L'algoritmo di selezione clonale è ispirato al modo in cui i sistemi immunitari biologici rispondono agli antigeni.

Quando il sistema immunitario rileva un invasore, seleziona le cellule immunitarie con la massima affinità, le clona e introduce mutazioni per creare diversità. Questo processo, chiamato maturazione dell'affinità, consente adattamento e memoria.

L'algoritmo di selezione clonale utilizza queste idee per l'ottimizzazione:

  • Valutazione delle soluzioni candidate in base alla loro affinità (qualità della soluzione);
  • Clonazione più frequente di quelle con affinità maggiore;
  • Mutazione dei cloni per generare nuove variazioni.

Questo processo esplora lo spazio delle soluzioni e si concentra sulle aree più promettenti.

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

Diversità e Adattamento nella Selezione Clonale

L'algoritmo di selezione clonale mantiene la diversità mutando i cloni, generando nuove soluzioni candidate ed evitando la convergenza prematura. Attraverso la selezione ripetuta, la clonazione e la mutazione—nota come maturazione dell'affinità—la popolazione si adatta nel tempo. Questo processo bilancia l'esploitazione di soluzioni di alta qualità con l'esplorazione di nuove possibilità, rendendo l'algoritmo efficace per compiti di ottimizzazione complessi.

question mark

Quali affermazioni sull'algoritmo di selezione clonale sono corrette?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

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 di Selezione Clonale

Scorri per mostrare il menu

Note
Definizione

L'algoritmo di selezione clonale è ispirato al modo in cui i sistemi immunitari biologici rispondono agli antigeni.

Quando il sistema immunitario rileva un invasore, seleziona le cellule immunitarie con la massima affinità, le clona e introduce mutazioni per creare diversità. Questo processo, chiamato maturazione dell'affinità, consente adattamento e memoria.

L'algoritmo di selezione clonale utilizza queste idee per l'ottimizzazione:

  • Valutazione delle soluzioni candidate in base alla loro affinità (qualità della soluzione);
  • Clonazione più frequente di quelle con affinità maggiore;
  • Mutazione dei cloni per generare nuove variazioni.

Questo processo esplora lo spazio delle soluzioni e si concentra sulle aree più promettenti.

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

Diversità e Adattamento nella Selezione Clonale

L'algoritmo di selezione clonale mantiene la diversità mutando i cloni, generando nuove soluzioni candidate ed evitando la convergenza prematura. Attraverso la selezione ripetuta, la clonazione e la mutazione—nota come maturazione dell'affinità—la popolazione si adatta nel tempo. Questo processo bilancia l'esploitazione di soluzioni di alta qualità con l'esplorazione di nuove possibilità, rendendo l'algoritmo efficace per compiti di ottimizzazione complessi.

question mark

Quali affermazioni sull'algoritmo di selezione clonale sono corrette?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 3
some-alt