【发布时间】:2020-06-21 13:38:10
【问题描述】:
我对精确覆盖和类似问题比较陌生,所以请多多包涵。假设我有一个典型的精确覆盖问题,即。给定一个集合 X 和一个 X 的子集 S 的集合,我想找到 S* (a S) 的子集,完全覆盖 X。但是,我希望解决方案 S* 恰好包含 k 元素。而且,一个解决方案就足够了。
我知道 Knuth 的算法 X 旨在返回所有可能的解决方案。我应该只运行 Knuth 的算法并遍历解决方案,直到找到具有 k 元素的解决方案,还是(我怀疑)有更好的方法?顺便说一句,我正在使用 Python。
对于上下文,X 的大小是 S 的大小可以是 10^6。 k 在
【问题讨论】:
标签: python algorithm performance np-complete knuth