• Nenhum resultado encontrado

2.4. Metodologia topologia-forma-métrica

2.4.11. Método de compactação unidimensional

Devido a existência de instâncias de tamanho muito grandes, as pesquisas em desenho de circuitos integrados (VLSI) focaram em métodos unidimensionais. Somente uma dimensão pode ser tratada a cada vez, sendo que a outra dimensão se mantém fixa. O problema de

compactação unidimensional será referenciado como sendo COMP1soma, COMP1área e

COMP1max.

Após a etapa de compactação, o layout é modificado, alternando a direção e executando um outro passo, o que resulta em um processo iterativo. Além disto, a cada passo, as decisões são puramente locais e a compactação em uma direção pode impedir maior progresso em outras direções. Consequentemente, o layout pode ser bloqueado em ambas as dimensões, mas ainda estar longe de uma solução ótima. Veja Figura 2.27 para ilustração.

Figura 2.27 - (a) ambas as direções são bloqueadas, o tamanho total das arestas é 2k + 5. (b) um layout obtido por um método ótimo de compactação com tamanho total de arestas k + 6 [25].

O método compression-ridge, originário de projetos VLSI, procura por cortes que dividam o layout em duas partes e que passam através de regiões de espaço vazio. Para um embutimento fixo, o espaço vazio corresponde às arestas que são maiores que o tamanho mínimo de uma unidade. Se tal corte é encontrado, suas arestas podem ser diminuídas de pelo menos uma unidade e o embutimento no grid resultante é ainda possível.

Será esboçado o método relacionado com o fluxo máximo em rede [22], adaptado para diferentes cenários na área de desenho de grafos. Todos os cortes são vistos como uma interpretação de um fluxo máximo em uma rede N que depende do desenho inicial. O passo de compactação na direção de x é mostrado na Figura 2.27. A compactação na direção de y pode ser pensada de maneira similar. Primeiramente, o layout é cortado em faixas horizontais. Isto corresponde ao processo de corte, que é detalhado em [22], com a restrição de que somente arestas artificiais na direção horizontal são permitidas. A modificação no método do corte ainda gasta tempo de execução linear e o resultado é um desenho com faces internas de forma retangular. Agora a rede N pode ser construída como segue, sendo cada face retangular f correspondente a um nó n(f) em N. Além disto, existem dois nós s e t para a face externa, s no topo e t na parte de baixo do desenho. Os arcos são direcionados de cima para baixo. Para cada aresta horizontal e, separando uma face superior f de uma face inferior g, existe um arco a+e = ( n(f), n(g) ) e um arco a-e = ( n(g), n(f) ). A capacidade de a+e é o tamanho de e menos 1. Isto corresponde à maior

possibilidade de ―encurtamento‖ de e. A capacidade de ∞ é atribuído ao arco oposto a- e ,

levando em consideraçãopossíveis alongamentos de e. O fluxo máximo de s para t na rede corresponde a maior redução que se pode aplicar para se obter um desenho de largura mínima. Assim, obtém-se um layout de largura horizontal ótima. Cada passo da

compactação gasta tempo O (n logn) em número de vértices, o gargalo é a computação do

problema do fluxo máximo em N. Por construção, a rede N é planar e linear no tamanho (número de vértices) do grafo original.

Figura 2.28 - Método compression-ridge em desenho de grafos: (a) a rede N para a compactação x (somente alguns dos arcos para cima são mostrados). (b) o fluxo máximo em N; (c) o desenho após o passo

de compactação [22].

O chamado método de compactação baseado em grafos [18] será discutido nesta seção. O mesmo representa uma abordagem diferente e mais eficiente (de acordo com análise feita em [22]). Nesta abordagem, tem-se dois grafos de layout, sendo um para cada direção (x ou y) da compactação, ou seja, compactação horizontal e vertical, o que codifica as

propriedades da visibilidade (define quais vértices estão à direita, acima, à esquerda e abaixo de outros vértices) entre os caminhos maximalmente conectados, vertical e horizontalmente, de um dado embutimento no grid. Estes caminhos são também chamados de barras em [18] e de segmentos em [24], [25] , [26].

Definição – Um segmento horizontal é um componente maximalmente conectado em

(V,Eh), com o subgrafo de G contendo somente arestas horizontais. Similarmente, são

definidos os segmentos verticais em (V,Ev). Os conjuntos Sh e Sv referem-se aos segmentos

horizontais e verticais, respectivamente, e o conjunto S = Sh  Sv refere-se ao conjunto de

todos os segmentos verticais e horizontais. Um vértice v está sobre dois únicos segmentos,

hor(v) Sh e ver(v) Sv.

Os grafos direcionados de layout Dx = (Vx, Ax) e Dy = (Vy, Ay) também conhecidos como Dh e Dv são construídos da seguinte forma: o conjunto de nós Vx do grafo horizontal Dx

corresponde ao conjunto de segmentos verticais Sv. Uma construção similar se aplica para Dy , onde Vy = Sh.

Para um conjunto de arcos A, seja trans(A) o fecho transitivo de A. As relações geométricas entre os segmentosdefinem o conjunto de arcos nos dígrafos: Sempre que um segmento horizontal Si está a esquerda de um outro segmento horizontal Sj, deseja-se

encontrar um caminho direcionado entre Si e Sj. As relações verticais são caracterizadas

analogamente. Formalmente, tem-se:

trans(Ax) = { (Si, Sj) | Si está a esquerda de Sj } e trans(Ay) = { (Si, Sj) | Si está abaixo de Sj }.

Quaisquer conjuntos que tenham as propriedades acima podem ser usados como conjuntos de arcos do grafo de layout. A Figura 2.29 (retirada de [22] e modificada pelo acréscimo de alguns arcos que garantem a restrição de distância entre os segmentos) mostra grafos de

layout para o exemplo citado nesta seção com os conjuntos de arcos produzidos por um

Figura 2.29 - Os grafos direcionados de layout Dx (esquerda) e Dy (direita) [22], com base no grafo da

Figura 2.28.

Cada arco corresponde a uma restrição de distância para um par de segmentos. Desde que as propriedades de visibilidade sejam mantidas na compactação uni-dimensional (relembrando que as coordenadas na outra direção são fixas), um arco (Si, Sj) descreve o

fato que a todos os vértices de Sj devem ser atribuídos uma maior coordenada que aquelas

para os vértices de Si. Consequentemente, as tarefas da compactação uni-dimensional na

direção de x se reduzem à computação da numeração topológica para os nós em Dx.

Similarmente, o passo da compactação vertical corresponde à numeração topológica em

Dy.