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 ππ=1 ππππ
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 (1 supply unit)
β Objects have π(π) = β1 (1 demand unit)
β’ Arcs:
β (π, π) π β π΄(π)
β π’(π, π) = 1
β π π, π = βπππ
(1 capacity unit)
(cost is -benefit)
Assignment vs. Min-Cost-Flow
β’ Min-Cost-Flow can turn into Assignment
β Arcs => new nodes
b(i) i
c=0
c(i,j)
u(i,j)
b(j) j
i b(i)-u(i,j)
b=u(i,j) ij
c=c(i,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)
c=0
i b(i)-οu(i,k)
b=u(i,j) ij
b=1 ij1
i b(i)-οu(i,k)
b=1 ij2
c=c(i,j)
j b(j)-οu(j,k)
b=1 ij3
j b(j)-οu(j,k)
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
i b(i)-οu(i,k)
b=1 ij2
b=1 ij3
j b(j)-οu(j,k)
b=1 ij1
i1 b=-1
b=1 ij2
i2 b=-1
b=1 ij3
j b(j)-οu(j,k)
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 π β πΌ:
β’ ππ = arg max {πππ βππ }
(most desired object)
πβπ΄(π)
β’ π£π = max {πππ βππ } = ππππ β πππ
πβπ΄(π)
β’ π€π =
max {πππ βππ }
ππ β πβπ΄(π)
(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
π
max πππ β ππ +
πβπ΄ π
β Over all price vectors ππ
π ππ
π
π=1
β’ Complementary Slackness:
β Given assignment
ππ ππ=1
and prices ππ
β ππππ β πππ = max πππ β ππ
πβπ΄ π
π
π=1
Duality & CS
β’ Observation:
β Any Primal ο ο£ Any Dual
β’ Proof:
β ππππ β πππ β€ max πππ β ππ
πβπ΄ π
β
π
β
π ππππ
β
π ππ
β
π ππππ
β€
π
ππππ β πππ β€
β€
π
max { πππ β ππ }
πβπ΄ π
π
max { πππ β ππ }
πβπ΄ π
max { πππ β ππ } +
πβπ΄ π
π ππ
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:
β ππππ β πππ = max πππ β ππ
πβπ΄ π
β
π
β
π ππππ
β
π ππ
β
π ππππ
=
π
ππππ β πππ =
=
π
max { πππ β ππ }
πβπ΄ π
π
max { πππ β ππ }
πβπ΄ π
max { πππ β ππ } +
πβπ΄ π
π ππ
Auction Optimality
β’ ο₯-CS:
β ππππ β πππ β₯ max πππ β ππ β π
πβπ΄ π
β’ Observation:
β Auction preserves ο₯-CS
β’ Proof:
β ππβ²π = ππππ β π€π + π
β ππππ β ππβ²π = π€π β π =
β₯
max
ππ β πβπ΄ π
max
ππ β πβπ΄ π
πππ β ππβ² β π
πππ β ππ β π
Auction Optimality
β’ Proposition:
β Auction algorithm is ππ-optimal
β’ Proof:
β ππππ β πππ β₯ max πππ β ππ β π
πβπ΄ π
β
π ππππ
β
π πππ
β₯
β
π ππππ
+ ππ β₯
π
π
max πππ β ππ β
πβπ΄ π
max πππ β ππ +
πβπ΄ π
ππ
π ππ
β ππππππ + ππ β₯ π·π’ππ β₯ πππ‘ππππ β₯ ππππππ
ο₯-Scaling
β’ Choosing ο₯
1
π
β If data is integer, π < guarantees optimality
β Small ο₯ causes small changes, bad performance
β’ ο₯-Scaling
β Run Auction with large π 0 and prices ππ0 = 0
β’ Compute π 0 -CS prices ππβ²0
β Run Auction with
ππ
=
ππβ1
π
β’ Compute π π -CS prices ππβ²π
and prices πππ = ππβ²πβ1
ο₯-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
π
π+1
π π -CS with πππ
, and ππ π+1 -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 ππ-CS
gives Ξπ£π = π πππ
β’ Proof:
β π0 β initial prices, π 0 β corresponding assignment
β π, π β partial assignment & prices,
generated by Auction algorithm
just before last bid of some person π1
ο₯-Scaling Complexity
β’ Proof cont:
β Find path (π1 , π1 , β¦ , ππ , ππ )
β’ ππ , ππ β π 0 , ππ+1 , ππ β π
β’ π1 , ππ unassigned under π
β Observe:
β’ ππ1 π1 β ππ01 + ππ β₯ max ππ1 π β ππ0 = π£π01
πβπ΄ π1
β’ πππ ππ β ππ0π β₯ πππππβ1 β ππ0πβ1 β ππ
βπ = 2 β¦ π
β’
πππππ β ππ0π β₯ πππππβ1 β ππ0πβ1 + π£π01 β πππ
β’
πππππ β ππ0π β₯ πππ ππβ1 + π£π01 β πππ
ο₯-Scaling Complexity
β’ Proof cont:
β Find path (π1 , π1 , β¦ , ππ , ππ )
β’ ππ , ππ β π 0 , ππ+1 , ππ β π
β’ π1 , ππ unassigned under π
β Observe:
β’ π£π1 = max ππ1π β ππ β₯ ππ1 π1 β ππ1
πβπ΄ π1
β’ πππ ππβ1 β πππβ1 β₯ πππππ β πππ β π
βπ = 2 β¦ π
β’
πππππβ1 β πππβ1 + π£π1 β₯ πππ ππ β πππ β ππ
β’
πππππβ1 + π£π1 β₯ πππππ β πππ β ππ
ο₯-Scaling Complexity
β’ Proof cont:
β We got:
β’
πππππ β ππ0π β₯ πππ ππβ1 + π£π01 β πππ
β’
πππππβ1 + π£π1 β₯ πππππ β πππ β ππ
β Summing:
β’ π£π01 β π£π1 β€ πππ β ππ0π + π + 1 ππ
β ππ isnβt assigned under π
β’ ππ didnβt receive any bid, has initial price πππ = ππ0π
β π£π01 β π£π1 = π πππ
ο₯-Scaling Complexity
β’ What is r?
β’ π π -CS:
π
π
π
β πππ
β
π
β₯
max
π
β
π
β
π
π
π
ππ
π
π
π
β πΏ = πππ
β
πβπ΄ π
π+1
πππ
π
π+1
β’ πΏ β€ πππ
β πππ β πππ
β πππ β€ π π + π π+1 = (π
ο₯-Scaling Complexity
β’ Conclusion:
β Scaling phase Complexity:
β’
ππ π΄ π
β
βπ£π
π
=
ππ
π΄ π
β Number of phases:
β’ π 0 ,π β first & last values
β’ π(log π 0 /π )
β’ Total ο₯-Scaling Complexity:
β π(ππ΄ log π 0 /π )
β π π = π ππ΄
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
β’ β 2π β 1 πΆ
β Checking π£π against lower bound
β’ β 2π β 1 πΆ β π β 1 π β max{ππ0 }
π
β Checking for augmenting path
Questions?
Thank you
© Copyright 2026 Paperzz