Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Klonales Selektionsalgorithmus | Künstliche Immunsysteme
Bio-inspirierte Algorithmen

bookKlonales Selektionsalgorithmus

Note
Definition

Der Klonale Selektionsalgorithmus ist von der Reaktion biologischer Immunsysteme auf Antigene inspiriert.

Wenn das Immunsystem einen Eindringling erkennt, wählt es Immunzellen mit der höchsten Affinität aus, klont diese und führt Mutationen ein, um Vielfalt zu erzeugen. Dieser Prozess, genannt Affinitätsreifung, ermöglicht Anpassung und Gedächtnis.

Der Klonale Selektionsalgorithmus nutzt diese Prinzipien zur Optimierung:

  • Bewertung der Kandidatenlösungen hinsichtlich ihrer Affinität (Lösungsqualität);
  • Häufigeres Klonen derjenigen mit höherer Affinität;
  • Mutation der Klone zur Erzeugung neuer Varianten.

Dieser Prozess erkundet den Lösungsraum und konzentriert sich auf vielversprechende Bereiche.

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ät und Anpassung im Klonalen Selektionsalgorithmus

Der klonale Selektionsalgorithmus erhält die Diversität durch Mutation von Klonen, wodurch neue Kandidatenlösungen erzeugt und vorzeitige Konvergenz vermieden werden. Durch wiederholte Selektion, Klonierung und Mutation – bekannt als Affinitätsreifung – passt sich die Population im Laufe der Zeit an. Dieser Prozess balanciert die Ausnutzung hochwertiger Lösungen mit der Erkundung neuer Möglichkeiten und macht den Algorithmus effektiv für komplexe Optimierungsaufgaben.

question mark

Welche Aussagen über den klonalen Selektionsalgorithmus sind korrekt?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 6.25

bookKlonales Selektionsalgorithmus

Swipe um das Menü anzuzeigen

Note
Definition

Der Klonale Selektionsalgorithmus ist von der Reaktion biologischer Immunsysteme auf Antigene inspiriert.

Wenn das Immunsystem einen Eindringling erkennt, wählt es Immunzellen mit der höchsten Affinität aus, klont diese und führt Mutationen ein, um Vielfalt zu erzeugen. Dieser Prozess, genannt Affinitätsreifung, ermöglicht Anpassung und Gedächtnis.

Der Klonale Selektionsalgorithmus nutzt diese Prinzipien zur Optimierung:

  • Bewertung der Kandidatenlösungen hinsichtlich ihrer Affinität (Lösungsqualität);
  • Häufigeres Klonen derjenigen mit höherer Affinität;
  • Mutation der Klone zur Erzeugung neuer Varianten.

Dieser Prozess erkundet den Lösungsraum und konzentriert sich auf vielversprechende Bereiche.

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ät und Anpassung im Klonalen Selektionsalgorithmus

Der klonale Selektionsalgorithmus erhält die Diversität durch Mutation von Klonen, wodurch neue Kandidatenlösungen erzeugt und vorzeitige Konvergenz vermieden werden. Durch wiederholte Selektion, Klonierung und Mutation – bekannt als Affinitätsreifung – passt sich die Population im Laufe der Zeit an. Dieser Prozess balanciert die Ausnutzung hochwertiger Lösungen mit der Erkundung neuer Möglichkeiten und macht den Algorithmus effektiv für komplexe Optimierungsaufgaben.

question mark

Welche Aussagen über den klonalen Selektionsalgorithmus sind korrekt?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
some-alt