• Nenhum resultado encontrado

5 ALGORITMOS DE SOLUÇÃO

5.2 PSO (Particle Swarm Optimization)

O algoritmo de otimização que simula a inteligência de enxames, denominado Otimização por Enxame de Partículas – Particle Swarm Optimization (PSO), foi desenvolvido inicialmente por Kennedy e Eberhart (1995) baseado no comportamento de animais que vivem em grandes grupos, como cardumes de peixes e bando de pássaros. Os autores afirmam que ao levantar voo, os pássaros se comportam de forma aleatória. Mas, passando algum tempo já estarão voando organizadamente e, caso seja encontrado um bom lugar para se alimentar, todos os pássaros do bando se dirigirão ao local e pousarão. No modelo computacional cada pássaro é representado por uma partícula e o local de pouso seria um mínimo local.

Os estudos de Kennedy e Eberhart (1995) levaram ao desenvolvimento de estudos da “Swarm Intelligence” (SI), ou Inteligência do Enxame, proposto por Beni e Wang (1989), que é um conjunto de técnicas baseadas no comportamento coletivo de sistemas auto organizados, distribuídos, autônomos, flexíveis e dinâmicos. Estes sistemas são formados por uma população de agentes computacionais simples que possuem a capacidade de perceber e modificar o seu ambiente de maneira local. (SERAPIÃO, 2009).

Rosendo (2010) afirma que a inteligência do enxame é uma característica marcante do PSO, a SI é a forma como os agentes, ou partículas, se relacionam entre si. Eles apresentam um comportamento colaborativo, simulando um compartilhamento de

experiências e cooperando entre si em busca das melhores soluções. Serapião (2009) comenta que cada indivíduo de uma população possui sua própria experiência e é capaz de estimar a qualidade dessa experiência (aprendizagem individual ou cognitiva). Como os indivíduos são sociais, eles também possuem conhecimentos sobre como seus vizinhos comportam-se (transmissão cultural ou social).

A maior parte dos algoritmos de PSO empregam dois princípios sócio métricos, que representam dois tipos de informação importante no processo de decisão. O primeiro princípio (gB) conecta conceitualmente todos os membros de uma população entre si. Como

consequência, o comportamento de cada partícula é influenciado pelo comportamento de todas as outras partículas. A segunda métrica (pB) cria uma vizinhança para cada indivíduo

composta por ele próprio e seus vizinhos mais próximos.

No algoritmo PSO, os indivíduos da população são representados por pontos (soluções em potencial) chamados de partículas. Cada partícula possui uma aptidão, que é avaliada pela função objetivo, com sua respectiva velocidade que direciona o vôo da partícula. A cada iteração baseado na sua melhor posição ja encontrada (pBe) e de acordo com a melhor

posição encontrada pelo enxame (gB), altera a velocidade da partícula em busca de melhores

resultados. Multiplicadores baseados na geração de números aleatórios também são usados para criar a aleatoriedade da busca.

A formulação básica de Kennedy e Eberhart (1995) é mostrada pelas Equações (115) e (116). Uma partícula irá se mover numa direção, em função da posição atual da partícula xi (t), da velocidade 𝑣𝑖(t + 1), da posição em que a partícula obteve melhor

desempenho até o momento (pB), e da posição com melhor desempenho de todas as partículas

do bando (gB), com uma velocidade igual a

𝒗𝒊(t + 1) = 𝒗𝒊(𝑡) + 𝑐1∙ 𝑟1∙ (𝒑𝑩(𝑡) − 𝒙𝒊(𝑡)) + 𝑐2∙ 𝑟2∙ (𝒈𝑩(𝑡) − 𝒙𝒊(𝑡)) (115) onde c1 e c2 são constantes conhecidas como coeficientes de aceleração, na formulação inicial

de Kennedy e Eberhart (1995) elas assumiam valor igual a 2; r1 e r2 são gerados dois números

aleatórios distribuídos uniformemente no intervalo [0,1] . A nova posição 𝑥𝑖(t + 1) da partícula é dada pela por:

Ratnaweera et al (2004) afirmam que a primeira parte da Equação (115) representa a velocidade anterior, que proporciona a força necessária para as partículas se movimentarem através do espaço de busca. A segunda parte, conhecida como o componente "cognitivo", representa o pensamento pessoal de cada particula. O componente cognitivo incentiva as partículas a se moverem em direção as suas próprias melhores posições encontradas até o momento. A terceira parte é conhecida como componente "social", que representa o efeito colaborativo das partículas, em encontrar a solução ótima global. O componente social sempre direciona as partículas em direção à melhor posição global das partículas encontrada até o presente momento.

Segundo Serapião (2009), para limitar a velocidade de uma partícula para que o sistema não extrapole o espaço de busca, são impostos limites (Vmax) para seus valores em cada dimensão (d) do espaço de busca dados pelas Equações (117) e (118).

𝑠𝑒 𝑣𝑖 > 𝑣𝑚𝑎𝑥 então 𝑣𝑖 = 𝑣𝑚𝑎𝑥 (117)

𝑠𝑒𝑛ã𝑜 𝑠𝑒 𝑣𝑖 < 𝑣𝑚𝑎𝑥 então 𝑣𝑖 = −𝑣𝑚𝑎𝑥 (118)

A cada iteração do PSO novas velocidades e posições serão determinadas para as partículas e o processo de repete até que um critério de terminação é atingido. Serapião (2009) descreve o pseudocódigo do algoritmo PSO na forma:

1 – Determine o número de partículas P da população.

2 – Inicialize aleatoriamente a posição inicial (x) de cada partícula p de P. 3 – Atribua uma velocidade inicial (v) igual para todas as partículas. 4 – Para cada partícula p em P faça:

a) Calcule sua aptidão fp = f(p).

b) Calcule a melhor posição da partícula até o momento (pB).

5 – Descubra a partícula com melhor aptidão de toda a população (gB).

6 – Para cada partícula p em P faça:

a) Atualize a velocidade da partícula pela Equação (115). b) Atualize a posição da partícula pela Equação (116).

5.2.1 Peso de Inércia

Existem diversas variações do PSO, dentre elas, o conceito de peso de inércia foi introduzido na versão original do PSO por Shi e Eberhart (1998), objetivando equilibrar a busca local e global durante o processo de otimização. A consideração principal da alteração do parâmetro inércia (w) é evitar convergência prematura nos primeiros estágios da pesquisa e melhorar a convergência para a solução ótima global durante os últimos estágios da pesquisa. Segundo Ratnaweera (2004), a Equação (115) muda para:

𝒗𝒊(t + 1) = 𝑤 ∙ 𝒗𝒊(𝑡) + 𝑐1∙ 𝑟1∙ (𝒑𝑩(𝑡) − 𝒙𝒊(𝑡)) + 𝑐2∙ 𝑟2∙ (𝒈𝑩(𝑡) − 𝒙𝒊(𝑡)) (119)

𝑤 = (𝑤1− 𝑤2) ∙(𝑀𝐴𝑋𝐼𝑇𝐸𝑅 − 𝑖𝑡𝑒𝑟)𝑀𝐴𝑋𝐼𝑇𝐸𝑅 + 𝑤2 (120)

onde w1 e w2 são os valores iniciais e finais do peso de inércia respectivamente, iter é o

número da iteração atual e MAXITER é o número máximo de iterações permitidas.

Ratnaweera et al (2004) afirmam que geralmente, nos algoritmos evolucionários, uma elevada diversidade é necessária durante a primeira parte da pesquisa para permitir uma busca envolvendo todo o espaço de busca. Por outro lado, durante a última parte da busca, quando o algoritmo está próximo de convergir para a solução ótima, o refinamento das soluções é importante para encontrar o ótimo global eficientemente. Assim os autores propõem três estratégias para melhorar a performance do PSO:

Time-Varying Acceleration Coefficients (TVAC): têm-se uma variação dos parâmetros

de inércia, bem como os coeficientes c1 e c2 também variam de acordo com as Equações (121)

e (122). A velocidade da particular é dada pelas Equações (119) e (120).

𝑐1 = (𝑐1𝑓− 𝑐1𝑖)𝑀𝐴𝑋𝐼𝑇𝐸𝑅 + 𝑐𝑖𝑡𝑒𝑟 1𝑖 (121)

𝑐2 = (𝑐2𝑓− 𝑐2𝑖)𝑀𝐴𝑋𝐼𝑇𝐸𝑅 + 𝑐𝑖𝑡𝑒𝑟 2𝑖 (122)

onde c1i, c1f, c2i e c2f são constantes onde os autores realizaram que os valores ótimos para a

PSO with “Mutation” and Time-Varying Acceleration coefficients (MPSO-TVAC): O

algoritmo possui as mesmas características do TVAC, com o acréscmo do conceito de mutação, que é utilizado em diversos algorítmos evolucionários. Uma partícula é selecionada aleatoriamente e, em seguida, uma perturbação aleatória (passo de mutação) é adicionada ao módulo do vetor velocidade da partícula aleatoriamente por uma probabilidade definida (probabilidade de mutação). Os autores consideraram que o tamanho do passo de mutação é definido proporcionalmente à velocidade máxima permitida.

Self-Organizing Hierarquical PSO with TVAC (HPSO-TVAC): nesta variação do PSO,

os autores observaram que com a retirada do termo velocidade anterior (vi) na Equação (115), as partículas convergiam rapidamente para um mínimo local e a convergência dependia diretamente da população inicial. Para solução deste problema foi criado o HPSO-TVAC, para dar o impulso necessário para encontrar a melhor solução global com a ausência do termo velocidade anterior, como mostrado no pseudocódigo de Ratnaweera et al. (2004)

Figura 18 Pseudocódigo HPSO-TVAC

Fonte: Ratnaweera (2004)

Barroso et. al (2014) utilizaram os AGs e o PSO com uma variação linear dos parâmetros (TVAC), conforme as Equações (120), (121) e (122). Os autores utilizaram também operadores de mutação oriundos dos AGs, resultando assim num algoritmo híbrido. O algoritmo PSO utilizado nesta dissertação foi a mesma variação utilizada pelos autores.

Documentos relacionados