A seguinte lista de perguntas mais frequentes fornece algumas sugestões úteis
para o uso de algoritmos de layout. É possível encontrar algumas respostas de questões que podem surgir ao usar o pacote de layout de gráfico.
Perguntas mais Frequentes sobre os algoritmos de layout
Pergunta |
Resposta |
---|---|
Executo o layout e não acontece nada (nenhum
nó é movido). Por quê? |
Uma razão possível pode ser: os algoritmos de layout fornecidos no produto são todos projetados para não fazer nada, por padrão, se nenhuma mudança ocorreu no gráfico desde a última vez que o layout foi executado corretamente no mesmo gráfico. Uma mudança significa
que um nó foi movido, ou um nó ou link foi incluído, removido ou redimensionado.
É possível forçar o layout a ser executado novamente, mesmo
que não tenha ocorrido nenhuma mudança, chamando o método performLayout(force:Boolean = false, traverse:Boolean = false):int com um valor
true
para o argumento force. Outra possível razão pode ser: um erro ou caso especial ocorreu durante o layout. Primeiro, você deve verificar se o método performLayout()
lançou um erro. Se nenhum erro foi lançado, recupere a propriedade code
na instância do relatório de layout. Verifique este
valor em relação à documentação da classe de relatório de layout
apropriada. (Para obter detalhes, consulte Usando um Relatório de Layout de Gráfico.)
|
Com o algoritmo de Force-directed
no modo incremental, depois de ter executado o layout uma vez, não vejo nenhum movimento mesmo se uso a opção de forçar layout. Por quê? |
A razão provavelmente é que na primeira vez
que você executou o layout, o algoritmo atingiu a convergência. Quando o
layout for executado novamente, ele detectará que a convergência já foi
atingida e parará. Se você realmente deseja continuar trabalhando,
por exemplo, para “organizar” uma parte específica
do gráfico, é recomendado mover um ou vários nós para alterar
a configuração inicial. (O algoritmo é dependente da configuração
inicial.) |
Depois de executar o layout, o gráfico
é organizado longe de sua posição inicial. Por quê? |
A maioria dos algoritmos de layout usa um parâmetro da região de layout
para controlar o tamanho e posição do layout. (Para obter detalhes, consulte Região de Layout.) Dependendo
do valor desse parâmetro, os nós podem ser movidos para longe de
suas posições iniciais. Para saber se um algoritmo de layout
foi projetado para usar um parâmetro da região de layout, consulte a documentação
para verificar se a classe de layout substitui o seguinte método
da classe base para retornar true :Os outros algoritmos têm um mecanismo diferente com o qual você pode especificar o local do layout. Pode ocorrer que o valor padrão
do parâmetro de local seja um valor que faça o gráfico ser organizado
longe de sua posição inicial. |
Quando uso alguns algoritmos de layout em alguns gráficos,
existem nós de sobreposição. Por que e o que posso fazer? |
Uma razão possível pode estar relacionada aos diferentes algoritmos de layout com o tamanho dos nós: - Os algoritmos de Árvore e Hierárquico sempre evitam nós de sobreposição. (O algoritmo de Link
não move os nós. Ele apenas redimensiona os links de forma que
os cruzamentos e sobreposições sejam reduzidos. O tamanho dos nós
é considerado.)
- Em muitos casos, o algoritmo Force-directed
(com a opção “Respeitar Tamanhos de Nós” ativada) consegue
evitar nós de sobreposição.
Em qualquer caso, se o algoritmo de
layout suportar o mecanismo da região de layout (consulte Região de Layout), tente aumentar o tamanho da região de layout. Por exemplo, se seu gráfico
contiver centenas de nós, não será recomendável usar uma pequena
região de layout, como 600 x 600. Não há espaço suficiente
para todos os nós. Tente uma região de layout maior, por exemplo,
5000 x 5000. O tamanho ideal da região de layout depende não apenas do número de nós, mas também do tamanho deles. Se os nós são relativamente grandes com relação ao tamanho da região de layout, pode ser necessário ajustar alguns dos parâmetros (por exemplo, o comprimento preferencial de link para o Layout Force-directed). |
Em algumas redes, existem duas (ou mais)
sub-redes que não estão conectadas. Como isso afeta os algoritmos de layout? |
Depende da classe de layout usada: -
ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout :
Este algoritmo suporta gráficos desconectados, mas geralmente é melhor
contar com o parâmetro automático de “layout de componentes conectados”. (Consulte Layout de Componentes Conectados.) -
ibm_ilog.graphlayout.hierarchical.HierarchicalLayout e ibm_ilog.graphlayout.tree.TreeLayout :
Eles têm suporte integrado para gráficos desconectados. Como alternativa,
é possível usar o suporte automático da classe base. (Consulte Layout de Componentes Conectados.)-
ibm_ilog.graphlayout.longlink.LongLinkLayout , ibm_ilog.graphlayout.shortlink.ShortLinkLayout, ibm_ilog.graphlayout.grid.GridLayout , ibm_ilog.graphlayout.random.RandomLayout :
Estes algoritmos suportam gráficos conectados e desconectados. Seu comportamento
é igual para as duas categorias de gráficos. |
Existem alguns atributos da rede sobre os quais temos informações (por exemplo, sabemos o que o comutador de núcleo é e o que deve ser o centro). Estes atributos são considerados pelo algoritmo
de layout? |
Depende do algoritmo de layout. -
O Layout Circular foi projetado para permitir a especificação de informações
sobre a topologia física da rede. É possível especificar quais nós
pertencem ao mesmo cluster (anel ou estrela), a ordem dos nós
no cluster e qual nó é o centro de um cluster em estrela.
- No Layout de Árvore, é possível especificar
o nó-raiz. - No
algoritmo de Layout Hierárquico, é possível especificar índices de posição do nó
e índices de níveis, bem como restrições de posicionamento relativo. |
Se eu usar o IBM ILOG Dojo Diagrammer em computadores diferentes com um navegador
diferente, às vezes obtenho layouts diferentes para o mesmo gráfico e
com os mesmos parâmetros. Por quê?
|
1. Computadores e navegadores diferentes podem ser mais lentos ou mais rápidos. Se o algoritmo de layout usado parar o cálculo quando o tempo permitido especificado decorrer, um computador ou navegador mais lento faz com que o cálculo pare antes. Isso pode explicar os diferentes resultados.
Isso pode
ocorrer mesmo com o mesmo computador e navegador, se o carregamento do computador
for aumentado. Pode ser necessário aumentar a especificação de tempo permitido
ao executar em um computador mais lento ou em um navegador diferente.
|
Eu uso os algoritmos de Layout de Links Longo e Curto para organizar
os links de uma rede de objetos gráficos.
Quando vários links
se conectam ao mesmo lado de um nó, eles se sobrepõem, enquanto eu espero que eles
respeitem o parâmetro de “deslocamento de link” (ou o “tamanho da grade”)
do layout de link. Por quê? |
Alguns parâmetros dimensionais dos algoritmos de layout
precisam ser escolhidos em relação ao tamanho dos nós.
Esse é o caso dos parâmetros "deslocamento de link" e "distância de bypass" para o Layout de Link Curto e para o tamanho da grade para o Layout de Link Longo. De fato, os valores padrão não são adequados quando os nós são grandes. Comparado
com este tamanho, os valores padrão dos parâmetros são tão pequenos que
parecem ser zero. A solução é aumentar
os valores dos parâmetros dimensionais, considerando
o tamanho dos nós. Se nós diferentes tiverem tamanhos diferentes,
o tamanho médio ou o maior tamanho dos nós poderá ser usado para
calcular os parâmetros como uma fração deste tamanho. |