Intelligent Agents and Systems
The following information is provided by Clare Congdon:
Artificial Intelligence
Artificial Intelligence or AI most simply refers to being clever about doing a task on a computer when the problem is somehow "too big" to pursue the problem via more traditional computational methods. Because AI got a bad rap by not delivering on its early promise and because people's visions of AI are skewed by things like science fiction movies, the term "Computational Intelligence" is coming into use among practictioners.
Typically, an AI problem is "too big" in some or all of the following senses:
- The task is not well enough understood to be solved algorithmically (as a series of steps)
- There is a vast amount of knowledge required to perform the task and it is unknown how to best encode this knowledge into the system
- There are an enormous number of possible solutions, too many to evaluate them all
- We're happy to settle for "the best" solution we can find in a reasonable timeframe
One way to think about AI tasks is that there are too many options to consider them all, so we have to be clever about which possibilities are considered. AI systems are typically marked by search, which means considering different possible outcomes from different courses of action, and heuristics, which are rules of thumb about which options are the most promising ones to consider. The different possible search stragies are task independent while heuristics are specific to the task at hand.
It's a common saw that "once it works, it's no longer AI", meaning that when "the best" solution crosses a certain threshold of performance, what was once "AI research" becomes mainstream. This is true of voice-recognition software, for example ("press or say one" on the phone), and the grammar correction in word processors (both of these are flawed, but in many cases, still helpful).
Machine Learning
Machine Learning (ML) refers most generally to computer programs that adapt as they run. (The name of the field dates back to Alan Turing, in the days when "computers" were people and "computing machines" were the electronic counterparts.) Identifying patterns is an essential ability for both human and computer learning, as one must be able to recognize "I've seen this before" (or "I've seen something like this before") to respond appropriately in the present and to anticipate possible outcomes in the future. Thus, machine learning also refers to the process of extracting patterns from data, such as the specialization called data mining.
Some ML systems work by modifying their own code, usually implemented in an interpreted language such as LISP that allows the introduction of new functions (or redefinition of existing functions), or in a production system that allows the introduction of new rules. More commonly, ML systems modify data structures to capture the patterns of what is known about the world, usually a form of generalizations. Just as with human learning, this process is error prone. (For example, when my son was about 2yo, and on the cusp of learning color names, he shouted out "lobster!" one day when seeing a stop sign.)
Genetic Algorithms / Evolutionary Computation
Genetic Algorithms (GA's), also called Evolutionary Computation (EC), is an a computational approach in which one evolves a solution to a problem over a number of generations. The approach is (obviously) inspired by natural evolution and genetics, but primarily at the level of metaphor. Nature is a pretty good problem solver.
To use the GA approach, the set of possible solutions to the task must be represented in a relatively simple data structure, such as a string or a tree structure, and one must have a means of scoring each potential solution created. A GA works with a population of possible solutions to the problem; typically these are generated at random to begin. (Of course, these are not presumed to be particularly good solutions to the problem, but they serve as a starting point.) Each of the solutions in the population is scored and the higher-scoring solutions are more likely to be chosen as parents; parents produce offspring solution through processes such as recombination and mutation. The process repeats until a stopping criteria is reached, such as a given number of generations. Over a number of generations, the population tends to include better and better solutions to the problem.
Complex Adaptive Systems
Complex Systems is an approach to modelling phenomena as simple interactions among simple agents, and yeilding a behavior much more complex than one would initially predict by looking at the rules of interaction. The complex behavior is said to emerge from the system. For example, bird flocking has been successfully modelled with three simple rules for each bird, controlling separation, alignment, and cohesion relative to other birds nearby. A typical component of a complex systems model is the reliance on local knowledge of the individual agents (e.g., a bird) leading to a behavior or effect that is interesting on the global level (how the flock behaves).
When the behavior of the components of the system changes over time, this is a Complex Adaptive System.


