• Nenhum resultado encontrado

Optimizador Baseado em Partículas de Enxame

Nesta secção iremos apresentar os aspectos específicos da implementação do algoritmo de procura baseado num OEP. O algoritmo implementado foi o da versão binária do optimizador baseado em enxame de partículas, proposto por Kennedy em [Kennedy and Eberhart, 2001]. A estrutura genérica do optimizador encontra-se descrita no Algoritmo 5.6.

Algoritmo 5.6Algoritmo genérico do optimizador baseado em enxames de partículas Entrada: NumPartículas, NumDimensões, CritérioParagem, k

Enxame InicializarEnxame(NumPartículas, NumDimensões) repete

para partícula 2 Enxame faz Avalia(partícula)

ActualizaExperiênciaPassada(partícula) ActualizaMelhorVizinhança(partícula, k) para d 1 to NumDimensões faz

Move(partícula, d) fim para

fim para

até CritérioParagem

Na variante binária do optimizador, cada bit é considerado uma dimensão com dois valores possíveis, 0 ou 1. O movimento das partículas é apenas definido pela alternância entre entes dois valores.

Existe um valor de velocidade (vid) associado a cada dimensão/bit. Este valor é gerado aleatoriamente a partir do conjunto [ 4.0, 4.0] aquando da criação da partícula, e é actualizado iterativamente de acordo com a sua melhor posição (pid) e a melhor posição obtida na vizinhança (pgd), segundo a Equação 5.6. Os valores '1 e '2 são pesos aleatórios, cujo papel é permitir equilibrar a aprendizagem individual e a influência social.

vid(t) = vid(t 1) + '1(pid xid(t 1)) + '2(pgd xi, d(t 1)) (5.6) Para determinar se um bit é alterado, um número aleatório ⇢ é gerado a partir de uma distribuição uniforme entre 0 e 1, e comparado com o valor normalizado da velocidade associada a essa dimensão, segundo a Equação 5.7.

xi,d(t) = (

1 Se ⇢ < S(vid(t))

0 Caso contrário (5.7)

A função sigmoide (Equação 5.8) é usada de forma a assegurar que o valor da velocidade é mantido no intervalo [0.0, 1.0].

S(vid) =

1

1 + exp( vid) (5.8)

No optimizador implementado, cada partícula representa uma regra codificada segundo uma representação binária, tal como atrás se referiu. Cada bit representa uma dimensão da partícula. O enxame inicial é gerado de forma semelhante à geração da população inicial do algoritmo genético, ou seja, metade das partículas são geradas de forma aleatória, sendo as restantes codificações binárias de exemplos positivos escolhidos ale- atoriamente.

Algoritmo de Procura para Marcação

das PdD

Neste capítulo começamos por apresentar a ideia subjacente à concepção do marcador das PdD, revelando de que forma as regras de desambiguação poderão ser usadas para concretizar a tarefa de marcação. Como iremos ver, foram exploradas duas abordagens distintas para a construção do marcador. Uma resultou da aplicação de um algoritmo genético e a outra de um optimizador baseado em enxames de partículas. A discussão dos aspectos específicos de cada uma das duas abordagens desenrolar-se-à em secções distintas.

6.1 Como Aplicar as Regras de Desambiguação?

Comecemos por relembrar as características de um algoritmo para marcação das PdD. Trata-se de um processo automático, que recebe como entrada uma frase não anotada, definida à custa de um vector de n palavras, p, e deve devolver como saída a mesma frase, mas agora com todas as pi marcadas com uma etiqueta e 2 E adequada.

No capítulo anterior, apresentámos uma abordagem baseada em computação evoluci- onária para a descoberta de regras de desambiguação, para um conjunto pré-definido de etiquetas E. A finalidade destas regras seria a de auxiliar a resolução do problema de marcação das PdD.

Para cada e 2 E, foi construído um conjunto de regras de desambiguação, D = {De | e 2 E}, por aplicação de um algoritmo de classificação baseado em computação evo- lucionária. Os conjuntos De são constituídos por pares hregraj, valorji, onde valorj representa a qualidade estimada da regra regraj. Este valor foi determinado pela fun- ção usada pelo algoritmo de classificação, para avaliar as regras durante o processo de

aprendizagem (ver Equação 5.1).

Como dissemos no capítulo anterior, o problema da marcação das PdD pode ser visto como um problema de optimização combinatória, o qual, como sabemos, pode ser resolvido à custa de um algoritmo de procura. A hipótese que se defende nesta tese é de que os conjuntos De podem servir de base a uma função heurística capaz de orientar um algoritmo de procura no espaço de soluções candidatas para o problema. Este pode ser definido pelo conjunto P1⇥P2⇥· · ·⇥Pn, na assunção de que conhecemos as possibilidades de marcação, Pi, de cada uma das n palavras palavras, pi, da frase de entrada, p.

As regras presentes nos conjuntos De irão ser usadas, não para descobrir a marcação adequada de uma palavra, mas sim para avaliar uma marcação em particular. Vamos admitir que se pretende avaliar a marcação de uma palavra pi com a etiqueta e 2 Pi. Assuma-se ainda que xi, representa o vector de características que define a instância determinada por pi. Com base nestas premissas, podemos estabelecer que a qualidade da marcação hpi, eii, poderá ser estimada pelo valor de qualidade valor associado a uma eventual regra regra tal que hregra, valori 2 De e a instância xi é coberta pela regra regra. Este raciocínio pode ser alargado a todas as marcações das palavras de p, donde decorre que o conjunto D, pode ser usado para avaliar cada um dos pontos zi 2 P1⇥ P2⇥ · · · ⇥ Pn do espaço de estados do problema de marcação, computando-se para isso o somatório de cada uma das avaliações individuais.

A decisão de aplicar algoritmos de computação evolucionária a este problema foi influ- enciada pelo facto destes algoritmos mostrarem resultados bastante promissores nou- tras tarefas de optimização combinatória, incluindo o problema da marcação das PdD ([Araujo, 2002b], [Alba et al., 2006]).

Também neste caso investigámos a possibilidade de aplicação de dois algoritmos di- ferentes: um algoritmo evolucionário, mais concretamente um algoritmo genético, e um optimizador baseado em enxames de partículas. Cada uma das abordagens será detalhada nas próximas secções.