O documento descreve a inteligência de enxames e o algoritmo de otimização ABC (Artificial Bee Colony), inspirado no comportamento das abelhas. O ABC simula uma colônia artificial de abelhas e usa estratégias como exploração aleatória de fontes de alimento e compartilhamento de informações para iterativamente melhorar soluções a problemas de otimização. O algoritmo consiste em fases de abelhas empregadas, observadoras e exploradoras para modelar a comunicação e cooperação entre abelhas.
5. Computação Natural
Natureza como
fonte de inspiração
para solucionar
um problema
Modelo
Analogias
Algoritmos
estocásticos
Garante encontrar solução quase-ótima
Revoada dos estorninhos
10. Comunicação entre abelhas
Fundamental para
formação da
inteligência coletiva
Formas
Dança
Sons
Emissão de
substâncias químicas
Tato
Estímulos
eletromagnéticos
11. Dança
Pista de dança
Bússola solar
Coordenadas polares
Informações transmitidas
Direção da fonte
de alimento
Ângulo entre sol e
caminho da dança
Distância da
colmeia até a fonte
Duração da dança
Qualidade da fonte
Frequência da
dança
16. Ideia geral
Abelhas descobrem aleatoriamente
uma população de vetores de
solução inicial
Esses vetores são melhorados
iterativamente através do emprego
de estratégias
Mover em direção das melhores
soluções por meio de uma busca na
vizinhança
Abandono de piores soluções
17. Componentes
Fontes de alimento
Abelhas empregadas
Abelhas não-empregadas
Observadoras
Exploradoras
(ou batedoras)
1 abelha empregada para
cada fonte de alimento!
18. Fluxo de atividades
Procurar novas fontes se fonte de alimento se esgotar
Abelhas empregadas viram exploradoras
Receber informações das empregadas sobre fontes de alimento
Abelhas observadoras
Coletar fontes de alimento
Abelhas empregadas
Descobrir fontes de alimento
Abelhas exploradoras
19. Analogias
Posição da fonte de
alimento
Possível solução
para o problema
Quantidade de néctar
da fonte de alimento
Qualidade (fitness)
da solução
20. Fases
Fase de inicialização
REPETIR
Fase das abelhas empregadas
Fase das abelhas observadoras
Fase das abelhas exploradoras
ATÉ (Ciclo = Número Máximo de Ciclos ou
Tempo Máximo da CPU)
21. Notações
Convenção adotada: índices começam do 0
vetor posição da fonte de alimento m (possível solução)
vetor posição da fonte de alimento vizinha à fonte m
CS tamanho da população
D número de dimensões do problema
m m-ésima fonte de alimento m = 0,1,...,N-1
k fonte de alimento aleatória, sendo k != m k = 0,1,...,N-1
i i-ésima coordenada do vetor posição i = 0,1,...,D-1
o o-ésima abelha observadora o = 0,1,...,N-1
mx
mv
23. Estabelecer Parâmetros de Controle
Tamanho da população (CS)
Fontes de alimento (N=CS/2)
Abelhas empregadas (N=CS/2)
Abelhas observadoras (N=CS/2)
Abelhas exploradoras
Limite para abelha exploradora
ou critério de abandono (L)
Número de dimensões do
problema (D)
Número máximo de ciclos (C)
#1 Fase de inicialização
24. #1 Fase de inicialização
iiimi lurandlx )1,0(
)1(
1
0
Dm
m
m
m
x
x
x
x
)1)(1(1)1(0)1(
)1(11110
)1(00100
1
1
0
DNNN
D
D
T
N
T
T
xxx
xxx
xxx
x
x
x
X
Inicializar aleatoriamente posições das N fontes de alimento
25. #1 Fase de inicialização
X
)(
)(
)(
1
1
0
Nxf
xf
xf
f
)(
)(
)(
1
1
0
Nxfit
xfit
xfit
fit
0
0
0
t
Contador de
tentativas
O que é
Analogia
Significado do valor alto e baixo
O que é f
26. #1 Fase de inicialização
X
)(
)(
)(
1
1
0
Nxf
xf
xf
f
0)(|)(|1
0)(
)(1
1
)(
mm
m
mm
xfxf
xf
xfxfit
se,
se,
:calcular,vetorcadaPara mx
)(
)(
)(
1
1
0
Nxfit
xfit
xfit
fit
0
0
0
t
Contador de
tentativas
29. 1. Obter
#2 Fase das abelhas empregadas
Para cada abelha empregada (associada a uma fonte m),
ou seja, para m = 0,1,…, CS-1:
Empregadas procuram uma nova fonte com
mais alimento na vizinhança de mx
mv
30. Escolher aleatoriamente uma das coordenadas
(i=0,1,...,D-1) de e substituí-la por
1. Obter
#2 Fase das abelhas empregadas
kimimimimi xxxv
)Calcular mvf
(2.
Para cada abelha empregada (associada a uma fonte m),
ou seja, para m = 0,1,…, CS-1:
k é uma fonte
aleatória, k != m
)Calcular mvfit
(3.
mx
mv
= rand(-a,a)mi
31. Se
Zerar m-ésimo elemento do contador de tentativas
Substituir elemento no(a):
Matriz X :
Vetor :
Vetor :
Caso contrário
Incrementar m-ésimo elemento do contador de tentativas
#2 Fase das abelhas empregadas
X)matrizda(eentregulosaseleçãoAplicar T
mmm xxv
4.
)) mm xfitvfit
((
mm vx
Para cada abelha empregada (associada a uma fonte m),
ou seja, para m = 0,1,…, CS-1:
1
1
0
#
#
#
Nm
m
m
tent
tent
tent
t
f
fit
)vf()xf( mm
)( mm vfit()xfit
32. Usaremos na próxima fase…
#2 Fase das abelhas empregadas
1
0
)(
)(
)( N
m
m
m
m
xfit
xfit
xp
)(
)(
)(
1
1
0
Nxp
xp
xp
p
5. Calcular para obter)( mxp
Para cada abelha empregada (associada a uma fonte m),
ou seja, para m = 0,1,…, CS-1:
p
p
33. #2 Fase das abelhas empregadas
1
0
)(
)(
)( N
m
m
m
m
xfit
xfit
xp
Distribuição não-uniforme de probabilidades
Exemplos:
35. #3 Fase das abelhas observadoras
1. “Girar a roleta” para descobrir qual foi a fonte m
escolhida pela abelha observadora o
Para cada abelha observadora, ou seja, para o=0,1,...,N-1:
Abelhas observadoras
observam empregadas na
pista de dança
36. #3 Fase das abelhas observadoras
2. Calcular
3. Calcular
4. Calcular
5. Aplicar seleção gulosa entre e
Atualizar
X, e (se necessário)
Para cada abelha observadora, ou seja, para o=0,1,...,N-1:
mv
)mvf
(
mx
mv
Mesmos passos da fase das
abelhas empregadas!
m: roleta
i e k: distribuição uniforme
)mvfit
(
1. “Girar a roleta” para descobrir qual foi a fonte m
escolhida pela abelha observadora o
37. #3 Fase das abelhas observadoras
)(
)(
)(
1
1
0
Nxf
xf
xf
f
)(
)(
)(
1
1
0
Nxfit
xfit
xfit
fit
1
1
0
#
#
#
Nm
m
m
tent
tent
tent
t
✓
✓
✓
T
N
T
T
x
x
x
X
1
1
0
✓
38. #3 Fase das abelhas observadoras
)(
)(
)(
1
1
0
Nxf
xf
xf
f
)(
)(
)(
1
1
0
Nxfit
xfit
xfit
fit
1
1
0
#
#
#
Nm
m
m
tent
tent
tent
t
✓
✓
✓
T
N
T
T
x
x
x
X
1
1
0
✓
Memorizar melhor fonte mx
42. Problema de Otimização
Local
Sem restrições
Sabemos de antemão que o vetor ótimo é [0 0]T
Problema
Minimizar f(x) = x1
2 + x2
2 -5≤x1,x2≤5
43. Estabelecer Parâmetros de Controle
Tamanho da população: CS=6
Fontes de alimento: N=CS/2=3
Abelhas empregadas: N=CS/2=3
Abelhas observadoras: N=CS/2=3
Abelhas exploradoras
Número de dimensões do
problema: D=2
Limite para abelha exploradora
ou critério de abandono: L=(CS*D)/2=6
Número máximo de ciclos: C
#1 Fase de inicialização
44. Inicializar aleatoriamente posições das N=3 fontes de alimento
#1 Fase de inicialização
iiimi lurandlx )1,0(
1.0323-0.1824-
1.43380.4756
2.5644-1.4112
T
T
T
x
x
x
X
2
1
0
0
0
0
#
#
#
1
0
0
m
m
m
tent
tent
tent
t
iu
il
,xx
i
i
,5
,5
55 21
46. Substituir uma das coordenadas de por
Valores sorteados Possibilidades
k ∈ {1,2}
i ∈ {0,1}
Φ ∈ [-1,1]
Obter uma nova fonte (solução candidata) vizinha de
#2 Fase das abelhas empregadas
1ª abelha empregada (1ª fonte de alimento m=0)
kimimimimi xxxv
2.5644-
1.4112
0x
0x
Escolher aleatoriamente
k (fonte != m), i e Φ
0x
0v
47. Valores sorteados Possibilidades
k=1 k ∈ {1,2}
i=0 i ∈ {0,1}
Φ = 0.8050 Φ ∈ [-1,1]
Substituir uma das coordenadas de por
Obter uma nova fonte (solução candidata) vizinha de
#2 Fase das abelhas empregadas
1ª abelha empregada (1ª fonte de alimento m=0)
kimimimimi xxxv
2.5644-
1.4112
0x
0x
Escolher aleatoriamente
k (fonte != m), i e Φ
0x
0v
48. #2 Fase das abelhas empregadas
1ª abelha empregada (1ª fonte de alimento m=0)
2.5644-
2.1644
0v
08160)( 0 .vfit
261011)( 0 .vf
Aplicar seleção gulosa entre e
0.0816 < 0.1045
A solução m=0 não foi melhorada
Incrementar seu contador de tentativas
0
0
1
t
0v
0x
1000000000 xxxv
01x
49. #2 Fase das abelhas empregadas
2ª abelha empregada (2ª fonte de alimento m=1)
Valores sorteados
k=2
i=1
Φ = 0.0762
Aplicar seleção gulosa entre e
0.2593 < 0.3047
A solução m=1 não foi melhorada
Incrementar seu contador de tentativas
0
1
1
t
1v
1x
1.6217
0.4756
1v
2.8560)( 1vf
0.2593)( 1vfit
50. #2 Fase das abelhas empregadas
3ª abelha empregada (3ª fonte de alimento m=2)
Aplicar seleção gulosa entre e
0.4828 > 0.4764
A solução m=2 foi melhorada
Zerar seu contador de tentativas
Substituir solução por
0
1
1
t
2v
2x
1.0323-
0.0754-
2v
1.0714)( 2vf
0.4828)( 2vfit
2x
2v
Valores sorteados
k=0
i=0
Φ = -0.0671
61. #3 Fase das abelhas observadoras
1.0323-0.0348
1.43380.1722
2.5644-1.4112
X
1.0669
2.0855
8.5678
f
0.4828
0.3241
0.1045
fit
0
0
1
t
✓
✓
✓
✓
Melhor fonte:
(ótimo é [0 0]T )
T
x 1.0323-0.03482
62. #4 Fase das abelhas exploradoras
Nenhuma fonte (solução)
possui
Não há abandono de
soluções!
Ciclo = Ciclo+1
Repetir algoritmo até atingir
critério de parada
Ltentm #
0
0
1
t
69. Projeto de viga soldada
Melhor Esperança
Desvio
padrão
ABC
(30 execuções)
1.724852 1.741913 3.1E-02
μ – λES
Montes e Coello
1.724852 1.777692 8.8E-2
74. Referências bibliográficas
D. Karaboga, “An idea based on honey bee swarm for numerical
optimization”, Technical Report (2005)
D. Karaboga, B. Basturk, “A powerful and efficient algorithm for
numerical function optimization: Artificial bee Colony (ABC)
algorithm”, J Glob Optim (2007)
A. Serapião, “Fundamentos de Otimização por Inteligência de
Enxames: uma visão geral”, Revista de Controle e
Automação/Vol.20 no.3 (2009)
Links
http://mirzaei.iut.ac.ir/Evolutionary/EC3891/PowerPoints/Artificiel%2
0Bee%20Colony%20Algorithm.ppsx
http://mf.erciyes.edu.tr/abc/
http://www.scholarpedia.org/article/Artificial_bee_colony_algorithm
http://homepages.dcc.ufmg.br/~glpappa/aula01.pdf