• Nenhum resultado encontrado

Exploração de variáveis consistentes e fortemente determinadas

3.2 Estratégias de longo prazo

3.2.4 Exploração de variáveis consistentes e fortemente determinadas

Variáveis consistentes em PIM 0–1 são aquelas que recebem um valor particular em uma pro- porção significativa de soluções de um conjunto Y = ©x1, . . . , xfªescolhido. Variáveis fortemente

determinadas são aquelas que apresentam grande deterioração no valor da função objetivo ou infacti- bilidade se o seu valor for alterado para as soluções do conjunto Y . É importante que os elementos do conjunto Y apresentem uma qualidade razoável e nas discussões que seguem, Y = R ou Y = R (k). Seja Yj γ = © xi ∈ Y |xi j = γ ª

o subconjunto de Y cujas soluções xi apresentam xi

j = γ. A freqüência

de residência de uma variável xj ao assumir um valor γ ∈ {0, 1} no conjunto Y pode ser definida por

(3.23) e o valor preferencial da variável xj pode ser encontrado com (3.24). Como é sempre escolhida

uma cardinalidade ímpar para Y , não ocorrem empates, ou seja, freqRes0(j) 6= freqRes1(j).

freqResγ(j) = ¯ ¯Yj γ ¯ ¯ (3.23) pref (j) = ( 0 se freqRes1(j) ≤ freqRes0(j) 1 se freqRes1(j) > freqRes0(j) (3.24)

O algoritmo da Figura 3.9 aqui proposto, cujas variáveis estão elencadas na Tabela 3.5 e os parâ- metros na Tabela 3.6, procura por variáveis consistentes e fortemente determinadas num conjunto Y e as fixa no PL’ atual. No Passo 1, as variáveis que não estão fixadas (nãoFixadas) são ordenadas em ordem não-crescente do máximo de suas freqüências de residência. No Passo 2, uma porcentagem (maxAnalisar) do número total das variáveis binárias é escolhida para ser analisada quanto à degra- dação na função objetivo. Essa fração envolve as variáveis com maiores valores de freqüência de residência. Para cada variável xj selecionada, um PL’j, criado a partir da fase II do PL’ atual, é otimi-

zado com a variável xj sendo fixada no oposto do seu valor preferencial, ou seja, xj = 1 − pref (j).

Assim a degradação na função objetivo, ∆j = xPL’0 j − xPL’0 , pode ser computada em relação ao PL’ atual. Reotimizações muito longas são evitadas ao limitar a execução em no máximo γ2 iterações simplex. Na presença de infactibilidade, adota-se ∆j = ∞. As variáveis analisadas no Passo 2 que

apresentarem maior deterioração ∆j são escolhidas para o tratamento do Passo 3, usando para esse

fim uma fração maxFix ≤ maxAnalisar do número total das variáveis binárias n. Uma fase I au-

xiliar, do PL de duas fases é criada para avaliar de forma paramétrica se as variáveis escolhidas no Passo 3 podem, de fato, ser fixadas. Cada xj com pref (j) = 1 recebe uma meta UP e cada xj com

3.2 Estratégias de longo prazo 83

pref (j) = 0 recebe uma meta DN. Variáveis que no PL’ já estavam fixadas, também são fixadas

na fase I auxiliar. Após a otimização da fase I auxiliar, somente as variáveis que tiverem as metas atendidas podem ser fixadas no PL’ atual e é claro que se nenhuma variável puder ser fixada, então o algoritmo falhou. No conjunto Y não podem restar elementos que reflitam a situação oposta de uma variável que foi fixada, assim se uma variável foi fixada tal que xj = γ, então os elementos do

conjunto Y que apresentarem xi

j = 1 − γ, são removidos. Os parâmetros a serem calibrados são

maxAnalisar e maxFix.

Tab. 3.5: Variáveis do algoritmo da Figura 3.9.

nãoFixadas Variáveis binárias que não foram fixadas no PL’ por execuções anteriores doalgoritmo. totAnalisar Número de variáveis que serão analisadas pelo algoritmo.

totFix Número máximo de variáveis que serão fixadas pelo algoritmo.

Tab. 3.6: Parâmetros do algoritmo da Figura 3.9.

maxAnalisar Porcentagem das n variáveis binárias que serão analisadas pelo algoritmo. maxFix Porcentagem máxima das n variáveis que serão fixadas pelo algoritmo.

γ2 Número máximo de iterações simplex permitido na reotimização do PL’j.

Quando um algoritmo progressivamente restringe as variáveis consistentes e fortemente determi- nadas aos seus valores preferenciais, novas variáveis dentre as remanescentes apresentarão avaliações que as qualificam mais decisivamente como fortemente determinadas e consistentes. Assim, o al- goritmo FixaVars da Figura 3.9 não deve ser aplicado uma única vez, mas deve estar subordinado a um algoritmo Coordenador que controla o número máximo de variáveis que podem ser fixadas e como são compostos os conjuntos Y passados para FixaVars. Quando o número de variáveis fi- xadas for muito grande, o algoritmo deve retroceder a estágios anteriores em que menos variáveis estavam fixadas. Ao utilizar uma outra seqüência de conjuntos Y , embute-se um efeito diversificador na classificação das variáveis consistentes e fortemente determinadas, favorecendo a exploração do espaço de busca de modo eficiente. Imediatamente antes da aplicação de uma fase de intensificação definida nos moldes da Subseção 3.2.2, o algoritmo Coordenador assume o controle e o seu compor- tamento dinâmico está representado na Figura 3.10. No nível 0, quando nenhuma variável foi ainda fixada, a partir do conjunto de referência R0, maxRk conjuntos R (k) são criados, observando-se que para o exemplo foi estabelecido maxRk=3. Adota-se Y = R0,1(k) sobre o qual é aplicado o algoritmo FixaVars enquanto R0,2(k) e R0,3(k) são guardados para serem tratados no futuro. Com

84 Extensões e Uso de Memória de Longo Prazo

Passo 1 Usando o conjunto Y , ordene as variáveis do conjunto nãoFixadas em ordem não-crescente de max {freqRes0(j) , freqRes1(j)}.

Passo 2 1. totAnalisar := min(nãoFixadas, maxAnalisar × n).

2. Selecione as primeiras totAnalisar variáveis ordenadas no Passo 1. Para cada uma dessas variáveis xj, reotimize o PL’j por até γ2 iterações simplex fixando a variável xj no valor 1 − pref (j). Calcule a degradação ∆j = xPL’0 j− xPL’0 . Se o PL’j for infactível, ∆j = ∞.

Passo 3 1. Crie uma fase I do PL de duas fases (fase I auxiliar), estabelecendo metas para as totFix := min(totAnalisar, maxFix × n) variáveis com maiores valores de degradação encontradas no Passo 2. Cada xj com pref (j) = 1 recebe uma meta

UP e cada xj com pref (j) = 0 recebe uma meta DN. Variáveis que no PL’ já

estavam fixadas, também são fixadas nessa fase I auxiliar. 2. Otimize a fase I auxiliar.

Passo 4 Fixe no PL’ atual todas as variáveis que tiveram suas metas atendidas na fase I auxiliar do Passo 3. Para cada variável fixada, xj = γ, remova do conjunto Y

cada elemento xital que xi

j = 1 − γ . Se nenhuma variável foi fixada, o

algoritmo termina com insucesso, caso contrário termina com sucesso.

Fig. 3.9: FixaVars - Algoritmo de descoberta de variáveis consistentes e fortemente determinadas.

o progresso da busca, R0,1(k) receberá novos elementos evoluindo para R1,1. Quando uma nova fase de intensificação for iniciar, a mesma seqüência de operações aplicada em R0 é reaplicada em

R1,1, gerando os conjuntos R1,1,1(k),R1,1,2(k) e R1,1,3(k). Os conjuntos R1,1,2(k) e R1,1,3(k) são guardados para análise futura e adota-se Y = R1,1,1(k) sobre o qual é aplicado o algoritmo Fixa- Vars. Há um limite nivelMax a partir do qual as ramificações pela geração de conjuntos R (k) são interrompidas. No exemplo, nivelMax=1, então a partir do nível 2, não são mais gerados conjuntos e adota-se Y = R2,1,1, Y = R3,1,1e assim sucessivamente, fixando mais e mais variáveis à medida que FixaVars é invocado antes do início de cada fase de intensificação. Eventualmente, num certo nível

q o algoritmo FixaVars pode não conseguir fixar mais nenhuma variável ou a fração máxima de va-

riáveis que podem ser fixadas no PL’, fracaoLimite, será atingida. Nesse ponto, ocorre um regresso na árvore, as variáveis que devem ficar fixadas são apenas aquelas presentes no conjunto fixadas1,1, o conjunto R1,1,2(k) é recuperado adotando-se Y = R1,1,2(k) e o algoritmo FixaVars é aplicado. Quando a árvore inteira tiver sido percorrida, o algoritmo é reaplicado até que em R0 se esgotem as

3.2 Estratégias de longo prazo 85

possibilidades de geração de conjuntos R (k). Como os conjuntos R (k) são sempre distintos, quando

R0,2(k) for recuperado após o tratamento completo da subárvore enraizada no nó R1,1, as variáveis classificadas como fortemente determinadas e consistentes, fixadas1,2, provavelmente serão ligeira- mente diferentes daquelas em fixadas1,1, levando a uma exploração efetiva do espaço de busca. Os detalhes da implementação do algoritmo Coordenador são apresentados na Subseção 3.2.5.

( ) 0,1 Y=R k ( ) 0,2 Y=R k ( ) 0,3 Y=R k 0 R 1,1 R ( ) 1,1,1 Y=R k ( ) 1,1,2 Y=R k ( ) 1,1,3 Y=R k 1,2 R R1,3 ( ) 1,2,1 Y=R k ( ) 1,2,2 Y=R k ( ) 1,2,3 Y=R k ( ) 1,3,1 Y=R k ( ) 1,3,2 Y=R k ( ) 1,3,3 Y=R k 2,1,1 R 2,1,1 Y=R 3,1,1 R 3,1,1 Y=R ,1,1 q R fixadas0 fixadas0 fixadas0 fixadas1,1 fixadas1,1 fixadas 1,1 fixadas1,2 fixadas1,2 fixadas1,2 fixadas1,3 fixadas1,3 fixadas1,3 fixadas2,1,1 fixadas3,1,1 fixadas(q-1),1,1 (q1),1,1 Y=R Nível 0 Nível 1 Nível 2 Nível 3 Nível q 2,1,2 R R2,1,3 R2,2,1 R2,2,2 R2,2,3 R2,3,1 R2,3,2 R2,3,3

Fig. 3.10: Comportamento dinâmico do algoritmo Coordenador.