Software Agents
Wooldridge describes computer systems as software agents, in case they comply with the following two requirements:
• The computer system is situated in some environment and
• it is capable of autonomous action in this environment in order to meet its designers objectives.
These so called autonomous actions are not meant to be compared to the basic exchange of data. Interactions performed by software agents are rather inspired by human social behavior such as cooperation, coordination or negotiation between individuals (Woolridge and Wooldridge 2001).
Fig. 2.3 A software agent located in its environment (Woolridge and Wooldridge 2001; Russell and Norvig 2003)
Awareness of the current state of the world (the agent’s environment) and changes occurring in the world are necessary for making autonomous behavior possible. By using sensors for observing the environment agents can perceive different states of the world and react according to its objectives to be achieved, as shown in Fig. 2.3. As agents have to choose the most suitable action from a set of possible actions, a differentiated decision function (also called agent function) is required. Agent functions can either be simple mathematical functions mapping certain perceptions to predefined actions or more sophisticated mechanisms enabling agents to behave “intelligent”.
Intelligent agents, as a special type of software agents, are characterized by applying proactive behavior for accomplishing goals given. For this purpose, the use of techniques from the area of artificial intelligence is required, as agents need to learn from recent behavior or observations and use practical reasoning in order to achieve more sophisticated goals. Furthermore, a social ability is required, as intelligent agents are meant to interact with other agents.
Based on the environment agents are located in and the goals agents are given to achieve, the design needs to be individual. The degree of intelligence required for accomplishing tasks influences the amount of considerations which are necessary before making a decision. Figure 2.4 shows structures of different agent types.
Fig. 2.4 Schematic structure diagrams of different agent types (Russell and Norvig 2003). a Simple reflex agent. b Utility-based agent
Fig. 2.5 Agent function of a simple reflex agent in charge of a heating control
Simple relfex agents are the most elementary type of software agents. Actions are chosen by ignoring the history of events which occurred in the agent’s environment. Instead, only current observations are considered for selecting the next action. These predefined connections leading from sensor-aided perceptions to agent behavior are called condition-action-rules. For example in case of an agent being in charge of a heating control linked to the heather of a house, the condition-action-rules might be defined as shown in Fig. 2.5.
Considering more complex scenarios where agents are meant to control more sophisticated entities, simple differentiations by cases likely lack of specialization. When choosing an agent’s next action a detailed consideration of the action’s consequences might be necessary. The hypothetical condition of the world, after the agent has performed its action, may influence the decision of the agent. Even though an action might appear to be useful or appropriate regarding the current state of the agent’s world, changing the environment by performing the action might cause a disadvantage to the agent. For example, when thinking of an agent located in a natural environment, harvesting and eating the remaining wheat results in the satisfaction of hunger, however, using it to grow more wheat would have provided a food supply in the long term.
By comparing different states of the world resulting from an action, agents can select the most beneficial action. To provide a consistent way of measuring the performance of each possible state, agents’ are provided utility functions. These utilitybased agents then choose their actions by trying to maximize the utility expected when applying a certain action.
Simple reflex agents and utility-based agents are only two examples for possible structures of software agents. However, comparing these two structures shows that software agents can be applied in diverse scenarios and for solving problems at different levels of difficulty. Either as a reactive unit for unambiguous decisions-making or as a highly specialized autonomous entity planing its actions ahead.
2.3.2
More on the topic Software Agents:
- Financialization and software
- Why study the digital and software?
- Agents
- Antiherpetic Agents
- Antiviral Agents
- Infectious Agents
- Future agents
- Trading Agents
- Antimycobacterial Agents
- Agents and Doers, Actions and Actional Events