Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Klonal Selektionsalgoritm | Artificiella Immunsystem
Bioinspirerade Algoritmer

bookKlonal Selektionsalgoritm

Note
Definition

Klonal selektionsalgoritmen är inspirerad av hur biologiska immunsystem svarar på antigener.

När immunsystemet upptäcker en inkräktare väljs immunceller med högst affinitet ut, klonas och utsätts för mutationer för att skapa mångfald. Denna process, kallad affinitetsmognad, möjliggör anpassning och minne.

Klonal selektionsalgoritmen använder dessa idéer för optimering:

  • Utvärdera kandidatlösningar utifrån deras affinitet (lösningskvalitet);
  • Klona de med högre affinitet oftare;
  • Mutera kloner för att generera nya variationer.

Denna process utforskar lösningsrymden och fokuserar på lovande områden.

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

Mångfald och anpassning i klonalt urval

Klonalt urvalsalgoritmen upprätthåller mångfald genom att mutera kloner, vilket genererar nya kandidatlösningar och undviker för tidig konvergens. Genom upprepad selektion, kloning och mutation—kallat affinitetsmognad—anpassar sig populationen över tid. Denna process balanserar exploatering av högkvalitativa lösningar med utforskning av nya möjligheter, vilket gör algoritmen effektiv för komplexa optimeringsproblem.

question mark

Vilka påståenden om klonalt urvalsalgoritmen är korrekta?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 6.25

bookKlonal Selektionsalgoritm

Svep för att visa menyn

Note
Definition

Klonal selektionsalgoritmen är inspirerad av hur biologiska immunsystem svarar på antigener.

När immunsystemet upptäcker en inkräktare väljs immunceller med högst affinitet ut, klonas och utsätts för mutationer för att skapa mångfald. Denna process, kallad affinitetsmognad, möjliggör anpassning och minne.

Klonal selektionsalgoritmen använder dessa idéer för optimering:

  • Utvärdera kandidatlösningar utifrån deras affinitet (lösningskvalitet);
  • Klona de med högre affinitet oftare;
  • Mutera kloner för att generera nya variationer.

Denna process utforskar lösningsrymden och fokuserar på lovande områden.

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

Mångfald och anpassning i klonalt urval

Klonalt urvalsalgoritmen upprätthåller mångfald genom att mutera kloner, vilket genererar nya kandidatlösningar och undviker för tidig konvergens. Genom upprepad selektion, kloning och mutation—kallat affinitetsmognad—anpassar sig populationen över tid. Denna process balanserar exploatering av högkvalitativa lösningar med utforskning av nya möjligheter, vilket gör algoritmen effektiv för komplexa optimeringsproblem.

question mark

Vilka påståenden om klonalt urvalsalgoritmen är korrekta?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 3
some-alt