Through the Integrated Supply Chain Management (ISCM) Project, EIL aims to gain knowledge of building systems of intelligent agents, so-called multi-agent systems, for supply chain management. While Chapter dealt with supply chain management, so to speak independently of agent based systems solutions, this chapter and Chapter will present the notion of agents and multi-agent systems.
In this chapter the intelligent agent is introduced. In Section underlying theories of agency are presented. Agent architectures based on the theory are introduced in Section . In Section we move to the more perceptible issue of agent languages, and Section summarize some of the current applications of agent technology.
The important Section reflects on the use of a multi-agent approach to build supply chain management systems. The section describes how the opportunities and advantages of multi-agent systems that are identified in this chapter may address the issues described in Chapter . But first let us look at the somewhat troublesome notion of an agent.
An agent is not easily defined. There is therefore no single definition that is recognized throughout the entire agent-based computing community. Woodridge and Jennings  identifies a weak and a strong notion of what an agent is.
The weak notion is that of an agent denoting a hardware or (more usually) software-based computer system that enjoys the following properties:
A stronger notion of the agent often ascribes human characteristics to it, such as knowledge, belief, intention, and obligation. And going even further agents can be said to have a degree of mobility (their capacity to move around in an electronic network), veracity (not communicating false information), benevolence (agents will do what they are asked), and rationality (acting to achieve goals).
Agent theory focuses on what an agent is, what properties it may have, and on how this can be mathematically formalized. One approach described in Woodridge and Jennings  is to represent the agent as an intentional system, ``an entity whose behavior can be predicted by the method of attributing belief, desires and rational acumen'' (Danial Dennett as quoted in ). Almost any entity can be described in intentional stance. Even a light switch can be said to have the belief that we want it to transmit current when we communicate our desire to do so (by flicking the switch). This is a very simple and absurd example, since we already know very well how a light switch operates. Describing a system in the intentional stance is more interesting for complex systems whose structure is not known.
There has not yet been developed an all-embracing agent theory. Such a theory should answer questions like how an agent's information and pro-attitudes (which guides the agent's actions) are related, how an agent's cognitive state changes over time, how the environment affects an agent's cognitive state, and how an agent's information and pro-attitudes lead it to perform actions.
The social aspects of the theory of agency has been addressed through formalizing the way agents communicate. The work in this field mainly been based on speech act theory. Woodridge and Jennings  briefly identify the key axiom of speech act theory to be that ``communicative utterances are actions, in just the sense that physical actions are. They are performed by a speaker with the intention of bringing about a desired change in the world''.
Derived from this work are the agent communication languages. Well known work in this field is that by ARPA knowledge sharing effort. This has resulted in the Knowledge Query and Manipulation Language (KQML) , which will be discussed in more detail in Chapter . The agent communication languages brings us over to more applied aspects of agent systems.
Agent architectures are aimed to transform the above mentioned theories into practice. The purpose of the architectures are to construct computer systems that satisfy the properties defined in agent theory. An agent architecture has to answer the question of how incoming information and the current state of the agent determine the actions and the next state.
The most common approach is to see the agents as a particular type of knowledge-based system. This is the symbolic artificial intelligence paradigm. This paradigm is based on the physical-symbol system hypothesis formulated by Newell and Simon:
A physical symbol system is defined to be a physically realizable set of physical entities (symbols) that can be combined to form structures, and which is capable of running processes that operate on those symbols according to symbolically coded sets of instructions. The physical-symbol system hypothesis then says that such a system is capable of general intelligent action. (quoted from Woodridge and Jennings )
The deliberative architecture is base on the above. It is an architecture where a symbolic model of the world is explicitly represented. And where decisions are made through logical reasoning based on pattern matching and symbolic manipulation. An answer to the deliberate architecture is the reactive architecture. Woodridge and Jennings  defines the reactive architecture to be the opposite of the deliberative by defining it to be ``one that does not include any kind of central symbolic world model, and does not use complex symbolic reasoning''. Hybrid architectures combine the deliberative and reactive architectures.
Woodridge and Jennings  defines their use of the term agent language to be ``a system that allows one to program hardware or software computer systems in terms of some of the concepts developed by agent theorists''. Several agent languages have been developed, TELESCRIPT is one of the few commercialized language. The models in this thesis are implemented in COOL (COOrdination Language), which is described in the next chapter.
Most interesting applications of agent technology can be classified in four areas. Interface Agents, where an agent is the interface between a user and for example a source of information. The agent can cooperate with the user in filtering out the information that is interesting to the user. An Information Agent (or Cooperative Information System) could retrieve information from one or more information sources (e.g. FTP-servers) upon request from the user. A Believable Agent is one who ``provide the illusion of life, thus permitting the audience's suspension of disbelief'' (Bates, as quoted by Woodridge and Jennings ). This type of agent simulates emotions in order to be believable as a living subject.
Within the fourth area, Cooperative Problem Solving and Distributed AI, the potential agent applications are unlimited. Example current applications include power systems management, air-traffic, particle accelerator control, intelligent document retrieval, patient care, telecommunications network management, spacecraft control, computer integrated manufacturing, concurrent engineering, transportation management, job shop scheduling, and steel coil processing control. It is within this area we find most industrial applications.
How readily a computer systems can be modified according to the constantly evolving business environment is an important parameter of industrial applications. Under such conditions a distributed system of smaller computerized agent will often be more effective than large centralized system. Parunak  identifies four characteristics of applications where the use of a distributed agent system offers great promise:
While much effort has been put into development of agent technology within manufacturing (which is also the focus of Parunak ), little has been done on the supply chain as a whole.
Jayashankar et al.  are using a multi-agent approach to build a framework for simulation on the supply chain. They have developed a library of software components, consisting of the two categories: structural elements and control elements. Structural elements are for example retailers, distribution centers, manufacturers, and suppliers. Control elements specify the control policies related to information, demand, supply and material flow, which govern the product flow within the supply chain. The idea is to model the structural elements as agents which use the control elements to communicate and to control the flow of products through the supply chain. An agent has, among others, a set of attributes which characterize its state, knowledge of other agents in the model, a set of interaction constraints for its relationship to the other agents, and a set of control elements.
The National Center for Manufacturing Sciences' (NCMS) 'Shop Floor Agent' Project team has built an Agent Development Environment (ADE) toolkit to build agent applications. ADE can be used for developing intelligent distributed agents applications, including shop floor scheduling, supply-chain management, and process control. Agents in ADE communicate with each other by sending message objects.
In Section (page ) Parunak characterizes applications where the use of agent systems are promising. Supply chain management as an application domain, exhibits all these characteristics. This section is meant to serve as motivation for implementing supply chain management systems using agent technology. In Section probable advantages related to systems design and redesign are discussed. How can agents contribute to enhanced supply chain performance? Look to Section for a discussion. The starting point of the section is avoiding the pitfalls given in Section .
The reader may find that the Section is rather ``philosophical'' of nature, it gives imagined opportunities and created examples more than hard facts and well documented statements. In Chapter the statements made here will be review and seen in light of the experience gained through the work with the PMC Model.
One of the major advantages of the multi-agent approach is the ease it lends to the conceptualization of a system. This is most evident where the application domain is readily conceived in terms of naturally occurring entities, which is the case for a supply chain. A supply chain can be visualized as a set of entities and processes. Entities may be suppliers, plants, distribution centers, customers, etc, (see Fig. ) or it may be internal departments such as sales, planning, purchasing, materials, or research and development. A process is simply a series of actions. An entity is responsible for a set of processes, e.g. sales might be responsible for processes related to order acquisition, purchasing for processes related to supplier selection and material ordering, and R&D's responsibility is processes related to introduction of new products in the supply chain.
Using this approach entities may be modeled as autonomous agent. There is only a relatively small step from describing a supply chain to designing it as a multi-agent system, reducing the danger of errors in the translation process.
A supply chain is a domain which is frequently subject to structural changes. Agents are autonomous, and often distributed, with very clearly defined interfaces, i.e. message passing. This gives a robust system that can undergo continuous adaption to the changes in the environment, both locally and globally, without the degradation of performance we so often see in other types of systems. Automated procedures can be developed to deal with adding and removing agents to the system, and changes within an agent will not affect other agents.
Another important issue is that of legacy software, i.e. systems that are already in use, for example a local inventory management system. A company wide multi-agent system can be implemented without having to redesign and implement all local systems. The agents can simply ``use'' the legacy systems through interfaces. Again we see that changes can be made locally, e.g. by incrementally improving or replacing legacy software, without it affecting the enterprise wide system.
In a distributed domain such as the supply chain, integration and coordination are important aspects of any information and management system. A multi-agent system facilitates both multi-plant and general coordination (see Section ). If we look back to Section , where the notion of an agent is described, we see that an agent may have social ability and a level of reactivity. These attributes of an agent makes it well suited to assure a high level of coordination. An example would be when an agent is planning production. The agent may be planning for one site in a supply chain, but information can be passed to and received from other sites, allowing a coordinated production planning. Different ``planning agents'' could ``talk'' or ``negotiate'' to obtain a plan that is optimal not only locally, but also for the supply chain as a whole. This is multi-plant coordination.
When additional information is needed in the planning, e.g. inventory levels, current backlogs, etc..., relevant agents may be asked, e.g. a sales agent for current backlogs, or the databases may be queried directly. This is general coordination. Not only do we have an efficient flow of information, avoiding Pitfall 4 (in Section ), we also have a system in which different entities may cooperate across organizational barriers, thereby avoiding Pitfall 7.
Another example is that of customer ordering. When customers place orders, they want to know when their products will arrive (Lee and Billington : Pitfall 3, in Section ). It is a problem that the entity dealing with customer orders often lacks the necessary information to quote correct lead times (Pitfall 4). In a multi-agent system this agent (say a sales agent) will be able to query other agents for the necessary information, say on production, inventory, and current backlogs. Correct lead times can be deducted from the acquired information.
The above paragraphs have focussed on how a multi-agent system facilitates information distribution and retrieval. There are reasons to believe that a multi-agent system would also facilitate the recording of data. Data serve as basis for, among others, planning and forecasting, developing metrics (see Fig. , Pitfall 2), and tracing uncertainties (Pitfalls 5 and 6). When building a system of distributed agents, the agents can be given the obligation, or responsibility, of recording data which pertain to the agent's area of operation. It would for example be a sales agent's responsibility to record data on incoming orders, a distribution or transport agent could be responsible for data on deliveries to customers, a purchasing or materials agent could be obligated to keep statistical data on supplier deliveries, and so on. In this manner data would be recorded locally. It could easily be made accessible throughout the supply chain by adding it to central databases, by letting a central information agent handle it, or by letting ``interested'' agents query the local agent.
Pitfall 8 in Section indicates that it is often a problem that managers focus only on the internal supply chain, ignoring the opportunities a wider horizon might offer. Distributed agent systems are not limited to the internal supply chain. The autonomous property of agents makes it easy to extend a multi-agent system to include also entities external to a company. It is frequent also today for companies to link its computer systems with those of its sub-contractors. We can also imagine that the system is extended to include suppliers and customers. Customer - supplier relations would determine the nature of such inter-enterprise systems. Close ties to a few suppliers would favor a large scale integration of the computer systems. Loose ties and frequent change of suppliers demand simpler solutions.
Concurrent with the trend towards consolidated control and small numbers of suppliers, the emergence of computer networks is facilitating a trend in the opposite direction. While we believe that the latter trend will eventually win out, no one knows for sure how these conflicting trends will eventually be resolved. (Grossman et al.)
A multi-agent system would also allow a high degree of reactivity to unforeseen events. The occurrence of an unexpected event, e.g. an order cancelation, can be communicated to every concerned entity in a matter of a few minutes. Each agent receiving such an event warning must have the necessary tools to respond in a timely fashion. This may be as simple as printing a message on a monitor for a human user, or as complicated as rescheduling production. One important consequence of this is that customers could be informed on changes in delivery times caused by the unexpected events.
This chapter has described the agent as a hardware or software-based computer system that enjoys the properties of autonomy, social ability, reactivity, and pro-activeness. A stronger notion of the agent often ascribes it human characteristics such as knowledge, belief, intention, and obligation.
Agent theory focuses on the properties of agents, and how to formulate these mathematically. One approach is to represent the agent as an intentional system. Another aspect of agent theory is formalizing the way agents communicate. This has resulted, among others, in the development of KQML.
Agent architectures aim to transform the theory into practice. The most common approach is to see the agents as a particular type of knowledge-based system, the so-called symbolic artificial intelligence paradigm, on which the deliberative architecture is based. In such an architecture the world is explicitly represented, and decisions are made through logical reasoning based on pattern matching and symbolic manipulation. From agent architecture we move to agent languages, which are systems allowing one to program hardware or software systems in terms of some of the concepts developed by agent theorists. The COOrdination Language (COOL) developed at the University of Toronto is an example of an agent language (see Chapter ).
Agent applications can be classified in four areas; interface agents, information agents, believable agents, and cooperative problem solving and distributed AI. Most industrial applications are found in the latter area. Distributed agent systems offers the greatest promise in applications were the application domain is physically distributed, easily conceivable as distinct entities, and is subject to variable parameter and to frequent change (Parunak ). Supply chain management, as an application domain, exhibits all the above characteristics, making it attractive for agent technology. Agents make the conceptualization of real life systems easier. Because of the autonomous nature of agents, the system is also flexible and easy to alter.
Through a) the efficient flow of information, b) the agents' ability to respond to changes in the environment, and c) well defined responsibilities, multi-agent systems are well suited to avoid the pitfalls of inventory management described in Section .