K-approximation of k-hitting set

K-approximation of k-hitting set

In computer science, k-approximation of k-hitting set is an approximation algorithm for weighted hitting set. The input is a collection "S" of subsets of some universe "T" and a mapping "W" from "S" to non-negative numbers called the weights of the elements of "S". In k-hitting set the size of the sets in "S" cannot be larger than "k". That is, forall i in S: |i| leq k. The problem is now to pick some subset "T"' of "T" such that every set in "S" contains some element of "T"', and such that the total weight of all elements in "T"' is as small as possible.

The algorithm

For each set j in "S" is maintained a "price", p_j, which is initially 0. For an element "a" in "T", let "S"("a") be the collection of sets from "S" containing "a". During the algorithm the following invariant is kept

:forall a in T: sum_{j in S(a)} p_j leq W(a).,

We say that an element a from "T" is "tight" if Sigma_{j in S(a)} p_j = W(a). The main part of the algorithm consists of a loop: As long as there is a set in "S" that contains an element from "T" which is not tight, the price of this set is increased as much as possible without violating the invariant above. When this loop exits, all sets contain some tight element. Pick all the tight elements to be the hitting set.

Correctness

The algorithm always terminates because in each iteration of the loop the price of some set in "S" is increased enough to make one more element from "T" tight. If it cannot increase any price, it exits. It runs in polynomial time because the loop will not make more iterations than the number of elements in the union of all the sets of "S". It returns a hitting set, because when the loop exits, all sets in "S" contain a tight element from "T", and the set of these tight elements are returned.

Note that for any hitting set "T*" and any prices p_1, ldots, p_ where the invariant from the algorithm is true, the total weight of the hitting set is an upper limit to the sum over all members of "T*" of the sum of the prices of sets containing this element, that is: Sigma_{a in T^*} Sigma_{j in S(a)} p_j leq Sigma_{a in T^*} W(a). This follows from the invariant property. Further, since the price of every set must occur at least once on the left hand side, we get Sigma_{j in S} p_j leq Sigma_{a in T^*} W(a). Especially, this property is true for the optimal hitting set.

Further, for the hitting set "H" returned from the algorithm above, we have Sigma_{a in H} Sigma_{j in S(a)} p_j = Sigma_{a in H} W(a). Since any price p_j can appear at most "k" times in the left-hand side (since subsets of "S" can contain no more than "k" element from "T") we get Sigma_{a in H} W(a) leq k cdot Sigma_{j in S} p_j Combined with the previous paragraph we get Sigma_{a in H} W(a) leq k cdot Sigma_{a in T^*} W(a), where "T*" is the optimal hitting set. This is exactly the guarantee that it is a k-approximation algorithm.

Relation to linear programming

This algorithm is an instance of the primal-dual method, also called the pricing method. The intutition is that it is dual to a linear programming algorithm. For an explanation see http://algo.inria.fr/seminars/sem00-01/vazirani.html.

References

* J. Kleinberg and E. Tardos, "Algorithm Design", 2006. ISBN 0-321-295358.
* cite journal
author = S. Even
authorlink= Shimon Even
coauthors = R. Bar-Yehuda
title = A Linear-Time Approximation Algorithm for the Weighted Vertex Cover Problem
journal = J. Algorithms
volume = 2
number = 2
date = 1981
publisher =
pages = 198–203
doi = 10.1016/0196-6774(81)90020-1

* M.X. Goemans and D. P. Williamson. "The primal-dual method for approximation algorithms and its application to network design problems". In "Approximation Algorithms for NP-Hard problems, Dorit H. Hochbaum, ed. ,PWS Publishing Company, 1997. ISBN 0-534-94968-1.


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Set cover problem — The set covering problem is a classical question in computer science and complexity theory. As input you are given several sets. They may have some elements in common. You must select a minimum number of these sets so that the sets you have… …   Wikipedia

  • List of numerical analysis topics — This is a list of numerical analysis topics, by Wikipedia page. Contents 1 General 2 Error 3 Elementary and special functions 4 Numerical linear algebra …   Wikipedia

  • List of mathematics articles (K) — NOTOC K K approximation of k hitting set K ary tree K core K edge connected graph K equivalence K factor error K finite K function K homology K means algorithm K medoids K minimum spanning tree K Poincaré algebra K Poincaré group K set (geometry) …   Wikipedia

  • Vertex cover — In the mathematical discipline of graph theory, a vertex cover of a graph is a set of vertices such that each edge of the graph is incident to at least one vertex of the set. The problem of finding a minimum vertex cover is a classical… …   Wikipedia

  • Liste de problèmes NP-complets — Ceci est une liste des problèmes NP complets les plus connus en théorie de la complexité des algorithmes, exprimés sous la forme d un problème de décision. Puisqu on connaît plus de 3000 problèmes NP complets, cette liste n est pas exhaustive. La …   Wikipédia en Français

  • Vertex cover problem — In computer science, the vertex cover problem or node cover problem is an NP complete problem and was one of Karp s 21 NP complete problems. It is often used in complexity theory to prove NP hardness of more complicated problems. Definition A… …   Wikipedia

  • List of NP-complete problems — Here are some of the more commonly known problems that are NP complete when expressed as decision problems. This list is in no way comprehensive (there are more than 3000 known NP complete problems). Most of the problems in this list are taken… …   Wikipedia

  • Steinerbaumproblem — Das Steinerbaumproblem (oft mit STEINER TREE notiert), ein nach dem Schweizer Mathematiker Jakob Steiner benanntes Problem der Graphentheorie, ist eine Verallgemeinerung des Problems des minimalen Spannbaums. Beim Steinerbaumproblem sucht man in… …   Deutsch Wikipedia

  • Covering problem — In combinatorics and computer science, covering problems are computational problems that ask whether a certain combinatorial structure covers another, or how large the structure has to be to do that. Covering problems are minimization problems… …   Wikipedia

  • List of baseball jargon (R) — rabbit ears:Indicates a participant in the game who hears things perhaps too well for his own good. A player who becomes nervous or chokes when opposing players or fans yell at or razz him is said to have rabbit ears . Also, an umpire who picks… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”