• Nenhum resultado encontrado

Um Algoritmo Hiper-Heurístico de Estimação de Distri buição

No documento Um Estudo Empírico de Hiper-Heurísticas (páginas 59-62)

4 Aspectos Investigados

4.3 Um Algoritmo Hiper-Heurístico de Estimação de Distri buição

Nesta seção apresentamos a primeira hiper-heurística originalmente introduzida por este tra- balho. Essa hiper-heurística, que batizamos como HHED, é um algoritmo populacional em que cada indivíduo representa uma seqüência de heurísticas de baixo nível – naturalmente, inspiramo-nos no algoritmo genético hiper-heurístico de Cowling et al. ao utilizarmos essa re- presentação. O HHED pode ser visto como um algoritmo de estimação de distribuição (consulte a Seção 2.5 para revisar esse tipo de algoritmo), uma vez que os indivíduos são construídos de forma completamente aleatória e que as probabilidades utilizadas durante esse processo são determinadas de acordo com uma análise dos melhores indivíduos da população corrente. Uma característica importante do HHED, que contraria os algoritmos evidenciados na Seção 2.5, é o fato de que não levamos em consideração, durante a definição das probabilidades, as po- sições absolutas das heurísticas nas seqüências em que essas ocorrem, uma vez que o uso dessa informação não é compatível com a suposição de Cowling et al. (Seção 3.4): uma seqüência de heurísticas que oferece bons resultados dentro de um indivíduo tem boas chances de melhorar a qualidade de outro indivíduo caso seja inserida neste último. Como ilustração, considere que o número de indivíduos selecionados em cada iteração do algoritmo de estimação de distribui- ção seja ns = 3 e que uma dessas seleções tenha obtido as seqüências {H2, H8, H1, H9, H17},

{H8, H1, H9, H13, H4} e {H9, H17, H8, H1, H9}, sendo a qualidade desses indivíduos influenciada

fortemente pela subseqüência{H8, H1, H9}, que ocorre em uma diferente posição em cada indi-

víduo. Para capturar esse tipo de informação desejável, não há razão óbvia para considerarmos cada posição do indivíduo como uma variável aleatória.

A estratégia implementada no HHED para a definição das probabilidades e a construção dos indivíduos baseia-se na hiper-heurística de Soubeiga, conforme será fácil notar adiante. A Fi- gura 4.4 ilustra de forma sucinta a implementação do HHED. Note que aplicamos novamente a idéia da otimização local direta para a extensão dos indivíduos, como outrora fizemos no desen- volvimento de um novo operador de mutação (Seção 4.2.2). Abaixo descrevemos alguns dos parâmetros empregados pelo algoritmo:

• O valorα ∈ (0, 1], utilizado nas redefinições de probabilidades, representa o peso de um

valor recém-inferido em relação ao valor prévio da probabilidade. α foi definido expe- rimentalmente como 0, 2, dentre valores no intervalo [0, 1, 0, 9]. É natural que um valor

baixo tenha sido selecionado, pois, embora valores baixos paraα aumentem a chance de que o algoritmo mantenha-se sempre longe de uma convergência, o risco de se utilizarem valores mais altos é certamente mais relevante, pois uma convergência precoce é extrema- mente indesejável. Uma estratégia natural seria fazer de α uma variável dinâmica, com valor crescente, de forma a forçar a convergência nas últimas etapas do processo e a au- mentar a exploração nas gerações iniciais. Porém, alguns experimentos comα crescendo linearmente (em relação ao tempo) de 0, 05 a 0, 35 (ou em intervalos menores com média

0, 2) sugerem que um valor fixo é mais adequado.

• O tamanho da população (tp) foi definido como 35, após experimentos com valores no in- tervalo[10, 100]. É interessante observar que esse resultado deixa a população do HHED

com tamanho semelhante ao da população do algoritmo genético hiper-heurístico de Co- wling et al.

• O número (ns) de indivíduos selecionados em cada iteração para inferência de probabi- lidades foi definido como 11. Foram realizados experimentos com diversos valores no intervalo[1, 34].

• Como número mínimo de heurísticas componentes de cada indivíduo (tmin), foi utilizado o valor 36, após experimentos com valores do intervalo[5, 40].

• O tamanho máximo (tmax) de cada indivíduo foi definido como 43, valor obtido experi- mentalmente do intervalo[37, 50].

Cada indivíduo é construído incrementalmente, de forma aleatória, com base nas probabilidades estipuladas pelas funções p1, p2, p3 e p4 (naturalmente, implementadas como vetores). O

algoritmo da Figura 4.5 ilustra esse processo, sendo u, v, w, z ∈ (0, 1), com u < v < w < z e

u+ v + w + z = 1, valores reais fixos. A restrição u < v < w < z se deve à maior relevância das

informações sobre a qualidade das seqüências que contêm mais heurísticas, considerando-se que um dos principais objetivos da hiper-heurística é detectar seqüências que tenham impacto positivo. Esses valores foram definidos experimentalmente como u= 0, 07, v = 0, 19, w = 0, 31

e z= 0, 43, tendo sido o valor de u escolhido do intervalo [0, 01, 0, 22], em experimentos nos

quais mantivemos sempre a relação z− w = w − v = v − u. A extensão de um indivíduo por

otimização local direta segue o mesmo princípio da mutação apresentada na Figura 4.3, que propusemos como extensão ao algoritmo genético hiper-heurístico.

Figura 4.4: Visão Geral da Implementação.

1. Inicialize todas as probabilidades como n1

h, sendo nho número de heurísticas.

2. Construa a população inicial, com tp indivíduos de tamanho tmin, e avalie todos os

indivíduos.

3. Estenda todos os indivíduos com otimização local direta e avalie-os. A extensão deve ser limitada, de forma que nenhum indivíduo fique com tamanho superior a tmax.

4. Enquanto houver tempo disponível:

(a) Selecione os ns melhores indivíduos da população atual e analise-os para obter

as seguintes medidas:

st: a soma dos comprimentos dos indivíduos.

OHi (para cada heurística Hi): o número de ocorrências de Hinos indivíduos

selecionados.

OHiHj (para cada par de heurísticas(Hi, Hj)): o número de ocorrências de Hi

após Hj.

OHiHjHk: o número de ocorrências de Hi após a ocorrência da seqüência

{Hk, Hj}.

OHiHjHkHl: o número de ocorrências de Hiapós{Hl, Hk, Hj}.

FHi: o número de ocorrências de Hicomo última heurística em um indivíduo.

FHiHj: o número de ocorrências da seqüência{Hj, Hi} como sufixo em um

indivíduo.

FHiHjHk: o número de ocorrências da seqüência{Hk, Hj, Hi} como sufixo em

um indivíduo.

(b) Redefina as probabilidades de acordo com o procedimento abaixo (quando um denominador for nulo, o termo que inclui a fração será definido comoα 1n):

p1(Hi) = (1 −α)p1(Hi) +α OHi st p2(Hi, Hj) = (1 −α)p2(Hi, Hj) +α OHiH j OH j−FH j p3(Hi, Hj, Hk) = (1 −α)p3(Hi, Hj, Hk) +α OHiH jHk OH jHk−FH jHk p4(Hi, Hj, Hk, Hl) = (1 −α)p4(Hi, Hj, Hk, Hl) +α OHiH jHkHl OH jHkHl−FH jHkHl

(c) Construa uma nova população, com o mesmo procedimento utilizado nos passos 2 e 3, e substitua a população atual pela recém-criada.

Para que seja possível avaliar um indivíduo X , a seqüência de heurísticas determinada por ele será aplicada à melhor solução já encontrada, de forma que possamos medir a diminuição de custo (DX) promovida por X . Sua avaliação será, então, calculada como DX TTMX (caso DX ≥ 0)

Figura 4.5: Construção de Um Indivíduo.

1. Faça T _ATUAL= 0.

2. Enquanto T _ATUAL< tmin:

• Se T _ATUAL = 0, defina a probabilidade de cada heurística Hicomo p1(Hi).

• Se T _ATUAL = 1, seja Hka heurística já existente no indivíduo e seja r= u + v.

Defina a probabilidade de cada heurística Hicomo:

1

r(u p1(Hi) + v p2(Hi, Hk))

• Se T _ATUAL = 2, sejam Hae Hb, respectivamente, a primeira e a segunda heu-

rísticas do indivíduo e seja r= u + v + w. Defina a probabilidade de cada heurís-

tica Hicomo:

1

r(u p1(Hi) + v p2(Hi, Hb) + w p3(Hi, Hb, Ha))

• Se T _ATUAL > 2, sejam Ha, Hb e Hc as três últimas heurísticas do indivíduo.

Defina a probabilidade de cada heurística Hicomo:

u p1(Hi) + v p2(Hi, Hc) + w p3(Hi, Hc, Hb) + z p4(Hi, Hc, Hb, Ha)

• Selecione uma heurística aleatoriamente, de acordo com as probabilidades que

foram estipuladas em um dos quatro itens anteriores, e a acrescente ao indivíduo.

• Faça T _ATUAL = T _ATUAL + 1.

e TM o tempo médio utilizado pelos indivíduos em operações desse tipo. Com isso, o tempo de

execução de uma seqüência de heurísticas terá sempre um efeito penalizador na avaliação do indivíduo correspondente.

Observe que, embora tenhamos nos inspirado na hiper-heurística de Soubeiga para implemen- tar a definição das probabilidades no HHED, não há nenhum cálculo baseado no fator de di- versificação daquela hiper-heurística, uma vez que um papel dessa natureza cabe à construção aleatória dos indivíduos no HHED. Note que a exploração do espaço de indivíduos nunca fica limitada, dado que nenhuma probabilidade se torna nula durante a execução do algoritmo.

No documento Um Estudo Empírico de Hiper-Heurísticas (páginas 59-62)