Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Klonaalinen Valinta-Algoritmi | Keinotekoiset Immuunijärjestelmät
Bioinspiroituneet Algoritmit

bookKlonaalinen Valinta-Algoritmi

Note
Määritelmä

Kloonivalinta-algoritmi on saanut inspiraationsa siitä, miten biologiset immuunijärjestelmät reagoivat antigeeneihin.

Kun immuunijärjestelmäsi havaitsee tunkeutujan, se valitsee immuunisolut, joilla on korkein affiniteetti, kloonaa ne ja aiheuttaa mutaatioita monimuotoisuuden luomiseksi. Tätä prosessia kutsutaan affiniteetin kypsymiseksi, ja se mahdollistaa sopeutumisen ja muistin.

Kloonivalinta-algoritmi hyödyntää näitä periaatteita optimoinnissa:

  • Arvioi ehdokasratkaisujen affiniteetti (ratkaisun laatu);
  • Kloonaa korkeamman affiniteetin omaavat useammin;
  • Mutatoi klooneja uusien variaatioiden tuottamiseksi.

Tämä prosessi tutkii ratkaisutilaa ja keskittyy lupaaviin alueisiin.

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

Monimuotoisuus ja sopeutuminen kloonausvalinnassa

Kloonausvalinta-algoritmi ylläpitää monimuotoisuutta mutatoimalla klooneja, tuottaen uusia ehdokasratkaisuja ja estäen ennenaikaisen konvergenssin. Toistuvan valinnan, kloonauksen ja mutaation kautta—tunnetaan nimellä affiniteetin kypsyminen—populaatio sopeutuu ajan myötä. Tämä prosessi tasapainottaa hyvien ratkaisujen hyödyntämisen ja uusien mahdollisuuksien tutkimisen, tehden algoritmista tehokkaan monimutkaisissa optimointitehtävissä.

question mark

Mitkä väittämät kloonausvalinta-algoritmista ovat oikeita?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain how the clonal selection algorithm differs from genetic algorithms?

What are some real-world applications of the clonal selection algorithm?

Can you walk me through the code and explain each step in detail?

Awesome!

Completion rate improved to 6.25

bookKlonaalinen Valinta-Algoritmi

Pyyhkäise näyttääksesi valikon

Note
Määritelmä

Kloonivalinta-algoritmi on saanut inspiraationsa siitä, miten biologiset immuunijärjestelmät reagoivat antigeeneihin.

Kun immuunijärjestelmäsi havaitsee tunkeutujan, se valitsee immuunisolut, joilla on korkein affiniteetti, kloonaa ne ja aiheuttaa mutaatioita monimuotoisuuden luomiseksi. Tätä prosessia kutsutaan affiniteetin kypsymiseksi, ja se mahdollistaa sopeutumisen ja muistin.

Kloonivalinta-algoritmi hyödyntää näitä periaatteita optimoinnissa:

  • Arvioi ehdokasratkaisujen affiniteetti (ratkaisun laatu);
  • Kloonaa korkeamman affiniteetin omaavat useammin;
  • Mutatoi klooneja uusien variaatioiden tuottamiseksi.

Tämä prosessi tutkii ratkaisutilaa ja keskittyy lupaaviin alueisiin.

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

Monimuotoisuus ja sopeutuminen kloonausvalinnassa

Kloonausvalinta-algoritmi ylläpitää monimuotoisuutta mutatoimalla klooneja, tuottaen uusia ehdokasratkaisuja ja estäen ennenaikaisen konvergenssin. Toistuvan valinnan, kloonauksen ja mutaation kautta—tunnetaan nimellä affiniteetin kypsyminen—populaatio sopeutuu ajan myötä. Tämä prosessi tasapainottaa hyvien ratkaisujen hyödyntämisen ja uusien mahdollisuuksien tutkimisen, tehden algoritmista tehokkaan monimutkaisissa optimointitehtävissä.

question mark

Mitkä väittämät kloonausvalinta-algoritmista ovat oikeita?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3
some-alt