Perguntas mais Frequentes sobre como Usar os Algoritmos de Layout

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.