【发布时间】:2011-04-16 20:29:59
【问题描述】:
我遇到了一个特定的问题,并为它寻找一些算法。要解决的问题如下所述。
假设我们有如下组合
1 - 3 - 5
1 - 4 - 5
1 - 8 - 5
2 - 4 - 5
3 - 4 - 5
2 - 4 - 7
这些组合是从给定的集合中生成的,在这种特殊情况下,假设来自
{1},{3,4,8},{5}
{2,3},{4},{5}
{2},{4},{7}
我想做的是从这些组合中重新创建集合。我知道对于这些组合,您有不止一种解决方案,例如
第一种解决方案
{1}、{3、4、8}、{5}
{2, 3}, {4}, {5}
{2}、{4}、{7}
第二个解决方案
{1}、{3、8}、{5}
{1、2、3}、{4}、{5}
{2}、{4}、{7}
第三种解决方案
{1}、{3、4、8}、{5}
{3}、{4}、{5}
{2}、{4}、{5、7}
但最终(最佳)解决方案将是具有尽可能少集合的解决方案或随机解决方案,以防它们在集合计数方面都相同。
存在此类问题的算法吗?如果任何一直在处理此类问题的人可以给我一些提示,我将不胜感激。
编辑:看起来我正在寻找的是 n 元积的分解(N 的笛卡尔积)
编辑:在对该主题进行更多研究后,我发现这个问题在“图论”中被称为“最小集团覆盖”问题
问候, 呵呵
【问题讨论】:
-
为什么需要这样压缩?数据压缩后是否需要快速检索信息,这是内存问题?
-
嘿 Loic,也许“压缩”不是描述它的最佳术语,不,这不是记忆的问题。节省空间在这里不是目的,没关系。重要的是表现。
标签: algorithm graph-theory combinatorics cartesian-product clique