Engineering Multi-Agent Systems
Multi-agent systems constitute a promising software engineering approach for the development of applications in complex domains where interacting application components are autonomous and distributed, operate in dynamic and uncertain environments, have to respect some organizational rules and laws, and can join and leave the system at runtime. Examples of such applications are systems that manage and optimize the generation and distribution of electricity among consumers or systems that optimally schedule and assign loads to vehicles in transportation systems.
The development of multi-agent systems requires the development of individual agents, multi-agent organizations, and multi-agent environments. Our group develops programming languages and frameworks that support the development and engineering of multi-agent systems. The programming languages provide programming constructs to implement individual agents in terms of social and cognitive concepts such as information, objectives, options, norms, emotions, and decision rules, multi-agent organizations in terms of social and organizational concepts such as roles, norms, communication protocols, monitoring and mechanism, and multi-agent environments in terms of resources and services. The developed programming languages and frameworks are applied to build agent-based simulations for railway systems and traffic management, serious games, autonomous robotic systems, and auctions.