algoritmo de sugiyama métodos para representação de estruturas hierárquicas christiano gouveia...

Post on 17-Apr-2015

109 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Algoritmo de Sugiyama

Métodos para representação de estruturas hierárquicas

Christiano Gouveia de Oliveira

Algoritmo de Sugiyama

Algoritmo criado para a geração automática de representações de estruturas hierárquicas de maneira inteligível.

Os mapas gerados pelo algoritmo de Sugiyama apresentam as seguintes características: Vértices de mesmo nível são posicionados ao longo de uma

mesma linha horizontal; As arestas são representadas por retas e só podem ligar

vértices de níveis adjacentes; O algoritmo procurar gerar mapas compactos, balanceados e

com poucos cruzamentos entre arestas.

O algoritmo pode ser dividido em duas etapas: na primeira, busca-se minimizar o número de cruzamentos entre arestas e na segunda, procura-se representar o mapa de maneira compacta e balanceada.

Nesta apresentação, temos dois métodos para minimizar o número de cruzamentos: Penalty Minimization Method (método exato); Barycentric Method (método heurístico).

Para compactar e balancear o grafo, temos uma formulação matemática de um problema de programação não-linear e uma heurística para resolvê-lo: Quadratic Programming Layout Method; Priority Layout Method.

Definições Básicas

Uma hierarquia n-nível (n ≥ 2) é definida como um grafo direcionado (V,E), em que V é o conjunto de vértices e E o conjunto de arestas, tal que: V é dividido em n subconjuntos

em que Vi é o i-ésimo nível e n o tamanho da hierarquia.

Toda aresta tal que e cada aresta é única.

nVVVV ...21 ),0( jiVV ji

,),( Evve ji jiVvVv jjii ,,

Uma hierarquia é dita própria se satisfaz as seguintes condições:

As arestas são divididas em n-1 subconjuntos E1, E2, ..., E3, tal que a interseção entre os subconjuntos é vazia e cada aresta ei liga vértices do subconjunto Vi e Vi+1.

Uma ordem σi de Vi representa a seqüência de todos os vértices de Vi.

|Vi| é o número de vértices em Vi

||321 ...iVi vvvv

Uma hierarquia, portanto é definida como

em que

Para as próximas discussões, serão considerados uma hierarquia própria.

),,,,( nEVG

)...( 21 n

Matriz de Realização de uma Hierarquia n-nível

Uma matriz , é uma matriz cujas linhas são ordenadas de acordo com σi e σi+1, em que i representa o i-ésimo nível da hierarquia.

Cada elemento da matriz M(i) é definido como:

),( 1)(

iii MM

)(iklm

1,

0, para outros casos

ilk Ewv ),(

M(i) é chamada matriz de interconexões.

Uma matriz de realização g de G é dada pela fórmula:

)1()1(21 ...),...,,( n

n MMg )),,,(( nEVg

Número de Cruzamentos em Hierarquias n-Níveis

O número de cruzamentos com o vértice vk, sucedendo vj na matriz de interconexões:

em q representa o número de colunas da matriz M(i).

1

1 1

)()())(),((q q

ik

ijkj mmvrvrk

Cruzamentos = 3

Cruzamentos = 3 + 0

Cruzamentos = 3 + 0 + 0 = 3

O número de cruzamentos em uma matriz M(i) é:

O número de cruzamentos em uma mapa g é dado pela soma dos cruzamentos de cada matriz de interconexões:

Conectividade

U: conectividade superiori: i-ésima matriz de interconexõesk: vértice representado pela k-ésima linha da matriz M(i)

i = 2 e k = 4

U: conectividade inferiori: i-ésima matriz de interconexõesk: vértice representado pela k-ésima linha da matriz M(i)

i = 2 e k = 4

Baricentros

A definição de baricentro será importante para as heurísticas apresentadas posteriormente.

;3

;1

;2

;3

2,2

2,2

1,2

2,2

L

U

C

R

B

B

B

B

PM Method

Penalty Minimization Method

O PM Method é um método de solução exata utilizado para minimizar o número de cruzamentos entre arestas em um mapa com apenas duas hierarquias.

O método opera quando a ordem de uma linha ou coluna é mantida fixa.

Para aplicar o algoritmo precisamos entender o Penalty Graph.

Penalty Graph

Uma penalidade é representada por:

))(),(())(),((),( vrurkurvrkvup ))(),(())(),(( vrurkurvrk se

O objetivo do algoritmo é achar uma ordem para as linhas ou colunas de uma matriz de interconexões de tal forma que a soma do número de cruzamentos de todos os níveis adjacentes seja minimizada

O algoritmo

Passo 1: Obter o grafo de penalidades H; Passo 2: Encontrar todos os componentes fortemente

conectados de H; Passo 3: Em todos os componentes que possuem mais

de dois vértices, elimina-se os ciclos revertendo a direção das arestas de tal forma que a soma de penalidades seja mínima. “minimum feedback arc set”;

Passo 4: A ordem dos vértices é definida pelo caminho de mínimo custo que liga todos os vértices no novo grafo H obtido no Passo 3.

Exemplo

O número de cruzamentos K(g) é 69

Passo 1: Penalty Digraph

(u,v), se k(r(u),r(v)) < k(r(v),r(u)) Se k(r(u),r(v)) = k(r(v),r(u)) não

se traça arestas no grafo.

Passo 2: Componentes Fortemente Conectados

Aplicando um algoritmo baseado em busca em profundidade, encontramos os componentes fortemente conectado:

{1, 3, 4, 5, 8} {2} {6} {7}

Passo 3

Encontrando todos os ciclos existentes no grafo.

Permanent Expansion?

Substituindo ui por variáveis Booleanas ei e trocando o produto por somas e vice e versa.

Simplificando a expressão acima por meio da lei da absorção.

Pela expressão anterior, obtemos ordens ótimas se invertemos as arestas:(5,1) ou(8,5)

de H.

Invertendo (5,1):

Invertendo (8,5):

69 48

BC method

Barycentric Method

Heurística para minimizar o número de cruzamento entre arestas num mapa com dois níveis.

O algoritmo consistem em ordenar os vértices de uma linha ou coluna de uma matriz M(σ1, σ2) usando como chave o seu baricentro

A operação que transforma uma matriz M(σ1,σ2) em outra reordenada M(σ1’,σ2) é chamada ordenação baricêntrica.

M(σ1’,σ2) = βRM(σ1,σ2)

M(σ1,σ2’) = βCM(σ1,σ2)

Podemos reduzir o número de cruzamentos repetindo a ordenação baricêntrica de linhas e colunas várias vezes.

O algoritmo consiste em duas fases, Fase 1 e Fase 2. A Fase 2 usa a Fase 1 como um subalgoritmo.

Na primeira fase as linhas (ou colunas) são submetidas à ordenação baricêntrica, sendo que as linhas (ou colunas) que apresentarem o mesmo baricentro são preservadas.

Logo em seguida, a segunda fase é executa, trocado a ordem das linhas (ou colunas) que apresentarem o mesmo baricentro. RR(M) (ou RC(M)).

Terminada a segunda fase, repete-se a primeira fase para as colunas (ou linhas).

Algoritmo

Seja M0 uma matriz de realização de uma hierarquia de dois níveis e seja M* uma matriz de solução e K* o número de cruzamentos de M*

Fase 1:

Fase 2:

Exemplo

Algoritmos para hierarquias n-níveis

O método pode ser utilizado em qualquer um dos dois algoritmos apresentados

Tempo de parada:A mesma matriz de realização aparece várias

vezes;Atinge limite de iterações.

Exemplo

QP Method

Quadratic Programming Layout Method

Problema de Programação não-linear (quadrática)Minimizar a distância entre vértices pai e

filhos;Balancear o grafo;

Restrições:Ordem dos vértices em cada nível;Retas verticais ligando vértices falsos.

Modelo Matemático

Exemplo

PL Method

Priority Layout Method

Método heurístico para obter uma representação mais legível de um grafo com menor custo computacional.

Segue o mesmo modelo dos algoritmos anteriores, nos quais a execução era realizada seqüencialmente sobre cada matriz de interconexões de uma matriz de realizações.

Conceito de prioridade

1. Valores iniciais da posição horizontal de cada vértice em um nível i são dados por:

2. A posição de cada vértice é melhorada seqüencialmente de cima para baixou ou de baixo para cima;

3. A posição de cada vértice em um nível é determinada um por uma de acordo com a sua prioridade.

A maior prioridade é dados aos vértices falsos e seu valor é maior que a conectividade de todos os vértices.

As demais prioridades é dada pela conectividade de cada vértice.

4. A principal maneira de melhorar a distribuição dos vértices em cada nível é minimizar a distância entre a posição atual do vértice e os baricentros superiores ou inferiores do mesmo vértice.

Restrições

As posições são representadas por números inteiros;

A ordem dos vértices é preservada; Uma vez determinada a posição de um

vértice, ela deve permanecer fixa. A partir daí somente os vértices de menor prioridade podem se mover, de tal forma que a distância seja mínima.

Exemplo

Dúvidas?

top related