Restrições de Difusão de Grupo (HL)

Uma maneira alternativa de forçar um grupo de nós para estarem no mesmo nível é especificar uma restrição de difusão de grupo com um tamanho de difusão de zero (0). Em geral, a restrição de difusão de grupo força um grupo de nós para k+1 níveis subsequentes. O número k é o tamanho de difusão. It does not select the lowest or highest level index of the group, but requires only that the nodes are placed no more than k levels apart. Portanto, se k=0, todos os nós do grupo serão posicionados no mesmo nível.
Para ilustrar a restrição de difusão de grupo geral nos nós com IDs “nodeA’, “nodeB” e “nodeC”:
Para usar a restrição de difusão de grupo, chame:
var nodeGroup = new ibm_ilog.graphlayout.hierarchical.HierarchicalNodeGroup();
nodeGroup.add(nodeA);
nodeGroup.add(nodeB);
nodeGroup.add(nodeC);
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalGroupSpreadConstraint(nodeGroup, 2));
A restrição será atendida se o índice de nível mais alto para nodeA, nodeB e nodeC tiver no máximo dois níveis além do menor índice de nível dos nós. Por exemplo, a restrição será atendida se os índices de níveis para nodeA, nodeB e nodeC forem 1, 2, 3 ou se forem 7, 8, 9 ou se forem 16, 14, 15. A restrição também será atendida se todos os três nós forem posicionados no nível 5, ou se dois dos nós forem posicionados no nível 15 e o terceiro nó no nível 13. A restrição não será atendida se os índices de níveis para nodeA, nodeB e nodeC forem 3, 5, 6, porque, neste caso, o índice mais alto (6) estará mais de dois níveis distante do índice mais baixo (3).