2

假设我们有N个集合 {  x 1 , x 2 , x 3 , ..., x N  }。

这N个集合的“基础”是M个集合 {  y 1 , y 2 , y 3 , ..., y M  } 的集合,使得 {  x 1 , x 2 , x 3 , ..., x N  } 中的每一个是{ y 1 , y 2 , y 3 , ..., y M  }的某种组合的并集 。

我怎样才能找到一个“最小”的基础,即M最小的基础?

4

2 回答 2

0

想到的一个类似问题是分别找到向量空间的基础或找到最小生成集

由于集合的数量以及所有可能元素的宇宙是有限的数字,我们可以将每个集合重写为这样的向量(假设整数作为集合内的元素):

{ 1, 2, 5 } => ( 1, 1, 0, 0, 1, 0 , ... )
{ 4 }       => ( 0, 0, 0, 1, 0, ... )

所有向量x_is 的集合现在形成了G所有集合的全域的(平凡的)生成集x_i

您搜索最小的生成器。为此,我们必须从向量集中消除所有线性依赖关系G。一种天真的方法是检查所有带有元素的三元组G是否满足以下条件(x,y,z向量Gk,l,m数字):

  k * x + l * y  + m * z == 0

如果满足条件,我们消除这三个向量中的一个。(哪一个并不重要)。

这种简化的向量集(及其各自的集合)构成了您的集合的基础。

上述参数的一个要求是,您允许将集合差异作为生成集合的操作。

于 2013-09-18T12:24:50.237 回答
0

这个问题是NP完全问题。

于 2017-08-11T03:55:13.650 回答