04.09.2013 Views

Algorithm Design

Algorithm Design

Algorithm Design

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

620<br />

Chapter 11 Approximation <strong>Algorithm</strong>s<br />

f!:~ <strong>Design</strong>ing the <strong>Algorithm</strong>: The Pricing Method<br />

Even though (!1.12) gave us an approximation algorithm with a provable<br />

guarantee, we will be able to do better. Our approach forms a nice illustration<br />

of the pricing method for designing approximation algorithms.<br />

The Pricing Method to Minimize Cost The pricing method (also known as<br />

the primal-dual method) is motivated by an economic perspective. For the<br />

case of the Vertex Cover Problem, we will think of the weights on the nodes<br />

as costs, and we will think of each edge as having to pay for its "share" of<br />

the cost of the vertex cover we find. We have actually just seen an analysis of<br />

this sort, in the greedy algorithm for Set Cover from Section 11.3; it too can be<br />

thought of as a pricing algorithm. The greedy algorithm for Set Cover defined<br />

values Cs, the cost the algorithm paid for covering element s. We can think of<br />

c s as the element s’s "share" of the cost. Statement (11.9) shows that it is very<br />

natural to think of the values cs as cost-shares, as the sum of the cost-shares<br />

~s~U cs is the cost of the set cover e returned by the algorithm, ~siee wi. The<br />

key to proving that the algorithm is an H(d*)-approximafion algorithm was a<br />

certain approximate "fairness" property for the cost-shares: (11.10) shows that<br />

the elements in a set Sk are charged by at most an H([SkD factor more than<br />

the cost of covering them by the set S~.<br />

In this section, we’ll develop the pricing technique through another application,<br />

Vertex Cover. Again, we will think of the weight tvi of the vertex i<br />

as the cost for using i in the cover. We will think of each edge e as a separate<br />

"agent" who is willing to "pay" something to the node that covers it. The algorithm<br />

will not only find a vertex cover S, but also determine prices Pe >- 0<br />

for each edge e ~ E, so that if each edge e E pays the price Pe, this will in<br />

total approximately cover the cost of S. These prices Pe are theanalogues of<br />

Cs from the Set Cover <strong>Algorithm</strong>.<br />

Thinking of the edges as agents suggests some natural fairness rules for<br />

prices, analogous to the property proved by (11.10). First of all, selecting a<br />

vertex i covers all edges incident to i, so it would be "unfair" to charge these<br />

incident edges in total more than the cost of vertex i. We call prices Pe fair if,<br />

for each vertex i, the edges adjacent to i do not have to pay more than the<br />

cost of the vertex: ~e=(i,j) Pe < ~Vi" Note that the property proved by (11.10)<br />

for Set Cover is an approximate fairness condition, while in the Vertex Cover<br />

algorithm we’ll actually use the exact fairness defined here. A useful fact about<br />

fair prices is that they provide a lower bound on the cost of any solution.<br />

(11.13) For any vertex cover S*, and any nonnegative and lair prices<br />

have ~e~ Pe

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!