04.09.2013 Views

Algorithm Design

Algorithm Design

Algorithm Design

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

384<br />

Chapter 7 Network Flow<br />

Lower bound of 2 ~ ~<br />

(a)<br />

b~oiuminating a lower ~<br />

nd from an edge.)<br />

Figure 7.15 (a) An instance of the Circulation Problem with lower bounds: Numbers<br />

inside the nodes are demands, and numbers labeling the edges are capacities. We also<br />

assign a lower bound of 2 to one of the edges. (b) The result of reducing this instance<br />

to an equivalent instance of the Circulation Problem without lower bounds.<br />

(7.52) There is a feasible circulation in G if and only if there is a feasible<br />

circulation in G’. If all demands, capacities, and lower bounds in G are integers,<br />

and there is a feasible circulation, then there is a feasible circulation that is<br />

integer-valued.<br />

Proof. First suppose there is a circulation f’ in G’. Define a circulation f in G<br />

by f(e) = f’(e) + ge- Then f satisfies the capacity conditions in G, and<br />

fin(v) - / °ut(v) = E (ge + f’(e)) - (ge + f’(e)) = Lv + (d~ - Lv) = d~,<br />

e into v<br />

e out of v<br />

so it satisfies the demand conditions in G as well.<br />

Conversely, suppose there is a circulation f in G, and define a circulation<br />

f’ in G’ by f’(e) = f(e) - ~e. Then f’ satisfies the capacity conditions in G’, and<br />

(f’)in(v) - (f ’)°ut(v) = E (f(e) - g.~) - if(e) - ~’e) =<br />

e into v<br />

e out of v<br />

so it satisfies the demand conditions in G’ as well.<br />

7.8 Survey <strong>Design</strong><br />

Many problems that arise in applications can, in fact, be solved efficiently by<br />

a reduction to Maximum Flow, but it is often difficult to discover when such<br />

a reduction is possible. In the next few sections, we give several paradigmatic<br />

examples of such problems. The goal is to indicate what such reductions tend<br />

1<br />

3<br />

7.8 Survey <strong>Design</strong><br />

to look like and to illustrate some of the most common uses of flows and cuts<br />

in the design of efficient combinatorial algorithms. One point that will emerge<br />

is the following: Sometimes the solution one wants involves the computation<br />

of a maximum flow, and sometimes it involves the computation of a minimum<br />

cut; both flows and cuts are very useful algorithmic tools.<br />

We begin with a basic application that we call survey design, a simple<br />

version of a task faced by many companies wanting to measure customer<br />

satisfaction. More generally, the problem illustrates how the construction used<br />

to solve the Bipartite Matching Problem arises naturally in any setting where<br />

we want to carefully balance decisions across a set of options--in this case,<br />

designing questionnaires by balancing relevant questions across a population<br />

of consumers.<br />

~ The Problem<br />

A major issue in the burgeoning field of data mining is the study of consumer<br />

preference patterns. Consider a company that sells k products and has a<br />

database containing the purchase histories of a large number of customers.<br />

(Those of you with "Shopper’s Club" cards may be able to guess how this data<br />

gets collected.) The company wishes to conduct a survey, sending customized<br />

questionnaires to a particular group of n of its customers, to try determining<br />

which products people like overall.<br />

Here are the guidelines for designing the survey.<br />

Each customer wil! receive questions about a certain subset of the<br />

products.<br />

A customer can only be asked about products that he or she has purchased.<br />

To make each questionnaire informative, but not too long so as to discourage<br />

participation, each customer i should be asked about a number<br />

of products between q and c[.<br />

Finally, to collect sufficient data about each product, there must be<br />

between pj and pj distinct customers asked about each product j.<br />

More formally, the input to the Survey <strong>Design</strong> Problem consists of a bipartite<br />

graph G whose nodes are the customers and the products,’and there is an edge<br />

between customer i and product j if he or she has ever purchased product j.<br />

Further, for each customer i = ! ..... n, we have limits ci < c[ on the number<br />

of products he or she can be asked about; for each product j = 1 ..... k, we<br />

have limits pj

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

Saved successfully!

Ooh no, something went wrong!