Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Klonal Selektionsalgoritme | Kunstige Immunsystemer
Bio-inspirerede Algoritmer

bookKlonal Selektionsalgoritme

Note
Definition

Clonal selection-algoritmen er inspireret af den måde, hvorpå biologiske immunsystemer reagerer på antigener.

Når immunsystemet registrerer en indtrængende, udvælges immunceller med den højeste affinitet, de klones, og der introduceres mutationer for at skabe diversitet. Denne proces, kaldet affinitetsmodning, muliggør tilpasning og hukommelse.

Clonal selection-algoritmen anvender disse principper til optimering:

  • Evaluering af kandidat-løsningers affinitet (løsningskvalitet);
  • Kloning af dem med højere affinitet hyppigere;
  • Mutation af kloner for at generere nye variationer.

Denne proces udforsker løsningsrummet og fokuserer på lovende områder.

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

Diversitet og tilpasning i klonal selektion

Klonal selektionsalgoritmen opretholder diversitet ved at mutere kloner, generere nye kandidat-løsninger og undgå for tidlig konvergens. Gennem gentagen selektion, kloning og mutation—kendt som affinitetsmodning—tilpasser populationen sig over tid. Denne proces balancerer udnyttelse af løsninger af høj kvalitet med udforskning af nye muligheder, hvilket gør algoritmen effektiv til komplekse optimeringsopgaver.

question mark

Hvilke udsagn om klonal selektionsalgoritmen er korrekte?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 6.25

bookKlonal Selektionsalgoritme

Stryg for at vise menuen

Note
Definition

Clonal selection-algoritmen er inspireret af den måde, hvorpå biologiske immunsystemer reagerer på antigener.

Når immunsystemet registrerer en indtrængende, udvælges immunceller med den højeste affinitet, de klones, og der introduceres mutationer for at skabe diversitet. Denne proces, kaldet affinitetsmodning, muliggør tilpasning og hukommelse.

Clonal selection-algoritmen anvender disse principper til optimering:

  • Evaluering af kandidat-løsningers affinitet (løsningskvalitet);
  • Kloning af dem med højere affinitet hyppigere;
  • Mutation af kloner for at generere nye variationer.

Denne proces udforsker løsningsrummet og fokuserer på lovende områder.

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

Diversitet og tilpasning i klonal selektion

Klonal selektionsalgoritmen opretholder diversitet ved at mutere kloner, generere nye kandidat-løsninger og undgå for tidlig konvergens. Gennem gentagen selektion, kloning og mutation—kendt som affinitetsmodning—tilpasser populationen sig over tid. Denne proces balancerer udnyttelse af løsninger af høj kvalitet med udforskning af nye muligheder, hvilket gør algoritmen effektiv til komplekse optimeringsopgaver.

question mark

Hvilke udsagn om klonal selektionsalgoritmen er korrekte?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 3
some-alt