Contract Net Protocol
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
The Contract Net Protocol (CNP) is a task-sharing protocol in multi-agent systems, introduced in 1980 by Reid G. Smith. It is used to allocate tasks among autonomous agents. It is close to sealed auctions protocols. It mainly relies on the Subcontractor: a manager proposes a task to several agents. The latters make a proposal among which the manager chooses to allocate the task. This task can then be divided and subcontracted.
Description
Task distribution is viewed as a kind of contract negotiation and happens in five stages:
- Recognition: An agent recognises it has a problem that it wants help with. The agent has a goal, and either realises it cannot achieve the goal in isolation (does not have the capability to fulfil the goal), or realises it would prefer not to achieve the goal in isolation (typically because of solution quality, deadline, etc.).
- Announcement: The agent with the task sends out an announcement of the task which includes a specification of the task to be achieved. The specification must encode a description of the task itself, any constraints, and meta-task information.
- Bidding: Agents that receive the announcement decide themselves whether they should bid for the task. Factors that are taken into consideration are that the agent must decide whether it is capable of the expecting task, and that the agent must determine the quality constraints and the price information (if relevant).
- Awarding: Agents that send the task announcement must choose among the received bids and decide who to award the contract to. The result of this process is communicated to agents that submitted a bid.
- Expediting: This may involve the generation of further contract nets in the form of sub-contracting to complete the task.
An example is in an electronic marketplace, a system in which buyers specify the goods that they want as well as a maximum price that they are willing to pay. The agent programs then would find other user(s) willing to sell the goods within the desired price range. The user with the lowest price would be selected to fulfill the contract. Other constraints could be applied such as delivery time and the location of the goods.[1]
References
The Contract Net Protocol, IEEE Transactions on Computers, Dec 1980. [1]
See also