• Nenhum resultado encontrado

4.2 Particionamento de Grafos

4.2.2 Particionamento balanceado

Para o caso do particionamento imperfeitamente balanceado, permitimos que as partições possam ter seus tamanhos alterados, de forma que não é mais necessária

Figura 13 – Resultado da aplicação do método de Simulated Annealing Clássico para a rede aleatória de tamanho N  20.

(a) (b)

Fonte: Fornecido pelo autor. Como podemos visualizar, a aplicação do método clássico de Simulated Annealing permite encontrar a divisão visualizada acima sem nenhuma informação adicional da rede a não ser suas ligações entre os vértices. Em uma rede como essa, o número de configurações possíveis de particionamento é realmente muito pequeno, de forma que mesmo um cronograma lento como o de Hajek é capaz de encontrar rapidamente a solução ótima esperada, onde usamos o comprimento máximo de cada cadeia L(t)  1.

que a condição de valores iguais para cada partição seja satisfeita. Assim, a perturbação nesse tipo de problema pode ser definida agora como uma troca individual de partição para um vértice por vez, ou seja, trocando-se a partição de um determinado nó para uma nova partição. Esse tipo de perturbação mesmo aumentando o número de soluções possíveis do sistema tem a vantagem de diminuir o tamanho da vizinhança de cada estado em comparação com o tamanho de vizinhança para a permutação de partições entre pares de vértices, o que implica que o sistema necessita de menos tempo para atingir o (quasi) equilíbrio, evidenciando-se como uma alternativa mais rápida em termos computacionais.

Contudo, ao adotarmos essa nova perturbação do sistema também obtemos um número não nulo de soluções possíveis que são de qualidade inadequada para o problema de particionamento com função de custo equivalente ao número de corte (4.20). Por exemplo, para o caso de biparticionamento (k  2) uma solução possível correspondente a um valor mínimo de corte pode ser dada através de uma configuração onde o tamanho das partições podem ser tais que |V1|  N − 1 e |V2|  1, de modo que o número de corte seja definido como o número de ligações do vértice único pertencente à segunda partição. Todavia, sabemos que esses tipos de soluções são inadequadas, de modo que devemos redefinirmos a função de custo de maneira a punirmos soluções

Figura 14 – Comportamento da função de custo para o problema de particionamento de uma rede aleatória de tamanho N  20.

Fonte: Fornecido pelo autor. Aplicação do método de Simulated Annealing Clássico para uma rede aleatória de N  300. Para esse caso especificamente usamos somente o cronograma de resfriamento de Hajek, por conta da simplicidade e tamanho do problema dado. Como é possível ver, a convergência na busca da solução ótima é realizada em apenas alguns poucos passos de iteração de tempo, tendo sido usado o comprimento máximo das cadeias como L(t)  1.

Figura 15 – Exemplo de uma rede aleatória artificial com N  120 vértices, contendo número mínimo de corte conhecido previamente.

(a) (b)

Fonte: Fornecido pelo autor. Novamente através do modelo de Erdos-Renyi, geramos dessa vez quatro redes aleatórias que foram mescladas através de nove ligações, de modo que o valor mínimo da função custo equivale ao valor Hmin 9. Visualizamos em (a) a rede através de uma distribuição aleatória dos

nós, evidenciando nenhuma informação sobre sua estrutura interna, enquanto que em (b) ao aplicarmos o algoritmo de direcionamento por força podemos visualizar a divisão natural interna da rede.

Figura 16 – Resultado da aplicação do método de Simulated Annealing Clássico para a rede aleatória de tamanho N  120.

(a) (b)

Fonte: Fornecido pelo autor. Como podemos visualizar, a aplicação do método clássico de Simulated Annealing permite encontrar a divisão visualizada acima sem nenhuma informação adicional da rede a não ser suas ligações entre os vértices. Para esse tipo de rede, com número de nós e ligações que permitem um grande número de configurações possíveis, o método de Simulated Annealing tende, em média, a encontrar soluções muito próximas da solução global, mas não necessariamente encontra a configuração de menor energia.

como aquelas onde os tamanhos das partições são muito distintas entre si. Com isso, a nova função de custo para o particionamento imperfeitamente balanceado, temos que a função de custo do problema é dada através de

H  Õ (u,v) ∈ E δi juv+ 2α k(k − 1) k Õ i k Õ j>i (|Vi| − |Vj|)2 (4.22) onde reconhecemos o primeiro termo como sendo o número de corte original do particionamento perfeitamente balanceado, enquanto o segundo termo é o que definimos de termo de penalização, dado pela média das diferenças quadráticas dos tamanhos das partições, com α sendo um fator de penalização constante.

Assim, configurações onde existam partições de tamanhos muito distintos são penalizadas com alto valor de custo, de modo que as soluções inadequadas do tipo que exemplificamos são quase nunca tratadas como soluções ótimas pelo algoritmo. Como consequência, ao minizarmos a função de custo (4.22) esperamos indiretamente particionarmos o grafo dado em partições de tamanhos razoavelmente próximos e com o mínimo de número de cortes.

Figura 17 – Comportamento da função de custo para o problema de particionamento de uma rede aleatória de tamanho N  120.

Fonte: Fornecido pelo autor. Aplicação do método de Simulated Annealing Clássico para uma rede aleatória de N  120 contendo uma partição natural. Foram aplicados três cronogramas de resfriamentos diferentes. Todos os cronogramas usados, em média, encontram configurações que são distantes da solução ótimas através de uma perturbação, mas tendem a se resfriarem antes de encontrar a melhor configuração. Dentre as simulações, algumas foram capazes de encontrar o valor mínimo de Hmin 9.

Para os comprimentos de cadeia foram usados os valores de L(t)  1, 1, 50, 100, 200 para, respectivamente o cronograma de Hajek, cronograma adaptado de Hajek e o cronograma geométrico.