Programming Group Computations Benjamin Hirsch Michael Fisher Chiara Ghidini Department of Computer Science, University of Liverpool, UK B.Hirsch, M.Fisher @csc.liv.ac.uk Automated Reasoning Systems Division (SRA), ITC-IRST, Trento, Italy ghidini@itc.it Abstract. In this paper, we consider the problem of effectively programming groups of agents. These groups should capture structuring mechanisms common in multi-agent systems, such as teams, cooperative groups, and organisations. Not only should individual agents be dynamic and evolving, but the groups in which the agents occur must be open, flexible and capable of similar evolution and restructuring. We enable the description and implementation of such groups by providing an extension to our previous work on programming languages for agent-based systems based on executable temporal and modal logics. With such formalism as a basis, we consider the grouping aspects within multi-agent sys- tems. In particular, we describe how the implementation of grouping primitives has been carried out and analyse a variety of simple mechanisms for organis- ing agents within such groups. Finally, we consider how this work can provide a (formal) basis for a “pattern-based” approach to multi-agent systems. 1 Introduction Agent-based systems are clearly important within both Computer Science research and the software industry. They are used in many areas, including e-commerce [8], indus- trial process control [2], web services [10] and autonomous vehicles [12]. In spite of the growing number of deployed systems, there remains a significant gap between the theory and practice within agent-based systems [1]. This leads to two problems: the lack of a verifiable agent system; and the lack of a clear set of programming concepts for building agent-based systems. The former is a problem when agents are deployed in (safety or business) critical applications; the latter is a problem when programming complex applications. In our work, we are concerned with the development of a set of concepts, encap- sulated within and agent-based programming language, whose semantics is formally defined. In particular, we have been investigating such concepts within the framework of executable temporal logic [3, 4]. This framework provides high-level descriptions of the concepts we are interested in, while having clearly defined semantics. Our recent work has tackled the problem of organising multi-agent systems, not just programming individual agents. To some extent, such organisational aspects are independent of the language used in each agent. However, we have shown how, by again using executable temporal and modal logics, a high-level language for developing multi-agent structures can be developed [9]. This is eased by the fact that we treat group structures within multi-agent systems in exactly the same way as individual agents [6]. 1