Contract Net Protocol and Variants

FIPA Contract Net Protocol (CNet) is a well known protocol in the literature of multiagent systems. In this protocol there are two roles: the initiator and the participant. The role of initiator is played by one agent that wishes to have some tasks performed. In order to solve the task, the agent issues a call for proposals (cfp). For each task, a set of participants may reply to the call by sending a proposal (propose); the other agents can reply with a refuse (refuse). Once the initiator has received the responses from the participants the proposals are evaluated and one (or some of them) can be chosen by the initiator, who answers to each agent by sending an acceptance (accept-proposal) or a refusal of the participant's offer (reject-proposal). Once the task has been commissioned to a participant, it can start to solve it and, once finished, it can answer by sending the result to the initiator (inform-result), or just by sending a completion message (inform-done). The participant can also answer with a failure message (failure) to the initiator.

In the following we provide the formalization of this protocol, together with some variants (i.e. protocols obtained starting from CNet Specification and by modifying some constraints). The descriptions of these variants of CNet can be found in [BBM-2010]

Examples and figures