  Distributed Opportunistic Scheduling (DOS) is inherently harder than
conventional opportunistic scheduling due to the absence of a central entity
that has knowledge of all the channel states. With DOS, stations contend for
the channel using random access; after a successful contention, they measure
the channel conditions and only transmit in case of a good channel, while
giving up the transmission opportunity when the channel conditions are poor.
The distributed nature of DOS systems makes them vulnerable to selfish users:
by deviating from the protocol and using more transmission opportunities, a
selfish user can gain a greater share of the wireless resources at the expense
of the well-behaved users. In this paper, we address the selfishness problem in
DOS from a game theoretic standpoint. We propose an algorithm that satisfies
the following properties: (i) when all stations implement the algorithm, the
wireless network is driven to the optimal point of operation, and (ii) one or
more selfish stations cannot gain any profit by deviating from the algorithm.
The key idea of the algorithm is to react to a selfish station by using a more
aggressive configuration that (indirectly) punishes this station. We build on
multivariable control theory to design a mechanism for punishment that on the
one hand is sufficiently severe to prevent selfish behavior while on the other
hand is light enough to guarantee that, in the absence of selfish behavior, the
system is stable and converges to the optimum point of operation. We conduct a
game theoretic analysis based on repeated games to show the algorithm's
effectiveness against selfish stations. These results are confirmed by
extensive simulations.
