ノードのグループを同じレベルになるように強制する代替手段として、ゼロ
(0) のスプレッド・サイズを使用してグループ・スプレッド制約を指定する方法があります。
一般的に、グループ・スプレッド制約はノードのグループが後続の k+1 レベルになるように強制します。
数値 k はスプレッド・サイズです。
この制約はグループの最低および最高のレベル・インデックスを選択しませんが、ノードを k レベルより離れていない場所に配置することのみを要求します。そのため、k=0 の場合、グループに属するすべてのノードは同じレベルに配置されます。
以下に、ID が「nodeA」、「nodeB」、および「nodeC」のノードに対する一般的なグループ・スプレッド制約を例として説明します。
グループ・スプレッド制約を使用するには、以下を呼び出します。
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));
nodeA
、nodeB
、 および nodeC
の中の最も高いレベル・インデックスがこれらのノードの中の最小のレベル・インデックスから
2 レベルよりも離れていない場合に、
この制約は満たされます。
例えば、nodeA
、nodeB
、 および nodeC
のレベル・インデックスがそれぞれ
1、2、3 の場合、 7、8、9
の場合、または 16、14、15
の場合に、制約は満たされます。
3 つのノードがすべてレベル
5 に配置される場合、またはこれらのノードのうち
2 つがレベル 15 に配置されてもう
1 つのノードがレベル
13 に配置される場合も、制約は満たされます。 nodeA
、nodeB
、および nodeC
のレベル・インデックスがそれぞれ
3、5、6 の場合は、制約は満たされません。
これは、最高のインデックス
(6) が最低のインデックス
(3) より 2 レベルを超えて離れているからです。