Vous êtes sur la page 1sur 6

Algoritmos Aleat rios para Particionamento de o Circuitos Integrados

Alessandro J. Mendes1 , Claudionor N. Coelho Jr.1 Departamento de Ci ncia da Computacao e Universidade Federal de Minas Gerais (UFMG) Belo Horizonte MG Brasil
{ajmendes,coelho}@dcc.ufmg.br
1

Resumo. Este trabalho apresenta um algoritmo rand mico para particionao mento de circuitos integrados baseado na famosa heurstica apresentada por Kernighan e Lin em 1970, para encontrar o corte mnimo de um grafo. As solucoes encontradas s o pr ximas do algoritmo original com uma diferenca a o inferior a 3% no valor do corte, mas tendo a vantagem de executar em um tempo, que e no mnimo, 7 vezes menor.

1. Introducao
Dado um circuito constitudo de c lulas conectadas por os, o problema do particiona e mento de circuitos integrados consiste em encontrar conjuntos constitudos por um n mero mnimo de c lulas de modo que o n mero de conex es entre esses conjuntos u e u o seja mnimo. Este problema pode ser reduzido ao problema do corte mnimo em grafos (mincut graph partitioning problem), onde os v rtices e as arestas correspodem, respectie ` e vamente, as c lulas e aos os. Ainda n o se conhece um algoritmo capaz de encontrar uma solucao otima em a tempo polinomial, sendo este portanto, um problema N P-Completo. Como na pr tica a milhares de os e c lulas s o comumente empregados na construcao de um circuito, e a quanto menor o n mero de os, menor a area ocupada e menor e o custo do projeto. u Solucoes que empregam heursticas capazes de produzirem boas solucoes podem ser encontradas na literatura: [Motwani and Raghavan 1995] e [Karger 1995] resolvem o problema atrav s de contracao, onde dois v rtices conectados por uma aresta s o unidos, e e a sendo este processo repetido at que o grafo tenha somente dois v rtices. O conjunto e e das arestas resultantes representar o um candidato a corte mnimo. Essa solucao posa 3 sui custo O(n ) por m, uma abordagem que utilize algoritmos rand micos, reduz o a e o complexidade de tempo para O(n2 ), sendo n o n mero de v rtices do grafo de enu e trada. Outra t cnica possvel de ser empregada e denominada melhoramento iterativo e (iterative improvement), onde o algoritmo e executado iterativamente sobre uma possvel solucao at que uma determinada condicao seja atingida. Um exemplo cl ssico e o al e a goritmo Kernighan-Lin (KL) apresentado em [Kernighan and Lin 1970], que a partir de uma solucao inicial, efetua trocas entre pares de v rtices localizados em conjuntos dis e 2 tintos, com complexidade de tempo (n logn). Em [Schweikert and Kernighan 1972], o KL e aplicado na resolucao do problema do particionamento de circuitos integrados. Diversos trabalhos propuseram melhorias no KL original: [Bui et al. 1989] apresenta um algoritmo que diminui o tempo de execucao do algoritmo, eliminando a troca entre pares de v rtices; Fiduccia e Mattheyses apresentam em [Fiduccia and Mattheyses 1982] um e

dos mais famosos algoritmos da area que, apesar de ser considerado como um melhoramento do KL, pouco tem a ver com este. Em busca de um tempo de execucao melhor (complexidade de tempo (nlogn + e), sendo e o n mero de arestas) para casos gerais, u apresenta em alguns casos, um corte maior que o apresentado pelo KL e at mesmo dee sempenho de tempo inferior. Finalmente, [Dutt 1993] compara diversos algoritmos para particionamento mnimo de grafos e tamb m apresenta um algoritmo cuja complexidade e de tempo e (max(ed, elogn)), sendo d o grau m ximo do grafo. a Neste trabalho, ser mostrado um algoritmo aleat rio baseado no KL que posa o sui, em seu pior caso, complexidade de tempo O(n2 )), mas que na pr tica exea cuta em tempo linear. Chamaremos este algoritmo de KL rand mico. Segundo o [Motwani and Raghavan 1995] e [Cormen et al. 2001], um algoritmo rand mico ou o aleat rio e aquele cujo comportamento n o e determiado somente pela entrada, mas o a tamb m por escolhas aleat rias feitas durante sua execucao. e o Na pr xima secao ser mostrado o algoritmo KL original, na secao seguinte apreo a sentaremos o KL rand mico e em seguida a an lise dos resultados experimentais. Trabalo a hos futuros ser o expostos na conclus o. a a

2. O Algoritmo Kernighan-Lin
Seja G um grafo n o-direcionado de n = 2p v rtices, associado a uma matriz de custos m a e sim trica, em que m(i, i) = 0 para 1 i n. Desejamos dividir G em dois conjuntos, e A e B, cada qual de tamanho p, tal que o custo de conex o entre os dois conjuntos seja a mnimo. A heurstica KL [Kernighan and Lin 1970], recebe A e B como entrada e tenta encontrar a melhor solucao efetuando trocas entre pares de elementos. Para entender o algoritmo e importante conhecer os conceitos de custo externo e custo interno. Considerando a A, o custo externo E de um v rtice a e denido como: e E(a) =
jB

m(a, j)

e seu custo interno I como: I(a) =


jA

m(a, j).

Portanto, a diferenca D entre os custos externo e interno e dada por: D(a) = E(a) I(a) a O mesmo e v lido para um v rtice b B. Outro conceito importante e o de um e ganho g em se trocar os v rtices a e b de conjunto: e g(a, b) = D(a) + D(b) 2m(a, b) (1)

Em um primeiro passo, o algoritmo calcula o valor de D para todos os v rtices. No e segundo passo, s o escolhidos dois v rtices a e b tal que g(a, b) seja m ximo, o que repa e a resenta o maior ganho possvel para uma troca entre os elementos dos conjuntos. Chame a de a1 e b de b1 e retire-os dos conjuntos A e B. Recalcule ent o, os valores de D para a os elementos i {A (a)} e j {B (b)}, da seguinte forma: D (i) = D + 2m(i, a) 2m(i, b) (2)

D (j) = D + 2m(j, b) 2m(j, a)

(3)

Repita o segundo passo do algoritmo para um novo par a2 {A (a1 )} e b2 {B (b1 )}. Novamente separe-os de seus conjuntos originais e recalcule cada D dos elementos restantes dos conjuntos A (a1 , a2 ) e B (b1 , b2 ). Repita essa operacao at que todos os e pares (a1 , b1 ), . . . , (ap , bp ) e seus respectivos ganhos tenham sido identicados. Considere X = a1 , . . . , ak e Y = b1 , . . . , bk . A diminuicao do custo ao se trocar k os conjuntos X e Y e i=1 gi = C. Se C > 0, uma reducao no custo pode ser feita e os conjuntos gerados pelas trocas efetuadas em A e B ser o a entrada para uma nova a execucao do KL. Se C = 0, uma solucao para a entrada inicial dada foi encontrada. O algoritmo pode ent o ser novamente executado para uma nova particao inicial, a na tentativa de encontrar um candidato a corte mnimo menor que o j encontrado. a O KL possui complexidade de espaco O(n2 ) pois utiliza uma matriz de ad jac ncias para armazenar o grafo G de n v rtices. Por essa mesma raz o, o passo inicial e e a 2 do algoritmo possui complexidade de tempo (n ). A busca pelos melhores ganhos na troca de pares custa (n2 logn), conforme demonstrado em [Kernighan and Lin 1970], sendo este o custo nal da heurstica KL.

3. O Kernighan-Lin Rand mico o


O KL rand mico proposto neste trabalho mant m as estruturas e os principais conceitos o e empregados pelo KL original apresentado na secao 2. A id ia e deixar o algoritmo realizar e determinadas escolhas dentre os elementos de um conjunto de possibilidades, todos com igual probabilidade de serem escolhidos. Esse paradigma tamb m e utilizado quando uma e amostra aleat ria e selecionada ao contr rio de todos os elementos das duas particoes. o a Com isso, obteve-se um algoritmo com tempo de execucao consideravelmente menor que o algoritmo apresentado em [Kernighan and Lin 1970], conforme ser mostrado na secao a 4. Como no KL original, suponha um grafo G com n = 2p v rtices. O primeiro e passo e calcular a diferenca D entre os custos externos E e interno I para cada um dos p elementos dos conjuntos de entrada A e B. No segundo passo s o escolhidos, aleatoriaa mente, alguns v rtices a A e b B. O par (a, b) que ao ser trocado possuir o maior e ganho g, ser renomeado para a1 e b1 e retirado de seu respectivo conjunto. O c lculo de a a g pode ser feito conforme a equacao 1. Seguindo o algoritmo, os valores atualizados de D ser o calculados conforme mostrado nas equacoes 2 e 3. a O segundo passo do KL rand mico deve ser repetido para um novo par a2 o {A (a1 )} e b2 {B (b1 )}, separando-os dos demais elementos de seus conjuntos de origem e recalculando os valores de D para os v rtices que ainda n o foram selecionados. e a Diferentemente do KL original, n o ser necess rio separar em pares todos os p elementos a a a de cada conjunto, pois assumiremos que dentro de uma amostra, de tamanho aproximado lgn , teremos elementos sucientes nos conjuntos X = a1 , . . . , ak e Y = b1 , . . . , bk que contribuem para que o custo C = k gi , de se trocar X com Y , seja m ximo. Seguindo a i=1 o algoritmo, se C > 0, haver uma reducao no custo com as novas particoes, que ser o as a a entradas para uma nova execucao do KL rand mico. Se C = 0 tem-se uma das possveis o solucoes para os conjuntos A e B fornecidos na primeira exeucao do algoritmo. H duas opcoes caso queira-se tentar obter uma solucao melhor que a encontrada: a

1. Escolher aleatoriamente, dentre os n v rtices de G, quais far o parte de A e quais e a constituir o B, e executar o algoritmo novamente para as novas entradas; a 2. Executar diversas vezes o algoritmo para a mesma entrada. A primeira opcao e a mesma encontrada pelo KL original para que este busque um custo ` menor que o encontrado. J a segunda opcao s e aplic vel ao KL rand mico, devido as a o a o escolhas aleat rias que este faz durante sua execucao. o Assim como o KL original, o KL rand mico tamb m utiliza uma matriz de ado e jac ncias para armazenar o grafo G. Com isso, seu custo de espaco e O(n2 ). Com relacao e ao tempo, no pior caso o algoritmo possui um custo O(n2 ), relativo ao c lculo inicial a do valor de D para cada v rtice. Anal, considerando que uma escolha aleat ria tenha e o ` complexidade O(1), a busca pelo melhor ganho e O(nlogn) relativo as lgn vezes em que os pares s o escolhidos (O(n)) e cada v rtice tem seu valor D atualizado (O(n)). a e Como veremos na secao 4, o algoritmo executa, na pr tica, bem mais r pido que a a o seu pior caso.

4. Resultados Experimentais
Os algoritmos KL [Kernighan and Lin 1970] e KL rand mico foram implementados em o linguagem C e os testes executados em um PC com processador Pentium1 4 de 2.80 GHz e mem ria RAM de 1.5 GB. o A tabela 1 compara os resultados obtidos com a execucao dos algoritmos KL e KL rand mico para grafos de tamanhos variados, gerados aleat riamente e com o n mero de o o u arestas variando de 10 a 50% do total de arestas possveis. Para cada execucao, o mesmo conjunto inicial foi utilizado como entrada para os dois algoritmos. Para o KL original s o apresentados o tempo de execucao em segundos e o custo encontrado. Para o KL a rand mico, s o apresentados o tempo de execucao em segundos, e o maior, menor e custo o a m dio encontrados. Como se trata de um algoritmo rand mico, existe uma alta probabile o idade que v rias execucoes para uma mesma entrada apresentem solucoes diferentes, por a isso o KL rand mico foi executado um grande n mero de vezes am de se obter uma boa o u amostra a ser analisada. Conforme pode ser visto na tabela 1, o tempo de execucao do KL rand mico e, o no mnimo, 7 vezes menor que o KL original para grafos com 500 v rtices, diferenca que e e aumentada com o aumento do n mero de v rtices. Os resultados do KL original foram u e tabulados, com precis o, para grafos com at 5000 v rtices, pois para o pr ximo tamanho a e e o de grafo utilizado nos experimentos (10000 v rtices), o tempo de execucao excedia 6 e horas, sendo interrompido manualmente quando este limite foi alcancdo. Para reforcar o desempenho do KL rand mico, o algoritmo foi executado tamb m para grafos de 10000 o e e 22000 v rtices, sendo concludo em menos de 7 minutos e uma hora, respectivamente. e Com relacao aos custos mnimos, o KL rand mico apresentou algumas vezes re o sultados melhores, outras vezes resultados piores em comparacao com o KL original. Essa diferenca para o custo mnimo do KL foi sempre inferior a 3% para os piores casos e 1% para o caso m dio, conforme pode ser visto na tabela 1. Essa diferenca no custo mnimo e por m, e compensada com um ganho substancial na diminuicao do tempo de execucao. e
1

Pentium e uma marca registrada da Intel Corporation.

Table 1. Comparacao de desempenho entre o KL original e o KL randomico

Numero Conectide vidade V rtices e (%) 10 20 500 30 40 50 10 20 1000 30 40 50 10 20 2000 30 40 50 10 20 5000 30 40 50 10 20 10000 30 40 50 10 20 22000 30 40 50

KL Custo 5060 10955 16944 23162 29400 21658 45466 69930 94712 119549 90238 187175 285859 384528 484282 587474 1199210 1818099 2440662 3063675 T(s) 0, 92 0, 65 1, 22 0, 81 0, 82 10, 13 12, 59 7, 94 16, 22 9, 16 125, 76 89, 44 61, 68 71, 50 99, 18 1778, 55 1501, 42 1535, 02 1338, 58 1645, 27 > 21600 > 21600 > 21600 > 21600 > 21600 > 45000 > 45000 > 45000 > 45000 > 45000 Melhor Custo 5068 10951 16994 23098 29381 21696 45539 69946 94666 119605 90416 187552 285959 384841 484937 588334 1200454 1819064 2440650 3063667 2395201 4860075 7341043 9829650 12328845 11750217 23732457 35848854 5213581 59928560

KL Rand mico o Pior Custo Custo M dio e 5210 5145 11122 11041 17242 17129 23399 23233 29603 29506 22041 21873 46084 45830 70587 70251 95181 94932 120285 119912 91243 90856 188598 188045 286794 286391 385818 385276 485812 485286 589200 588691 1201653 1201220 1820554 1819727 2442200 2441319 3065456 3064428 2396383 2395942 4862218 4861288 7342459 7341722 9830345 9830018 12330569 12329498 11759954 11756287 23758964 23747591 35859825 35854782 5217015 5216320 59939852 59932506

T(s) 0, 05 0, 07 0, 09 0, 10 0, 11 0, 38 0, 54 0, 61 0, 66 0, 73 2, 43 3, 05 3, 88 4, 31 4, 55 26, 05 37, 09 45, 64 55, 01 61, 00 178, 31 247, 25 324, 22 417, 45 413, 13 1841, 27 2177, 43 2755, 01 1228, 98 3077, 36

5. Conclus o a
Este trabalho apresentou o uso de algoritmos aleat rios na elaboracao de um novo alo goritmo baseado no Kernighan-Lin [Kernighan and Lin 1970], para particionamento de circuitos integrados. Os resultados pr ticos mostraram que, apesar de nem sempre o a custo obtido pelo KL rand mico ser igual ou melhor que o obtido com o KL original, o ele e bastante pr ximo. Essa pequena degradacao do custo e por m compensada com um o e ganho mnimo superior a 7 vezes o tempo de execucao do algoritmo para grafos menores, chegando a mais de 12 vezes para grafos de 22000 v rtices, por exemplo. e Como trabalhos futuros, podemos citar um estudo probabilstico sobre o quanto uma solucao encontrada pelo KL rand mico e boa. Ser feita tamb m a implementacao do o a e algoritmo Fiduccia-Mattheyses [Fiduccia and Mattheyses 1982] e sua comparacao com ` o KL rand mico, com relacao ao tempo de execucao e a qualidade da solucao gerada. o Est previsto ainda um estudo sobre a viabilidade em se obter uma vers o rand mica do a a o Fiduccia-Mattheyses com menor tempo de execucao sem que haja perda na qualidade da solucao. Outro possvel trabalho e a adequacao do KL rand mico para tratar hipergrafos, o representando melhor a realidade de circuitos integrados mais complexos.

References
Bui, T., Heigham, C., Jones, C., and Leighton, T. (1989). Improving the performance of the kernighan-lin and simulated annealing graph bisection algorithms. ACM IEEE Design Automation Conference, 26th:775778. Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. (2001). Introduction to Algorithms. The Mit Press, 2nd edition. Dutt, S. (1993). New faster kernighan-lin-type graph-partitioning algorithms. IEEE ACM International Conference on Computer-Aided Design, pages 370377. Fiduccia, C. M. and Mattheyses, R. M. (1982). A linear-time heuristic for improving network partitions. Conference on Design Automation, 19th:175181. Hagen, L. W., Huang, D. J. H., and Kahng, A. B. (1997). On implementation choices for iterative improvement partitioning algorithms. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 16(10):11991205. Karger, D. R. (1995). Random Sampling in Graph Optimization Problems. PhD thesis, Stanford University. Kernighan, B. W. and Lin, S. (1970). An efcient heuristic procedure for partitioning graphs. Bell System Technical Journal, 49:291307. Krishnamurthy, B. (1984). Improved min-cut algorithm for partitioning vlsi networks. IEEE Transactions on Comput., C-33(5):438446. Motwani, R. and Raghavan, P. (1995). Randomized Algorithms. Cambridge University Press, 1st edition. Schweikert, D. G. and Kernighan, B. W. (1972). A proper model for the partitioning of electrical circuits. ACM IEEE Design Automation Conference, pages 5762.

Vous aimerez peut-être aussi