我在试验graph coloring算法这是给图的节点上色的一种方法,使得没有两个相邻的节点具有相同的颜色。
假设我有以下数据要“着色”(分配给组),其中每个单词都是一个节点:
猫黑
猫灰
狗灰
黑色狗
我希望以下群体:
猫,狗
黑色,灰色
但是如果我加上我的第四只动物的名字,那会怎样呢?它的名字和颜色一样。
所以第四行变成:
狗黑灰色
着色算法无法区分颜色和名称,因此grey
和black
将在不同的组中结束。
如何调整算法,使其变得“不那么严格”?
例如:只有当两个节点出现在一起超过90%时,才认为它们相邻,并将它们放在同一组中。
注意:我提供的示例是简化的我不能仅仅用grey
或name
来组合我的单词,所以我需要一个更通用的方法。
最佳答案
(希望你的问题正确-你的例子并没有真正的帮助)
因此,目前您可以根据输入数据生成以下彩色图形:
cat--black
| / |
| / |
grey--dog
现在,可以为每个边指定一个整数标签,计算对应的对在列表项中一起出现的频率然后定义一些较低的阈值,并删除用较小的数字标记的所有边。如果现在对生成的图形上色,则这些“稀有”对将再次允许使用公共颜色。