Escolar Documentos
Profissional Documentos
Cultura Documentos
Inspirado na Natureza
Algoritmos Metaheurísticos
Segunda edição
Xin-She Yang
M e t ahe emreu
pseed steu
Ac
nEUe
-
rt
eu
og
ri
Luniver Press
em
Xin-She Yang h
t
a m
NS c Luniver Press
s
ce
o
)10
0
nd on (2
E d t
eu eu
Machine Translated by Google
Todos os direitos reservados. Este livro, ou partes dele, não pode ser reproduzido de
nenhuma forma ou por qualquer meio, eletrônico ou mecânico, incluindo fotocópia,
gravação ou por qualquer sistema de armazenamento e recuperação de informações,
sem permissão por escrito do detentor dos direitos autorais.
ISBN-13: 978-1-905986-28-6
ISBN-10: 1-905986-28-9
Embora sejam feitos todos os esforços para garantir que as informações nesta
publicação estejam corretas, nenhuma responsabilidade pode ser aceita pelos autores
ou editores por perdas, danos ou ferimentos causados por erros ou omissões nas
informações fornecidas.
M e t ahe emreu
pseed steu
Ac
nEUe eu
og
-
rt ri
em
Xin-She Yang h
t
a m
NS c Luniver Press
s
ce
o
)10
0
nd on (2
E d t
eu eu
Machine Translated by Google
CONTEÚDO
1 Introdução 1
das Metaheurísticas 5
eu
Machine Translated by Google
ii CONTEÚDO
3 Recozimento Simulado 21
estocástico 26
5 Algoritmos Genéticos 41
5.1 Introdução 41
6 Evolução Diferencial 47
6.1 Introdução 47
6.2 Evolução Diferencial 47
6.3 variantes 50
6.4 Implementação 50
CONTEÚDO iii
8 Otimização de enxame 63
9 Busca de Harmonia 73
10 Algoritmo do Vaga-lume 81
11 Algoritmo do Morcego 97
4 CONTEÚDO
Referências 141
Índice 147
M e t ahe emreu
pseed steu
Ac
nEUe eu
og
-
rt ri
em
Xin-She Yang h
t
a m
NS c Luniver Press
s
c
e
o
nd
)10
0
E d t
eu
on
eu
(2
Machine Translated by Google
em
Xin-She Yang
a m
NS c Luniver Press
s
ce
o
)10
0
nd on (2
E d t
eu eu
Machine Translated by Google
Capítulo 1
INTRODUÇÃO
Não é exagero dizer que a otimização está em toda parte, do projeto de engenharia
ao planejamento de negócios e do roteamento da Internet ao planejamento de
férias. Em quase todas essas atividades, procuramos atingir determinados
objetivos ou otimizar algo como lucro, qualidade e tempo.
Como recursos, tempo e dinheiro são sempre limitados em aplicações do mundo
real, temos que encontrar soluções para otimizar o uso desses valiosos recursos
sob várias restrições. A otimização ou programação matemática é o estudo de tais
problemas de planejamento e projeto usando ferramentas matemáticas.
Atualmente, as simulações computacionais tornam-se uma ferramenta indispensável
para resolver tais problemas de otimização com vários algoritmos de busca eficientes.
1.1 OTIMIZAÇÃO
minimizar
xÿn consertar), (i = 1, 2, ..., M), (1.1)
2 CAPÍTULO 1. INTRODUÇÃO
ce
alto de uma região conhecida, subiremos diretamente até o penhasco mais
)1 0
o
nd 20íngreme e tentaremos alcançar o pico mais alto, e esse cenário corresponde à clássica escalad
E d t on (
eu eu
Machine Translated by Google
técnicas. Na maioria dos casos, nossa busca está entre esses extremos. Não estamos
vendados e não sabemos onde procurar. É uma ideia tola vasculhar cada centímetro
quadrado de uma região montanhosa extremamente grande para encontrar o tesouro.
ce
on
)1
certas
0
0vantagens sobre uma simples técnica de escalada, que pode ser
d E on
(2
d t
eu eu
Machine Translated by Google
4 CAPÍTULO 1. INTRODUÇÃO
NS c Luniver Press
)1
ce
algoritmo eficiente, mas prático, que funcione na maior parte do tempo e seja capaz de
0
on 0
(2 produzir
d E d t
eu
on
eu
soluções de boa qualidade. Entre
Machine Translated by Google
das soluções de qualidade encontradas, espera-se que algumas delas sejam quase
ótimas, embora não haja garantia de tal otimalidade.
Dois componentes principais de qualquer algoritmo metaheurístico são: intensificação
e diversificação, ou exploração e exploração. Diversificação significa gerar diversas
soluções de forma a explorar o espaço de busca em escala global, enquanto intensificação
significa focar na busca em uma região local explorando a informação de que uma boa
solução atual é encontrada nessa região. Isto está em combinação com a seleção das
melhores soluções. A seleção do melhor garante que as soluções convergirão para a
otimalidade, enquanto a diversificação via randomização evita que as soluções fiquem
presas em ótimos locais e, ao mesmo tempo, aumenta a diversidade das soluções. A boa
combinação desses dois componentes principais geralmente garantirá que a otimização
global seja alcançável.
a na maioria das vezes, mas não havia garantia de encontrar a solução correta, mas foi um
m
s
h
NS c Luniver Press
)1
ce
tremendo sucesso. Em 1945, Turing foi recrutado para o Laboratório Nacional de Física
0
on 0
(2
d E d t
eu
on
eu
(NPL), Reino Unido, onde estabeleceu seu projeto para
Machine Translated by Google
6 CAPÍTULO 1. INTRODUÇÃO
ce
on
)10
0
d E on
(2
d t
eu eu
Machine Translated by Google
ce
on
)1
aplicadas
0
0 a quase todas as áreas de problemas difíceis de otimização. Há
d E on
(2
d t
eu eu
Machine Translated by Google
8 CAPÍTULO 1. INTRODUÇÃO
a m
NS c Luniver Press s
c
e
on
)10
0
d E on
(2
d t
eu eu
Machine Translated by Google
REFERÊNCIAS
a m
NS c Luniver Press s
c
e
on
)1
2Novel pesquisa cuco 'bate' otimização de enxame de partículas, Science Daily, artigo de notícias
0
0
d E on
(2 de maio de 2010), www.sciencedaily.com
(28
d t
eu eu
Machine Translated by Google
10 CAPÍTULO 1. INTRODUÇÃO
26. XS Yang e S. Deb, pesquisa de cuco via vôos de L´evy, em: Proc. do Congresso
Mundial sobre Natureza e Computação de inspiração biológica (NaBic 2009), IEEE
Publications, EUA, pp. 210-214 (2009).
27. XS Yang e S. Deb, otimização de engenharia por pesquisa de cuco, Int. j.
Matemática. Modelagem & Num. Otimização, 1, 330-343 (2010).
28. XS Yang, um novo algoritmo metaheurístico inspirado em morcegos, em: Estratégias
M e t ahe emreu
pseed steu
Ac cooperativas inspiradas na natureza para otimização (NICSO 2010) (Eds. JR
eu
nEUe
-
og Gonzalez et al.), Springer, SCI 284, 65-74 (2010 ) .
rt ri
em
Xin-She Yang t
ce
o
nd
)10
30. Turing Archive for the History of Computing, www.alanturing.net/
0
E d t
eu
on
eu
(2
Machine Translated by Google
Capítulo 2
´
PASSEIOS ALEATÓRIOS E IMPOSTOS VOOS
Grosso modo, uma variável aleatória pode ser considerada como uma expressão cujo
valor é a realização ou resultado de eventos associados a um processo aleatório,
como o nível de ruído na rua. Os valores das variáveis aleatórias são reais, embora
para algumas variáveis, como o número de carros em uma estrada, só possam assumir
valores discretos, e essas variáveis aleatórias são chamadas de variáveis aleatórias
discretas. Se uma variável aleatória, como o ruído em um determinado local, pode
assumir qualquer valor real em um intervalo, ela é chamada de contínua. Se uma
variável aleatória pode ter valores contínuos e discretos, ela é chamada de tipo misto.
Matematicamente falando, uma variável aleatória é uma função que mapeia eventos
para números reais. O domínio desse mapeamento é chamado de espaço amostral.
Para cada variável aleatória, uma função de densidade de probabilidade pode ser
usada para expressar sua distribuição de probabilidade. Por exemplo, o número de
chamadas telefônicas por minuto e o número de usuários de um servidor da Web por
dia obedecem à distribuição de Poisson
ÿ e -eu
p(n; ÿ) = , (n = 0, 1, 2, ...), (2.1)
n!
t ahe em
dM
e
r
eu
ee
ps onde
steu ÿ > 0 é um parâmetro que é a média ou expectativa da ocorrência do evento
Ac
nEU eu og
e- durante um intervalo unitário.
ri
rt
Variáveis aleatórias diferentes terão distribuições diferentes. gaussiano
em
Xin-She Yang h
t
a m
s
NS c Luniver Press
)1
ce
distribuição ou distribuição normal é de longe as distribuições mais populares, porque
0
on
(2
0
d E d o muitas variáveis físicas, incluindo intensidade de luz e er
t neu eu
1 2
2 (x ÿ µ) )
p(x; µ, p = exp[ÿ ÿ ÿ 2ÿ 2ÿ ], ÿÿ < x < ÿ, (2.2)
2
O inverso para obter a distribuição real L(s) não é direto, pois a integral
ÿ
1 b
L(s) = cos(ÿs)e ÿÿ ÿ dÿ, (0 < ÿ ÿ 2), (2.4)
pi
0
não possui formas analíticas, exceto em alguns casos especiais. Aqui L(s) é
chamada de distribuição L´evy com um índice ÿ. Para a maioria das aplicações,
podemos definir ÿ = 1 para simplificar. Dois casos especiais são ÿ = 1 e ÿ = 2.
Quando ÿ = 1, a integral acima torna-se a distribuição de Cauchy. Quando ÿ = 2,
torna-se a distribuição normal. Neste caso, os voos de L´evy tornam-se o
movimento browniano padrão.
Matematicamente falando, podemos expressar a integral (2.4) como uma
série assintótica, e sua aproximação de ordem líder para o comprimento do voo
resulta em uma distribuição de lei de potência
ÿ1ÿb
L(s) ÿ |s| , (2.5)
a m
s
N
NS c Luniver Press
ce
o
nd E
)10
0 SN = Xi = X1 + ... + XN , (2.6)
d t
eu
o
eu
n (2 i=1
Machine Translated by Google
N-1
SN = +XN = SN-1 + XN , (2.7)
i=1
N
SN = XI , (2.9)
i=1
´
14 CAPÍTULO 2. PASSEIOS ALEATÓRIOS E VOOS LEVY
´ ´
2.3 DISTRIBUIÇÃODE COBRANÇA E VOOS DE COBRANÇA
De um modo geral, os voos de L´evy são um passeio aleatório cujo comprimento do passo
é extraído da distribuição de L´evy, geralmente em termos de uma fórmula simples de lei
de potência L(s) ÿ |s| ÿ1ÿÿ onde 0 < ÿ ÿ 2 é um índice. Matematicamente falando, uma
versão simples da distribuição de L´evy pode ser definida como
c
ÿ 1 exp[ÿ 2(sÿµ)
ÿ] 0<µ<s<ÿ
2p (sÿµ) 3/2 ,
L(s, ÿ, µ) = (2.11)
ÿ
ÿ0 de outra forma,
onde ÿ é um parâmetro de escala. A inversa dessa integral não é fácil, pois não
possui forma analítica, exceto em alguns casos especiais.
Para o caso de ÿ = 2, temos
2
F(k) = exp[ÿÿk ], (2.14)
1
p(x, ÿ, µ) = 2, (2.16)
pi 2c ÿ + (x ÿ µ)
1 ÿ
b
L(s) = cos(ks) exp[ÿÿ|k| ]dk, (2.17)
pi
ed
M e t ahe emreu 0
e
ps steu
Ac
nEU eu
og
e-
rt
em
pode ser estimado somente quando s é grande. Nós temos
ri
Xin-She Yang h
t
a m
s
N c Luniver Press
a b ÿ(ÿ)sin(ÿÿ/2)
S
ce
on
)1
(2
0
0 L(s) ÿ ÿ| , s ÿ ÿ. (2.18)
d Ed eu t euo n s| 1+b
Machine Translated by Google
´
16 CAPÍTULO 2. PASSEIOS ALEATÓRIOS E VOOS LEVY
2 2
u ÿ N(0, p em
), v ÿ N(0, p em
), (2.22)
onde
M e t ahe emreu ÿ(1 + ÿ)sin(ÿÿ/2) ÿ[(1 1/b
ed ÿu = ÿv = 1. (2.23)
pse steu
Ac ,
nEUe euog + ÿ)/2] ÿ 2 (ÿÿ1)/2
-
rt ri
em
Xin-She Yang t
a Esta distribuição (para s) obedece à distribuição L´evy esperada para |s| ÿ |s0| onde
m h
NS c Luniver Press
s
ce
on
)1
0
s0 é o menor passo. Em princípio, |s0| 0, mas na realidade s0 pode ser considerado
0
d Ed on
(2 um valor sensível, como s0 = 0,1 a 1.
eu t eu
Machine Translated by Google
eed
ps sãosteu os desafios para a maioria dos algoritmos metaheurísticos.
Ac
eu
nEU
e- Mais pesquisas ao longo da rota das cadeias de Markov é que o desenvolvimento
og
ri
rt
em
Xin-She Yang t
a do método Monte Carlo (MCMC) da cadeia de Markov, que é uma classe de métodos
m h
N c Luniver Press
s
S
c
e de geração de amostras. Ele tenta extrair amostras diretamente de alguma
)1
0
on 0
d E d t eu
distribuição
on
eu
(2 multidimensional altamente complexa usando um Markov
Machine Translated by Google
´
18 CAPÍTULO 2. PASSEIOS ALEATÓRIOS E VOOS LEVY
Uma ligação importante entre MCMC e otimização é que alguns algoritmos de busca
heurística e metaheurística, como o recozimento simulado a ser introduzido posteriormente,
usam uma abordagem baseada em trajetória. Eles começam com algum estado inicial
(aleatório) e propõem um novo estado (solução) aleatoriamente. Então, o movimento é aceito
ou não, dependendo de alguma probabilidade. Não é fortemente semelhante a uma cadeia de
Markov. Na verdade, o padrão simulado de um alinhamento é um passeio aleatório.
ÿÿf(ÿ)
ÿ(ÿ) = e , (2.26)
onde ÿ > 0 é um parâmetro que atua como um fator normalizado. O valor de ÿ deve ser
escolhido de forma que a probabilidade seja próxima de 1 quando ÿ ÿ ÿÿ. Em ÿ = ÿÿ, ÿ(ÿ) deve
atingir um máximo ÿÿ = ÿ(ÿÿ) ÿ ÿ(ÿ). Isso requer que a formulação de L(ÿ) seja não negativa, o
que significa que algumas funções objetivas podem ser deslocadas por uma grande constante
A > 0, como f ÿ f + A, se necessário.
Ao construir uma cadeia de Markov Monte Carlo, podemos formular uma estrutura genérica
conforme descrito por Ghate e Smith em 2008, conforme mostrado na Figura 2.3.
Nesta estrutura, o recozimento simulado e suas muitas variantes são simplesmente um caso
especial com
ÿf
ÿ exp[ÿ Tt ] se pés+1 > pés
Pt = ,
ÿ
ÿ1 se pés+1 ÿ pés
Algoritmos como o recozimento simulado, a ser discutido no próximo capítulo, usam uma
única cadeia de Markov, que pode não ser muito eficiente. Na prática, geralmente é vantajoso
usar várias cadeias de Markov em paralelo para aumentar a eficiência geral. Na verdade, os
algoritmos, como otimização de enxame de partículas, podem ser vistos como múltiplas
cadeias de Markov interagindo, embora tal análise teórica permaneça quase intratável. A
teoria das cadeias de Markov interativas é complicada e ainda está em desenvolvimento, no
M e t ahe emreu
eed
ps steuentanto,
Ac qualquer progresso nessas áreas desempenhará um papel central na compreensão
nEU eu
og
e- de como os algoritmos metaheurísticos baseados em população e trajetória funcionam sob
ri
rt
em
Xin-She Yang t
várias condições. No entanto, embora não entendamos completamente por que os algoritmos
h
a m
s
NS c Luniver Press
)1
c
e metaheurísticos funcionam, isso não nos impede de
0
on
(2
0
d E d t on
eu
eu
Machine Translated by Google
Comece com ÿ0 ÿ S, em t = 0
while (critério)
Proponha uma nova solução Yt+1;
Gere um número aleatório 0 ÿ Pt ÿ 1;
fim
usar esses algoritmos de forma eficiente. Pelo contrário, tais mistérios podem nos
conduzir e motivar a buscar mais pesquisas e desenvolvimento em metaheurísticas.
REFERÊNCIAS
c
e
on
)1
11. S. Kirkpatrick, CD Gellat e MP Vecchi, Otimização por simulação
0
0
(2 recozimento, Science, 220, 670-680 (1983).
d E d t on
eu
eu
Machine Translated by Google
´
20 CAPÍTULO 2. PASSEIOS ALEATÓRIOS E VOOS LEVY
M e t ahe emreu
pseed steu
Ac
nEUe eu
og
-
rt ri
em
Xin-She Yang h
t
a m
NS c Luniver Press
s
ce
o
)10
0
nd on (2
E d t
eu eu
Machine Translated by Google
Capítulo 3
RECOZIMENTO SIMULADO
eed
ps que
steu melhoram a função objetivo, mas também mantém algumas mudanças que
eu
Ac
eu
nEU
e- não são ideais. Em um problema de minimização, por exemplo, qualquer melhor movimento ou
og
ri
rt
em
Xin-She Yang
que diminuir o valor da função objetivo f será aceito; entretanto, algumas
t
h
a m
N c Luniver Press s
S
c
e mudanças que aumentam f também serão aceitas com probabilidade p. Essa
)1 0
o
nd 20
probabilidade p, também chamada de probabilidade de transição, é determinada
E d t on (
eu eu
por
ÿE
ÿ
ÿÿf/T .
p(ÿf, T) = e (3.3)
ÿf
p=e
ÿ
T > r, (3.4)
o movimento é aceito.
3.2 PARÂMETROS
3.3 SA ALGORITMO 23
Duas programações de recozimento comumente usadas (ou programações de resfriamento) são: lin
orelha e geométrica. Para um esquema de resfriamento linear, temos
T = T0 ÿ ÿt, (3.5)
3.3 SA ALGORITMO
c
e
on
)1
Se não soubermos a variação máxima possível da função objetivo, podemos usar
0
0
d E on
(2
uma abordagem heurística. Podemos começar as avaliações de um ponto de vista muito
d t
eu eu
Machine Translated by Google
Atualize o melhor xÿ e fÿ n =
n + 1 end
while
alta temperatura (para que quase todas as alterações sejam aceitas) e reduza a
temperatura rapidamente até que cerca de 50% ou 60% dos movimentos piores
sejam aceitos e, em seguida, use essa temperatura como a nova temperatura inicial
T0 para um resfriamento adequado e relativamente lento .
Para a temperatura final, ela deveria ser zero em teoria para que nenhum
movimento pior pudesse ser aceito. No entanto, se Tf ÿ 0, mais avaliações
desnecessárias são necessárias. Na prática, simplesmente escolhemos um valor
muito pequeno,digamos, Tf = 10ÿ10 ÿ 10ÿ5 , dependendo da qualidade exigida das
soluções e das restrições de tempo.
Com base nas diretrizes de escolha dos parâmetros importantes, como taxa de
resfriamento, temperaturas inicial e final e o número equilibrado de iterações,
podemos implementar o recozimento simulado usando o Matlab e o Octave.
M e t ahe emreu 2 2 2
eed
ps steu
Ac f(x, y) = (1 ÿ x) + 100(y ÿ x ) ,
nEU eu og
e- ri
rt
em
Xin-She Yang t
a sabemos que seu mínimo global fÿ = 0 ocorre em (1, 1) (ver Fig. 3.2). Esta é uma
m
s
h
N c Luniver Press
S
c
e )1função de teste padrão e bastante difícil para a maioria dos algoritmos. No entanto,
0
on 0
(2 modificando o programa fornecido mais adiante no próximo capítulo, podemos encontrar este
d E d t
eu
on
eu
Machine Translated by Google
-1
-2
-2 -1 0 1 2
a
N c Luniver Press
especialmente aqueles que são fortemente multimodais e altamente não lineares. É
m
s
S
ce
on
)1
fácil estender o programa acima para lidar com funções multimodais altamente não
0
0
d E on
(2
lineares.
d t
eu eu
Machine Translated by Google
f(x)
g(x)
eed
ps para o sistema escapar dos modos locais. Simulações e estudos sugerem
steu
eu
Ac
eu
nEU
e- que ele pode melhorar significativamente a convergência para funções com paisagens e
og
ri
rt
em
Xin-She Yang
Até agora não fornecemos um programa detalhado para mostrar como o
t
h
a m
s
N c Luniver Press
algoritmo SA pode ser implementado na prática. No entanto, antes que
S
ce
o
)1 0
20possamos realmente fazer isso, precisamos encontrar uma maneira prática de lidar com
nd
E d t on (
eu eu
Machine Translated by Google
restrições, já que a maioria dos problemas de otimização do mundo real são restritos.
No próximo capítulo, discutiremos em detalhes as formas de incorporar restrições não
lineares.
REFERÊNCIAS
M e t ahe emreu
eed
ps steu
Ac
nEU eu
og
e- ri
rt
em
Xin-She Yang h
t
a m
NS c Luniver Press s
ce
on
)1
(2
0
0
d E d t on
eu
eu
Machine Translated by Google
M e t ahe emreu
eed
ps steu
Ac
nEU eu
og
e- ri
rt
em
Xin-She Yang h
t
a m
s
NS c Luniver Press
)1
e 0
c
on
(2
0
d E d t on
eu
eu
Machine Translated by Google
Capítulo 4
a m M
NS c Luniver Press
s
c
e
o
)1
0
0 L(x, ÿj ) = f(x) + ÿjgj (x). (4.3)
nd on (2
E d t
eu eu j=1
M
ÿL ÿf ÿgj
= + (4.4)
ÿj , (i = 1, ..., n), ÿxi
ÿxi ÿxi
j=1
e
ÿL
= gj = 0, (j = 1, ..., M). ÿÿj (4.5)
sujeito a
3u + v = 9.
ÿL 2 ÿL 1
= ÿ1/3 1/3 = 2/3 ÿ2/3
em em
+ 3ÿ = 0, em em
+ ÿ = 0,
ÿu 3 ÿv 3
e
ÿL
= 3u + v ÿ 9 = 0. ÿÿ
As duas primeiras condições dão 2v = 3u, cuja combinação com a terceira condição
leva a
u = 2, v = 3.
a
NS c Luniver Press
m
s sujeito a ÿi(x) = 0, (i = 1, ..., M),
ce
on
)1
(2
0
0
d E d t
eu
on
eu
ÿj (x) ÿ 0, (j = 1, ..., N). (4.6)
Machine Translated by Google
M N
e
ÿj (xÿ) ÿ 0, µjÿj (xÿ) = 0, (j = 1, 2, ..., N), (4.8)
onde
µj ÿ 0, (j = 0, 1, ..., N). (4.9)
N M
µj + |ÿi | 0. (4.10)
j=0 i=1
minimizar T n
f(x), x = (x1, ..., xn) xÿn ÿ ,
a ideia é definir uma função de penalidade para que o problema restrito seja
transformado em um problema irrestrito. Agora nós definimos
M N
2 2
ÿ(x, µi , ÿj ) = f(x) + se eu
(x) + njps j (x), (4.12)
i=1 j=1
M N
2 2
ÿ = f(x) + µiHi [ÿi(x)]ÿ eu
(x) + ÿjHj [ÿj (x)]ÿ j
(x), (4.13)
i=1 j=1
M N
M e t ahe emreu
pseed steu
Ac ÿ(x, µ, ÿ) = f(x) + µ Olá [ÿi(x)]ÿ
2
(x) + n Hj [ÿj (x)]ÿ
2
(x).
nEUe eu
og
eu
j
-
rt ri i=1 j=1
em
Xin-She Yang h
t
a m
N c Luniver Press s
S
c
e )1Em geral, para a maioria das aplicações, µ e ÿ podem ser considerados como 1010
0
on 0
(2 a
d E d t
eu
on
eu
1015 . Usaremos esses valores em nossa implementação.
Machine Translated by Google
Às vezes, pode ser mais fácil alterar uma restrição de igualdade para duas restrições
de desigualdade, de modo que só tenhamos que lidar com desigualdades na
implementação. Isso ocorre porque g(x) = 0 é sempre equivalente a g(x) ÿ 0 eg(x) ÿ 0 (ou
ÿg(x) ÿ 0).
Como passeios aleatórios são amplamente utilizados para randomização e busca local,
um tamanho de passo adequado é muito importante. Na equação genérica
t+1 t x = x
+ s t, (4.14)
t é extraído de uma distribuição normal padrão com média zero e desvio padrão
unitário. Aqui, o tamanho do passo s determina até onde um caminhante aleatório (por
exemplo, um agente ou partícula em metaheurística) pode ir para um número fixo de
iterações.
Se s for muito grande, então a nova solução x t+1 gerada estará muito longe da
solução antiga (ou, mais frequentemente, da melhor solução atual). Então, é improvável
que tal movimento seja aceito. Se s for muito pequeno, a mudança é muito pequena
para ser significativa e, consequentemente, essa busca não é eficiente. Portanto, um
tamanho de passo adequado é importante para manter a busca o mais eficiente possível.
Da teoria dos passeios aleatórios isotrópicos simples, sabemos que o
a distância média r percorrida no espaço de dimensão d é
2r = 2dDt, (4.15)
2 m²
2
segundos
= . (4.16)
td
Para uma escala de comprimento L típica de uma dimensão de interesse, a busca local
é tipicamente limitada a uma região de L/10. Ou seja, r = L/10. Como as iterações são
discretas, podemos tomar ÿ = 1. Normalmente em metaheurísticas, podemos esperar
que o número de gerações seja geralmente t = 100 a 1000, o que significa que
r
sÿ = L/10 . (4.17)
ÿ td ÿ td
M e t ahe emreu
eed
ps Para
steu d = 1 e t = 100, temos s = 0,01L, enquanto s = 0,001L para d = 10 e t = 1000. Como
Ac
nEU eu
og
e- os tamanhos dos passos podem diferir de variável para variável, um passo
ri
rt
em
Xin-She Yang t
a relação de tamanho s/L é mais genérica. Portanto, podemos usar s/L = 0,001 a 0,01
h
a m
s
NS c Luniver Press
)1
c
e para a maioria dos problemas. Usaremos esse fator de tamanho de etapa em nossa
0
on 0
(2
d E d t
eu
on
eu
implementação, que será discutido posteriormente na última seção deste capítulo.
Machine Translated by Google
sujeito a
onde
1 eu2 (p + d) 2
D= L2 + (w + d) 2, J = ÿ 2 wL[ + QD ], ÿ = ,
2 6 2 J
6000 ÿÿL
um = , ÿ (x) = ÿ2 + + ÿ 2,
ÿ 2wL D
dh3 d 30/48 P =
0,61423 × 106 (1 ÿ ). 28 (4.20)
6
M e t ahe emreu
Os limites simples ou limites são 0,1 ÿ L, d ÿ 10 e 0,1 ÿ w, h ÿ 2,0.
pseed steu
Ac Se usarmos o algoritmo de recozimento simulado para resolver este problema
nEUe eu og
(consulte a próxima seção), podemos obter a solução ótima que é aproximadamente a mesma
-
rt ri
em
Xin-She Yang h
t
a
NS c Luniver Press
solução obtida por Cagnina et al (2008)
m
s
ce
on
)1
0
0
d E d t o n (2
eu eu
fÿ = 1,724852 em (0,205730, 3,470489, 9,036624, 0,205729). (4.21)
Machine Translated by Google
Vale ressaltar que você deve executar os programas algumas vezes usando
valores como ÿ = 0,95 (padrão) e ÿ = 0,99 para ver como os resultados variam.
Além disso, como o SA é um algoritmo de otimização estocástico, não podemos
esperar que os resultados sejam os mesmos. Na verdade, eles serão um pouco
diferentes, toda vez que executarmos o programa. Portanto, devemos entender e
interpretar os resultados usando medidas estatísticas como média e desvio padrão.
4.5 DA IMPLEMENTAÇÃO
que pode ser facilmente convertido em uma fórmula no Matlab. Da mesma forma, a
terceira restrição de desigualdade pode ser reescrita como
M e t ahe emreu
pseed %stExibir
Ac
eu uso
nEUe eu
- disp('sa_mincon or [Best,fmin,N]=sa_mincon(0.9)');
og
ri
rt
em
Xin-She Yang h
t
a m
NS c Luniver Press
s
ce
on
)1
% Otimização do projeto de vigas soldadas
0
0
d E d t
eu
on
eu
Lb=[0,1
(2 0,1 0,1 0,1];
Machine Translated by Google
se comprimento(Lb) ~=comprimento(Ub),
disp('Limites/limites simples são impróprios!'); retornar
fim
% Constante de Boltzmann
% Norma energética (por exemplo, Enorm=1e-8)
a m
NS c Luniver Press
s
ce
on
)10
0 ns=newsolution(u0,Lb,Ub,init_flag);
d E on
(2
d t
eu eu
Machine Translated by Google
outro
init_flag=0;
ns=newsolution(best,Lb,Ub,init_flag);
fim
valor total=valor total+1;
E_novo = Divertido(ns);
% Decide aceitar a nova solução
DeltaE=E_novo-E_velho;
% Aceita se melhorou se
(DeltaE <0)
melhor = ns; E_velho = E_novo;
aceitar=aceitar+1; j = 0;
fim
% Aceite com probabilidade se não melhorar if (DeltaE>=0
& exp(-DeltaE/(k*T))>rand ); melhor = ns; E_velho =
E_novo; aceitar=aceitar+1; outro
j=j+1;
fim
% Atualize a solução ótima estimada f_opt=E_old;
fim
bestsol=melhor;
fval=f_opt;
N=total;
%% Nova função de
soluções s=newsolution(u0,Lb,Ub,init_flag)
% Procure se length(Lb)>0 &
init_flag==1, s=Lb+(Ub-Lb).*rand(size(u0));
else % Ou pesquisa local por caminhada
M e t ahe s=limites(s,Lb,Ub);
em
reu
eed
ps steu
Ac
nEU eu og
e-
rt
em
%% Arrefecimento
ri
Xin-She Yang h
t
m
a
NS c Luniver Press função T=resfriamento(alfa,T)
s
ce
on
)1
T=alfa*T;
0
0
d E on
(2
d t
eu eu
Machine Translated by Google
função ns=limites(ns,Lb,Ub) se
comprimento(Lb)>0,
% Aplicar o limite inferior
ns_tmp=ns;
I=ns_tmp<Lb;
ns_tmp(I)=Lb(I);
% Aplicar os limites superiores
J=ns_tmp>Ub;
ns_tmp(J)=Ub(J);
% Atualize este novo movimento
ns=ns_tmp;
outro
ns=ns;
fim
% Objetivo
z=fobj(u);
função Z=getnonlinear(u)
Z=0;
% Constante de
penalidade lam=10^15;
coxoq=10^15; [g,geq]=restrições(u);
% Restrições de desigualdade
para k=1:comprimento(g),
Z=Z+ lam*g(k)^2*getH(g(k));
fim
c
e
o
nd
)1
0
a função H=getH(g)
0
E d t
eu
on
eu
(2
Machine Translated by Google
se g <= 0,
H=0;
outro
H=1;
fim
% Todas as restrições
funcionam [g,geq]=constraints(x)
% Restrições de desigualdade
Q=6000*(14+x(2)/2);
D=sqrt(x(2)^2/4+(x(1)+x(3))^2/4);
J=2*(x(1)*x(2)*sqrt(2)*(x(2)^2/12+(x(1)+x(3))^2/4)); alfa=6000/
(quadrado(2)*x(1)*x(2)); beta=Q*D/J;
tau=sqrt(alpha^2+2*alpha*beta*x(2)/(2*D)+beta^2); sigma=504000/
(x(4)*x(3)^2); delta=65856000/
(30*10^6*x(4)*x(3)^3); tmpf=4,013*(30*10^6)/196;
P=tmpf*sqrt(x(3)^2*x(4)^6/36)*(1-
x(3)*sqrt(30/48)/28);
g(1)=tau-13600;
g(2)=sigma-30000;
g(3)=x(1)-x(4);
g(4)=0,10471*x(1)^2+0,04811*x(3)*x(4)*(14+x(2))-5,0; g(5)=0,125-x(1);
g(6)=delta-0,25;
g(7)=6000-P;
M e t ahe emreu
pseed steu
Ac
nEUe eu og
-
rt
em
Xin-She Yang
% Restrições de igualdade
ri
h
t
m
a
NS c Luniver Press geq=[];
s
ce
on
)1
%%0
Fim do programa --------------------------------
0
d E on
(2
d t
eu eu
Machine Translated by Google
Para obter os arquivos de todos os programas Matlab fornecidos neste livro, os leitores
podem enviar um e-mail (com o assunto 'Nature-Inspired Algorithms: Files') para
Metaheuristic.Algorithms@gmail.com – Um arquivo zip será fornecido (via e-mail ) do autor.
REFERÊNCIAS
M e t ahe emreu
pseed steu
Ac
nEUe eu
og
-
rt ri
em
Xin-She Yang h
t
a m
NS c Luniver Press s
ce
on
)10
0
d E on
(2
d t
eu eu
Machine Translated by Google
capítulo 5
ALGORÍTMOS GENÉTICOS
5.1 INTRODUÇÃO
Capítulo 10
ALGORITMO FIREFLY
A luz intermitente dos vaga-lumes é uma visão incrível no céu de verão nas regiões
tropicais e temperadas. Existem cerca de duas mil espécies de vaga-lumes, e a
maioria produz flashes curtos e rítmicos. O padrão de flashes é muitas vezes único
para uma espécie em particular. A luz intermitente é produzida por um processo de
bioluminescência, e as verdadeiras funções de tais sistemas de sinalização ainda
estão sendo debatidas. No entanto, duas funções fundamentais desses flashes são
atrair parceiros de acasalamento (comunicação) e atrair presas em potencial. Além
disso, piscar também pode servir como um mecanismo de alerta de proteção para
lembrar predadores em potencial do sabor amargo dos vaga-lumes.
a m
NS c Luniver Press discutir a implementação em detalhes.
s
c
e
on
)1
(2
0
0
d E d t on
eu
eu
Algoritmo do Vaga-lume
T
Função objetivo f(x), x = (x1, ..., xd)
Gerar população inicial de vaga-lumes xi (i = 1, 2, ..., n)
A intensidade da luz Ii em xi é determinada por f(xi)
Defina o coeficiente de absorção de luz ÿ
while (t <MaxGeneration) para i
= 1 : n todos os n vaga-lumes
para j = 1 : n todos os n vaga-lumes (loop
interno) se (Ii < Ij ), mova o vaga-lume i em direção a j ; fim se
Varie a atratividade com a distância r via exp[ÿÿr]
Avalie novas soluções e atualize a intensidade da luz end
for j end for
i
Classifique os vaga-lumes e encontre o melhor gÿ final global
atual enquanto
Resultados e visualização pós-processamento
Agora podemos idealizar algumas das características dos vaga-lumes para desenvolver
algoritmos inspirados em vaga-lumes. Para simplificar a descrição do nosso novo Firefly
Algorithm (FA), que foi desenvolvido por Xin-She Yang na Cam Bridge University em
2007, agora usamos as três regras idealizadas a seguir:
• Todos os vaga-lumes são unissex para que um vaga-lume seja atraído por outros
vaga-lumes independentemente do sexo;
M e t ahe emreu
pseed steu
Ac Para um problema de maximização, o brilho pode ser simplesmente proporcional ao
nEUe eu
og
- valor da função objetivo. Outras formas de brilho podem ser definidas de maneira
ri
rt
em
Xin-She Yang t
ce
on
)10
0
(2 pode
Com base nessas três regras, os passos básicos do algoritmo firefly (FA)
d E d t
eu
on
eu
ser resumido como o pseudocódigo mostrado na Figura 11.1.
Machine Translated by Google
ÿÿr
I = I0e (10.2) ,onde I0 é a intensidade original da
ÿ0 . (10.5)
ÿ = 1 + ÿr 2
2
linha = (xi ÿ xj ) + (yi ÿ yj ) 2. (10.10)
2 ÿÿr
xi = xi + ÿ0e ij (xj ÿ xi) + ÿ i , (10.11)
M e t ahe emreu
eed
ps steu
Ac
nEU eu 10.4 ESCALAÇÕES E ASSINTÓTICAS
og
e- ri
rt
em
Xin-She Yang h
t
a m
s
NS c Luniver Press
)1
c
e Vale ressaltar que a distância r definida acima não se limita à distância euclidiana.
0
on 0Podemos definir outra distância r na dimensão n
d E d t o n (2
eu eu
Machine Translated by Google
ce
on
)1
(2
0
0
d E d t on
eu
eu
Machine Translated by Google
1
5
0
0 ÿ5
0
5 ÿ5
Figura 10.2: Paisagem de uma função com dois máximos globais iguais.
10.5 IMPLEMENTAÇÃO
onde (x, y) ÿ [ÿ5, 5] × [ÿ5, 5]. Esta função tem quatro picos. Dois picos locais com f
= 1 em (ÿ4, 4) e (4, 4) e dois picos globais com fmax = 2 em (0, 0) e (0, ÿ4), conforme
mostrado na Figura 10.2. Podemos ver que todos esses quatro ótimos podem ser
encontrados usando 25 vaga-lumes em cerca de 20 gerações (ver Fig.
10.3). Portanto, o número total de avaliações de funções é de cerca de 500. Isso é
muito mais eficiente do que a maioria dos algoritmos metaheurísticos existentes.
a funstr=strcat(str1,str2);
m
s
NS c Luniver Press
)1
ce 0% Convertendo para uma função inline
on 0
(2 f=vectorize(inline(funstr));
d E d t on
eu
eu
Machine Translated by Google
10.5 IMPLEMENTAÇÃO 87
z=f(x,y);
% Exibe a forma da figura da função objetivo (1); surfc(x,y,z);
Lighto,alpha,gamma,range);
desenhado;
% Use "esperar" para mostrar os caminhos dos vaga-lumes
espera; end
%%%%% end of iterations best(:,1)=xo';
M e t ahebest(:,2)=yo';
em
reu best(:,3)=Claro';
pseed st Ac eu
nEUe eu og
-
a m
NS c Luniver Press % As localizações iniciais da função n vaga-lumes
s
ce
on
)1
[xn,yn,Lightn]=init_ffa(n,range)
0
0
d E on
(2
d t
eu eu
Machine Translated by Google
5 5
0 0
ÿ5 ÿ5
ÿ5 0 5 ÿ5 0 5
xintervalo=intervalo(2)-intervalo(1);
yrange=intervalo(4)-intervalo(3);
xn=rand(1,n)*xintervalo+intervalo(1);
yn=rand(1,n)*yrange+range(3);
Lightn=zeros(tamanho(yn));
a
N m
s yn(i)<=intervalo(3), yn(i)=intervalo(3); fim se
S c Luniver Press
c
e
on
)10
0
(2 fim
yn(i)>=intervalo(4), yn(i)=intervalo(4); fim
d E d t on
eu
eu
Machine Translated by Google
10.6 VARIANTES FA 89
10.6 VARIANTES FA
O algoritmo básico do firefly é muito eficiente, mas podemos ver que as soluções
ainda estão mudando à medida que os ótimos se aproximam. É possível melhorar a
qualidade da solução reduzindo a aleatoriedade.
Uma melhoria adicional na convergência do algoritmo é variar o parâmetro
de randomização ÿ para que ele diminua gradualmente à medida que os ótimos
se aproximam. Por exemplo, podemos usar
ÿt
ÿ = ÿÿ + (ÿ0 ÿ ÿÿ)e , (10.12)
a m
N c Luniver Press
s
S
)1 3 x2x3
ce
g1(x) = 1 ÿ 4 71785x 1 ÿ 0,
0
on
(2
0
d E d t on
eu
eu
Machine Translated by Google
2 4x ÿ x1x2 2 1
g2(x) = 3 4 2 ÿ 1 ÿ 0,
12566(x 1x2 ÿ x 1 + ) 5108x 1
140,45x1
g3(x) = 1 ÿ ÿ 0,
2 x2x3
x1 + x2
g4(x) = ÿ 1 ÿ 0. 1,5 (10.15)
com o objetivo
f(xÿ) = 0,012665. (10.18)
% -------------------------------------------------- ------%
% Algoritmo Firefly para otimização restrita % % por Xin-She Yang (Cambridge
University) Copyright @2009 % % ----------------------- ---------------------------% função
fa_mincon_demo
% parâmetros [n N_iteração alfa betamin gama] para=[40 150 0,5 0,2 1];
% Limites/limites simples
disp('Resolva o problema de projeto de mola simples ...'); Lb=[0,05 0,25 2,0];
Ub=[2,0 1,3 15,0];
M e t ahe emreu
pseed steu
Ac
nEUe % Suposição aleatória inicial
eu
og
-
rt u0=(Lb+Ub)/2;
ri
em
Xin-She Yang h
t
a m
NS c Luniver Press s
c
e
on
)10
[u,fval,NumEval]=ffa_mincon(@cost,@constraint,u0,Lb,Ub,para);
0
d E on
(2
d t
eu eu
Machine Translated by Google
% Mostrar resultados
melhor solução=u
bestojb=fval
total_number_of_function_evaluations=NumEval
a m
s
NS c Luniver Press % O alfa pode ser reduzido (para reduzir a aleatoriedade) % ------------------------------------
c
e
o
nd 20
)10
---------------------
E d t
eu
on (
eu
Machine Translated by Google
% Iniciar
função FA [nbest,fbest,NumEval]...
=ffa_mincon(fhandle,nonhandle,u0, Lb, Ub, para)
% Verifique os parâmetros de entrada (caso contrário, defina como valores padrão) se
nargin<6, para=[20 50 0,25 0,20 1]; fim se nargin<5, Ub=[]; fim
se nargin<4, Lb=[]; end if nargin<3,
disp('Uso: FA_mincon(@cost,
@constraint,u0,Lb,Ub,para)'); fim
% n=número de vaga-lumes %
MaxGeneration=número de pseudo passos de tempo %
----------------------------------- ------------- % alfa=0,25; % Aleatoriedade 0--1
(altamente aleatória) % betamn=0,20; % valor mínimo de beta % gama=1; %
Coeficiente de absorção % ----------------------------------------------
-- n=para(1); MaxGeneration=para(2); alfa=para(3);
betamina=para(4); gama=para(5);
% Calcular dimensão
d=comprimento(u0);
a m
NS c Luniver Press % Avaliar novas soluções (para todos os n vaga-lumes)
s
c
e
on
)1
(2
para i=1:n,
0
0
d E d t on
eu
eu
Machine Translated by Google
zn(i)=Fun(fhandle,nonhandle,ns(i,:));
Lightn(i)=zn(i); fim
ns(i,:)=ns_tmp(Index(i),:); fim
% -------------------------------------------------- ------
% ----- Todas as subfunções estão listadas aqui ------------
% As localizações iniciais da função n vaga-lumes
[ns,Lightn]=init_ffa(n,d,Lb,Ub,u0)
% se houver fronteiras/limites, se
length(Lb)>0, for i=1:n,
ns(i,:)=Lb+
(Ub-Lb).*rand(1,d); fim
outro
% gera soluções em torno da estimativa aleatória para i=1:n,
ns(i,:)=u0+randn(1,d); fim
fim
M e t ahe emreu
eed
ps %stMover
eu
todos os vaga-lumes para a função mais brilhante
Ac
eu
nEU
e-
[ns]=ffa_move(n,d,ns,Lightn,nso,Lighto,...
og
rt ri
em
Xin-She Yang
mh nbest,Lightbest,alpha,betamin,gamma,Lb,Ub)
t
a
c Luniver Press s
NS % Escala do sistema scale=abs(Ub-
)1
e 0
c
on Lb);
0
d E on
(2
d t
eu eu
Machine Translated by Google
% Atualizando vaga-lumes
para i=1:n, %
O parâmetro de atratividade beta=exp(-gamma*r) para j=1:n,
% Esta função é opcional, pois não está no FA original % A ideia para reduzir a
aleatoriedade é aumentar a convergência, % no entanto, se você reduzir a aleatoriedade muito
rapidamente, % pode ocorrer convergência prematura. Portanto, use com cuidado. função
alpha=alpha_new(alpha,NGen) % alpha_n=alpha_0(1-
delta)^NGen=0,005 % alpha_0=0,9 delta=1-
(0,005/0,9)^(1/NGen); alfa=(1-delta)*alfa;
a m
NS c Luniver Press
s
ce
on
)10
0% Objetivo
d E on
(2
d t
eu eu
Machine Translated by Google
z=fhandle(u);
função Z=getnonlinear(nonhandle,u)
Z=0;
% Constante de penalidade >>
1 lam=10^15; coxoq=10^15;
% Obter restrições não lineares
[g,geq]=nonhandle(u);
H=0; de
outra forma
H=1;
fim
outra forma
H=1;
fim
%% ==== Fim da implementação do Algoritmo Firefly ======
REFERÊNCIAS
ed
M e t ahe emreu
e
ps steu
Ac
1. J. Arora, Introdução ao Design Ideal, McGraw-Hill, (1989).
nEU euog
e- ri
rt
em
Xin-She Yang h
t
a
N 2. LC Cagnina, SC Esquivel, CA Coello, resolvendo problemas de otimização de
m
s
S c Luniver Press
ce
on 0
)1
engenharia com o otimizador de enxame de partículas constrangido simples,
0
d E on
(2 Informatica, 32, 319-326 (2008).
d t
eu eu
Machine Translated by Google
M e t ahe emreu
pseed steu
Ac
nEUe eu
og
-
rt ri
em
Xin-She Yang h
t
a m
NS c Luniver Press
s
ce
on
)10
0
d E on
(2
d t
eu eu
Machine Translated by Google
Capítulo 12
BUSCA DE CUCO
Os cucos são aves fascinantes, não só pelos belos sons que emitem, mas também pela sua
agressiva estratégia de reprodução. Algumas espécies, como os cucos ani e Guira, depositam
seus ovos em ninhos comunitários, embora possam remover os ovos de outras pessoas para
aumentar a probabilidade de eclosão de seus próprios ovos.
Um grande número de espécies contrai o parasitismo obrigatório da ninhada, colocando seus
ovos nos ninhos de outras aves hospedeiras (muitas vezes outras espécies).
Existem três tipos básicos de parasitismo de ninhada: parasitismo de ninhada intraespecífico,
reprodução cooperativa e aquisição de ninho. Algumas aves hospedeiras podem entrar em
conflito direto com os cucos invasores. Se um pássaro hospedeiro descobrir que os ovos não
são seus, ele se livrará desses ovos estranhos ou simplesmente abandonará seu ninho e
construirá um novo ninho em outro lugar. Algumas espécies de cuco, como o parasita Tapera
do Novo Mundo, evoluíram de tal maneira que os cucos parasitas fêmeas são frequentemente
muito especializados na imitação de cores e padrões dos ovos de algumas espécies hospedeiras
escolhidas. Isso reduz a probabilidade de seus ovos serem abandonados e, assim, aumenta sua
reprodutividade.
Além disso, o tempo de postura de algumas espécies também é surpreendente. Os cucos
M e t aheparasitas
em
reu
geralmente escolhem um ninho onde o pássaro hospedeiro acabou de colocar seus
eed
ps st
Ac
eu
próprios ovos. Em geral, os ovos de cuco eclodem um pouco antes dos ovos hospedeiros. Uma
nEU eu
og
e-
rt
em
vez que o primeiro filhote de cuco é chocado, a primeira ação instintiva que ele tomará é expulsar os ovos hospedei
ri
Xin-She Yang h
t
a impulsionando cegamente os ovos para fora do ninho, o que aumenta a porção de alimento do
m
s
NS c Luniver Press
)1
ce filhote de cuco fornecida por seu pássaro hospedeiro. Estudos também mostram que um filhote
0
on 0
(2 cuco também pode imitar o chamado dos filhotes hospedeiros para ter acesso a mais oportunidades de alimenta
d E d t on
eu
de
eu
´
12.2 VOOS LEVY
Por outro lado, vários estudos mostraram que o comportamento de vôo de muitos animais e insetos
demonstrou as características típicas dos vôos de L'evy. Um estudo recente de Reynolds e Frye
mostra que as moscas-das-frutas ou Drosophila melanogaster exploram sua paisagem usando uma
série de trajetórias de voo retas pontuadas por uma curva repentina de 90o , levando a um padrão
de busca livre de escala intermitente estilo L´evy-flight.
Estudos sobre o comportamento humano, como os padrões de forrageamento dos caçadores-
coletores Ju/'hoansi, também mostram a característica típica dos voos de L'evy. Até mesmo a luz
pode ser relacionada aos vôos de L´evy. Posteriormente, tal comportamento foi aplicado à otimização
e busca ótima, e resultados preliminares mostram sua capacidade promissora.
Para simplificar a descrição do nosso novo Cuckoo Search, agora usamos as três regras idealizadas
a seguir:
• Cada cuco põe um ovo de cada vez e despeja seu ovo aleatoriamente
ninho escolhido;
• Os melhores ninhos com ovos de alta qualidade serão levados para o próximo
gerações;
• O número de ninhos hospedeiros disponíveis é fixo, e o ovo posto por um cuco é descoberto
pelo pássaro hospedeiro com uma probabilidade pa ÿ [0, 1]. Nesse caso, o pássaro
hospedeiro pode se livrar do ovo ou simplesmente abandonar o ninho e construir um ninho
completamente novo.
Como uma aproximação adicional, esta última suposição pode ser aproximada por uma fração
pa dos n ninhos de hospedeiros substituídos por novos ninhos (com novas soluções aleatórias).
c
e
o
)1onde ÿ > 0 é o tamanho do passo que deve ser relacionado com as escalas do problema de interesses.
0
0
nd on (2 Na maioria dos casos, podemos usar ÿ = O(L/10) onde L é a característica
E d t
eu eu
Machine Translated by Google
-eu
L´evy ÿ u = t , (1 < ÿ ÿ 3), (12.2)
que tem uma variância infinita com uma média infinita. Aqui, as etapas formam essencialmente
um processo de passeio aleatório com uma distribuição de comprimento de etapa de lei de
potência com uma cauda pesada. Algumas das novas soluções devem ser geradas por L´evy
andando em torno da melhor solução obtida até o momento, o que agilizará a busca local. No
entanto, uma fração substancial das novas soluções deve ser gerada por randomização de
campo distante e cujas localizações devem estar longe o suficiente da melhor solução atual,
isso garantirá que o sistema não fique preso em um ótimo local.
De uma olhada rápida, parece que há alguma semelhança entre CS e escalada em
M e t ahecombinação
em
reu
com alguma randomização em grande escala. Mas existem algumas diferenças
eed
ps st
Ac
eu
significativas. Em primeiro lugar, CS é um algoritmo baseado em população, de forma
nEU eu
og
e-
rt
em
semelhante ao GA e PSO, mas usa algum tipo de elitismo e/ou seleção
ri
Xin-She Yang h
t
e, portanto, é potencialmente mais genérico para se adaptar a uma classe mais ampla de
problemas de otimização. Além disso, cada ninho pode representar um conjunto de soluções, o
CS pode assim ser estendido ao tipo de algoritmos de metapopulação.
Após a implementação, temos que validar o algoritmo usando funções de teste com soluções
analíticas ou conhecidas. Por exemplo, uma das muitas funções de teste que usamos é a função
bivariada de Michalewicz
2
2x 2 anos
onde m = 10 e (x, y) ÿ [0, 5] × [0, 5]. Esta função tem um mínimo global fÿ ÿ ÿ1,8013 em (2,20319,
1,57049). Este ótimo global pode ser facilmente encontrado usando Cuckoo Search, e os
resultados são mostrados na Fig. 12.2 onde as localizações finais dos ninhos também são
marcadas com na figura. Aqui usamos n = 15 ninhos, ÿ = 1 e pa = 0,25. Na maioria de nossas
simulações, usamos n = 15 a 50.
A partir da figura, podemos ver que, à medida que o ótimo se aproxima, a maioria dos ninhos
se agrega em direção ao ótimo global. Também notamos que os ninhos também são distribuídos
em ótimos (locais) diferentes no caso de funções multimodais. Isso significa que o CS pode
encontrar todos os ótimos simultaneamente se o número de ninhos for muito maior que o
número de ótimos locais. Esta vantagem pode se tornar mais significativa ao lidar com problemas
de otimização multimodais e multiobjetivos.
12.5 IMPLEMENTAÇÃO
% -------------------------------------------------- ------
% Algoritmo cuco por Xin-She Yang e Suasg Deb %
% Programado por Xin-She Yang na Universidade de Cambridge % %
-------------------------------------- ----------------- function [bestsol,fval]=cuckoo_search(Ngen)
a m
% d-dimensions (qualquer dimensão)
s
NS c Luniver Press
)1
ce d=2;
0
on 0
(2 % Número de ninhos (ou soluções diferentes)
d E d t on
eu
eu
Machine Translated by Google
3.5
2.5
1,5
0,5
0
0 1 2 3 4
Figura 12.2: Caminhos de busca de ninhos usando Cuckoo Search. As localizações finais
dos ninhos são marcadas com na figura.
n=25;
a m h
fim
NS c Luniver Press
s
c
e
on
)10
0 % descoberta e randomização se rand<pa,
d E on
(2
d t
eu eu
Machine Translated by Google
k=get_max_nest(fbest);
s=vazio(ninho(k,:)); ninho(k,:)=s;
fbest(k)=fobj(s);
fim
fim
%% Processamento pós-otimização
%% Encontre o melhor e exiba
[fval,I]=min(fbest)
bestsol=nest(I,:)
a m
NS c Luniver Press s=s+0.05*randn(size(s));
s
c
e
on
)10
0
d E on
(2
d t
eu eu
Machine Translated by Google
M e t ahe emreu
pseed st
Ac
eu
% Taxa de descoberta
nEUe eu
og
pa=0,25;
-
rt ri
em
Xin-She Yang t
c
e
o
nd
)1
nest=init_cuckoo(n,d,Lb,Ub);
0
0
E d t
eu
on
eu
(2
fbest=ones(n,1)*10^(10); % de problemas de minimização
Machine Translated by Google
Kmelhor=1;
fim
k=get_max_nest(fbest);
s=emptyit(ninho(k,:),Lb,Ub); ninho(k,:)=s;
fbest(k)=fobj(s);
fim
fim
%% Encontre o melhor
[fmin,I]=min(fbest)
bestsol=nest(I,:);
guess(i,1:d)=Lb+rand(1,d).*(Ub -Libra);
fim
M e t ahe emreu
pseed steu%% Escolha uma função de ninho
Ac
nEUe
-
aleatoriamente k=choose_a_nest(n,Kbest)
eu
og
rt ri
em
Xin-She Yang k=floor(rand*n)+1;
h
t
a m
NS c Luniver Press % Evite o melhor
s
c
e
o
nd
)10
0se k==Kmelhor,
E d t
eu
on
eu
(2
Machine Translated by Google
k=mod(k+1,n)+1;
fim
%% Obtenha um cuco com uma nova solução por meio de uma caminhada
aleatória %% Nota: Voos Levy não foram implementados nesta função de
demonstração s=get_a_cuckoo(s,star,Lb,Ub)
s=star+0.01*(Ub-Lb). *randn(tamanho(s));
s=limites(s,Lb,Ub);
função Z=getnonlinear(u)
Z=0;
% Constante de
ed
M e t ahepenalidade
em
reu lam=10^15;
pse st Ac eu
nEUe eu og
-
rt ri
em
Xin-She Yang % de restrições de desigualdade
h
t
a m
NS c Luniver Press g(1)=1-u(2)^3*u(3)/(71785*u(1)^4); gtmp=(4*u(2)^2-
s
ce
o
)1 0
u(1)*u(2))/(12566*(u(2)*u(1)^3-u(1)^4));
0
nd on (2
E d t
eu eu
Machine Translated by Google
g(2)=gtmp+1/(5108*u(1)^2)-1;
g(3)=1-140,45*u(1)/(u(2)^2*u(3)); g(4)=(u(1)+u(2))/
1.5-1;
H=0;
outro
H=1;
fim
% Função de índice para função de igualdade
H=getHeq(geq) se geq==0,
H=0; de
outra forma
H=1;
fim
% ----------------- fim ------------------------------
Este algoritmo de otimização potencialmente poderoso pode ser facilmente estendido para
estudar aplicações de otimização multiobjetivo com várias restrições, até mesmo para problemas
NP-difíceis. Estudos futuros podem focar nos estudos de sensibilidade e parâmetros e suas
possíveis relações com a taxa de convergência do algoritmo. A hibridização com outros
algoritmos populares, como PSO e evolução diferencial, também será potencialmente frutífera.
M e t ahe emreu
eed
ps steu
Ac
nEU eu
og
e-
rt REFERÊNCIAS
ri
em
Xin-She Yang h
t
a m
NS c Luniver Press s
c
e
o
)10
0 1. Barthelemy P., Bertolotti J., Wiersma DS, AL´evy flight for light, Nature,
nd on (2 453, 495-498 (2008).
E d t
eu eu
Machine Translated by Google
M e t ahe emreu
pseed steu
Ac
nEUe eu
og
-
rt ri
em
Xin-She Yang h
t
a m
NS c Luniver Press
s
ce
on
)10
0
d E on
(2
d t
eu eu