【发布时间】:2012-12-06 09:24:24
【问题描述】:
我有九组,每组 500 个对象。尽管这些集合是独立的,但我假设这些集合共享一个共同对象的核心。但是,一个相同的对象可能具有不同的名称(索引),具体取决于集合。但我可以测量两个物体之间的成对距离。
基于成对距离,我已经为所有成对的集合计算了两个集合的对象之间的最佳映射。所以,对于每一对集合,我可以说任意两个对象之间的对应关系。
现在我想检测封闭的映射圈,例如{ 5 (set 1) -> 13 (set 2) -> 24 (set 3) -> 5 (set 1) },即set 1的object 5映射到set 2的object 13,它映射到set 3中的24 ,然后映射回集合 1 的对象 5。我需要这种形式的循环映射来证明对象本质上是相同的。
当然,在理想的世界中,我可以识别出跨越所有九个集合的大多数圆圈。但是,3-9 组之间的常见对象也很有趣。因此,我想要一份详尽的清单。
您是否知道执行此任务的算法,或者这个问题在组合数学中是如何定义的!?
作为一种启发式方法,我将首先确定 3 个集合的所有组合中的圆圈,然后将这些结果组合成更大的集合组合。
【问题讨论】:
-
不确定我是否在关注,您是否正在寻找一个包含大多数对象的循环,同时在集合之间“跳跃”?它闻起来很像Hamiltonian Path Problem 恐怕:|
-
我无法真正理解问题描述,但听起来您正在寻找集合之间的同构?
-
我的解释有没有具体的点,很难理解?也许我可以澄清...
-
基本上,我正在寻找的似乎是最大集团问题。
-
一个对象可以映射到一个目标集的多个对象吗? (映射是函数还是关系?)
标签: algorithm