a 是具有多个“类别”的对象,b,例如 a1 具有三个类别 b1、b2、b3。问题在于,将类别的数量(可能会变得相当大)减少到总是一起出现的组中。一个“最大公共子集”的东西。
例如,给定以下数据集:
a1{ b1,b2,b3 }
a2{ b2,b3 }
a3{ b1,b4 }
我们可以发现 b2 和 b3 总是在一起..
b23 = {b2,b3}
..我们可以将类别集减少为:
a1{ b1, b23 }
a2{ b23 }
a3{ b1,b4 }
所以,我的问题是找到一些算法来解决这个问题。
我已经开始研究最长公共序列问题,它可能是一个解决方案。即像这样反复对类别b' = LCS(set_of_As)
进行分组,直到遍历所有类别。然而,这并不完整。我必须以某种方式限制输入域才能做到这一点。
我错过了一些明显的东西吗?您可以指出我的问题域的任何提示吗?有没有人认识到解决此类问题的任何其他方法。