  We consider repeated multi-unit auctions with uniform pricing, which are
widely used in practice for allocating goods such as carbon licenses. In each
round, $K$ identical units of a good are sold to a group of buyers that have
valuations with diminishing marginal returns. The buyers submit bids for the
units, and then a price $p$ is set per unit so that all the units are sold. We
consider two variants of the auction, where the price is set to the $K$-th
highest bid and $(K+1)$-st highest bid, respectively.
  We analyze the properties of this auction in both the offline and online
settings. In the offline setting, we consider the problem that one player $i$
is facing: given access to a data set that contains the bids submitted by
competitors in past auctions, find a bid vector that maximizes player $i$'s
cumulative utility on the data set. We design a polynomial time algorithm for
this problem, by showing it is equivalent to finding a maximum-weight path on a
carefully constructed directed acyclic graph.
  In the online setting, the players run learning algorithms to update their
bids as they participate in the auction over time. Based on our offline
algorithm, we design efficient online learning algorithms for bidding. The
algorithms have sublinear regret, under both full information and bandit
feedback structures. We complement our online learning algorithms with regret
lower bounds.
  Finally, we analyze the quality of the equilibria in the worst case through
the lens of the core solution concept in the game among the bidders. We show
that the $(K+1)$-st price format is susceptible to collusion among the bidders;
meanwhile, the $K$-th price format does not have this issue.
