Projeto P&D 008/06 Light (ANEEL/Concert/UFMG)
Desenvolvimento de Ferramenta para Geração Automática de Diagrama Ortogonal
das Redes de Distribuição
Relatório 2
Tema do Relatório: Pesquisa sobre os métodos passíveis de
uso na geração automática de sinóticos
Coordenação Técnica:
Renato Cardoso Mesquita (UFMG)
Vinícius Magalhães da Cruz (Light)
Daniel Corrêa Ramos (Concert)
Departamento de Engenharia Elétrica
Universidade Federal de Minas Gerais
21 de junho de 2007
Equipe (UFMG)
Professor:
Renato Cardoso Mesquita (Coordenação técnica);
Alunos:
Leandro Terra Cunha Melo (Mestrado em Engenharia Elétrica)
Raphael Duarte Chaves (Graduação em Engenharia Elétrica)
Equipe (Light)
Vinícius Magalhães da Cruz (Gerente)
Alexandre dos Santos Pereira (Pesquisador)
Jorge Ricardo de Carvalho (Pesquisador)
Equipe (Concert)
Edimar Vieira Froede Jr. (Coordenador)
Daniel Corrêa Ramos (Pesquisador)
Deyler S. Paiva (Pesquisador)
Petrônio Saldanha Gomes (Pesquisador)
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
2
Resumo
Este relatório descreve métodos passíveis de serem utilizados para geração automática
de sinóticos, conforme previsto no segundo quadrimestre do P&D 008/06
Light/Concert/UFMG, “Desenvolvimento de Ferramenta para Geração Automática de
Diagrama Ortogonal das Redes de Distribuição”. No relatório da Etapa 1 do P&D 008/06
foram analisadas as principais técnicas existentes para o desenho automático de grafos.
Neste relatório detalham-se as técnicas mais específicas que podem ser aplicadas neste
projeto, especialmente as baseadas em programação linear inteira. Estas serão utilizadas
para a modelagem dos diversos critérios estéticos que serão adotados para a construção
dos diagramas unifilares da rede de distribuição da Light.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
3
Sumário
1 - Introdução ....................................................................................................................................... 5
2 – Topologia-Forma-Métrica baseada em Programação Linear Inteira ............................................. 8
2.1 Ortogonalização Utilizando Programação Linear Inteira (GIOTTO) ........................................ 8
2.2 Ortogonalização utilizando Programação Linear Inteira (Kandinsky) .................................... 10
3- Modelagem de critérios estéticos utilizando Programação Linear Inteira .................................... 12
3.1 Posicionamento de arestas em um dos lados de um vértice..................................................... 12
3.2 Pré-determinação do tamanho dos vértices .............................................................................. 14
3.3 - Utilização de rótulos .............................................................................................................. 15
3.3.1 Rotulação dos elementos de um grafo previamente construído ........................................ 16
3.3.2 Rotulação dos elementos do grafo durante a fase de compactação .................................. 18
4- Biblioteca para Resolução de Problemas de Programação Linear Inteira ..................................... 21
5- Biblioteca para manipulação e execução de algoritmos de grafos. ............................................... 22
6- Conclusões ..................................................................................................................................... 23
7. Referências Bibliográficas ............................................................................................................. 24
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
4
1 - Introdução
A utilização de técnicas que permitem o desenho de grafos com restrições estéticas é
importante em diversas aplicações. Como exemplos de aplicação de Desenho de Grafos
pode-se citar a Engenharia de Software (diagramas de fluxos de dados, grafos de
chamadas de subrotinas, hierarquias de classes e diagramas de objetos em programas
orientados a objeto), Bancos de Dados (diagramas entidade/relacionamento), Sistemas
de Informação (diagramas organizacionais), Sistemas de Tempo Real (redes de Petri,
diagramas de transição de estado), Sistemas de Suporte à Decisão (redes PERT, árvores
de atividade), Projeto de circuitos integrados (diagramas de circuitos), Sistemas de
Energia (diagramas das redes de transmissão e distribuição), Inteligência Artificial
(diagramas de representação do conhecimento), etc.
Cada uma destas aplicações possui requisitos específicos de desenho, dentre os quais os
critérios estéticos [BAT99b]. Nos diagramas unifilares da rede de distribuição da Light, por
exemplo, várias restrições estéticas foram identificadas, conforme discutiu-se nos
relatórios anteriores [MES07].
Os critérios estéticos geralmente utilizados pelos algoritmos de desenho de grafos são
bastante gerais, tratando, por exemplo, da diminuição do número de cruzamentos entre
arestas e/ou do direcionamento dos elementos do grafo em um sentido qualquer
[BAT99b].
No primeiro relatório discutiu-se a metodologia topologia-forma-metrica. Como se sabe,
esta técnica é divida em três fases distintas: A primeira fase é responsável pela
planarização do grafo e tem como resultado um embutimento planar do mesmo, em que
os cruzamentos de arestas são substituídos por vértices falsos. Na segunda fase, o
embutimento planar é ortogonalizado, sendo atribuídas seqüências de dobras a cada uma
das arestas do desenho e ângulos de incidência das arestas sobre os vértices. Na
terceira e última fase são calculadas as coordenadas dos vértices e das dobras de
arestas, de acordo com a representação ortogonal [MES07].
Destas três fases, a primeira é baseada em heurística, enquanto a segunda e a terceira
são modeladas como um problema de otimização. Na segunda fase (ortogonalização)
tenta-se minimizar o número de dobras em arestas, enquanto na terceira fase
(compactação) tenta-se minimizar a área total do desenho. A técnica utilizada para
formulação dos algoritmos de ortogonalização e compactação é baseada em minimização
de custos do fluxo em redes, que também já foi discutida [MES07]. Tentativas de
incorporar restrições ao desenho de grafos utilizando algoritmos baseados em fluxo em
rede [BRI97] porém, apresentam pouca flexibilidade de inserção de novas restrições,
como adição de rótulos em vértices e arestas.
Uma abordagem alternativa à utilização de fluxo em redes é apresentada em [EIG00]. A
técnica é baseada em Programação Linear Inteira (PLI) e apresenta algumas vantagens
como a possibilidade de utilização de várias restrições para desenhos de grafos planares
ou não-planares, além de maior eficiência, se comparada às abordagens baseadas em
fluxo em rede [EIG00, EIG01, KLA01,KLA02]. Cada uma destas restrições é modelada
através de um conjunto de equações e inequações lineares que devem ser satisfeitas,
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
5
produzindo um desenho ortogonal. A forma de implementação das restrições é única,
variando apenas as equações responsáveis pela modelagem de cada uma delas.
Utilizando-se PLI, também podem ser introduzidas restrições que permitam o desenho de
grafos com vértices de grau superior a 4. Esta metodologia, denominada Kandinsky
[EIG01], é ideal quando não são adotadas restrições quanto ao grau dos vértices,
possibilitando, por exemplo, a inclusão de duas ou mais arestas paralelas em um mesmo
lado de um vértice qualquer.
Nos diagramas unifilares da rede de distribuição da Light, além das restrições que
possibilitem a modelagem de vértices com arestas paralelas, diversas outras devem ser
introduzidas visando tratar os seguintes critérios estéticos:
1. Vértices
 Vértices de tamanho pré-determinados;
 Vértices com posições fixas.
2. Rótulos
 Rotulação dos diversos elementos existentes no desenho;
 Possibilidade de se utilizar mais de um rótulo por elemento;
 Rótulos de diferentes tamanhos;
3. Arestas
 Direcionamento de arestas, visando a padronização em certas áreas do
desenho.
4. Visualização
 Minimização da área do desenho, facilitando a visualização e localização dos
diversos elementos do sistema.
 A área do desenho deve seguir uma razão de aspecto pré-determinada.
 O número de cruzamentos e dobras deve ser mínimo, visando melhorar a
inteligibilidade do desenho.
Na figura 1.1, construída por desenhista, diversos destes critérios estéticos podem ser
observados.
Os algoritmos baseados em PLI são muito mais intuitivos, tendo em vista que qualquer
nova restrição pode ser adicionada através de uma equação algébrica linear. Além disso,
a grande maioria dos algoritmos que lidam com restrições é baseada em PLI. A utilização
de restrições baseada em algoritmos de fluxo em redes foi abordada em apenas uma
referência [BAT99].
Tendo em vista a maior versatilidade da PLI para o tratamento de restrições nos
desenhos de grafo, o objetivo deste relatório é descrever algoritmos encontrados na
literatura que viabilizem a implementação do conjunto de critérios estéticos identificados
neste projeto.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
6
Figura 1.1 Diagrama ortogonal construído por desenhista
contendo diversas restrições estéticas.
O restante deste relatório é dividido da seguinte forma: na seção 2 é apresentada uma
visão geral sobre a abordagem baseada em programação linear inteira. Algoritmos
baseados em PLI para tratamento de restrições são apresentados na seção 3. Nas
seções 4 e 5 são apresentadas duas bibliotecas para construção de modelos que
envolvam PLI e para manipulação e execução de algoritmos em grafos, respectivamente.
Finalmente, na seção 6, apresentam-se as conclusões alcançadas nesta etapa.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
7
2 – Topologia-Forma-Métrica baseada em Programação Linear Inteira
A programação linear inteira envolve a otimização (maximização ou minimização) de uma
função objetivo da forma
(2.1)
f x1, x2, ..., xn = a1 x1 + a 2 x2 + .... + a n xn
sujeita a restrições modeladas por equações e inequações lineares, tais como
 Ax   b

 x   0
(2.2)
Nas equações 2.1 e 2.2, cada uma das variáveis x é chamada variável objetivo, a matriz
A é chamada matriz de coeficientes e o vetor b vetor de restrições. Se a matriz de
coeficientes e o vetor de restrições são formados por elementos inteiros, diz-se que a
programação linear é inteira.
O objetivo de um problema de PLI como o mostrado acima é minimizar ou maximizar a
função objetivo, determinando o valor de cada variável objetivo.
A grande vantagem deste tipo de modelagem no desenho de grafos está no fato de que
qualquer novo critério estético a ser aplicado ao desenho exige apenas a inclusão de uma
nova inequação (restrição) na matriz de coeficientes, sem necessidade de alterações no
algoritmo em si. Esta característica torna as metodologias baseadas em PLI bastante
atraentes tendo em vista a flexibilidade oferecida por estas para a inclusão de novas
restrições.
Em [EIG00] são apresentadas diversas equações para modelagem de critérios estéticos
utilizando PLI. Além destas, também são apresentados dois modelos para implementação
da fase de ortogonalização do algoritmo topologia-forma-métrica, sendo um baseado em
grafos com vértices de grau inferior a quatro (GIOTTO) e outra em grafos sem restrições
quanto ao grau dos vértices (Kandinsky).
Nesta seção, as duas abordagens são descritas de maneira completa, tendo em vista a
possível utilização das mesmas na obtenção de diagramas ortogonais.
2.1 Ortogonalização Utilizando Programação Linear Inteira (GIOTTO)
No relatório 1 deste projeto, apresentou-se a formulação da etapa de ortogonalização
como um problema de fluxo em redes [MES07]. Agora, apresentamos a formulação do
mesmo problema através de PLI. Assim, como na ortogonalização por fluxo, como
entrada utiliza-se o embutimento planar de um grafo G = (V,E), com vértices V e arestas
E, dados pela ordem cíclica  (v) em sentido horário das arestas incidentes a cada vértice
v. Cada aresta e = (v,w) pertencente a E aparece duas vezes em  , sendo uma como
(v,w) em  (v) e outra como (w,v) em  (w) .
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
8
Determina-se também o conjunto F de faces. Seja Fin o conjunto de faces internas e Fout o
conjunto de faces externas (que consiste exatamente de uma face). Cada face f
pertencente a F é armazenada como a lista ordenada de arestas que definem f. Cada
aresta e em uma face f é direcionada tal que a face prescrita f esteja à direita de e (figura
2.1).
Figura 2.1. Definição de faces utilizada em [EIG00]. Nesta figura há duas
faces: F1: {e1, e6, e5, e4, e3, e2} e F2: {e1, e2, e3, e4, e5, e6}.
Para a construção do sistema de equações que definirão o PLI utilizou-se a mesma
modelagem dos problemas de custo mínimo de fluxo em redes. São dois tipos de
variáveis do sistema: Para cada aresta (u,v) pertencente a  , há uma variável r(u,v), que
conta o número de dobras de 90º (dobras à direita) e uma variável l(u,v), que conta o
número de dobras de 270º (dobras à esquerda), ambas ao longo da aresta na direção u-v.
As variáveis l(v,u) e r(v,u) contam o número de dobras da direção contrária v-u (uma dobra
de 270º em uma direção é uma dobra de 90º na direção contrária) (figura 2.2). Para se
obter um desenho com número mínimo de dobras, minimiza-se a soma das variáveis r(u,v)
e l(u,v).
Figura 2.2: Percorrendo-se e(u,v), tem-se duas dobras à direita (r(u,v) = 2 ) e uma à
esquerda ( l(u,v) = 1 ). Na direção contrária, e(v,u), tem-se r(v,u) = 1 l(v,u) = 2.
O segundo tipo de variável corresponde aos ângulos de vértices: Para cada aresta e =
(u,v) pertencente a  há uma variável a(u,v) que denota o ângulo entre e e seu
predecessor cíclico em  (v) no vértice v. O valor r de uma variável a(u,v) corresponde a
um valor de r*90º do ângulo correspondente. Todos os ângulos incidentes têm que ser
múltiplos de 90º, de forma que se deve demandar, explicitamente, que as variáveis
possuam valores inteiros, o que leva ao problema de programação linear inteira definido
pelas equações 2.3:
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
9
min
 (l
( v ,w)  E
(T 1)
a
( v , w)
( v , w)   ( v )
( v ,w)
 r( v , w) ) sujeito a
 4 v  V
2 k  4
 l ( v , w)  r( v , w) )  
( v , w)  f
2 k  4
(T 3) l ( v , w)  r( w,v ) (v, w)  E
(T 2)
 (a
( v , w)
f  Fin , | f |  k
f  Fout , | f |  k
f  F
(2.3)
l ( v , w) , r( v , w)   (v, w)  E
a ( v , w)  {1,..,4} (v, w)  E
Na restrição (T2) da equação 2.3, | f | denota o número de ângulo de vértices dentro de
uma face f. Em [TAM87], mostra-se que as condições acima são suficientes para gerar
desenhos ortogonais.
2.2 Ortogonalização utilizando Programação Linear Inteira (Kandinsky)
O algoritmo Kandinsky pode tratar vértices com grau superior a quatro, permitindo ângulo
zero entre arestas incidentes a um dos quatro lados de um vértice. Neste modelo, tem-se
um grid de linhas mais espessas, pois atribui-se a cada uma delas um conjunto de linhas
mais finas onde as arestas são roteadas. Para assegurar a correção do desenho, a
propriedade bend-or-end deve ser mantida, o que implica no controle do tamanho dos
vértices: Para duas arestas e1 = (v,w) e e2 = (v,u), w  u , ao menos uma das arestas e1
ou e2 deve possuir dobras, caso estejam anexadas ao mesmo lado do vértice v. É
fundamental a garantia de que as duas arestas não se interceptem, conforme se observa
na figura 2.3.
Figura 2.3: Arestas deixando o vértice v a partir
do mesmo lado sem se interceptarem [EIG00]
O PLI abaixo estende a formulação empregada na seção 2.1, através do agrupamento
das dobras ao longo das arestas em dobras de vértice e dobras de face. Cada dobra que
se deve à condição bend-or-end é denominada dobra de vértice, sendo atribuída ao
vértice que deve satisfazer a condição. Todas as outras dobras são denominadas dobras
de face.
Cada aresta pode ter duas dobras de vértice, uma para cada vértice que nela incide. Para
este propósito, introduz-se para cada aresta (v,w) pertencente a  quatro variáveis: lbv(v,w)
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
10
, rbv(v,w) , lbw(v,w) e rbw(v,w), que representam as dobras de vértice nos vértices v e w. As
variáveis lb(v,w) e rb(v,w) que denotam as dobras de face na aresta (v,w). Para simplificar,
escreve-se l(v,w) = lbv(v,w) + lb(v,w) + lbw(v,w) e r(v,w) = rbv(v,w) + rb(v,w) + rbw(v,w). Comparando a
notação entre as formulações GIOTTO e Kandinsky, observa-se que l(v,w) é sempre o
número total de dobras à esquerda de (v,w). A formulação Kandinsky completa é dada
pelo conjunto de equações 2.4:
min
 (l
( v , w)  E
( K1)
a
( v , w)
( v , w)   ( v )

( v , w)
 r( v , w) )
a
4 v  V
2 k  4
 l( v , w)  r( v , w) )  
( v , w)  f
2 k  4
v
v
( K 3) lbv,w  + rbv,w   1 (v, w)  
( K 2)
sujeito
 (a
( v , w)
f  Fin , | f |  k
f  Fout , | f |  k
( K 4)
au,v  + lbvv,w  + rbvv,u   1 (v, w) ,(v, u )  
( K 5)
lbvv,w  = rbvw,v 


lbv,w  = rb w,v 
 w
w

lbv,w  = rb w,v 
f  F
(2.4)
lb(vv , w) , rb(vv , w) , lb(wv , w) , rb(wv , w)  {0,1}
lb( v , w) , rb( v , w)  
a( v , w)  {0,..,4}
Apesar da equivalência entre as abordagens baseadas em redes de fluxo e aquelas
baseadas em PLI, a extensão da abordagem GIOTTO para o modelo Kandinsky,
utilizando redes de fluxo é bastante complicada, comparando-se com a abordagem que
utiliza programação linear inteira.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
11
3- Modelagem de critérios estéticos utilizando Programação Linear
Inteira
Como dito anteriormente, a modelagem de critérios estéticos em desenho de grafos
dentro da abordagem de programação linear inteira se dá através da inserção de
equações e inequações ao modelo previamente estabelecido. Mostra-se, nesta seção, um
conjunto de restrições encontradas na literatura para a modelagem de critérios estéticos
que estejam de acordo com aqueles anteriormente descritos na seção 1 deste relatório.
3.1 Posicionamento de arestas em um dos lados de um vértice
A restrição de posicionamento de arestas em um lado de um vértice qualquer é
particularmente útil no caso da representação dos diagramas unifilares de distribuição da
Light. Na figura 3.1, obtida do Visualizador de Sinóticos xOMNI, observa-se que ocorre
um agrupamento de elementos de igual função (nodos azuis) em uma dada região do
grafo e que as linhas que os conectam a outros elementos do circuito sempre partem do
mesmo lado.
Figura 3.1. Parte de um diagrama ortogonal de circuito de distribuição da Light
apresentado no Visualizador de Sinóticos do xOMNI. Arestas posicionam-se à direita dos
vértices azuis.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
12
Em [EIG00] é apresentado um método baseado em PLI para a modelagem deste critério
estético. Para tal, inicialmente devem ser feitas algumas definições. Seja Sd(v) o conjunto
de arestas a serem anexadas a um lado d do vértice v, onde d pode ser qualquer dos
lados do vértice (lado esquerdo, lado direito, lado de cima ou lado de baixo). Insere-se,
então, no conjunto de equações e inequações que definem o PLl, a variável s(dv ,w)  {0,1} . A
variável se igualará a 1 se e somente se a aresta {v,w} tiver uma de suas extremidades no
lado d, previamente definido. Assim, pelo fato de cada aresta ser incidente a exatamente
um lado de um vértice, a equação 3.1 deve ser inserida no PLI.
s
1
d
( v , w)
d {esquerda, direita,cima ,baixo}
(v, w)  
(3.1)
Sejam:



Eixo de balanço o eixo que divide um vértice em dois retângulos iguais;
c(v,w) o ângulo entre a extremidade esquerda do eixo de balanço horizontal de v e
a extremidade w da aresta (v,w) incidente a v;
m(v,w) o resultado da operação c(v,w) mod 4 .
Tem-se que o lado no qual uma aresta (v,w) é anexada ao vértice v, é determinado pelo
ângulo entre a extremidade esquerda do eixo de balanço horizontal do vértice v e a aresta
(v,w). Tal condição se expressa nas equações 3.2 [EIG00]:
4m(esquerda
 c( v , w)  3(1  s (esquerda
)
v , w)
v , w)
4m(esquerda
 c( v , w)  0
v , w)
cima
4m(cima
v , w )  c ( v , w )  1  3(1  s ( v , w ) )
4m(cima
v , w)  c( v , w)  1
(3.2)
direita
4m(direita
v , w )  c ( v , w )  2  3(1  s ( v , w ) )
4m(direita
v , w)  c( v , w)  2
baixo
4m(baixo
v , w )  c ( v , w )  3  3(1  s ( v , w ) )
4m(baixo
v , w)  c( v , w)  3
Finalmente, para especificar que uma aresta (v,w) é incidente ao lado d de um vértice v,
adiciona-se a restrição:
sd(v,w) = 1
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
(3.3)
13
Assim, através da resolução do conjunto de inequações do ILP anterior, pode-se
posicionar arestas em um lado qualquer de um conjunto de vértices. A figura 3.2 mostra
os resultados obtidos em [EIG00] quando se utilizou o PLI modelado pelas equações
anteriores.
Objetivando a obtenção de simetria do grafo 3.2(b) com relação aos nodos S1 e S8,
aplicou-se a restrição de posicionamento de arestas somente nos lados direito e esquerdo
destes mesmos nodos, obtendo-se o desenho mostrado na figura 3.2(c).
(b)
(a)
(c)
Figura 3.2. (a) Representação do grafo original. (b) Desenho ortogonal do mesmo grafo.
(c) Desenho do grafo após aplicação das restrições de posicionamento de
arestas somente à direita ou à esquerda dos vértices S1 e S8.
3.2 Pré-determinação do tamanho dos vértices
Uma outra característica que se observa nos diagramas unifilares obtidos da Light são os
diferentes tamanhos dos vértices que representam os diversos componentes do sistema
de distribuição. Isto é notado, especificamente, para as chaves de três direções e as
chaves a gás de n posições
A abordagem topologia-forma-métrica, apesar de seu comprovado sucesso em diversas
aplicações, ainda possui algumas desvantagens e problemas não resolvidos. Um dos
problemas mais complicados é a dificuldade em se produzir desenhos com vértices de
tamanho determinado pelo usuário. Atualmente, muitos algoritmos baseados nesta
abordagem consideram os vértices como pontos infinitesimais [TAM87], ou assumem que
os vértices possuem tamanhos iguais [BAT86, FOß96].
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
14
Há, no entanto, uma forte demanda por aplicações que possibilitem a construção de
desenhos ortogonais com vértices de tamanho arbitrário, definidos pelo usuário. É o que
se observa, por exemplo, em representações que utilizam grafos para construção de
diagramas UML, onde os elementos possuem distintas formas e tamanhos [EIG03].
[EIG00] apresenta um conjunto de restrições a serem adicionadas à fase de
ortogonalização do algoritmo Kandinsky que permitem especificar o tamanho mínimo de
um vértice em dimensões k1 x k2.
Para tal, deve-se inicialmente definir o lado d (lado esquerdo, lado direito, lado de cima,
lado de baixo) de um vértice v e a restrição de tamanho k que deve ser aplicada a este
lado. Assim, se d corresponde aos lados de cima ou de baixo, tem-se k = k1; caso
correspondam à esquerda ou à direita do vértice, utiliza-se k = k2. Além disso, define-se
E’ como as k-1 arestas precedentes a e em  (v) , incluindo e.
Toma-se cada intervalo E '   (v) de tamanho k, onde a primeira aresta deixa o vértice v
no lado d. Neste caso, assegura-se que a aresta é adjacente a um ângulo diferente de 0.
E para assegurar a incidência desta aresta no lado d do vértice v, utiliza-se a seguinte
restrição [EIG00]:
s(du ,v ) 
a
( v , w )E '
( v , w)
1
E '   (v), | E ' | k  1, e  (u, v) primeira aresta em E '
(3.3)
Na equação 3.3, a variável a(v,w) denota o ângulo entre a aresta (v,w) e seu predecessor
cíclico no embutimento planar e incidente no vértice w.
3.3 - Utilização de rótulos
Nos diagramas unifilares da rede de distribuição da Light, observa-se que a quase
totalidade dos vértices e elementos são identificados através de rótulos, caracterizados
por diferentes tamanhos e posicionamentos. Os diversos tipos de rótulos que se pode
observar na figura 3.3 são caracterizados pelas seguintes propriedades:





Não há sobreposição entre rótulos e outros elementos;
Cada rótulo caracteriza um único elemento do diagrama;
Existe a possibilidade de se incluir mais de um rótulo por elemento;
Há rótulos de tamanhos variados;
Compromisso entre área ocupada pelo rótulo e legibilidade do mesmo.
É de fundamental importância que se consiga o cumprimento de todos os requisitos
acima, visando a diminuição da complexidade visual do desenho. Dessa forma,
buscaram-se na literatura algoritmos que possibilitem a utilização de rótulos atendendo a
todas as características citadas.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
15
Figura 3.3: Diversos tipos e disposições de rotulação estão presentes nos diagramas
unifilares da rede de distribuição da Light
Os algoritmos de rotulação de vértices podem ser divididos em duas abordagens:
1. Primeiro desenhar, depois rotular. Nesta abordagem, o processo de rotulação
ocorre em uma fase de pós-processamento, após a execução do algoritmo de
desenho. Dessa forma, a construção do desenho é executada em duas fases. Na
primeira delas, é produzido o desenho de um grafo sem levar em consideração
qualquer tipo de informação relativa ao posicionamento de rótulos. Na segunda
fase aplicam-se algoritmos de rotulação de mapas para caracterização de cada
elemento do desenho [KAK98].
2. Combinação entre Compactação e Rotulação. Nesta abordagem, combina-se o
problema de rotulação de vértices com a fase de compactação da metodologia
Topologia-Forma-Métrica. Neste caso, o posicionamento dos rótulos será levado
em consideração ao se atribuir coordenadas aos vértices do grafo planar [KLA01,
KLA02].
Há ainda uma terceira abordagem, que consiste em tratar os rótulos como vértices. Neste
caso, os rótulos são modelados como vértices de tamanhos previamente definidos e
anexados aos seus respectivos vértices através de arestas artificiais. Dessa forma o
posicionamento dos vértices se dá na fase de ortogonalização da metodologia topologiaforma-métrica.
Decidiu-se, porém, não abordar esta terceira abordagem em detalhes no presente
relatório, tendo em vista algumas de suas desvantagens. A primeira delas refere-se ao
aumento dos graus dos vértices devido à inclusão de arestas artificiais, acarretando em
um aumento desnecessário da complexidade de implementação de algoritmos. Além
disso, arestas e vértices artificiais podem destruir propriedades estruturais do grafo,
determinando um desenho de má qualidade [KLA01].
3.3.1 Rotulação dos elementos de um grafo previamente construído
Em [KAK98] apresenta-se uma abordagem geral para resolver o problema de atribuição
de textos ou símbolos a um conjunto de elementos gráficos em desenhos ou mapas
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
16
bidimensionais. Este tipo de problema é referenciado como problema GFLP (Graphical
Feature Label Placement), sendo que, por “feature” deve-se entender os diversos
componentes do grafo, como arestas e vértices. Nesta abordagem, os rótulos podem ter
tamanhos e orientação arbitrários.
O algoritmo consiste de três passos principais, resumidos no procedimento 3.1.
Procedimento 3.1: Algoritmo GFLP
Entrada: Desenho de um Grafo G e um conjunto de vértices a serem rotulados.
Saída: Um grafo com vértices rotulados.
1: Encontrar um conjunto de possíveis posições para os rótulos de cada vértice.
2: Reduzir o conjunto encontrado com base em regras estéticas.
3: Escolher a melhor dentre todas as posições encontradas.
Cada um destes passos pode ser implementado utilizando vários algoritmos, desde que
sejam observadas as seguintes regras estéticas (passo 2):



Não sobreposição dos rótulos com outros elementos do grafo.
Cada rótulo deve caracterizar apenas um elemento do grafo.
O rótulo deve ser posicionado no melhor local possível (dentre todas as
posições aceitáveis).
Quando se considera o grafo em que os rótulos serão inseridos, existe a possibilidade de
que mesmo um posicionamento ideal dos vértices não determine o cumprimento das três
regras acima. Dessa forma, associam-se custos a cada possível posição do rótulo, de
forma a se definir as melhores possíveis. Assim, faz-se com que o problema de
posicionamento de rótulos passe a ser visto como um problema de otimização, em que o
objetivo é encontrar o posicionamento de menor custo para um rótulo.
Um resultado obtido utilizando-se o procedimento 3.1 pode ser observado na figura 3.2
Figura 3.2: Desenho obtido utilizando-se o procedimento 3.1. As caixas pretas são os
vértices, as brancas os rótulos de aresta e as cinzas os rótulos de vértice [KAK98].
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
17
Observa-se, no entanto, que este tipo de algoritmo apresenta algumas desvantagens. A
principal delas está no fato de que o espaço existente para o posicionamento dos rótulos
não é suficiente, tendo em vista que, ao se compactar um grafo, não se assume a
posterior colocação dos mesmos. Isto faz com que restem quatro possibilidades para se
posicionar os rótulos:
1. Posicionar os rótulos permitindo a possível sobreposição destes com outros
elementos do desenho.
2. Posicionar os rótulos afastados de seu vértice correspondente, dificultando a leitura
do desenho.
3. Escalonar o grafo, permitindo a colocação de todos os rótulos, porém diminuindo a
qualidade do desenho, devido ao aumento do comprimento das arestas.
4. Minimizar o tamanho do rótulo de forma que este possa ser posicionado próximo
ao nodo correspondente e sem sobreposição com os demais elementos do
desenho, o que pode ocasionar em rótulos muito pequenos, dificultando a leitura
dos mesmos.
Quando não há restrição quanto à área a ser ocupada pelo desenho do grafo, os
algoritmos baseados em rotulação de mapas são uma boa alternativa, tendo em vista a
não necessidade de se alterar a metodologia topologia-forma-métrica. Porém, no caso
dos diagramas ortogonais da Light em que a compactação dos desenhos é um dos
fatores a serem considerados, alternativas devem ser buscadas.
3.3.2 Rotulação dos elementos do grafo durante a fase de compactação
A possibilidade de se determinar o melhor posicionamento final dos elementos de um
grafo (vértices e arestas) levando-se em consideração a existência de rótulos é de
fundamental importância para a minimização da área do desenho e diminuição da
complexidade visual do mesmo. Diferentemente do que ocorre em rotulação de mapas,
onde a posição dos objetos é especificada na entrada do problema, as coordenadas dos
vértices e arestas em um problema de rotulação de grafos (PRG) devem ser
determinadas levando-se em consideração a existência dos rótulos, o que determina uma
maior complexidade deste tipo de algoritmo.
Em [KLA02], cria-se uma nova abordagem para o problema de posicionamento de rótulos,
tratando-os durante a fase de compactação da metodologia topologia-forma-métrica. O
problema de rotulação e compactação, ou COLA (Compaction and Labeling Problem), é
tratado através de um algoritmo que, a partir da representação ortogonal do grafo e
algumas informações acerca de seus vértices, gera um desenho planar ortogonal com
comprimento total de arestas mínimo. Segundo os autores, o método proposto é superior
às abordagens tradicionais de aplicação de algoritmos de rotulação de mapas em
desenhos de grafo.
Primeiramente, um conjunto de rótulos é associado a cada um dos vértices v,
satisfazendo, obrigatoriamente, duas condições:
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
18
1. O rótulo associado a cada vértice v deve tocar v em pelo menos um ponto;
2. Não deve haver sobreposição entre o rótulo associado a v e outros elementos do
grafo.
A primeira condição determina a impossibilidade do rótulo de um vértice v estar afastado
do mesmo devido a inexistência de área para disposição do rótulo próximo ao vértice.
Como discutido na seção 3.3.1, essa condição não é necessariamente satisfeita quando
se emprega algoritmos de rotulação de mapas sobre desenhos de grafo. Na figura 3.3 há
uma comparação entre os algoritmos de posicionamento dos vértices de um mesmo grafo
utilizando algoritmos de rotulação de mapas e a abordagem descrita em [KLA02].
(a)
(b)
Figura 3.3: (a) Rótulos posicionados por algoritmo de rotulação de mapas.
(b) Rótulos posicionados durante a fase de compactação [KLA02]
Como se observa, o mau posicionamento dos rótulos determinou um acréscimo na área
total do desenho 3.3-(a), além de menor legibilidade, tendo em vista o afastamento de
alguns rótulos de seus vértices correspondentes.
Há, porém, uma questão a ser tratada. Apesar da técnica descrita em [KLA02] se mostrar
mais eficiente que os algoritmos de rotulação de mapas, os autores não descrevem como
esta pode ser aplicada a desenhos ortogonais com vértices de tamanho pré-determinado,
apesar de afirmarem que a técnica é extensível a este caso. Além disso, o algoritmo
“branch-and-cut” utilizado nesta abordagem tem tempo de execução exponencial no pior
caso e os autores não fornecem qualquer resultado experimental que valide a abordagem
utilizada.
Em [EIG01], é descrito um novo algoritmo através do qual se pode construir um desenho
ortogonal em que os vértices possuam tamanhos pré-determinados, requerendo tempo de
execução linear. O novo algoritmo é baseado na combinação entre um algoritmo de
compactação exata [KLA99] e a técnica de decomposição retangular [TAM87]. O
resultado final é obtido através da resolução de três problemas:
1. Dado o embutimento G de um grafo com vértices de grau máximo 4 e com
representação ortogonal H, encontrar um desenho de G com representação
ortogonal H.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
19
O problema acima descreve, basicamente, a terceira fase da metodologia topologiaForma-Métrica, sendo solucionado tanto por algoritmos baseados em redes de fluxo
[EIG02] quanto por algoritmos baseados em programação linear inteira [EIG00]. Os
autores estendem o problema acima, de forma que se possa obter a representação
ortogonal de grafos com vértices de grau superior a 4. O problema é, então, redefinido:
2. Dado o embutimento G de um grafo com representação quasi-ortogonal Q e com
propriedades Kandinsky, encontrar um desenho de G com representação quasiortogonal Q, em que os vértices de G são representados como ponto.
Uma representação quasi-ortogonal determina que duas ou mais arestas possam ser
adjacentes ao mesmo lado de um vértice conforme se observa na figura 3.4.
Figura 3.4: Representação quasi-ortogonal de um conjunto de
vértices e arestas
Para resolução do problema 2, os autores utilizam uma extensão do algoritmo de
programação linear inteira (PLI) utilizada na resolução do problema 1. Há, ainda, a
necessidade de se estender a resolução dos problemas anteriores de forma que se possa
incluir nas equações que modelam o PLI os vértices de tamanho pré-determinado, o que
define um novo problema:
3. Dado o embutimento G de um grafo com representação quasi-ortogonal Q e com
as propriedades Kandinsky. Encontrar o desenho de G com representação
ortogonal Q, em que cada vértice v de G é representado por uma caixa de
tamanho (largura(v), altura(v)).
Ainda em [EIG01], os autores fornecem um algoritmo detalhado, baseado em PLI para
resolução do problema 3 em tempo linear.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
20
4- Biblioteca para Resolução de Problemas de Programação Linear
Inteira
Diversos são os aplicativos disponíveis para a resolução de problemas de programação
linear, sendo que há dois tipos básicos de aplicativos utilizados no tratamento deste tipo
de problema:

Algoritmos para resolução de problemas ou solvers: são utilizados para encontrar
soluções ótimas para problemas específicos de programação linear. Têm como
entrada uma listagem das restrições do problema bem como uma matriz de
coeficientes para modelagem das equações e inequações do problema.

Sistemas de modelagem: São utilizados na formulação de problemas de
programação linear e na análise de suas soluções. Têm como entrada uma
descrição do problema em uma linguagem acessível ao usuário, fornecendo sua
solução nos mesmos termos.
Neste projeto, nos restringiremos à utilização do primeiro tipo de aplicativo, tendo em vista
que os critérios estéticos já estão modelados através de equações e inequações
conforme mostrado nas seções anteriores.
Os solvers existentes utilizam diferentes métodos de otimização como as abordagens
simplex e as técnicas baseadas em pontos interiores. O CLP [CLP04] e o lpsolve [LPS03],
por exemplo, são baseados no método simplex, enquanto o HOPDM [HOP98] utiliza
otimização baseada em pontos interiores.
Para a resolução dos problemas de programação linear através dos quais se modelarão
os diversos critérios estéticos presentes nos diagramas unifilares da rede de distribuição
da Light, um solver deve apresentar características como:



Ser baseado em software livre, de forma a evitar custos oriundos de sua aquisição;
Eficiência, tendo em vista a complexidade dos problemas de PLI.
Disponibilidade sob forma de biblioteca, disponibilizando uma API (Application
Programming Interface) de programação em C++.
Um solver que cumpre os três requisitos acima é o lpsolve [LPS03], cuja manutenção e
supervisão são feitas por Kjell Eikland e Peter Notebaert sendo constantemente
atualizado (está atualmente sob versão 5.1.10). É disponibilizado sob a licença LGPL 2.1,
e diferentemente de outros projetos baseados em software livre, permite sua utilização
sem a necessidade de disponibilizar o código-fonte da aplicação que o utilize. Para a
resolução dos problemas de programação linear o lpsolve utiliza uma versão revisada do
método simplex, além do método Branch-and-bound para inteiros.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
21
5- Biblioteca para manipulação e execução de algoritmos de grafos.
Conforme discutido anteriormente, os diagramas ortogonais a serem construídos a partir
da rede de distribuição da Light serão modelados através de grafos. Assim, torna-se
necessária a utilização de uma ferramenta que possibilite a manipulação e execução de
algoritmos em grafos.
Para tal, será utilizada neste trabalho a biblioteca GTAD (Graph Toolkit for Algorithms and
Drawings), desenvolvida em uma dissertação de mestrado na UFMG [MEL07]. Esta
biblioteca adota o paradigma de programação genérica que objetiva tornar um software
independente das estruturas de dados sobre as quais ele opera, definindo conceitos que
modelem as abstrações de um determinado domínio. Uma das conseqüências desta
abordagem é a reutilização de componentes, tendo em vista que uma mesma estrutura
de dados pode ser mapeada a diferentes conceitos.
Um aspecto importante na programação genérica é o desempenho. É comum a existência
de restrições de tempo de execução em aplicações reais como as que serão
desenvolvidas neste projeto. Portanto, é imprescindível que implementações genéricas
sejam tão eficientes quanto implementações especializadas. Felizmente, o mecanismo de
templates da linguagem de programação C++, fundamental para o desenvolvimento de
componentes genéricos, tem resolução de tipos em tempo de compilação.
Conseqüentemente, bibliotecas desenvolvidas sob o paradigma de programação genérica
são freqüentemente mais rápidas que bibliotecas desenvolvidas sob o paradigma
convencional de orientação a objetos.
Com o intuito de promover um alto grau de flexibilidade, as implementações de algoritmos
da GTAD são altamente parametrizáveis. Há recursos que permitem a personalização de
partes do comportamento interno do algoritmo e a definição de quais dados devem ser
armazenados durante sua execução. Como essas configurações são feitas em tempo de
compilação, não há impactos ou sobrecarga no desempenho.
A GTAD é altamente flexível e extensível. Sua lista de adjacências, estrutura de dados
que representa o grafo, permite a parametrização dos vértices, arestas e outras
propriedades do grafo. Adicionalmente, a arquitetura da biblioteca também permite que
estruturas de dados alternativas possam substituir a lista de adjacência padrão, uma
característica decorrente da utilização de programação genérica.
Maiores detalhes sobre a GTAD e extensões a ela que serão implementadas neste
projeto, serão apresentadas no relatório da próxima etapa.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
22
6- Conclusões
A realização deste trabalho de busca por métodos que permitam o desenho dos
diagramas ortogonais da rede de distribuição da Light, levando-se em consideração todos
os seus critérios estéticos, mostrou que não há na literatura um método específico que
possa ser aplicado para a resolução deste problema. Mostrou ainda que, enquanto alguns
algoritmos estão consolidados em termos de bibliografia e resultados práticos, como é o
caso do método de compactação VLSI ou dos algoritmos de rotulação de mapas
aplicados a grafos, outros ainda requerem certo esforço de pesquisa para que possam
ser utilizados de forma a produzir resultados aplicáveis a situações práticas, como é o
caso dos algoritmos de rotulação de vértices integrados à metodologia Topologia-FormaMétrica.
Certamente serão necessárias adaptações nas diversas abordagens descritas neste
relatório, de forma a alcançar o objetivo proposto. Apesar disso, já é possível estabelecer
uma direção a ser seguida em relação a quais métodos deverão ser implementados para
resolução do problema.
É ainda necessário comentar que as formulações matemáticas para introdução de alguns
tipos de restrições não foram encontradas na literatura. Por exemplo, a inclusão de mais
de um rótulo para cada elemento do diagrama, a compactação segundo uma razão de
aspecto pré-definida, ou ainda a possibilidade de manter um vértice qualquer em uma
posição fixa do grafo. A possibilidade de se conseguir tais recursos através de pequenas
adaptações nos algoritmos encontrados deve ser investigada e parece ser possível,
através da inclusão de novas restrições ao problema de programação linear inteira a ser
solucionado. Este foi mais um dos motivos que nos fez modificar a estratégia
anteriormente prevista, que era modelar o problema através de fluxo em redes, passando
a utilizar a modelagem mais geral da programação linear inteira.
Apesar destas questões ainda em aberto, foram selecionadas algumas técnicas para a
resolução da maioria das restrições: para o desenho de vértices com tamanho
previamente especificado, o que é essencial para a representação dos diversos
elementos do sistema de distribuição da Light, a abordagem apresentada em [EIG00]
poderá ser utilizada; para a fase de compactação, que deverá levar em consideração a
existência de vértices não pontuais, a abordagem presente em [EIG01] nos pareceu
bastante interessante, principalmente pelo fato de esta abordar a existência de vértices de
tamanho predeterminado; finalmente, as restrições de minimização do número de
cruzamentos e de dobras são tratadas durante a execução das fases de planarização e
ortogonalização, respectivamente, dos algoritmos GIOTTO e Kandinsky [EIG00].
Na próxima etapa, iniciaremos a implementação computacional dos algoritmos
apresentados neste e nos relatórios anteriores do projeto. Para esta implementação
contaremos com a biblioteca GTAD de algoritmos em grafos desenvolvida na UFMG
[MEL07] e com a biblioteca lpsolve [LPS03], de programação linear inteira, disponível sob
licença LGPL, podendo, portanto, ser utilizada neste projeto sem qualquer problema
associado a copyright.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
23
7. Referências Bibliográficas
[BAT86] BATINI, C., NARDELLI, E., TAMASSIA, R.
diagrams. IEEE Trans. Softw. Eng., 4:538-546, 1986.
A layout algorithm for data-flow
[BAT99a] BATTISTA, G. D., DIDIMO, W., PATRIGNANI, M., PIZZONIA, M. Orthogonal
and quasi-upward drawings with vertices of prescribed size. Proceedings of the 7th
International Symposium on Graph Drawing (GD'99), Springer, J. Kratochvil, Ed., vol.
1731 of LNCS, 297-310, 1999.
[BAT99b] BATTISTA, G. D., EADES, P., TAMASSIA, R., TOLLIS, I.G. Graph Drawing:
Algorithms for the Visualization of Graphs, Prentice Hall, 1999.
[BRI97] BRIDGEMAN, S., FANTO, J., GARG, A., TAMASSIA, R., VISMARA,
L.InteractiveGiotto: An Algorithm for Interactive Orthogonal Graph Drawing. Proceedings
on GD'97, Rome, LNCS 1353, 303-308, 1997.
[CLP04] CLP SOLVER. http://www.coin-or.org/Clp/index.html, 2004.
[EIG00] EIGLSPERGER, M., FÖßMEIER, U., KAUFMANN, M. Orthogonal graph drawing
with constraints. Proceedings of the eleventh annual ACM-SIAM symposium on Discrete
algorithms, 3-11, 2000.
[EIG01] EIGLSPERGER, M., KAUFMANN, M. Fast compaction for orthogonal drawings
with vertices of prescribed size. In Proceedings of the 9th International Symposium on
Graph Drawing (GD'2001), Springer, vol. 2265, 124-138, 2001.
[EIG02] EIGLSPERGER, M., FEKETE, S. P., KLAU, G. W. Orthogonal graph drawing,
Lecture Notes in Computer Science, 2025:121-171, 2001.
[EIG03] EIGLSPERGER, M., KAUFMANN, M., SIEBENHALLER, M. 2003. A topologyshape-metrics approach for the automatic layout of UML class diagrams. In Proceedings
of the 2003 ACM Symposium on Software Visualization (San Diego, California, June 11 13, 2003). SoftVis '03. ACM Press, New York, NY, 189-ff, 2003.
[FOß96] FÖßMEIER, U., KAUFMANN, M. Drawing high degree graphs with low bend
numbers. In F. J. Brandenburg, editor, Graph Drawing (Proc. GD '95), volume 1027 of
LNCS, pages 254-266. Springer, 1996.
[HOP98] HOPDM SOLVER, http://www.maths.ed.ac.uk/~gondzio/software/hopdm.html,
1998.
[KLA01] KLAU, G. W. A Combinatorial Approach to Orthogonal Placement Problems. PhD
thesis, Universitát des Saarlandes, 2001.
[KLA02] KLAU, G. W., MUTZEL, P. Combining Graph Labeling and Compaction
(Extended Abstract). In Kratochvíl, Jan, Eds. Proceedings Graph Drawing, pages pp. 2737, Stirín Castle, Czech Republic, 1999
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
24
[KLA99] KLAU, G. W., MUTZEL, P. Optimal Compaction of orthogonal grid drawings. In
Integer Programming and Combinatorial Optimization (IPCO'99), number 1610 in LNCS, p
304-319, 1999.
[KAK98] KAKOULIS, K. G., TOLLIS, I. G. A unified approach to labeling graphical
features. In Proceedings of the 14th Annual. ACM Symposium of Computational Geometry
(SoCG'98), pp. 347-356,1998.
[LEN90] LENGAUER, T. Combinatorial Algorithms for Integrated Circuit Layout. WileyTeubner, 1990.
[LPS03] LPSOLVE v. 5.5.0.10. http://tech.groups.yahoo.com/group/lp_solve/, 2003.
[MEL07] MELO, L. T. C. Uma Biblioteca para Desenho de Grafos construída sob o
paradigma de Programação Genérica. Dissertação de Mestrado, Programa de PósGraduação em Engenharia Elétrica, UFMG, 2007.
[MES07] MESQUITA, R. C. & MELO, L. T. C. - Levantamento do estado da arte na área
de desenho de grafos, Relatório 1 do Projeto P&D 008/06 Light (ANEEL/Concert/UFMG) Desenvolvimento de Ferramenta para Geração Automática de Diagrama Ortogonal das
Redes de Distribuição, Fevereiro de 2007.
[TAM87] TAMASSIA, R. On embedding a graph in the grid with the minimum number of
bends. SIAM Journal Comput., 3:421-444, 1987.
[TAM89] TAMASSIA, R., TOLLIS, I. G. Planar Grid Embeddings in Linear Time. IEEE
Trans. on Circuits and Systems CAS-36, pp. 1230-1234, 1989.
[SIX00] SIX, J. M., KAKOULIS, K. G., TOLLIS, I. G. Techniques for the Refinement of
Orthogonal Graph Drawings, Journal of Graph Algorithms and Applications, vol. 4, no. 3,
pp. 75-103, 2000.
Relatorio2-MetodosPassiveisDeUso.doc – P&D 008/06 – LIGHT/CONCERT/UFMG
25
Download

Projeto P&D 008/06 Light - Universidade Federal de Minas Gerais