# Task Assignment of the Improved Contract Net Protocol under a Multi-Agent System
## 1 Introduction  
With the rapid development of information technology and distributed system theory, multi-agent systems (MAS) have attracted widespread attention from researchers. Agents can sense their own and external state changes, and can generate corresponding autonomous behavior. The application of the multi-agent system concept to the military field is the key to future war systems. Each combat unit connected to the network can be regarded as an agent. Due to complex and volatile war environments that may destroy agents, the ability of the agent during the execution of the mission may change. Therefore, studying the multi-agent dynamic task assignment problem is of great significance for improving multi-agent coordinated combat capability. Before the start of an operation, the command center usually forms complex tasks based on the information on the battlefield that has been mastered. First, the complex tasks must be decoupled, decomposed into a number of different meta-tasks, and then pre-allocated as tasks according to the capabilities of each of their own combat units. Later, as the battlefield environment changes and the agents have an unexpected situation during the execution of the mission, if the task is executed according to the previous scheme, the performance of the task may be reduced. Therefore, an online task assignment method must be used to reallocate these meta-tasks in real time according to the capabilities of the current agent. How to select the appropriate agent to complete the assignment of tasks has always been a popular and difficult research topic. Contract net protocol based on the market mechanism is an important taskallocation strategy [1]. Tasks are usually time-sensitive and have priority, and also must be completed in time to meet the priority order. On the other hand, it is often difficult to find a global optimal solution for the assignment of combat tasks. Therefore, the task allocation goal is to use the least resources possible to make all tasks efficient. In other words, it can be said that they are looking for the best sub-optimal solution. In this study, a solution was found that makes the task completion rate 100%, while using the least amount of traffic and run-time. Contract net protocol was originally proposed by [PERSON], as a classical negotiation strategy for human and resource allocation in distributed sensor systems [2]. It has been widely used in task allocation of distributed systems and production scheduling. Furthermore, it has achieved good results in the field of dynamic task allocation. Researchers at home and abroad have also proposed many expanded and improved forms for traditional contract net protocols (CNP). [PERSON] et al. [3] reduced traffic by introducing a case-based reasoning contract net through historical information to make decisions. [PERSON] et al. [4] directly sent the bidding notice to agents by introducing interactive trust, acquaintance trust and other strategies to reduce the amount of communication. [PERSON] et al. [5] proposed a variety of methods, including receiver restriction, centralized selection, and even ignoring expired messages. [PERSON] [6] introduced the concept of trust degree and proposed the dynamic contract net protocol (DCNP), which can be updated continuously. A previous study [7] introduced the buffer pool idea into the bidding stage of the contract net protocol, so as to solve the problems of prominent uncertainty and low efficiency in the bidding stage, while another study [8] introduced task transfer stations and set the bidding threshold to improve the algorithm of the dynamic contract net protocol. As an important task allocation method in MAS, the basic idea of contract net agreement is \"tender-bidding-winning\", which enables the whole system to complete task allocation with a lower cost and higher quality. However, there are still some blind spots in the research of contract net protocols when facing specific problems [9; 10].