我有几个节点(例如6个应用程序服务器)和边缘(例如这些应用程序服务器之间的10个直接信息流)。对于vizualization编程,我想以编程方式将节点有效地分成2组,其中偶数个节点数相等,以便这些组之间的边缘数尽可能少。每当我运行该vizualization例程时,实际的节点和边缘可能会有所不同。
一个例子...
应用服务器
a
b
c
d
e
f
InfoFlows
a->b
b->a
b->c
c->b
c->a
a->c
a->d
d->e
d->f
f->d
可能的解决方案是:
第1组
a
b
c
a->b
b->a
b->c
c->b
c->a
a->c
第2组
d
e
f
d->e
d->f
f->d
这些组之间的链接:
a->d
很明显,我可以建立所有可能的组组合,然后进行计数和比较。但是,在我有很多节点的情况下,这会花费很多时间。因此,我正在寻找一种性能更好且可靠的更聪明的解决方案(可以说从像成熟这样的泡沫排序跃升为快速排序类)。编码本身没有问题-问题更多是关于基本概念/算法。