给定一个包含元素 U = {1, 2, 3,...,n} 的全域和该全域中的多个集合 {S1, S2,...,Sm},我们可以创建的最小集合是什么覆盖 m 个集合中的每个集合中的至少一个元素?
例如,给定以下元素 U = {1,2,3,4} 和集合 S = {{4,3,1},{3,1},{4}},以下集合将涵盖至少一个每个集合中的元素:{1,4} 或 {3,4},因此此处所需的最小集合为 2。
关于如何扩大规模以解决 m=100 或 m=1000 集的问题的任何想法?或者对如何用 R 或 C++ 编写代码的想法?
上面的样本数据,使用 R's library(sets)
。
s1 <- set(4, 3, 1)
s2 <- set(3, 1)
s3 <- set(4)
s <- set(s1, s2, s3)
干杯