集合覆盖问题
定义
给定全集,以及一个包含个集合且这个集合的并集为全集的集合。集合覆盖问题要找到的一个最小的子集,使得他们的并集等于全集。
例如,,虽然中所有元素的并集是,但是我们可以找到的一个子集,我们称其为一个集合覆盖。
形式化的定义,给定全集和他的一组子集组成的集合,覆盖指一个集合,,且的元素的并集为。
集合覆盖问题的决定性问题为,给定和一个整数,求是否存在一个大小不超过的覆盖。集合覆盖的最佳化問題为给定,求使用最少的集合的一个覆盖。
决定性问题的集合覆盖是NP完全问题,最佳化问题的集合覆盖是NP困难问题。
此外,问题可以在每个集合上添加权值而变为带权集合覆盖问题。
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.