Klonal Selektionsalgoritme
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.
123456789101112131415161718192021222324252627282930313233import 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])])
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.
Tak for dine kommentarer!
Spørg AI
Spørg AI
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
Klonal Selektionsalgoritme
Stryg for at vise menuen
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.
123456789101112131415161718192021222324252627282930313233import 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])])
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.
Tak for dine kommentarer!