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.