  Self-stabilization is an excellent approach for adding fault tolerance to a
distributed multi-agent system. However, two properties of self-stabilization
theory, convergence and closure, may not be satisfied if agents are selfish. To
guarantee convergence, we formulate the problem as a stochastic Bayesian game
and introduce probabilistic self-stabilization to adjust the probabilities of
rules with behavior strategies. This satisfies agents' self-interests such that
no agent deviates the rules. To guarantee closure in the presence of selfish
agents, we propose fault-containment as a method to constrain legitimate
configurations of the self-stabilizing system to be Nash equilibria. We also
assume selfish agents as capable of performing unauthorized actions at any
time, which threatens both properties, and present a stepwise solution to
handle it. As a case study, we consider the problem of distributed clustering
and propose five self-stabilizing algorithms for forming clusters. Simulation
results show that our algorithms react correctly to rule deviations and
outperform comparable schemes in terms of fairness and stabilization time.
