1 Introduction 3
work for their representation. A complex network is a structure made up of nodes
connected by one or more specific types of interdependency. Nodes represent indi-
viduals, groups, or organizations, while connections (links, edges or ties) represent
relations such as friendship, economic deals, internet paths, neuron interactions, etc.
The resulting graph-based structures are often very complex, being social networks
the most popular application, but the analysis of these structures has carried out
a great number of research papers in fields like: Economics, Telecommunications,
Biology, Artificial Intelligence, Bioinformatics, Anthropology, Information Science,
Social Psychology, Sociolinguistics, among others. Network Theory has emerged as
a key technique to be applied in order to model, analyze, simulate and understand
those complex network topologies; from a static and a dynamic point of view. In this
book we will consider the static and dynamic perspectives allowing agents to interact
with a certain neighborhood, and even to modify their neighbor set dynamically by
means of partner switching.
Nowadays, the growing complexity of the ICT ecosystem and the appearance of
concepts like sensor networks, traffic management, autonomic computing, ubiqui-
tous computing, ambient intelligence, internet of things, etc.; needs new solutions
to support the design and the analysis for autonomous, adaptive and robust complex
distributed systems. It is unrealistic to be able to achieve distributed optimal control
of such systems, and even more from a centralized point of view. This is not feasi-
ble because of the huge size of those systems, the unpredictability of their dynamic
organization, their interactions with the environment, and the diversity of the goals
pursued by the different devices. Self-organized models are potentially good candi-
dates to understand such complex behavior, where emergent phenomena may appear
from their numerous interacting components, and where self-organization can be a
powerful tool to manage their complex behavior. Self-organization is a process that
consist of a huge number of autonomous entities distributed over space, and con-
nected locally or using a network topology, but with a limited communication range.
The building blocks are autonomous entities inherently dynamic, which work dis-
tributed and decentralized in a loosely coupled model over a continuously changing
environment. Due to these characteristics multi-agent systems and agent-based sim-
ulation have been a reference model to design and engineer self-organizing systems.
The interactions among the agents in a multi-agent system may be of multiple
types, but we are interested in those ones that usually convey some kind of compe-
tition and cooperation among them. In this framework, agents usually have selfish
goals, that not necessarily coincide with the goals of the multi-agent system as a
whole. Therefore, their actions or long term strategies may be selected according
to a certain utility. The utility concept has been studied for years in the framework
of game theory, that analyzes how rational agents should play games. Rationality
is a central assumption in classical game theory and some other disciplines like
economics. A rational player always plays to maximize his own payoff, assuming
certain actions that the other players will do. The goal of game-theoretic analysis
is to give advice on how to play a rational game against other rational opponents.
The assumption that most of the humans only use rational choice when taking deci-
sions is clearly unrealistic, but it usually allows to apply classical mathematical tools