  We study the problem of computing Stackelberg equilibria Stackelberg games
whose underlying structure is in congestion games, focusing on the case where
each player can choose a single resource (a.k.a. singleton congestion games)
and one of them acts as leader. In particular, we address the cases where the
players either have the same action spaces (i.e., the set of resources they can
choose is the same for all of them) or different ones, and where their costs
are either monotonic functions of the resource congestion or not. We show that,
in the case where the players have different action spaces, the cost the leader
incurs in a Stackelberg equilibrium cannot be approximated in polynomial time
up to within any polynomial factor in the size of the game unless P = NP,
independently of the cost functions being monotonic or not. We show that a
similar result also holds when the players have nonmonotonic cost functions,
even if their action spaces are the same. Differently, we prove that the case
with identical action spaces and monotonic cost functions is easy, and propose
polynomial-time algorithm for it. We also improve an algorithm for the
computation of a socially optimal equilibrium in singleton congestion games
with the same action spaces without leadership, and extend it to the
computation of a Stackelberg equilibrium for the case where the leader is
restricted to pure strategies. For the cases in which the problem of finding an
equilibrium is hard, we show how, in the optimistic setting where the followers
break ties in favor of the leader, the problem can be formulated via
mixed-integer linear programming techniques, which computational experiments
show to scale quite well.
