  Collaboration may be understood as the execution of coordinated tasks (in the
most general sense) by groups of users, who cooperate for achieving a common
goal. Collaboration is a fundamental assumption and requirement for the correct
operation of many communication systems. The main challenge when creating
collaborative systems in a decentralized manner is dealing with the fact that
users may behave in selfish ways, trying to obtain the benefits of the tasks
but without participating in their execution. In this context, Game Theory has
been instrumental to model collaborative systems and the task allocation
problem, and to design mechanisms for optimal allocation of tasks. In this
paper, we revise the classical assumptions and propose a new approach to this
problem. First, we establish a system model based on heterogenous nodes (users,
players), and propose a basic distributed mechanism so that, when a new task
appears, it is assigned to the most suitable node. The classical technique for
compensating a node that executes a task is the use of payments (which in most
networks are hard or impossible to implement). Instead, we propose a
distributed mechanism for the optimal allocation of tasks without payments. We
prove this mechanism to be robust event in the presence of independent selfish
or rationally limited players. Additionally, our model is based on very weak
assumptions, which makes the proposed mechanisms susceptible to be implemented
in networked systems (e.g., the Internet).
