Code covered by the BSD License  

Highlights from
Greedy algorithm for Set Cover problem

4.0

4.0 | 1 rating Rate this file 15 Downloads (last 30 days) File Size: 4.22 KB File ID: #29650

Greedy algorithm for Set Cover problem

by Fabio Gori

 

08 Dec 2010 (Updated 09 Dec 2010)

The well known greedy algorithm for solving Set Cover problem, with a few changes

| Watch this File

File Information
Description

This function contains the well known greedy algorithm for solving Set Cover problem (Chvátal, 1979), with two small modifications:
* In case of more than one possible choice at a certain step, the biggest set is chosen;
* Once the solution is found, we check the selected sets to find a better cover solution, removing a set if is a subset of the union of the other set.

If you use this code, please cite the article for which it was implemented:
F. Gori, G. Folino, M.S.M. Jetten, E. Marchiori
"MTR: Taxonomic annotation of short metagenomic reads using clustering at multiple taxonomic ranks", Bioinformatics 2010.
doi = 10.1093/bioinformatics/btq649

---

Additional information:

GREEDYSCP Greedy SCP algorithm.
   [SolC,SolL] = GREEDYSCP(C, L) if C is an array, creates a cell array SolC that is a solution of Set Cover Problem defined by C, where C{i} = S_i, an input set made by some of the elements we want to cover; SolC is made by the cells of C selected by the algorithm. The elements that we want to cover are indicates by numbers from 1 to n, where n is the number of elements we want to cover; therefore, C{i} is a vector of integers between 1 and n.

   If C is a logical or numerical array of n rows, where C(j,i) > 0 iff element j is contained in set S_i, the output SolC will be a logical array made by the column of log(C) corresponding to the solution

   If a vector L of integer labels of the elements of C is provided, SolL contains the labels corresponding to SolC. Otherwise SolL contains the positions of elements of SolC in C. SolC and SolL elements are sorted in ascending order of SolL.

MATLAB release MATLAB 7.10 (2010a)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (1)
09 Dec 2010 Joan  
Please login to add a comment or rating.
Updates
09 Dec 2010

* Output has the same class of input; input can be an array or a cell-array;
* Array and cell are processed with target implementations of the same algorithm

Tag Activity for this File
Tag Applied By Date/Time
optimization Fabio Gori 09 Dec 2010 08:33:25
mathematics Fabio Gori 09 Dec 2010 08:33:25
set cover problem Fabio Gori 09 Dec 2010 08:56:59
combinatorial optimization Fabio Gori 09 Dec 2010 08:56:59

Contact us at files@mathworks.com