0% found this document useful (0 votes)
56 views

ABC Algorithm 22MSM40206

The document describes the Artificial Bee Colony (ABC) optimization algorithm. ABC is inspired by the food foraging behavior of honeybee swarms. In ABC, artificial bees in a colony cooperate to find the best solution to an optimization problem. Bees search for food sources, share information on food quality, and explore new sources, similar to how real bees optimize food search. The algorithm uses employed, onlooker, and scout bee phases to iteratively improve potential solutions until the colony converges on an optimal solution.

Uploaded by

hejoj76652
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views

ABC Algorithm 22MSM40206

The document describes the Artificial Bee Colony (ABC) optimization algorithm. ABC is inspired by the food foraging behavior of honeybee swarms. In ABC, artificial bees in a colony cooperate to find the best solution to an optimization problem. Bees search for food sources, share information on food quality, and explore new sources, similar to how real bees optimize food search. The algorithm uses employed, onlooker, and scout bee phases to iteratively improve potential solutions until the colony converges on an optimal solution.

Uploaded by

hejoj76652
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Artificial Bee Colony

Optimization(ABC)
Name – Adarsh Godia
UID- 22MSM40206
What is ABC?
• ABC is an optimization algorithm.
• Problem Solving method inspired by the behaviour of the Honeybees.
• In this algorithm, a colony of artificial bees work together to find the best solution to an
optimization problem.
• The bees communicate with each other to share information about the quality of potential
solutions and explore new ones.

 Note:- Food

 Bees live in a colony.


 Bees leave the colony in search of food.
Why do we care ?

• Bees are solving an optimization problem.

• The optimization problem is finding the best food source.

• Turns out : Bees are pretty good at finding the optimum


solution/location of the food.

• Learning from their methods seems like a good idea for solving
our own optimization problem.
How Bees optimize food search?

value 3
value 3 value 3

value 3 value 3 value 3


ABC Algorithm
Pseudo Code
Python code for ABC
import random
import numpy as np

# Initialize the problem parameters


n = 50 # number of employed bees
m = 20 # number of onlooker bees
d = 30 # dimension of the problem
lb = -5.12 # lower bound of the search space
ub = 5.12 # upper bound of the search space
max_iterations = 10 # maximum number of iterations

# Initialize the population


population = np.random.uniform(lb, ub, (n, d))

# Evaluate the fitness of the population


fitness = np.zeros(n)
for i in range(n):
x = population[i]
fitness[i] = np.sum(x ** 2)

# Initialize the best solution


best_solution = population[np.argmin(fitness)]
best_fitness = np.min(fitness)
# Start the iterations
for t in range(max_iterations):

# Employed bees phase


for i in range(n):
# Choose a random dimension
j = random.randint(0, d - 1)

# Choose a random neighbor


k = random.choice([x for x in range(n) if x != i])

# Generate a new solution


new_solution = np.copy(population[i])
phi = np.random.uniform(-1, 1)
new_solution[j] = population[i][j] + phi * (population[i][j] - population[k]
[j])

# Evaluate the fitness of the new solution


new_fitness = np.sum(new_solution ** 2)

# Update the population if the new solution is better


if new_fitness < fitness[i]:
population[i] = new_solution
fitness[i] = new_fitness
# Update the best solution if the new solution is even better
if new_fitness < best_fitness:
best_solution = new_solution
best_fitness = new_fitness

# Onlooker bees phase


fitness_sum = np.sum(fitness)
for i in range(m):
# Choose a solution based on the fitness values
j = random.choices(range(n),
weights=fitness/fitness_sum)[0]

# Choose a random dimension


k = random.randint(0, d - 1)

# Choose a random neighbor


l = random.choice([x for x in range(n) if x != j])

# Generate a new solution


new_solution = np.copy(population[j])
phi = np.random.uniform(-1, 1)
new_solution[k] = population[j][k] + phi *
(population[j][k] - population[l][k])
# Update the population if the new solution is better
if new_fitness < fitness[j]:
population[j] = new_solution
fitness[j] = new_fitness

# Update the best solution if the new solution is even better


if new_fitness < best_fitness:
best_solution = new_solution
best_fitness = new_fitness

# Scout bees phase


for i in range(n):
# Replace a solution with a new random one if it has not been improved in a while
if fitness[i] >= best_fitness:
population[i] = np.random.uniform(lb, ub, d)
fitness[i] = np.sum(population[i] ** 2)

print("Best solution:", best_solution)


print("Best fitness:", best_fitness)
OUTPUT
THANK YOU

You might also like