* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download On-line Error Analysis Using AI techniques A first sight
Time series wikipedia , lookup
Neural modeling fields wikipedia , lookup
Catastrophic interference wikipedia , lookup
Convolutional neural network wikipedia , lookup
Soar (cognitive architecture) wikipedia , lookup
Agent-based model in biology wikipedia , lookup
Ethics of artificial intelligence wikipedia , lookup
Type-2 fuzzy sets and systems wikipedia , lookup
Incomplete Nature wikipedia , lookup
Ecological interface design wikipedia , lookup
Fuzzy concept wikipedia , lookup
Personal knowledge base wikipedia , lookup
Agent-based model wikipedia , lookup
Fuzzy logic wikipedia , lookup
Embodied cognitive science wikipedia , lookup
Agent (The Matrix) wikipedia , lookup
Cognitive model wikipedia , lookup
Grid Enabled Remote Instrumentation with Distributed Control and Computation On-line Error Analysis Using AI techniques A first sight Version 0.1 10/14/2005 Version: Date: Authors: CI identifier . 0.1 10/14/2005 F. Lelli Revision History Date 29, 07 2005 Version 0.1 Description Document creation Author F. Lelli CI Record Field Description CI Identifier None Description Present a small result-oriented overview about some Artificial Intelligence techniques available to solve a specific problem. Submission Date 14 October 2005 Submitted By Francesco Lelli Components None Dependencies/Related None External Identifier None Point of Contact [email protected] Comments None Physical Location None Table of Contents 1 Scope of the Document 2 Current Technologies Overview 2.1 Expert Systems 2.2 Fuzzy Logic 2.3 Neural Networks 2.4 Intelligent Agents 2.4.1 Events-Conditions-Actions 2.4.2 Taxonomies of Agents 2.4.3 Agency, Intelligence, and Mobility 2.4.4 Processing Strategies 2.4.5 Multiagent Systems (MAS) 2.4.6 Stream filtering agents 6 7 9 12 14 15 15 15 16 17 19 3 Comparisons 3.1 Expert Systems 3.1.1 Disadvantages of Expert Systems 3.2 Fuzzy Logic 3.2.1 Disavantages of Fuzzy Logic 3.3 Neural Networks 3.3.1 Disadvantages of Neural Networks 3.4 Intelligent Agents 20 20 20 21 21 21 22 22 4 Conclusion 24 5 Bibliography 24 6 Appendix A: WWW links 25 This is a note, e.g.: If you want run an example of Sentinel Integration we need the XDaq Sentinel example up and running! This is a help item, e.g: If you want add your custom Listener remember to insert the Listener Name in the Handler configuration. This is an orientation item,e g.: You have the choice between using a Brain in a separate thread or no. The advantage of the first is bla bla, the advantage of the second is bla bla. 6 This is a tip,e.g.: if you need to perform an action you need to retrieve the interface to your function manager using the method….. On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 On-line Error Analysis Using AI techniques 1 Scope of the Document Goal of this document is to present a small result-oriented overview about some Artificial Intelligence techniques available to solve a specific problem. This problem comes from the needs of high energy physics computational environments, but it's the general problem of analyzing online distributed sources of information and trying to give hints about the things that could be happening, like peripheral system failures. This document is related to the Instrument Element of the GridCC project [22]. The specific problem to be addressed is to choose the right technology for the construction of the “Supervisor Subsystem” of each project subsystem (Instrument Manager). From a more architectural point of view, this problem can be formalized as a series of devices which produce information about their state. This information feeds in to a “Subsystem Supervisor”, in order to get advices useful to detect and resolve potential problems about the good functioning of the whole Instrument Element system. This work address the task of proposing a whole project only in part, since this task will be pursued in a more advanced phase of the overall project. What we want to achieve here is an overview of 'what can be reached' using particular techniques, in order, as a first step, to prune the approaches that are obviously not suitable for the purpose. After a brief introduction about the technologies that can be used, we will discuss some advantages and disadvantages of each approach. In the Appendices will be presented a list of links of few organizations that operate in the context of Artificial Intelligence. 2 Current Technologies Overview To be useful, a system has to be able to do more than just correctly perform some task. - John McDermott What follows is a short overview of methods and technologies useful for the construction of a “Subsystem Supervisor” using AI techniques. Given the high number of data sources and the huge amount of data to be processed, the problem's solution is not trivial, since even a small percentage of wrong alerts given to an operator can lead the whole system's administration to confusion. Another point of view in this overview regards the data analysis scheme: centralized or distributed? A centralized approach would need to centralize all the log files in one place in order to process them, while a distributed approach could analyze the data where it is produced and forward to the appropriate places only the relevant information. Page 6 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 2.1 Expert Systems An Expert System is a class of computer program that can advise, analyse, categorise, communicate, consult, design, diagnose, explain, explore, forecast, form concepts, identify, interpret, justify, learn, manage, monitor, plan, present, retrieve, schedule, test or tutor. They address problems normally thought to require human specialist for their solution. - Edward Feigenbaum There is no exact definition of an expert system, but it's generally agreed that expert systems: • Represent their knowledge symbolically. In practice, most systems used IF-THEN rules. • After giving an answer, can justify or explain it by showing which knowledge they used to come to that conclusion. • Ιn a similar way can explain why they have asked their user a particular question. • Can imitate the performance of a human expert in a narrow domain of expertise, such as mortgage tax advice, interpreting mass spectra, or planning computer systems. Expert systems, like human experts, are experts only in their field and as such are highly domain specific. In general, expert systems are not intended as cognitive models. It helps (in some cases), if a system reasons in a way that a human can understand. However, we're not usually aiming to produce a detailed model of the expert, merely a tool which can solve the same problems. A simple rule-based expert system can easily be programmed to generate automatic explanations of how it has reached a conclusion, or why it is asking a question. However, these explanations leave a lot to be desired, being too detailed and low-level. These defects stimulated work on systems which give a more structured overview of their reasoning, and even ones which tried to adapt to their user's level of skill. Expert Systems are computer programs that are derived from a branch of computer science research called Artificial Intelligence (AI). AI's scientific goal is to understand intelligence by building computer programs that exhibit intelligent behaviour. It is concerned with the concepts and methods of symbolic inference, or reasoning, by a computer, and how the knowledge used to make those inferences will be represented inside the machine. AI programs that achieve expert-level competence in solving problems in task areas by bringing to bear a body of knowledge about specific tasks are called knowledge-based or expert systems. Often, the term expert systems is reserved for programs whose knowledge base contains the knowledge used by human experts, in contrast to knowledge gathered from textbooks or nonexperts. Page 7 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 The area of human intellectual endeavour to be captured in an expert system is called the task domain. Task refers to some goal-oriented, problem-solving activity. Domain refers to the area within which the task is being performed. Typical tasks are diagnosis, planning, scheduling, configuration and design. Every expert system consists of two principal parts: • • The knowledge base; The reasoning, or inference, engine. The knowledge base of expert systems contains both factual and heuristic knowledge. Factual knowledge is that knowledge of the task domain that is widely shared, typically found in textbooks or journals, and commonly agreed upon by those knowledgeable in the particular field. Heuristic knowledge is the less rigorous, more experiential, more judgmental knowledge of performance. In contrast to factual knowledge, heuristic knowledge is rarely discussed, and is largely individualistic. It is the knowledge of good practice, good judgment, and plausible reasoning in the field. It is the knowledge that underlies the "art of good guessing." Knowledge representation formalizes and organizes the knowledge. One widely used representation is the production rule, or simply rule. A rule consists of an IF part and a THEN part (also called a condition and an action). The IF part lists a set of conditions in some logical combination. The piece of knowledge represented by the production rule is relevant to the line of reasoning being developed if the IF part of the rule is satisfied; consequently, the THEN part can be concluded, or its problem-solving action taken. Expert systems whose knowledge is represented in rule form are called rule-based systems. Another widely used representation, called the unit (also known as frame, schema, or list structure) is based upon a more passive view of knowledge. The unit is an assemblage of associated symbolic knowledge about an entity to be represented. Typically, a unit consists of a list of properties of the entity and associated values for those properties. Since every task domain consists of many entities that stand in various relations, the properties can also be used to specify relations, and the values of these properties are the names of other units that are linked according to the relations. One unit can also represent knowledge that is a "special case" of another unit, or some units can be "parts of" another unit. The problem-solving model, or paradigm, organizes and controls the steps taken to solve the problem. One common but powerful paradigm involves chaining of IF-THEN rules to form a line of reasoning. If the chaining starts from a set of conditions and moves toward some conclusion, the method is called forward chaining. If the conclusion is known (for example, a goal to be achieved) but the path to that conclusion is not known, then reasoning backwards is called for, and the method is backward chaining. These problem-solving methods are built into program modules called inference engines or inference procedures that manipulate and use knowledge in the knowledge base to form a line of reasoning. Knowledge is almost always incomplete and uncertain. To deal with uncertain knowledge, a rule may have associated with it a confidence factor or a weight. The set of methods for using uncertain knowledge in combination with uncertain data in the reasoning process is called reasoning with uncertainty. An important subclass of methods for reasoning with uncertainty is called fuzzy logic, and the systems that use them are known as fuzzy systems. Page 8 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Because an expert system uses uncertain or heuristic knowledge (as we humans do) its credibility is often in question (as is the case with humans). When an answer to a problem is questionable, we tend to want to know the rationale. If the rationale seems plausible, we tend to believe the answer. So it is with expert systems. Most expert systems have the ability to answer questions of the form: "Why is the answer X?" Explanations can be generated by tracing the line of reasoning used by the inference engine (Feigenbaum, McCorduck et al. 1988). The most important ingredient in any expert system is knowledge. The power of expert systems resides in the specific, high-quality knowledge they contain about task domains. AI researchers will continue to explore and add to the current repertoire of knowledge representation and reasoning methods. But in knowledge resides the power. Because of the importance of knowledge in expert systems and because the current knowledge acquisition method is slow and tedious, much of the future of expert systems depends on breaking the knowledge acquisition bottleneck and in codifying and representing a large knowledge infrastructure. 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 2.2 Fuzzy Logic 34 35 36 37 38 39 40 41 42 Fuzzy logic is a superset of conventional (Boolean) logic that has been extended to handle the concept of partial truth -- truth values between "completely true" and "completely false". - Dr. Lotfi Zadeh of UC/Berkeley The classical logic relies on something being either “True” or “False”. A True element is usually assigned a value of 1, while False has a value of 0. Thus, something either completely belongs to a set or it is completely excluded from it. The fuzzy logic broadens this definition of membership. The bases of the logic are fuzzy sets. Unlike in "crisp" sets, where membership is full or none, an object is allowed to belong only partly to one set. The membership of an object to a particular set is described by a real value from the range between 0 and 1. Thus, for instance, an element can have a membership value 0.5, which describes a 50% membership in a given set. Such logic allows a much easier application of many problems that cannot be easily implemented using classical approach. In classical set theory, a subset U of a set S can be defined as a mapping from the elements of S to the elements of the set {0, 1}, U: S --> {0, 1} Similarly, a fuzzy subset F of a set S can be defined as a set of ordered pairs, each with the Page 9 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 first element from S, and the second element from the interval [0,1], with exactly one ordered pair present for each element of S. This defines a mapping between elements of the set S and values in the interval [0,1]. The value zero is used to represent complete non-membership, the value one is used to represent complete membership, and values in between are used to represent intermediate degrees of membership. The set S is referred to as the universe of discourse for the fuzzy subset F. Frequently, the mapping is described as a function, the membership function of F. The degree to which the statement x is in F Is true is determined by finding the ordered pair whose first element is x. The degree of truth of the statement is the second element of the ordered pair. Because of the above alterations, some logical operations had to be also modified. In fuzzy logic we could give a meaning to statements like "X is LOW". In the same way, we can interpret a statement like: X is LOW and Y is HIGH or (not Z is MEDIUM) Using the standard fuzzy logic definitions: truth (not x) = 1.0 - truth (x) truth (x and y) = minimum (truth(x), truth(y)) truth (x or y) = maximum (truth(x), truth(y)) Some researchers in fuzzy logic have explored the use of other interpretations of the AND and OR operations, but the definition for the NOT operation seems to be safe. If you plug just the values 0 and 1 into these definitions, you get the same truth tables as you would expect from conventional Boolean logic. This is known as the extension principle, which states that the classical results of Boolean logic are recovered from fuzzy logic operations when all fuzzy membership grades are restricted to the traditional set {0,1}. This effectively establishes fuzzy subsets and logic as a true generalization of classical set theory and logic. In fact, by this reasoning all crisp (traditional) subsets are fuzzy subsets of this very special type; and there is no conflict between fuzzy and crisp methods. Generally the fuzzy logic is recommended for the implementation of very complex processes, where a simple mathematical model cannot be obtained. Fuzzy logic can also be successfully applied to highly nonlinear processes, where it is observed to greatly simplify the modelling. It is not recommended to employ fuzzy logic into systems where a simple and adequate mathematical model already exists or where the conventional control theory yields a satisfying result. Fuzzy logic seems to be a general case for the classical logic and as such it does not present any better solutions for problems that might be easily solved using the "crisp" sets. The most obvious implementation for the fuzzy logic is the field of artificial intelligence. Although, fuzzy logic not only brings logic closer to natural language, but also closer to human or "natural" reasoning. Many times knowledge engineers have to deal with very vague and common sense descriptions of the reasoning leading to a desired solution. The power of fuzzy logic is to perform reasonable and meaningful operations on concepts that cannot be easily codified using a classical approach. Implementing the logic will not only make the knowledge systems more user friendly, but it also will allow programs to justify better the obtained results. Page 10 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 In a fuzzy system, a human expert has to define a set of rules like the following: IF cond(1)=A1 and cond(2)=A2 THEN conclusion(1)=B1 ... IF cond(n)=An and cond(m)=Am THEN conclusion(n)=Bn Given this, the system is able to get the conclusions by evaluating the conditions using the standard fuzzy logic definitions. Fuzzy logic seems to be a general case for the classical logic. It modifies the rules for a set membership and defines operations on modified sets. It allows an element to belong only partly to a given set. Such modification allows for a much more flexible and wide spread use of reliable and consistent logic in a variety of applications. So far, the most common use of the fuzzy logic was encountered in the field of control systems, although the theory seems to have a big potential in the different fields of artificial intelligence. The logic stirred a lot of controversy since its introduction, but as it is successfully implemented into more and more applications, it becomes a more accepted way of modelling reality. Such a classification certainly allows a single object to be a member of two mutually exclusive in the "crisp" sense sets. For example a person 5 feet and 5 inches tall can be classified as 0.5 tall and also 0.3 short, thus it could be described as "rather tall" and at the same time "sort of short". A single element membership to different sets does not have to add up to any particular value. Although, a membership to a negative set (ex. a set of not tall people) has to equal to 1 minus membership to the positive set (a set of tall people). For the union of two sets, it was found, the result is the higher membership value out of the two. For example if an element is a person that is 0.6 member of a set of smart people and 0.7 member of a set of pretty people, it makes logical sense to state that such person has 0.7 membership in a set of smart or pretty people. The intersection of the two sets is the minimal element of the operators. Thus, referring to the above example, the person would be only 0.6 member of a set of smart and pretty people. It is worth noting that such a representation operates on different principles than probabilistic theory, which relies on the same set of values, and is often confused with the fuzzy set manipulation. Unlike as in the fuzzy sets, where an element is partly a member of a set, the probability value describes a chance of the whole element belonging to a particular set. The union and the intersection are the most obvious differences between these two representations. In the case of the fuzzy logic adding memberships for the union of sets or multiplying memberships for the intersection makes no logical sense (ex. a person from the example being 1.3 member of a set of smart or pretty people or 0.42 member of a set of smart and pretty people). Page 11 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 2.3 Neural Networks Neural models of intelligence emphasize the brain's ability to adapt to the world in which it is situated by modifying the relationships between individual neurons. Rather than representing knowledge in explicit logical sentences, they capture it implicitly, as a property of patterns of relationships. - George F. Luger Networks that mimic the way the brain works; computer programs that actually learn patterns; forecasting without having to know statistics. These are just some of the many claims and attractions of artificial neural networks. Neural networks have been successfully used for many different applications including robotics, chemical process control, speech recognition, optical character recognition, credit card fraud detection, interpretation of chemical spectra and vision for autonomous navigation of vehicles. Neural network methods share a loose inspiration from biology in that they are represented as networks of simple neuron like processors. A typical ``neuron'' takes in a set of inputs, sums them together, takes some function of them, and passes the output through a weighted connection to another neuron. At first glance, this is not very revealing to a statistician. But as we will show, many familiar statistical techniques can be represented in this framework. Each neuron may be viewed simply as a predictor variable, or a function of a combination (linear or non-linear) of predictor variables. The connection weights are the unknown (or adjustable) parameters which are set by a ``training method''. That is, they are estimated. Artificial neural networks retain only a small amount of this complexity and use simpler neurons and connections, but keep the idea of local computation. Many different network architectures are used, typically with hundreds or thousands of adjustable parameters. Neural networks process information in interconnecting processing elements (often termed neurons, units or nodes—we will use “nodes”). These nodes are organized into groups termed layers. There are three distinct types of layers in a backpropagation neural network: the input layer, the hidden layer(s) and the output layer. A network consists of one input layer, one or more hidden layers and one output layer. Connections exist between the nodes of adjacent layers to relay the output signals from one layer to the next. Backpropagation related paradigms require supervised training. This means they must be taught using a set of training data where known solutions are supplied. Fully connected networks occur when all nodes in each layer receive connections from all nodes in each preceding layer. Information enters a network through the nodes of the input layer. The input layer nodes are unique in that their sole purpose is to distribute the input information to the next processing layer (i.e., the first hidden layer). The hidden and output layer nodes process all incoming signals by applying factors to them (termed weights). Each layer also has an additional element called a bias node. Bias nodes simply output a bias signal to the nodes of the current layer. All inputs to a node are weighted, combined and then processed through a transfer function that controls the strength of the signal relayed through the node’s output connections. A nodes operation is shown in Figure 3. The transfer function serves to normalize a node’s output signal strength between 0 and 1. Page 12 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 When a network is used in recall mode, processing ends at the output layer. During training, the network’s response at the output layer is compared to a supplied set of known answers (training targets). The errors are determined and backpropagated though the network in an attempt to improve the network’s response. The nodal weight factors are adjusted by amounts determined by the training algorithm. The iterative procedure of processing inputs through the network, determining the errors and backpropagating the errors through the network to adjust the weights constitutes the learning process. One training iteration is complete when all supplied training cases have been processed through the network. The training algorithms adjust the weights in an attempt to drive the network’s response error to a minimum. Two factors are used to control the training algorithm’s adjustment of the weights. They are the “learning rate coefficient”, eta, and the “momentum factor”, alpha. If the learning rate is too fast (i.e., eta is too large), network training can become unstable. If eta is too small, the network will learn at a very slow pace. The momentum factor has a smaller influence on learning speeds, but it can influence training stability and promote faster learning for most networks. Page 13 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 The dot product is computed between the inputs and the weight vector. That result is passed through the transfer function to obtain the node’s output signal strength. The output is passed through to the next layer until the output layer is reached. 2.4 Intelligent Agents We want to build intelligent actors, not just intelligent thinkers. Indeed, it is not even clear how one could assess intelligence in a system that never acted -- or, put otherwise, how a system could exhibit intelligence in the absence of action. -Martha Pollack, from Computers and Thought Lecture, IJCAI-91. "Agents" are autonomous, computational entities that can be viewed as perceiving their environment through sensors and acting upon their environment through effectors. To say that agents are computational entities simply means that they physically exist in the form of programs that run on computing devices. To say that they are autonomous means that to some extent they have control over their behaviour and Call act without the intervention of humans and other systems. Agents pursue goals or carry out tasks in order to meet their design objectives, and in general these goals and tasks can be supplementary as well as conflicting. "Intelligent" indicates that the agents pursue their goals and execute their tasks such that they optimize some given performance measures. To say that agents are intelligent does not mean that they are omniscient or omnipotent, nor does it mean that they never fail. Rather, it means that they operate flexibly and rationally in a variety of environmental circumstances, given the information they have and their perceptual and effectual capabilities. A major focus of Distributed Artificial Intelligence therefore is on processes such as problem solving, planning, search, decision making, and learning that make it possible for agents to show flexibility and rationality in their behaviour, and on the realization of such processes in multiagent scenarios. Page 14 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 As is often the case when a technical field provokes commercial interest, there has been a large movement and change of focus in the AI research community to apply the basic artificial intelligence techniques to distributed computer systems, companywide intranets, the Internet, and the World Wide Web. 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2.4.1 Events-Conditions-Actions This is where we have to deal with events, recognize conditions, and take actions. An event is anything that happens to change the environment or anything of which the agent should be aware. Short of having our agent constantly running and checking or polling all the devices and computer systems we want it to monitor, having events signal important occurrences is the next best thing. When an event does occur, the agent has to recognize and evaluate what the event means and then respond to it. Events-conditions-actions define the workings of an agent. Some authors feel that an agent must also be proactive. It must not only react to events, but must be able to plan and initiate actions on its own. An intelligent agent must be able to initiate transactions with other agents on our behalf, using all of the intelligence and domain knowledge they can bring to bear. But this is just an extension of the event-condition-action paradigm. 26 27 28 29 30 31 32 33 2.4.2 Taxonomies of Agents Intelligent agents have been the focus of researchers for years. In that time, many different ways of classifying or categorizing agents have been proposed. One way is to place the agent in the context of intelligence, agency, and mobility. Another approach is to focus on the primary processing strategy of the agent. A third is to categorize the agent by the function it performs. 34 35 36 37 2.4.3 Agency, Intelligence, and Mobility When we talk about software agents, there are three dimensions or axes which we use to measure the capabilities: agency, intelligence, and mobility. Page 15 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 Agency deals with the degree of autonomy the software agent has in representing the user to other agents, applications, and computer systems. Intelligence refers to the ability of the agent to capture and apply application domain-specific knowledge and processing to solve problems. Thus our agents can be relatively dumb, using simple coded logic, or they can be relatively sophisticated, using complex AI-based methods such as inferencing and learning. An agent is mobile if it can move between systems in a network. Mobility introduces additional complexity to an intelligent agent, because it raises concerns about security (the agent’s and the target systems) and cost. Intranets are a particularly ripe environment for mobile intelligent agents to roam because they require less security than in the wide-open Internet. 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 2.4.4 Processing Strategies One of the simplest types of agents are reactive or reflex agents, which respond in the eventcondition- action mode. Reflex agents do not have internal models of the world. They respond solely to external stimuli and the information available from their sensing of the environment (Brooks 1986). Like neural networks, reactive agents exhibit emergent behavior, which is the result of the interactions of these simple individual agents. When reactive agents interact, they share low level data, not high-level symbolic knowledge. One of the fundamental tenets of reactive agents is that they are grounded in physical sensor data and are not operating in the artificial symbol space. Deliberative or goal-directed agents have domain knowledge and the planning capability necessary to take a sequence of actions in the hope of reaching or achieving a specific goal. Deliberative agents may proactively cooperate with other agents to achieve a task. They may use any and all of the symbolic artificial intelligence reasoning techniques which have been developed over the past forty years. Collaborative agents work together to solve problems. Communication between agents is an important element, and while each individual agent is autonomous, it is the synergy resulting from their cooperation that makes collaborative agents interesting and useful. Collaborative agents can solve large problems which are beyond the scope of any single agent and they allow a modular approach based on specialization of agent functions or domain knowledge. In a collaborative agent system, the agents must be able to exchange information about beliefs, desires, and intentions, and possibly even share their knowledge. As mentioned earlier, a mobile agent is a software process (a running program’s code and its state) which can travel across computer systems in a network doing work for its owner. An advantage of mobile agents is that the communications between the home system and the remote systems are reduced. By allowing the agent to go to the remote system and access data locally on that system, we enable a whole new class of applications. For example, mobile agents could provide an easy way to do load balancing in distributed systems. Page 16 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 2.4.5 Multiagent Systems (MAS) What are the fundamental aspects that characterize a MAS and distinguish it from a singleagent system? One can think along the following dimensions: Agent design It is often the case that the various agents that comprise a MAS are designed in different ways. A typical example is software agents, also called softbots, that have been implemented by different people. In general, the design differences may involve the hardware (for example soccer robots based on different mechanical platforms), or the software (for example software agents running different operating systems). We often say that such agents are heterogeneous in contrast to homogeneous agents that are designed in an identical way and have a priori the same capabilities. However, this distinction is not clear-cut; agents that are based on the same hardware/software but implement different behaviours can also be called heterogeneous. Agent heterogeneity can affect all functional aspects of an agent from perception to decision making, while in single-agent systems the issue is simply nonexistent. Environment Agents have to deal with environments that can be either static (timeinvariant) or dynamic (nonstationary). Most existing AI techniques for single agents have been developed for static environments because these are easier to handle and allow for a more rigorous mathematical treatment. In a MAS, the mere presence of multiple agents makes the environment appear dynamic from the point of view of each agent. This can often be problematic, for instance in the case of concurrently learning agents where non-stable behaviour can be observed. There is also the issue which parts of a dynamic environment an agent should treat as other agents and which not. Characteristics of Multiagent systems are: Perception The collective information that reaches the sensors of the agents in a MAS is typically distributed: the agents may observe data that di er spatially (appear at di erent locations), temporally (arrive at di erent times), or even semantically (require di erent interpretations). This automatically makes the world state partially observable to each agent, which has various consequences in the decision making of the agents. An additional issue is sensor fusion, that is, how the agents can optimally combine their perceptions in order to increase their collective knowledge about the current state. Control Contrary to single-agent systems, the control in a MAS is typically distributed decentralized). This means that there is no central process that collects information from each agent and then decides what action each agent should take. The decision making of each agent lies to a large extent within the agent itself. In a cooperative or team MAS, distributed decision-making results in asynchronous computation and certain speedups, but it also has the downside that appropriate coordination mechanisms need to be additionally developed. Coordination ensures that the individual decisions of the agents result in good joint decisions for the group. Knowledge In single-agent systems we typically assume that the agent knows its own actions but not necessarily how the world is affected by its actions. In a MAS, the levels of knowledge of each agent about the current world state can differ substantially. For example, in a team MAS involving two homogeneous agents, each agent may know the available action set of the other agent, both agents may know (by communication) their current perceptions, or they can infer the intentions of each other based on some shared prior knowledge. On the other hand, an agent that observes an adversarial team of agents will Page 17 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 typically be unaware of their action sets and their current perceptions, and might also be unable to infer their plans. In general, in a MAS each agent must also consider the knowledge of each other agent in its decision making. Typically we view communication in a MAS as a two-way process, where all agents can potentially be senders and receivers of messages. Communication can be used in several cases, for instance, for coordination among cooperative agents or for negotiation among selfinterested agents. 10 11 12 13 14 15 16 17 18 19 20 21 2.4.5.1 22 23 24 25 26 27 28 29 30 31 32 33 34 2.4.5.2 35 36 37 38 39 40 41 42 43 2.4.5.3 44 45 46 47 48 2.4.5.4 Communication When our agents need to talk to each other, they can do this in a variety of ways. They can talk directly to each other, provided they speak the same language. Or they can talk through an interpreter or facilitator, providing they know how to talk to the interpreter, and the interpreter can talk to the other agent. There is a level of basic language—the syntax and format of the messages, and there is a deeper level— the meaning or semantics. While the syntax is often easily understood, the semantics are not. For example, two English-speaking agents may get confused if one talks about the boot and bonnet, and the other about the hood and trunk of an automobile. They need to have a shared vocabulary of words and their meaning. This shared vocabulary is called ontology. Blackboards The blackboard architecture was first introduced in the Hearsay II speech recognition project (Erman et al. 1980). It featured a system with multiple knowledge sources or independent agents, each with a specific domain of expertise related to speech analysis. The blackboard is a data structure that is used as the general communication mechanism for the multiple knowledge sources and is managed and arbitrated by a controller (Jagannathan, et al. 1989). As each agent works on its part of the problem, it looks to the blackboard to pick up new information posted by other agents, and they, in turn, post their results to the blackboard. So the blackboard is an information-sharing device, with multiple writers and multiple readers. Thus, the blackboard architecture allows multiple agents to work independently and cooperate to solve a problem. KQML The Knowledge Query and Manipulation Language (KQML) provides a framework for programs and agents to exchange information and knowledge. KQML focuses on message formats and message-handling protocols between running agents, but only the message protocols are specified. The content or language used to represent the content is not. KQML defines the operations that agents may attempt on each other’s knowledge bases, and provides a basic architecture for agents to share knowledge and information through special agents called facilitators. Cooperating Agents With agents, the advantages of the small, independent knowledge sources must be weighted against the considerable disadvantages of introducing a language barrier between them. But in several domains, the benefits have far outweighed the costs. An important aspect of multiagent design systems is that each intelligent agent has its own Page 18 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 perspective on what a “good” or “optimal” design is, depending on its area of expertise. This is not very different from cross-functional development teams. Thus, each agent must be willing to compromise in order to achieve a better overall or global design. This also means that somewhere there is an agent that can provide some measure of the quality of the overall design and can arbitrate conflicts between the more specialized agents. 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2.4.6 Stream filtering agents One formal approach to coordination was developed by Singh. This approach represents each agent as a small skeleton, which includes only the events or transitions made by the agent that are significant for coordination. Coordination requirements are stated as temporal logic formulas involving the events. Formulas have been obtained that can capture the coordination requirements that arise in the literature. The figure shows a skeleton that is suited for agents who filter a stream, monitor a database, or perform any activity iteratively. Its significant events are start (accept an input, if necessary, and begin), error, end of stream, accept (accept an input, if necessary), respond (produce an answer), more (loop back to expecting more input). Here, too, the application-specific computation takes place in the node labelled "Executing." The events error, end of stream, and respond are immediate, and all other events are flexible, and start is in addition triggerable. 27 28 29 30 31 32 33 34 Page 19 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 3 Comparisons In this section a brief overview of the chosen approaches is outlined. The overview is intended to have the purpose of collecting the information in a problem-oriented way, with respect to the CMS Subsystem Supervisor. Following this direction, for each approach the main advantages and disadvantages are listed. 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3.1 Expert Systems 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 3.1.1 Disadvantages of Expert Systems In some form, Expert Systems can be seen as “intelligent”, but are reactive and not proactive and not fully autonomous. In fact they need instructions and intervention, especially in the case of a continuous training coming from their use. The Expert Systems approach was the very first attempt, dated around the '80s, to define systems giving answers to a set of possible questions. So, for construction, they have the advantage of modelling series of conditional choices, and some form of correlation between available data in the query and the steps needed to get an answer. Since the Expert Systems paradigm is based upon the concept of Decision Tree, they can model uncertainty in some way, at least by considering from the queries the information that they were built upon. This kind of behaviour might be good to produce quantitative results, being very near to heuristic criteria applied to the information used to build them. Some real-world applications of Expert Systems are related to providing advice to professionals in information intensive environments, e.g. • • Advice for physicians in analyzing symptoms Advice for car mechanics in repair. They also do not interact with the environment or with other entities except for the user and the trainer, hence they are usually not adaptive. There is also the problem of the size of the database and of using it efficiently. If the system consists of several millions rules, it takes a very powerful control program to produce any conclusions in a reasonable amount of time. If the system also has a large quantity of information in the working memory, this will also slow things down unless a very good indexing and search system is available. Another problem that comes from a large database is that as the number of rules increases the conflict set also becomes large so a good conflict resolving algorithm is needed if the system is to be usable. One more problem is that of gathering the rules. Human experts are expensive and are not extremely likely to want to sit down and write out a large number of rules as to how they come to their conclusions. More to the point, they may not be able to. Although they will usually follow a logical path to their conclusions, putting these into a set of IF ... THEN rules may actually be very difficult and maybe impossible. What may be a way round this problem is to enable Expert Systems to learn as they go, starting off with a smaller number of rules but given the ability to deduce new rules from what they know and what they 'experience', given some feedback from their activity. Page 20 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3.2 Fuzzy Logic 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 3.2.1 Disavantages of Fuzzy Logic Fuzzy logic has been proven successful in solving problems in which conventional, mathematical model based approaches are either difficult to develop or inefficient and costly. Although easy to design, fuzzy logic brings with it some critical problems. As the system complexity increases, it becomes more challenging to determine the correct set of rules and membership functions to describe system behaviour. A significant time investment is needed to correctly tune membership functions and adjust rules to obtain a good solution. For complex systems, more rules are needed, and it becomes increasingly difficult to relate these rules. A hierarchical rule base can be used but even then the problem remains, as relating rules at different hierarchies is difficult. 45 46 47 48 49 3.3 Neural Networks Fuzzy logic converts complex problems into simpler problems using approximate reasoning. The system is described by fuzzy rules and membership functions using human type language and linguistic variables. Thus, one of its best advantages is that one can effectively use his/her knowledge to design the system’s behaviour. A fuzzy logic description can effectively model the uncertainty and nonlinearity of a system. It is extremely difficult, if not impossible, to develop a mathematical model of a complex system to reflect nonlinearity, uncertainty, and variation over time. Fuzzy logic avoids the complex mathematical modelling. Another advantage point in this approach is that all the fuzzy variables of the system are uniformly treated. Doing so the model becomes structure free, meaning that any variable of the model can be accessed with the same flexibility. Fuzzy logic is generally easy to implement using both software on existing microprocessors or dedicated hardware. Hence, for many systems, it is impossible to find a sufficient working set of rules and membership functions. In addition, the use of fixed geometric-shaped membership functions in fuzzy logic limits system knowledge more in the rule base than in the membership function base. Fuzzy logic uses heuristic algorithms for defuzzification, rule evaluation, and antecedent processing. Heuristic algorithms can cause problems mainly because heuristics do not guarantee satisfactory solutions that operate under all possible conditions. Moreover, the generalization capability of fuzzy logic is poor compared to neural nets. The generalization capability is important in order to handle unforeseen circumstances. Once the rules are determined, they remain fixed in the fuzzy logic controller, which is unable to learn (except in adaptive fuzzy systems, which allow some limited flexibility). Conventional fuzzy logic cannot generate rules (users cannot write rules) that will meet a prespecified accuracy. Accuracy is improved only by trial and error. Conventional fuzzy logic does not incorporate previous state information (very important for pattern recognition, like speech) in the rule base. One advantage of the network representation is that it can be implemented in massively parallel computers with each neuron simultaneously doing its calculations. Several commercial neural network chips and boards are available, but most people still use neural network ``simulators'' on standard serial machines. This paper will not discuss parallel Page 21 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 hardware implementation, but it is important to remember that parallel processing was one of the motivations behind the development of artificial neural networks. Neural nets try to mimic the human brain’s learning mechanism. Like fuzzy logic, neural net based solutions do not use mathematical modelling of the system, but learn system behaviour by using system input-output data. Neural nets have good generalization capabilities. The learning and generalization capabilities of neural nets enable it to more effectively address nonlinear, time variant problems, even under noisy conditions. Thus, neural nets-can solve many problems that are either unsolved or inefficiently solved by existing techniques, including fuzzy logic. 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 3.3.1 Disadvantages of Neural Networks A major problem with neural nets is their “Black Box” nature, or rather, the relationships of the weight changes with the input-output behaviour during training and use of trained system to generate correct outputs using the weights. Our understanding of the “Black Box” is incomplete compared to a fuzzy rule based system description. From an implementation point of view, neural nets may not provide the most cost effective solution. Neural net implementation is typically more costly than other technologies; in particular fuzzy logic (embedded control is a good example). A software solution generally takes a long time to process and a dedicated hardware implementation is more common for fuzzy logic than neural nets, due to cost. 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 3.4 Intelligent Agents It is also difficult, if not impossible, to determine the proper size and structure of a neural net to solve a given problem. Also, neural nets do not scale well. Manipulating learning parameters for learning and convergence becomes increasingly difficult. Between the advantages of using Intelligent Agents, one could argue that this paradigm might couple well with the needs of a distributed system for log analysis. This is indeed the desirable scenario in which the bulk of the information is processed near the remote sources of data, while some form of centralized gathering can be done on the outputs of the agents' multitude. This scenario falls inside the Multiple Agent Systems scheme, in which • • Single agent or groups are designed separately (modular) The approach itself is flexible and fault tolerant. At this point, while the processing structure might be adequate for a distributed triggering/filtering task, the main question which arises is about the simplicity of reconfiguring and making the single agents evolve in order to make better their (local) job. If an organization is too much spread across multiple hosts, that of reaching, modifying and enhancing multiple independent agents can be a serious issue in the real world. Hence, an interesting idea is to consider a centrally designed architecture. The main advantage of such an approach is its relative simplicity and predictability, since • components are known • interaction language and protocols are agreed upon • Agents can be (and usually are) cooperative • Agents share architecture - software reuse. Page 22 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 In this case, the drawbacks are: • Costly maintenance (adding new agents may necessitate the single system re-design) • The system may be less fault tolerant. • Difficult to inter-operate with others • Not reflecting real-world requirements (not realistic), especially in the case of a not centrally represent able environment. While the idea of an Open Multiple Agent System is somewhat interesting, its disadvantages come directly from its points of force, i.e.: • The overall behaviour of the system might be unpredictable • A stronger effort is needed on the communication protocols side, since languages and ontology may vary across agent types. A truly open and expandable architecture could be designed only on the top of open and expandable protocols. The more obvious idea may be that of using XML and SOAP. • Self-interest and malicious behaviours are in general difficult to avoid • A more careful agent and interaction protocols design is needed. One key advantage of this ability for social interaction is that the agents can form a domain agent society. Basically, this acts like a user group for programmers - if the agent doesn't have the answer itself, it will ask other members of the domain agent society. Security would have to be factored into any society such as this, since a company wouldn't necessarily want its agents answering all the queries they get. If our mobile agents had a way to describe their capabilities to other agents, there would be no need for the potentially costly process of the agent trying to work out which other agents to trust. A convenient way of doing this is to use WSDL. In addition to the above seen choices about the overall structure of an agent-based system doing distributed data analysis, another design decision to consider is about the internal structure of the agents taking part in the computations. In this perspective, we may distinguee between reactive and deliberative agents. Reactive agents act mainly as triggers: upon input from the environment, they react with action execution. Deliberative agents invoke a reasoning process upon input, and any action is based on the results of the reasoning. Obviously, agents may populate the whole spectrum between purely reactive and maximally deliberative. This decision, however, has to meet with the goals which have to be reached through the MAS, keeping in mind the main vantages and advantages of the minimalistic reactive behaviour of the single agent. In fact, their internal complexity is computationally tractable, mechanisms dealing with fault tolerance can be deployed, and what is more important is that overall complex behaviour emerges from component interaction, not from the single unit sophistication. Some drawbacks of the reactive approach are that, without a model of the environment, agents need sufficient information to determine the actions to be taken, the fact that agents are “shortsighted” may limit decision quality, and, although an overall complex behavior can emerge from the multitudes of components, the relationship between components is not clear., i.e. It's difficult (if not impossible) to formalize. Perhaps the biggest inhibitor to widespread use of mobile agents is security. The common name for software that comes unbidden onto systems and starts executing is viruses. Page 23 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 4 Conclusion This document wants to be a preliminary study about the applicability of various techniques to a particular problem. What can be said at this point is that the whole purpose of the project will probably be addressed not by a single technique by itself, but by a careful design of a system containing subparts implementing various approaches. What can be suggested is to evaluate on the field the different technologies and approaches, in order to be able to study their applicability first from the theoretic point of view, then considering also the organizational aspects of a real deployment. This proposal starts from the consideration that there probably is not an approach better than another, but each can be used to gain a different perspective of the problem and, in particular, some approaches can be mixed. Other suggestion is that: more the solution is simple much will be the possibilities that the final system will works; so we recommend to not follow attractive technologies just because are “sexy” but to keep your Subsystem Supervisor as simple as possible and to have a “rapid prototype” approach in order to understand how much the adopted solutions fill in your requirement and are flexible. 5 Bibliography 1. The CMS Project: http://cmsdoc.cern.ch/cms/TDR/DAQ/daq.html 2. M. P. Singh. A customizable coordination service for autonomous agents. In Proceedings of the 4th International Workshop on Agent Theories, Architectures, and Languages (ATAL), July 1997. 3. L. D. Erman, F. Hayes-Roth, V. R. Lesser, D. Raj Reddy. The Hearsay-II Speech Understanding System: Integrating Knowledge to Resolve Uncertainty, ACM Computing Surveys (CSUR), Volume 12, Issue 2, Pages: 213 – 253, 1980 4. V. Jagannathan, R. Dodhiawala, L.S. Baum, eds. Blackboard Architectures and Applications. San Diego: Academic Press. 1989 5. R.A. Brooks, A robust layered control system for a mobile robot. IEEE Journal of Robotics and Automation, 2:14-23, 1986 6. G. Weiss et al. Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence. MIT Press, 2000. 7. J. P. Bigus, J. Bigus, Constructing Intelligent Agents Using Java: Professional Developer's Guide. ISBN: 0-471-39601-X, Wiley, 2001 8. Alberto Martelli, BISS 2004: “Intelligent agents: modeling and reasoning techniques” 9. S. M. Brown, R. A. Harrington, E. Santos Jr., S. B. Banks, User Models, Intelligent Interface Agents, and Expert Systems UM 97 Workshop: Embedding User Models in Intelligent Applications, Ed. Vadim Stefanuk, Chia Laguna, Sardinia , Italy, June 2-5 1997. 10.J. Dix, Th. Eiter, Heterogenous Agent Systems, ESSLLI 02, Trento, August 2002 11.R. D. De Veaux, L. H. Ungar, A Brief Introduction to Neural Networks, American Statistician,1995 12.E. H. Durfee, V. R. Lesser, D. D. Corkill, Trends in Cooperative Distributed Problem Solving,IEEE Transactions on Knowledge and Data Engineering, Volume 1, Issue 1, Pages: 63 - 83, March 1989 13.R.Fullér, Neural Fuzzy Systems, Åbo Akademis tryckeri, Åbo, ESF Series A:443, 1995 14.Fuzzy Logic Primer - A Brief Intoduction to Fuzzy Logic, Togai InfraLogic Inc., 1992 15.D. Haverkamp, S. Gauch, Intelligent Information Agents: Review and Challenges for Distributed Information Sources, Journal of the American Society for Information Science 49:4(April): 304-311, 1998 Page 24 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 16.E. Khan, Neural fuzzy based intelligent systems and applications, In ( Jain, L.C and N. M.Martin eds.) Fusion of neural networks, fuzzy sets and genetic algorithms: industrial Applications, CRC Press, Washington, D.C. p. 331, 1999 17.J. J. Pomykalski, W. F. Truszkowski, D. E. Brown, EXPERT SYSTEMS Wiley Encyclopedia for Electrical and Electronics Engineering, J. Webster (Editor), February 1999 18.N. Vlassis, A concise introduction to multiagent systems and distributed AI, Informatics Institute, University of Amsterdam, September 2003. (Unpublished) 19.M. Wooldridge, N. R. Jennings, Intelligent Agents: Theory and Practice, Knowledge Engineering Review, 1995 20.Subrahmanian,Bonatti,Dix,Eiter,Kraus,Özcan,Ross, Heterogenous Agent Systems MIT Press, August 2000 21.E.A. Feigenbaum, P. McCorduck, and H. P. Nii. 1988. The Rise of the Expert Company: How Visionary Companies are Using Artificial Intelligence to Achieve Higher Productivity and Profits. New York: Times Books. 22. The GridCC project www.gridcc.org 6 Appendix A: WWW links BotSpot http://www.botspot.com The best overall source of information on intelligent agent systems. BotSpot maintains an outstanding site which lists agent systems by category, with numerous links to both research and commercial product sites. A few of the most outstanding other products and sites are listed below, but this is an area of intense research and development. If you are interested in further reading, start with BotSpot. MIT Media Laboratory’s Software Agents Group http://agents.www.media.mit.edu/groups/agents/ Investigates computer systems that can delegate tasks. The group develops techniques and builds prototype agent systems for testing. IBM’s Intelligent Miner http://www.software.ibm.com/data/iminer Enables users to mine structured data stored in conventional databases or flat files. Intelligent Miner for Text extracts patterns from text, organizes documents by subject, finds predominant themes in a collection of documents, and searches for relevant documents. Intelligent Miner uses traditional statistical analysis, neural methods, and optimization to categorize data, and then stores the document profile and statistical information in a DB 2 database while the document content is stored in a full-text index. Microsoft Research’s Decision Theory & Adaptive Systems Group http://www.research.microsoft.com/msbn/default.htm Actively develops and uses belief networks. Microsoft is also known for its earlier forays into agent-based systems, such as Microsoft Bob, or the interface agents in Microsoft Office. Autonomy http://www.autonomy.com/ Automatically categorizes text in order to organize collections of materials into directories, as well as to index the materials based on meaning rather than keyword matching. Profiles of users are also created, based on the text they write or read. Users and documents are matched to route materials to appropriate members of an organization automatically. Page 25 of 26 On-line Error Analysis Using AI techniques Date: 10/14/2005 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 General Magic http://www.genmagic.com/MCW Magic Cap creates voice-enabled, rules based agents, including myTalk [http://www.mytalk.com]. TextWise http://www.textwise.com Creates adaptive information agent systems such as EVA and EMMA. Open Sesame http://www.opensesame.com/ This application is based on work by Alper Caglayan, author of the Agent Sourcebook. Open Sesame customizes content, user interface, advertising, and product recommendations for each user at a Web site. The software builds a dynamic interest profile of each user based on their individual preferences and actions. Alexa Internet http://www.alexa.com Makes recommendations on related sites. Alexa stores the behavioral patterns of Web travellers and information about content on the Web. Links are generated using data mining techniques and intelligent technologies, which identify usage patterns and the relationships between the pages, based on common hypertext links and similarities in content. DataBots http://www.imagination-engines.com/databots.htm Imagination Engines Incorporated (IEI) uses ordinary Microsoft Excel spreadsheets to create neural networks for adaptive artificial organisms and knowledge agents. BullsEye from IntelliSeek http://www.intelliseek.com Uses a collection of custom intelligent agents, tapping over 300 search engines and 600 plus databases on the Internet, to find, analyze, filter, report, manage, and track information. Mata Hari http://www.thewebtools.com/ A rule-based agent non-adaptive filtering agent that searches 140 Web search engines simultaneously. Verity, Inc. http://www.verity.com Uses “Topic Agents” for automatic categorization of documents. Page 26 of 26