Abstract— Life on this planet is full of astonishing examples of cooperation. Individual species depend upon one another for sustenance, often forming surprising alliances to achieve a common goal: continuance of the species. The majority of living things also display amazing altruism in order to protect and provide the best care for their offspring, incomparable to any form of sacrifice shown by human beings. Studying the cooperation patterns between living things and their intelligent behaviors has been source of inspiration for many new algorithms, theories and systems. This paper addresses the concept of cooperation and why it is important. It highlights the available biologically-inspired models and algorithms, and their potential applications. The paper also presents a general typology of cooperation patterns, which can help to understand how systems could work cooperatively in an intelligent manner. Index Terms—Cooperative behavior, intelligent systems, robotics, multiagent systems. I. INTRODUCTION chieving robust and productive cooperation between various system components is engineering and science inspired by different domains such as biology, artificial life, psychology and cognitive science in order to build artificially cooperative intelligent systems. The social insect societies are based on the cooperation of separate, simple and somewhat random units, distributed in the environment and having only access to local information [1]. In these societies, very simple, but numerous, interactions taking place between individuals may ensure complex performances and produce collective intelligence at the level of the group. In other words, problems are collectively solved. This paper highlights the available biologically-inspired models and algorithms, and their potential applications. The paper is structured as follows: in section 2, the concept of cooperation is discussed. Section 3 addresses the question "why the living beings cooperate?" in order to highlight different cooperation objectives. It also describes the available models and algorithms inspired by these behaviors and their usefulness in facilitating the development of cooperative intelligent systems. Section 4 presents a generic A. M. Khamis was with Pattern Analysis and Machine Intelligence (PAMI) Lab, University of Waterloo. Now he is with the RoboticsLab, Department of Systems Engineering and Automation, Carlos III University of Madrid (corresponding author e-mail: akhamis@ieee.org). M. S. Kamel is the director of PAMI Lab, Electrical and Computer Engineering Department, University of Waterloo, Canada, (mkamel@pami.uwaterloo.ca). M. A. Salichs is the director of RoboticsLab, Department of Systems Engineering and Automation, Carlos III University of Madrid, Spain, (salichs@ing.uc3m.es). typology of cooperation. Conclusions are summarized in section 5. A number of open research issues in cooperative intelligent systems are also identified in this section. II. WHAT IS MEANT BY COOPERATION? Linguistically, cooperation refers to the practice of people or entities working together with commonly agreed-upon goals and possibly methods, instead of working separately in competition. Freeman and Herron classified the social interactions into four categories: Cooperation (or Mutualism), Altruism, Selfishness and Spite [2]. They defined cooperation as term for actions that results in fitness gains for both participants, altruism as situation in which the individual instigating the action pays a fitness cost and the individual on the receiving end benefits while selfishness is the opposite: the actor gains and the recipient loses, and finally spite as a term for behavior that results in fitness losses for both participants. Tuomela defined cooperation as a collective activity of two or more agents cooperating in order to achieve their ends or their shared collective end [3]. Giraldeau and Caraco argue that cooperation implies that an action increases the payoff to one or more other individuals; the actor’s payoff may increase or decrease [4]. In the context of multirobot systems, cooperation has been defined as a situation in which several robots operate together to perform some global task that either cannot be achieved by a single robot, or whose execution can be improved by using more than one robot, thus obtaining higher performances [5]. As exemplified in these definitions, cooperation cannot be considered as a simple behavior, nor even as a specific pattern of behaviors. Rather, it is seen as a situation in which a set of actions and consequences are taken place in order to achieve certain goal. Viewing such previous conceptualizations collectively and more generally, we can define cooperation as the practice of hardware and/or software entities working together in order to achieve certain objective. This objective can be, but not limited to, achieving individual or common goal, division of labor, collective autonomy, conflict avoidance, achieving maximum reward, maintaining system functionality, knowledge and information acquisition and/or sharing or achieving collective intelligent behaviors. This wide definition of the concept of cooperation is discussed in more details in the next section. III. WHY COOPERATION IS IMPORTANT? In this section, different cooperation objectives are identified in order to highlight the available models and algorithms, which can be used to achieve these objectives and Cooperation: Concepts and General Typology Alaa M. Khamis, Mohamed S. Kamel and Miguel A. Salichs A