370 likes | 768 Views
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.
E N D
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 -2 3 2
Assignment Problem 4 2 Assignment benefit: 2 + 1 – 2 + 3 = 4 1 1 1 -2 3 2
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)
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)
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
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
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
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
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 :
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
Auction Termination • Observation • Each time object receives a bid, increase by at least . • Conclusion • Object receives bids get price • Proof
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)
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
Duality & CS • Dual problem: • Minimize • Over all price vectors • Complementary Slackness: • Given assignment and prices
Duality & CS • Observation: • Any Primal Any Dual • Proof:
Duality & CS • Observation: • Any Primal Any Dual • Conclusion: • Primal Optimal Primal Optimal Dual Dual • Primal = Dual optimal Primal & Dual • Primal = Dual CS
Duality & CS • Observation: • CS Primal = Dual • Proof:
Auction Optimality • -CS: • Observation: • Auction preserves -CS • Proof:
Auction Optimality • Proposition: • Auction algorithm is -optimal • Proof:
-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
-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 .
-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
-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
-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
-Scaling Complexity • Proof cont: • Find path • , • unassigned under • Observe:
-Scaling Complexity • Proof cont: • Find path • , • unassigned under • Observe:
-Scaling Complexity • Proof cont: • We got: • Summing: • isn’t assigned under • didn’t receive any bid, has initial price
-Scaling Complexity • What is r? • -CS:
-Scaling Complexity • Conclusion: • Scaling phase Complexity: • Number of phases: • , – first & last values • Total -Scaling Complexity:
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
Questions? Thank you