Skip to content

Releases: euxhenh/multiset-multicover

Version 1.0

07 Oct 19:57
Compare
Choose a tag to compare

Minor changes to README. Adding DOI.

Version 0.7

15 Mar 03:20
Compare
Choose a tag to compare

Changed the behavior when selecting sets with equal values to select the set that has the highest total value.

Version 0.6

27 Jan 22:45
Compare
Choose a tag to compare

Adding effective multiplicities.

Version 0.3

26 Dec 13:14
8c1466d
Compare
Choose a tag to compare

Fixed a bug not resetting coverage factors on a new run.

Version 0.1

25 Dec 10:43
Compare
Choose a tag to compare

This package implements the Greedy Cover algorithm for multisets in C++ and exposes it to Python.
Given a universe of elements U, and a family of subsets F = {S1, ..., Sn} of U, the set cover problem asks to find the smallest number of sets in F such that every element of U appears in at least one such set.
This can be extended to a multicover problem, where we ask that every element be included at least k sets. This in turn, can be extended to accomodate multisets, where each element in Si also has a given multiplicity.

The set cover problem is NP hard. The best known algorithm is a greedy approach that iteratively selects the set with the largest number of elements that have not been covered yet. This algorithm has a log(n)-approximation guarantee where n is the number of elements in U.
The same guarantee also applies to the multicover problem, as well as the multiset multicover problem (n here corresponds to all the elements including multiplicities, hence, the guarantees are worse).