1 / 33

The Auction Algorithm

The Auction Algorithm. Shahar Paz. Assignment Problem. Given: Persons, Objects – Objects that may be assigned with person – Benefit of assigning object with person Target: Assign each person with unique object Maximize total benefit . Assignment Problem. 4. 2. 1. 1. 1.

jenna
Télécharger la présentation

The Auction Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Auction Algorithm Shahar Paz

  2. Assignment Problem • Given: • Persons, Objects • – Objects that may be assigned with person • – Benefit of assigning object with person • Target: • Assign each person with unique object • Maximize total benefit

  3. Assignment Problem 4 2 1 1 1 -2 3 2

  4. Assignment Problem 4 2 Assignment benefit: 2 + 1 – 2 + 3 = 4 1 1 1 -2 3 2

  5. Assignment vs. Min-Cost-Flow • Special case of Min-Cost-Flow • Nodes: • Persons have (1 supply unit) • Objects have (1 demand unit) • Arcs: • (1 capacity unit) • (cost is -benefit)

  6. Assignment vs. Min-Cost-Flow • Min-Cost-Flow can turn into Assignment • Arcs => new nodes b(i) b(i)-u(i,j) i i c=0 c(i,j) u(i,j) ij b=u(i,j) c=c(i,j) b(j) j j b(j)

  7. Assignment vs. Min-Cost-Flow • Min-Cost-Flow can turn into Assignment • Arcs => new nodes • New nodes split by supply (old arc capacity) ij1 b=1 b(i)-u(i,k) b(i)-u(i,k) i i c=0 ij b=u(i,j) b=1 ij2 c=c(i,j) b(j)-u(j,k) b(j)-u(j,k) j j b=1 ij3

  8. Assignment vs. Min-Cost-Flow • Min-Cost-Flow can turn into Assignment • Arcs => new nodes • New nodes split by supply (old arc capacity) • Old nodes split by demand b=-1 ij1 ij1 i1 b=1 b=1 b(i)-u(i,k) i b=1 b=1 i2 b=-1 ij2 ij2 b(j)-u(j,k) j b=1 b(j)-u(j,k) b=1 ij3 ij3 j

  9. Assignment vs. Min-Cost-Flow • Min-Cost-Flow can turn into Assignment • Arcs => new nodes • New nodes split by supply (old arc capacity) • Old nodes split by demand • #new nodes • #old nodes

  10. Auction Algorithm • Init • Empty assignment , zero prices • Iterate until : • Bidding phase • Some unassigned persons bid for most desired objects • Bids must be greater then current objects’ prices • Assignment phase • Prices of objects increased to max bid • Assignment change accordingly

  11. Auction Algorithm • Bidding phase: • Select subset of unassigned persons • For each person : • (most desired object) • (object’s benefit) • (second-desired benefit) • Set bid of person for object :

  12. Auction Termination • Observations • Objects receiving bids get assigned • Assigned objects remain assigned • Assigned persons might get unassigned • Only on termination no unassigned persons and objects

  13. Auction Termination • Observation • Each time object receives a bid, increase by at least . • Conclusion • Object receives bids get price • Proof

  14. Auction Termination • Observation • If person bid times,all objects in get price • Proof • As of some iteration: • Person only bid for objects in • All objects in has price • But has higher benefit (const)

  15. Auction Termination • Proposition: • Feasible solution Auction algorithm terminates • Proof: • As of some iteration: • All objects in are assigned • Must be assigned with persons from (price ) • Only persons from bid • Not all persons in are assigned • , but

  16. Duality & CS • Dual problem: • Minimize • Over all price vectors • Complementary Slackness: • Given assignment and prices

  17. Duality & CS • Observation: • Any Primal  Any Dual • Proof:

  18. Duality & CS • Observation: • Any Primal  Any Dual • Conclusion: • Primal  Optimal Primal  Optimal Dual  Dual • Primal = Dual  optimal Primal & Dual • Primal = Dual  CS

  19. Duality & CS • Observation: • CS  Primal = Dual • Proof:

  20. Auction Optimality • -CS: • Observation: • Auction preserves -CS • Proof:

  21. Auction Optimality • Proposition: • Auction algorithm is -optimal • Proof:

  22. -Scaling • Choosing  • If data is integer, guarantees optimality • Small  causes small changes, bad performance • -Scaling • Run Auction with large and prices • Compute -CS prices • Run Auction with and prices • Compute -CS prices

  23. -Scaling • Adjustments for -Scaling: • On each iteration only 1 person bid • First scaling phase starts with initial prices 0 • Other scaling phases start with previous prices • On scaling phase , use as benefits • So is integer multiple of • Final prices of scaling phase k satisfy-CS with , and -CS with .

  24. -Scaling • Candidate-list of person : • Holds pairs of potential next-bids • Modified bidding phase: • search for 2 pairs with • If not found: • Recalculate and bid normally • Else: • Remove all encountered pairs except second match • Select first match and set bid of

  25. -Scaling Complexity • Candidate-list complexity: • Calculation of takes • But only happen when decrease • Using takes until recalculation • Auction complexity • Each decrease of is of at least

  26. -Scaling Complexity • Proposition: • Running Auction with prices satisfying -CSgives • Proof: • – initial prices,– corresponding assignment • – partial assignment & prices,generated by Auction algorithmjust before last bid of some person

  27. -Scaling Complexity • Proof cont: • Find path • , • unassigned under • Observe:

  28. -Scaling Complexity • Proof cont: • Find path • , • unassigned under • Observe:

  29. -Scaling Complexity • Proof cont: • We got: • Summing: • isn’t assigned under • didn’t receive any bid, has initial price

  30. -Scaling Complexity • What is r? • -CS:

  31. -Scaling Complexity • Conclusion: • Scaling phase Complexity: • Number of phases: • , – first & last values • Total -Scaling Complexity:

  32. Infeasibility • Auction never terminates for infeasible input • One cannot tell if the algorithm won’t terminate,or just haven’t yet • Ways to detect infeasibility: • Adding arcs with highly negative benefit • Checking against lower bound • Checking for augmenting path

  33. Questions? Thank you

More Related