Ad distribution problem: an optimal solution?

Posted by Mokuchan on Stack Overflow See other posts from Stack Overflow or by Mokuchan
Published on 2010-06-12T09:53:02Z Indexed on 2010/06/12 13:22 UTC
Read the original article Hit count: 264

I'm asked to find a 2 approximate solution to this problem:

You’re consulting for an e-commerce site that receives a large number of visitors each day. For each visitor i, where i € {1, 2 ..... n}, the site has assigned a value v[i], representing the expected revenue that can be obtained from this customer. Each visitor i is shown one of m possible ads A1, A2 ..... An as they enter the site. The site wants a selection of one ad for each customer so that each ad is seen, overall, by a set of customers of reasonably large total weight. Thus, given a selection of one ad for each customer, we will define the spread of this selection to be the minimum, over j = 1, 2 ..... m, of the total weight of all customers who were shown ad Aj. Example Suppose there are six customers with values 3, 4, 12, 2, 4, 6, and there are m = 3 ads. Then, in this instance, one could achieve a spread of 9 by showing ad A1 to customers 1, 2, 4, ad A2 to customer 3, and ad A3 to customers 5 and 6. The ultimate goal is to find a selection of an ad for each customer that maximizes the spread. Unfortunately, this optimization problem is NP-hard (you don’t have to prove this). So instead give a polynomial-time algorithm that approximates the maximum spread within a factor of 2.

The solution I found is the following:

Order visitors values in descending order
Add the next visitor value (i.e. assign the visitor) to the Ad with the current lowest total value
Repeat

This solution actually seems to always find the optimal solution, or I simply can't find a counterexample. Can you find it? Is this a non-polinomial solution and I just can't see it?

© Stack Overflow or respective owner

Related posts about algorithm

Related posts about homework