查找具有至少N个公共值且没有重复的查找键的所有组合

时间:2016-07-13 09:36:10

标签: algorithm

假设我有一个如下所示的查找:

{ Key 1 } : { Value 1, Value 2, Value 3 }

{ Key 2 } : { Value 2, Value 3, Value 4, Value 5 }

{ Key 3 } : { Value 1, Value 3, Value 5 }

{ Key 4 } : { Value 1, Value 2, Value 3, Value 6, Value 7 }

我需要获得具有至少N个公共值而没有重复的密钥的所有组合(即,如果一对具有公共值的密钥已经包含在三元组中,那么它被认为是重复且不应该生成)

示例:

如果N == 1,则14{ Key 1, Key 2, Key 3, Key 4 }组合,因为它们都有{ Value 3 }。不应生成任何其他组合(对),因为它们已包含在组合中。

如果N == 2,则为{ Key 1, Key 2, Key 4 }(因为它们具有共同的值23),{ Key 1, Key 3, Key 4 }(因为它们具有共同的值{{ 1}}和1)和3(因为它们具有共同的值{ Key 2, Key 3 }3)。同样,不应生成所有其他组合(例如5,因为这些对已包含在三元组中)

如果key1 + key3 or key3 + key4,则为N == 3,因为它们都有{ Key 1, Key 4 }

如果{ Value 1, Value 2, Value 3 },则不应生成任何组合。

我正在寻找算法或者至少要制定一些指南。

1 个答案:

答案 0 :(得分:0)

您发布的问题与数据挖掘文献中的Frequent Itemset挖掘密切相关,也称为关联规则挖掘。 Wiki(https://en.wikipedia.org/wiki/Association_rule_learning#Algorithms)有更多算法,Ullman等人的书(http://infolab.stanford.edu/~ullman/mmds/ch6.pdf)也有一章。