CARMA: Collective Adaptive Resource-sharing Markovian Agents

Luca Bortolussi, Rocco De Nicola, Vashti Galpin, Stephen Gilmore, Jane Hillston, Diego Latella, Michele Loreti, Mieke Massink

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

In this paper we present CASPA, a language recently defined to support specification and analysis of collective adaptive systems. CARMA is a stochastic process algebra equipped with linguistic constructs specifically developed for modelling and programming systems that can operate in open-ended and unpredictable environments. This class of systems is typically composed of a huge number of interacting agents that dynamically adjust and combine their behaviour to achieve specific goals. A CARMA model, termed a collective, consists of a set of components, each of which exhibits a set of attributes. To model dynamic aggregations, which are sometimes referred to as ensembles, CARMA provides communication primitives that are based on predicates over the exhibited attributes. These predicates are used to select the participants in a communication. Two communication mechanisms are provided in the CARMA language: multicast-based and unicast-based.
In this paper, we first introduce the basic principles of CARMA and then we show how our language can be used to support specification with a simple but illustrative example of a socio-technical collective adaptive system.
Original languageEnglish
Title of host publicationWorkshop on Quantitative Analysis of Programming Languages 2015
Number of pages16
Publication statusPublished - 14 May 2015
EventWorkshop on Quantitative Analysis of Programming Languages 2015 - London, United Kingdom
Duration: 11 Apr 201512 Apr 2015

Conference

ConferenceWorkshop on Quantitative Analysis of Programming Languages 2015
CountryUnited Kingdom
CityLondon
Period11/04/1512/04/15

Fingerprint Dive into the research topics of 'CARMA: Collective Adaptive Resource-sharing Markovian Agents'. Together they form a unique fingerprint.

Cite this