Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Алгоритм Клонального Відбору | Штучні Імунні Системи
Біоінспіровані алгоритми

bookАлгоритм Клонального Відбору

Note
Визначення

Алгоритм клонального відбору натхненний тим, як біологічна імунна система реагує на антигени.

Коли імунна система виявляє чужорідний об'єкт, вона обирає імунні клітини з найвищою афінністю, клонує їх і вводить мутації для створення різноманіття. Цей процес, що називається дозріванням афінності, забезпечує адаптацію та пам'ять.

Алгоритм клонального відбору використовує ці ідеї для оптимізації:

  • Оцінка кандидатних рішень за їхньою афінністю (якість рішення);
  • Частіше клонування рішень з вищою афінністю;
  • Мутація клонів для створення нових варіацій.

Цей процес досліджує простір рішень і зосереджується на перспективних областях.

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

Різноманітність і адаптація в алгоритмі клонального відбору

Алгоритм клонального відбору підтримує різноманітність шляхом мутації клонів, створюючи нові кандидатні розв'язки та запобігаючи передчасній збіжності. Завдяки повторюваному відбору, клонуванню та мутації — процесу, відомому як дозрівання афінності — популяція адаптується з часом. Цей процес забезпечує баланс між експлуатацією якісних розв'язків і дослідженням нових можливостей, що робить алгоритм ефективним для складних задач оптимізації.

question mark

Які твердження щодо алгоритму клонального відбору є правильними?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

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

bookАлгоритм Клонального Відбору

Свайпніть щоб показати меню

Note
Визначення

Алгоритм клонального відбору натхненний тим, як біологічна імунна система реагує на антигени.

Коли імунна система виявляє чужорідний об'єкт, вона обирає імунні клітини з найвищою афінністю, клонує їх і вводить мутації для створення різноманіття. Цей процес, що називається дозріванням афінності, забезпечує адаптацію та пам'ять.

Алгоритм клонального відбору використовує ці ідеї для оптимізації:

  • Оцінка кандидатних рішень за їхньою афінністю (якість рішення);
  • Частіше клонування рішень з вищою афінністю;
  • Мутація клонів для створення нових варіацій.

Цей процес досліджує простір рішень і зосереджується на перспективних областях.

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

Різноманітність і адаптація в алгоритмі клонального відбору

Алгоритм клонального відбору підтримує різноманітність шляхом мутації клонів, створюючи нові кандидатні розв'язки та запобігаючи передчасній збіжності. Завдяки повторюваному відбору, клонуванню та мутації — процесу, відомому як дозрівання афінності — популяція адаптується з часом. Цей процес забезпечує баланс між експлуатацією якісних розв'язків і дослідженням нових можливостей, що робить алгоритм ефективним для складних задач оптимізації.

question mark

Які твердження щодо алгоритму клонального відбору є правильними?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 3
some-alt