Klonale Selectie-Algoritme
Het klonale selectie-algoritme is geïnspireerd op de manier waarop biologische immuunsystemen reageren op antigenen.
Wanneer het immuunsysteem een indringer detecteert, selecteert het immuuncellen met de hoogste affiniteit, kloont deze en introduceert mutaties om diversiteit te creëren. Dit proces, affiniteitsrijping genoemd, maakt aanpassing en geheugen mogelijk.
Het klonale selectie-algoritme past deze principes toe voor optimalisatie:
- Evaluatie van kandidaatoplossingen op hun affiniteit (oplossingskwaliteit);
- Vaker klonen van kandidaten met hogere affiniteit;
- Muteren van klonen om nieuwe variaties te genereren.
Dit proces verkent de oplossingsruimte en richt zich op veelbelovende gebieden.
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])])
Diversiteit en Aanpassing in Clonale Selectie
Het clonale selectie-algoritme behoudt diversiteit door het muteren van klonen, waardoor nieuwe kandidaatoplossingen worden gegenereerd en voortijdige convergentie wordt voorkomen. Door herhaalde selectie, klonering en mutatie—bekend als affiniteitsmaturatie—past de populatie zich in de loop van de tijd aan. Dit proces balanceert exploitatie van hoogwaardige oplossingen met exploratie van nieuwe mogelijkheden, waardoor het algoritme effectief is voor complexe optimalisatietaken.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 6.25
Klonale Selectie-Algoritme
Veeg om het menu te tonen
Het klonale selectie-algoritme is geïnspireerd op de manier waarop biologische immuunsystemen reageren op antigenen.
Wanneer het immuunsysteem een indringer detecteert, selecteert het immuuncellen met de hoogste affiniteit, kloont deze en introduceert mutaties om diversiteit te creëren. Dit proces, affiniteitsrijping genoemd, maakt aanpassing en geheugen mogelijk.
Het klonale selectie-algoritme past deze principes toe voor optimalisatie:
- Evaluatie van kandidaatoplossingen op hun affiniteit (oplossingskwaliteit);
- Vaker klonen van kandidaten met hogere affiniteit;
- Muteren van klonen om nieuwe variaties te genereren.
Dit proces verkent de oplossingsruimte en richt zich op veelbelovende gebieden.
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])])
Diversiteit en Aanpassing in Clonale Selectie
Het clonale selectie-algoritme behoudt diversiteit door het muteren van klonen, waardoor nieuwe kandidaatoplossingen worden gegenereerd en voortijdige convergentie wordt voorkomen. Door herhaalde selectie, klonering en mutatie—bekend als affiniteitsmaturatie—past de populatie zich in de loop van de tijd aan. Dit proces balanceert exploitatie van hoogwaardige oplossingen met exploratie van nieuwe mogelijkheden, waardoor het algoritme effectief is voor complexe optimalisatietaken.
Bedankt voor je feedback!