Artificial intelligence (AI) is the mimicking
of human thought and cognitive processes to solve complex problems
automatically. AI uses techniques for writing computer code to represent
and manipulate knowledge. Different techniques mimic the different
ways that people think and reason (see case-based
reasoning and model-based reasoning
for example). AI applications can be either stand-alone software,
such as decision support software, or embedded within larger software or hardware systems.
AI has been around for about 50 years and while
early optimism about matching human reasoning capabilities quickly
has not been realized yet, there is a significant and growing
set of valuable applications. AI hasn't yet mimicked much of the common-sense
reasoning of a five-year old child. Nevertheless, it can successfully
mimic many expert tasks performed by trained adults, and there is
probably more artificial intelligence being used in practice in one
form or another than most people realize.
Really intelligent applications will only be
achievable with artificial intelligence and it is the mark of a successful
designer of AI software to deliver functionality that can't be delivered
without using AI. See quotations
The goal of action-based planning is to determine
how to decompose a high level action into a network of subactions
that perform the requisite task. Therefore the major task within such
a planning system is to manage the constraints that apply to the interrelationships
(e.g., ordering constraints) between actions. In fact, action-based
planning is best viewed as a constraint
The search for a plan cycles through the following
steps: choose a constraint and apply the constraint check; if the
constraint is not satisfied, choose a bug from the set of constraint
bugs; choose and apply a fix, yielding a new plan and possibly a new
set of constraints to check.
In contrast, state-based planners generally
conduct their search for a plan by reasoning about how the actions
within a plan affect the state of the world and how the state of the
world affects the applicability of actions.
A computer interface that automatically and
dynamically adapts to the needs and competence of each individual
user of the software.
Agents are software programs that are
capable of autonomous, flexible, purposeful and reasoning action in
pursuit of one or more goals. They are designed to take timely action
in response to external stimuli from their environment on behalf of
a human. When multiple agents are being used together in a system,
individual agents are expected to interact together as appropriate
to achieve the goals of the overall system. Also called autonomous
agents, assistants, brokers, bots, droids, intelligent agents, software
There are two levels of agent architecture,
when a number of agents are to work together for a common goal. There
is the architecture of the system of agents, that will determine how
they work together, and which does not need to be concerned with how
individual agents fulfil their sub-missions; and the architecture
of each individual agent, which does determine its inner workings.
The architecture of one software agent will
permit interactions among most of the following components (depending
on the agent's goals): perceptors, effectors, communication channels,
a state model, a model-based reasoner, a planner/scheduler, a reactive
execution monitor, its reflexes (which enable the agent to react immediately
to changes in its environment that it can't wait on the planner to
deal with), and its goals. The perceptors, effectors, and communication
channels will also enable interaction with the agent's outside world.
The great practical benefits of AI applications
and even the existence of AI in many software products go largely
unnoticed by many despite the already widespread use of AI techniques
in software. This is the AI effect. Many marketing people don't use
the term "artificial intelligence" even when their company's products
rely on some AI techniques. Why not? It may be because AI was oversold
in the first giddy days of practical rule-based expert systems in
the 1980s, with the peak perhaps marked by the Business Week cover
of July 9, 1984 announcing, Artificial Intelligence, IT'S HERE.
James Hogan in his book, Mind Matters, has
his own explanation of the AI Effect:
"AI researchers talk about a peculiar phenomenon
known as the "AI effect." At the outset of a project, the goal is
to entice a performance from machines in some designated area that
everyone agrees would require "intelligence" if done by a human. If
the project fails, it becomes a target of derision to be pointed at
by the skeptics as an example of the absurdity of the idea that AI
could be possible. If it succeeds, with the process demystified and
its inner workings laid bare as lines of prosaic computer code, the
subject is dismissed as "not really all that intelligent after all."
Perhaps ... the real threat that we resist is the further demystification
of ourselves...It seems to happen repeatedly that a line of AI work
... finds itself being diverted in such a direction that ... the measures
that were supposed to mark its attainment are demonstrated brilliantly.
Then, the resulting new knowledge typically stimulates demands for
application of it and a burgeoning industry, market, and additional
facet to our way of life comes into being, which within a decade we
take for granted; but by then, of course, it isn't AI."
AI Languages and Tools
AI software has different requirements from
other, conventional software. Therefore, specific languages for AI
software have been developed. These include LISP, Prolog, and Smalltalk.
While these languages often reduce the time to develop an artificial
intelligence application, they can lengthen the time to execute the
application. Therefore, much AI software is now written in languages
such as C++ and Java, which typically increases development time,
but shortens execution time. Also, to reduce the cost of AI software,
a range of commercial software development tools have also been developed.
Stottler Henke has developed its own proprietary tools for some of the specialized
applications it is experienced in creating.
An algorithm is a set of instructions that
explain how to solve a problem. It is usually first stated in English
and arithmetic, and from this, a programmer can translate it into
executable code (that is, code to be run on a computer).
Applications of Artificial Intelligence
The actual and potential applications are virtually
endless. Reviewing Stottler Henke's work will give you some idea of the range.
In general, AI applications are used to increase the productivity
of knowledge workers by intelligently automating their tasks; or to
make technical products of all kinds easier to use for both workers
and consumers by intelligent automation of different aspects of the
functionality of complex products.
Associative memories work by recalling information
in response to an information cue. Associative memories can be autoassociative
or heteroassociative. Autoassociative memories recall the same information
that is used as a cue, which can be useful to complete a partial pattern.
Heteroassociative memories are useful as a memory. Human long-term
memory is thought to be associative because of the way in which one
thought retrieved from it leads to another. When we want to store
a new item of information in our long term memory it typically takes
us 8 seconds to store an item that can't be associated with a pre-stored
item, but only one or two seconds, if there is an existed information
structure with which to associate the new item.
Most diagnosis work is done by expert humans
such as mechanics, engineers, doctors, firemen, customer service agents,
and analysts of various kinds. All of us usually do at least a little
diagnosis even if it isn't a major part of our working lives. We use
a range of techniques for our diagnoses. Primarily, we compare a current
situation with past ones, and reapply, perhaps with small modifications,
the best past solutions. If this doesn't work, we may run small mental
simulations of possible solutions through our minds, based on first
principles. We may do more complex simulations using first principles
on paper or computers looking for solutions. Some problems are also
amenable to quantitative solutions. We may hand off the problem to
greater experts than ourselves, who use the same methods. The problem
with humans doing diagnosis is that it often takes a long time and
a lot of mistakes to learn to become an expert. Many situations just
don't reoccur frequently, and we may have to encounter each situation
several time to become familiar with it. Automatic diagnosis systems
can help avoid these problems, while helping humans to become experts
faster. They work best in combination with a few human experts, as
there are some diagnosis problems that humans are better at solving,
and also because humans are more creative and adaptive than computers
in coming up with new solutions to new problems.
A piece of AI software that automatically performs
a task on a human's behalf, or even on the behalf of another piece
of AI software, so together they accomplish a useful task for a person
somewhere. They are capable of independent action in dynamic, unpredictable
environments. "Autonomous agent" is a trendy term that is sometimes
reserved for AI software used in conjunction with the Internet (for
example, AI software that acts as your assistance in intelligently
managing your e-mail).
Autonomous agents present the best hope from
gaining additional utility from computing facilities. Over the past
few years the term "agent" has been used very loosely. Our definition
of a software agent is: "an intelligent software application with
the authorization and capability to sense its environment and work
in a goal directed manner." Generally, the term "agent" implies "intelligence",
meaning the level of complexity of the tasks involved approaches that
which would previously have required human intervention.
A modeling technique that provides a mathematically
sound formalism for representing and
reasoning about uncertainty, imprecision, or unpredictability in our
knowledge. For example, seeing that the front lawn is wet, one might
wish to determine whether it rained during the previous night. Inference
algorithms can use the structure of the Bayesian network to calculate
conditional probabilities based on whatever data has been observed
(e.g., the street does not appear wet, so it is 90% likely that the
wetness is due to the sprinklers). Bayesian networks offer or enable
a set of benefits not provided by any other system for dealing with
uncertainty - an easy to understand graphical representation, a strong
mathematical foundation, and effective automated tuning mechanisms.
These techniques have proved useful in a wide variety of tasks including
medical diagnosis, natural language understanding, plan recognition,
and intrusion detection. Also called belief networks, Bayes networks,
or causal probabalistic networks.
Case-based reasoning (CBR) solves a current
problem by retrieving the solution to previous similar problems and
altering those solutions to meet the current needs. It is based upon
previous experiences and patterns of previous experiences. Humans
with years of experience in a particular job and activity (e.g., a
skilled paramedic arriving on an accident scene can often automatically
know the best procedure to deal with a patient) use this technique
to solve many of their problems. One advantage of CBR is that inexperienced
people can draw on the knowledge of experienced colleagues, including
ones who aren't in the organization, to solve their problems. Synonym:
Reasoning by analogy.
Automated classification tools such as decision
trees have been shown to be very
effective for distinguishing and characterizing very large volumes
of data. They assign items to
one of a set of predefined classes of objects based on a set of observed
features. For example, one might determine whether a particular
mushroom is "poisonous" or "edible" based on its color, size, and
gill size. Classifiers can be learned automatically from a set
of examples through supervised
learning. Classification rules are rules that discriminate between
different partitions of a database based
on various attributes within the database. The
partitions of the database are based on an attribute called the classification
label (e.g., "faulty" and "good").
Clustering is an approach to learning that
seeks to place objects into meaningful groups automatically based
on their similarity. Clustering, unlike classification,
does not require the groups to be predefined with the hope that the
algorithm will determine useful but hidden groupings of data points.
The hope in applying clustering algorithms is that they will discover
useful but unknown classes of items. A well-publicized success
of a clustering system was NASA's discovery of a new class of stellar
spectra. See IQE, GIIF, WebMediator, Rome Graphics, and data
mining for examples of applications that use clustering.
Artificial intelligence can be defined as the
mimicking of human thought to perform useful tasks, such as solving
complex problems. This creation of new paradigms, algorithms, and
techniques requires continued involvement in the human mind, the inspiration
of AI. To that end, AI software designers team with cognitive psychologists
and use cognitive science concepts, especially in knowledge elicitation
and system design.
Cognitive task analysis (CTA) is a systematic
process by which the cognitive elements of task performance are identified.
This includes both domain knowledge and cognitive processing. Thus,
CTA focuses on mental activities that cannot be observed and is in
contrast to behavioral task analysis that breaks the task down into
observable, procedural steps. CTA is most useful for highly complex
tasks with few observable behaviors. Examples of cognitive processing
elements include: to decide, judge, notice, assess, recognize, interpret,
prioritize, and anticipate. Examples of domain knowledge elements
include concepts, principles, and interrelationships; goals and goal
structures; rules, strategies and plans; implicit knowledge; and mental
The results from CTA have various applications
such as identifying content to be included within training programs
for complex cognitive tasks,
research on expert-novice differences in terms of domain knowledge
and cognitive processing during task performance,
modeling of expert performance to support expert system design, and
the design of human-machine interfaces.
A technique for leveraging historical data
about preferences of a body of users to help make recommendations
or filter information for a particular user. Intuitively, the
goal of these techniques is to develop an understanding of what may
be interesting to a user by uncovering what is interesting to people
who are similar to that user. See GIIF and IQE for examples of applications
that use collaborative filtering techniques.
Ordinary people manage to accomplish an extraordinary
number of complex tasks just using simple, informal thought processes
based on a large amount of common knowledge. They can quickly plan
and undertake a shopping expedition to six or seven different shops,
as well as pick up the kids from soccer and drop a book back at the
library, quite efficiently without logically considering the hundreds
of thousands of alternative ways to plan such an outing. They can
manage their personal finances, or find their way across a crowded
room dancing without hitting anyone, just using commonsense reasoning.
Artificial intelligence is far behind humans in using such reasoning
except for limited jobs, and tasks that rely heavily on commonsense
reasoning are usually poor candidates for AI applications.
Making sense of what we see is usually easy
for humans, but very hard for computers. Practical vision systems
to date are limited to working in tightly controlled environments.
Synonym: machine vision
Constraints are events, conditions or rules
that limit our alternatives for completing a task. For example, the
foundation of a building has to be laid before the framing is done;
a car has to be refueled once every four hundred miles, a neurosurgeon
is needed to perform brain surgery, or a Walkman can only operate
on a 9-volt battery.
Satisfying constraints is particularly important
in scheduling complex activities. By first considering applicable
constraints, the number of possible schedules to be considered in
a search for an acceptable schedule can be reduced enormously, making
the search process much more efficient. Constraint satisfaction
techniques can be used to solve scheduling problems directly. Constraint
satisfaction algorithms include heuristic constraint- based search
Information processing that deals with the
association, correlation, and combination of data and information
from single and multiple sources to achieve a more complete and more
accurate assessment of a situation. The process is characterized by
continuous refinement of its estimates and assessments, and by evaluation
of the need for additional sources, or modification of the process
itself, to achieve improved results.
The non-trivial process of uncovering interesting
and useful relationships and patterns in very large databases to guide
better business and technical decisions. Data mining is becoming
increasingly important due to the fact that all types of commercial
and government institutions are now logging huge volumes of data and
now require the means to optimize the use of these vast resources.
The size of the databases to which data mining techniques are applied
is what distinguishes them from more traditional statistical and machine
learning approaches, which can be computationally costly. Data mining
forms part of the overall process of 'Knowledge Discovery in Databases.'
Data mining is preceded by the preliminary stages of preparing and
cleaning up the data, and followed by the subsequent incorporation
of other relevant knowledge, and the final interpretation. See
all the data mining projects for examples of use of data mining techniques.
Software that helps humans make decisions,
particularly about complex matters when a high degree of expertise
is needed to make a good decision.
Decision support is a broad class of applications
for artificial intelligence software. There are many situations when
humans would prefer machines, particularly computers, to either automatically
assist them in making decisions, or actually make and act on a decision.
There are a wide range of non-AI decision support systems such as
most of the process control systems successfully running chemical
plants and power plants and the like under steady state conditions.
However, whenever situations become more complex—for example, in chemical
plants that don't run under steady state, or in businesses when both
humans and equipment are interacting—intelligent decision support
is required. That can only be provided by automatic decision support
software using artificial intelligence techniques. Stottler Henke has created
a wide range of decision support applications that provide examples
of such situations. Synonym: intelligent decision support.
Decision theory provides a basis for making
choices in the face of uncertainty, based on the assignment of probabilities
and payoffs to all possible outcomes of each decision. The space of
possible actions and states of the world is represented by a decision
A decision tree is a graphical representation
of a hierarchical set of rules that describe how one might evaluate
or classify an object of interest based on the answers to a series
of questions. For instance, a decision tree can codify the sequence
of tests a doctor might take in diagnosing a patient. Such a
decision tree will order the tests based on their importance to the
diagnostic task. The result of each successive test dictates
the path you take through the tree and therefore the tests (and their
order) that will be suggested. When you finally reach a node
in which there is no further tests are suggested, the patient has
been fully diagnosed. Decision trees have the advantage of being easy
to understand because of their hierarchical rule structure, and explanations
for their diagnoses can be readily and automatically generated.
Decision trees can be automatically developed
from a set of examples and are capable of discovering powerful predictive
rules even when very large numbers of variables are involved.
These algorithms operate by selecting the test that best discriminates
amongst classes/diagnoses and then repeating this test selection process
on each of the subsets matching the different test outcomes (e.g.,
"patients with temperatures greater than 101ºF" and "patients
with temperatures less than or equal to 101ºF"). This process
continues until all the examples in a particular set have the same
Dependency maintenance is the technique of
recording why certain beliefs are held, decisions were made, or actions
were taken, in order to facilitate revising those decisions, actions,
or beliefs in the face of changing circumstances. Several families
of truth maintenance
systems have been developed to facilitate dependency maintenance
in particular kinds of situations (e.g. need to consider many alternate
scenarios versus a single scenario, frequency with which assumptions
With document clustering techniques, documents
can be automatically grouped into meaningful classes so that users
of a database of full-text documents can easily search through related
documents.Finding individual documents from amongst large on-line,
full-text collections has been a growing problem in recent years due
to the falling price of computer storage capacity and the networking
of document databases to large numbers of people. Traditional library
indexing has not provided adequate information retrieval from these
large sources. The techniques for document clustering generally involve
some natural language processing along with a collection of statistical
An overworked word for AI people. "Domain"
can mean a variety of things including a subject area, field of knowledge,
an industry, a specific job, an area of activity, a sphere of influence,
or a range of interest, e.g., chemistry, medical diagnosis, putting
out fires, operating a nuclear power plant, planning a wedding, diagnosing
faults in a car. Generally, a domain is a system in which a particular
set of rules, facts, or assumptions operates. Humans can usually easily
figure out what's meant from the context in which "domain" is used;
computers could probably not figure out what a human means when he
or she says "domain."
The person who knows how to perform an activity
within the domain, and whose knowledge is to be the subject of an
expert system. This person's or persons' knowledge and method of work
are observed, recorded, and entered into a knowledge base for use
by an expert system. The domain expert's knowledge may be supplemented
by written knowledge contained in operating manuals, standards, specifications,
computer programs, etc., that are used by the experts. Synonym: subject-matter
Dynamic Web Pages
Emergence is the phenomenon of complex patterns
of behavior arising out of the myriad interactions of simple agents,
which may each operate according to a few simple rules. To put it
another way, an emergent system is much more than simply the sum of
its parts. It can happen without any grand master outside the system
telling the individual agents how to behave. For example, all the
people in a modern city acting in their individual capacities as growers,
processors, distributors, sellers, buyers, and consumers of food collectively
create a food market matching supply and demand of thousands of different
items, without an overall plan. An ant colony provides another example
of simple agents, each operating according to a few simple rules,
producing a larger system that finds food, provides shelter and protection
for its members. Artificial intelligence software running on powerful
computers can demonstrate useful emergent behavior as well, such as
that demonstrated in automatic scheduling software that creates near-optimal
schedules for complex activities subject to many constraints.
An expert system encapsulates the specialist
knowledge gained from a human expert (such as a bond trader or a loan
underwriter) and applies that knowledge automatically to make decisions.
For example, the knowledge of doctors about how to diagnose a disease
can be encapsulated in software. The process of acquiring the knowledge
from the experts and their documentation and successfully incorporating
it in the software is called knowledge engineering, and requires considerable
skill to perform successfully. Applications include customer service
and helpdesk support, computer or network troubleshooting, regulatory
tracking, autocorrect features in word processors, document
generation such as tax forms, and scheduling.
Traditional Western logic systems assume that
things are either in one category or another. Yet in everyday life,
we know this is often not precisely so. People aren't just short or
tall, they can be fairly short or fairly tall, and besides we differ
in our opinions of what height actually corresponds to tall, anyway..
The ingredients of a cake aren't just not mixed or mixed, they can
be moderately well mixed. Fuzzy logic provides a way of taking our
commonsense knowledge that most things are a matter of degree into
account when a computer is automatically making a decision. For example,
one rice cooker uses fuzzy logic to cook rice perfectly even if the
cook put in too little water or too much water.
To be added
Game theory is a branch of mathematics that
seeks to model decision making in conflict situations.
Search algorithms used in machine learning
which involve iteratively generating new candidate solutions by combining
two high scoring earlier (or parent) solutions in a search for a better
solution. So named because of its reliance on ideas drawn from biological
Refers to the basic size of units that can
be manipulated. Often refers to the level of detail or abstraction
at which a particular problem is analyzed. One characteristic of human
intelligence, Jerry R. Hobbs has pointed out, is the ability to conceptualize
a world at different levels of granularity (complexity) and to move
among them in considering problems and situations. The simpler the
problem, the coarser the grain can be and still provide effective
solutions to the problem.
Databases that contain different kinds of data,
e.g, text and numerical data.
An heuristic is commonly called a rule of thumb.
That is, an heuristic is a method for solving a problem that doesn't
guarantee a good solution all the time, but usually does. The term
is attributed to the mathematician, George Polya. An example of an
heuristic would be to search for a lost object by starting in the
last place you can remember using it.
Computers and other machines should be designed
to effectively serve people's needs and requirements. All too often
they're not. Commonly cited examples of this are the difficulty people
have in setting up their VCR to record a TV show; and the difficulties
people have in setting up a home computer facility, or hooking up
to the Internet. Artificial intelligence software can be used to deliver
more human-centered computing, improving system usability, extending
the powerfulness of human reasoning and enabling greater collaboration
amongst humans and machines, and promoting human learning. A goal
of human-centered computing is for cooperating humans and machines
to compensate for each other's respective weaknesses (e.g., machines
to compensate for limited human short-term memory and the slowness
with which humans can search through many alternative possible solutions
to a problems; and for humans to compensate machines for their more
limited pattern-recognition capability, language processing, and creativity)
in support of human goals.
Synonym: mixed initiative planning.
Many of Stottler Henke's artificial intelligence
software applications use multiple AI techniques in combination. For
example, case-based reasoning may be used in combination with model-based
reasoning in an automatic diagnostic system. Case-based reasoning,
which tends to be less expensive to develop and faster to run, may
draw on an historical databases of past equipment failures, the diagnosis
of those, and the repairs effected and the outcomes achieved. So CBR
may be used to make most failure diagnoses. Model-based reasoning
may be used to diagnose less common but expensive failures, and also
to make fine adjustments to the repair procedures retrieved from similar
cases in the case base by CBR.
The part of an expert system responsible for
drawing new conclusions from the current data and rules. The
inference engine is a portion of the reusable part of an expert system
(along with the user interface, a knowledge base editor, and an explanation
system), that will work with different sets of case-specific data
and knowledge bases.
An information filtering system sorts through
large volumes of dynamically generated information to present to the
user those nuggets of information which are likely to satisfy his
or her immediate needs. Information filtering overlaps the older field
of information retrieval, which also deals with the selection of information.
Many of the features of information retrieval system design (e.g.
representation, similarity measures or boolean selection, document
space visualization) are present in information filtering systems
as well. Information filtering is roughly information retrieval from
a rapidly changing information space.
Intelligent Tutoring Systems
encode and apply the subject matter and teaching expertise of experienced instructors,
using artificial intelligence (AI) software technologies and cognitive psychology models,
to provide the benefits of one-on-one instruction -- automatically and cost-effectively.
These systems provide coaching and hinting, evaluate each student's performance,
assess the student's knowledge and skills, provide instructional feedback,
and select appropriate next exercises for the student.
See Stottler Henke case studies.
Rule-based object-oriented expert system
tool and application developer (IntelliCorp Inc.). KAPPA is written
in C, and is available for PCs. See AI Languages and Tools.
The form or structure of databases and knowledge
bases for expert and other intelligent systems, so that the information
and solutions provided by a system are both accurate and complete.
Usually involves a logically-based language capable of both syntactic
and semantic representation of time, events, actions, processes, and
entities. Knowledge representation languages include Lisp, Prolog,
Smalltalk, OPS-5, and KL-ONE. Structures include rules, scripts, frames,
endorsements, and semantic networks.
Usually a synonym for expert system, though
some think of expert systems as knowledge-based systems that are designed
to work on practical, real-world problems.
Synonym: knowledge acquisition.
Knowledge engineering is the process of collecting
knowledge from human experts in a form suitable for designing and
implementing an expert system. The person conducting knowledge engineering
is called a knowledge engineer.
To be added
Knowledge representation is one of the two
basic techniques of artificial intelligence, the other is the capability
to search for end points from a starting point. The way in which knowledge
is represented has a powerful effect on the prospects for a
computer or person to draw conclusions or make inferences from that
knowledge. Consider the representation of numbers that we wish to
add. Which is easier, adding 10 + 50 in Arabic numerals, or adding
X plus L in Roman numerals? Consider also the use of algebraic symbols
in solving problems for unknown numerical quantities, compared with
trying to do the same problems just with words and numbers.
LISP (short for list processing language),
a computer language, was invented by John McCarthy, one of the
pioneers of artificial intelligence. The language is ideal for representing
knowledge (e.g., If a fire alarm is ringing, then there is a fire)
from which inferences are to be drawn.
Machine learning refers to the ability of computers
to automatically acquire new knowledge, learning from, for example,
past cases or experience, from the computer's own experiences, or
from exploration. Machine learning has many uses such as finding rules
to direct marketing campaigns based on lessons learned from analysis
of data from supermarket loyalty campaigns; or learning to recognize
characters from people's handwriting. Machine learning enables computer
software to adapt to changing circumstances, enabling it to make better
decisions than non-AI software. Synonyms: learning, automatic learning.
Model-based reasoning (MBR) concentrates on
reasoning about a system’s behavior from an explicit model of the
mechanisms underlying that behavior. Model-based techniques can very
succinctly represent knowledge more completely and at a greater level
of detail than techniques that encode experience, because they employ
models that are compact axiomatic systems from which large amounts
of information can be deduced.
Synonym for simulation.
English is an example of a natural language,
a computer language isn't. For a computer to process a natural language,
it would have to mimic what a human does. That is, the computer would
have to recognize the sequence of words spoken by a person or another
computer, understand the syntax or grammar of the words (i.e., do
a syntactical analysis), and then extract the meaning of the words.
A limited amount of meaning can be derived from a sequence of words
taken out of context (i.e., by semantic analysis); but much more of
the meaning depends on the context in which the words are spoken (e.g.,
who spoke them, under what circumstances, with what tone, and what
else was said, particularly before the words), which would require
a pragmatic analysis to extract. To date, natural language processing
is poorly developed and computers are not yet able to even approach
the ability of humans to extract meaning from natural languages; yet
there are already valuable practical applications of the technology.
Neural networks are an approach to machine
learning which developed out of attempts to model the processing that
occurs within the neurons of the brain. By using simple processing
units (neurons), organized in a layered and highly parallel architecture,
it is possible to perform arbitrarily complex calculations. Learning
is achieved through repeated minor modifications to selected neurons,
which results in a very powerful classification system. A problem
with neural networks is that it very difficult to understand their
internal reasoning process, and therefore to obtain an explanation
for any particular conclusion. They are best used, therefore, when
the results of a model are more important than understanding how the
model works. Neural network software is used to recognize handwriting,
and also to control chemical processes to run at desired conditions.
Other applications include stock market analysis, fingerprint identification,
character recognition, speech recognition, credit analysis, scientific
analysis of data, and in neurophysiological research. Neural
networks are also known as neural nets, connectionism, and parallel
An object-oriented problem-solving approach
is very similar to the way a human solves problems. It consists of
identifying objects and the correct sequence in which to use these
objects to solve the problem. In other words, object-oriented problem
solving consists of designing objects whose individual behaviors,
and interactions solve a specific problem. Interactions between objects
take place through the exchange of messages, where a message to an
object causes it to perform its operations and solve its part of the
problem. The object-oriented problem solving approach thus has
four steps: 1) identify the problem; 2) identify the objects needed
for the solution; 3) identify messages to be sent to the objects;
and 4) create a sequence of messages to the objects that solve the
In an object-oriented system, objects are data
structures used to represent knowledge about physical things (e.g.,
pumps, computers, arteries, any equipment) or concepts (e.g., plans,
designs, requirements). They are typically organized into hierarchical
classes, and each class of object has information about its attributes
stored in instance variables associated with each instance in the
class. The only thing that an object knows about another object is
that object's interface. Each object's data and logic is hidden from
other objects. This allow the developer to separate an object's implementation
from its behavior. This separation creates a "black-box" effect where
the user is isolated from implementation changes. As long as the interface
remains the same, any changes to the internal implementation is transparent
to the user. Objects provide considerable leverage in representing
the world in a natural way and in reusing code that operates on common
classes of objects.
A formal ontology is a rigorous specification
of a set of specialized vocabulary terms and their relationships sufficient
to describe and reason about the range of situations of interest in
In other words, it is a conceptual representation
of the entities, events, and their relationships that compose a specific
domain. Two primary relationships of interest are abstraction ("a
cat is specific instance of a more general entity called animal")
and composition ("a cat has whiskers and claws"). Ontologies
are generally used to model a domain of interest, permitting inferential
and deductive reasoning by learning systems.
The use of feature analysis to identify an
image of an object. May involve techniques such as statistical pattern
recognition, Bayesian analysis, classification, cluster analysis,
and analysis of texture and edges. See machine vision.
The goal of plan recognition is to interpret
an agent's intentions by ascribing goals and plans to it based on
partial observation of its behavior up to the current time.
Divining the agent's underlying plan can be useful for many purposes
including: interpreting the agent's past behavior, predicting the
agent's future behavior, or acting to collaborate with (or thwart)
Planning is the field of AI that deals with
the synthesis of plans, which are partial orders of (possibly conditional)
actions to meet specified goals under specified constraints. It is
related to scheduling, which is the task of determining when and with
what resources to carry out each member of a specific set of actions
to satisfy constraints regarding ordering, effectiveness and resource
allocation. In 1991, SHAI developed the concept of intelligent entities
for planning and scheduling applications. Intelligent entities play
the role of managers of various resources, groups of resources, tasks,
and projects made up of tasks.
and Scheduling Agents
Programming by Demonstration
Programming by demonstration (PBD) is a term
that describes a variety of end-user programming techniques that generate
code from examples provided by the user. The motivation behind Programming
by Demonstration is simple and compelling - if a user knows how to
perform a task on the computer, that alone should be sufficient to
create a program to perform the task. It should not be necessary to
learn a programming language like C++ or BASIC. The most simple
version of Programming by Demonstration is accomplished by Macro Recorders
which provide users with a way to record their actions. The
user issues the "Record" command, performs a series of actions, and
then issues the "Stop" command.
Prototyping is an important step in the development
of a practical artificial intelligence application. An AI software
prototype is usually a working piece of software that performs a limited
set of the functions that the software designer envisages will be
required by the user. It is used to convey to the users a clear picture
of what is being developed to ensure that the software will serve
the intended picture. An AI prototype, contrary to the practice with
many other sorts of prototypes, is grown into the finished product,
subject to changes at the request of the user. Unlike much other software,
AI software cannot be subject to hard verification tests as it mirrors
non-mathematical human reasoning, so the prototyping step provides
necessary confirmation that the software will be "good enough" for
its purpose at the expected cost.
Inexact reasoning, the opposite of quantitative
reasoning . Also see Commonsense
Relevance feedback methods are used in information
retrieval systems to improve the results produced from a particular
query by modifying the query based on the user's reaction to the initial
retrieved documents. Specifically, the user's judgments of the
relevance or non-relevance of some of the documents retrieved are
used to add new terms to the query and to reweight query terms.
For example, if all the documents that the user judges as relevant
contain a particular term, then that term may be a good one to add
to the original query.
system based on IF-THEN rules for representing knowledge.
Signal filtering is a techniques for removing
the noise or static from a signal so the clear or underlying signal
remains. This is a conventional technique commonly used by electrical
engineers and others.
Simulated annealing is an optimization method
based on an analogy with the physical process of toughening alloys,
such as steel, called annealing. Annealing involves heating an alloy
and cooling it slowly to increase its toughness. In simulated annealing,
an artificial "temperature" is used to control the optimization process,
of finding the overall maximum or minimum of a function. As cooling
a metal slowly allows the atoms time to move to the optimum positions
for toughness, giving time to look for a solution in simulated annealing
permits a successful search for the global optimum and avoids being
trapped at a local suboptima. It is used, for example, to optimize
routing of planes by airlines for most efficient use of the fleet.
It was devised by S. Kirkpatrick.
A simulation is a system that is constructed
to work, in some ways, analogously to another system of interest.
The constructed system is usually made simpler than the original system
so that only the aspects of interest are mirrored. Simulations are
commonly used to learn more about the behavior of the original system,
when the original system is not available for manipulation. It may
not be available because of cost or safety reasons, or it may not
be built yet and the purpose of learning about it is to design it
better. If the purpose of learning is to train novices, then cost,
safety, or convenience are likely to be the reasons to work on a simulated
system. The simulation may be a computer simulation (perhaps a realistic
one of a nuclear power station's control room, or a mathematical one
such as a spreadsheet for "what-if" analysis of a company's business);
or it may be a small-scale physical model (such as a small-scale bridge,
or a pilot chemical plant).
Statistical learning techniques attempt to
construct statistical models of an entity based on surface features
drawn from a large corpus of examples. These techniques generally
operate independent of specific domain knowledge, training instead
on a set of features that characterize an input example. In
the domain of natural language, for example, statistics of language
usage (e.g., word trigram frequencies) are compiled from large collections
of input documents and are used to categorize or make predictions
about new text. Systems trained through statistical learning
have the advantage of not requiring human-engineered domain modeling.
This strong dependence on the input corpus has the disadvantage of
limiting their applicability to new domains, requiring access to large
corpora of examples and a retraining step for each domain of interest.
Statistical techniques thus tend to have high precision within a domain
at the cost of generality across domains.
Structural Pattern Recognition
To be added
Organization and training of a neural network
by a combination of repeated presentation of patterns, such as alphanumeric
characters, and required knowledge. An example of required knowledge
is the ability to recognize the difference between two similar characters
such as O and Q. Synonym: learning with a teacher. Contrast with self-organized
system; unsupervised learning.
To be added
Task Transition Diagrams
To be added
A time series is a sequence of observations
of a particular variable over time (e.g., the daily closing level
of Dow Jones Industrial Average). There are a wide range of
statistical and temporal data mining techniques for analyzing such
data. Two common uses for this type of analysis are forecasting
future events (i.e., time series prediction) and searching a database
of previous patterns for sequences that are similar to a particular
pattern of interest. This is a conventional statistical technique.
Small-scale implementation of a concept or
model useful for testing a few main features, but unsuitable for complex
or real-world problems. For example, a toy rule-based system may contain
a few rules to construct an arch out of a number of pre-selected wooden
blocks. It is a useful academic approach to unsolved problems. It
is not employed in producing practical, real-world solutions.
Many conventional reasoning systems assume
that reasoning is the process of deriving new knowledge from old,
i.e., the number of things a person or intelligent software believes
increases without retracting any existing knowledge, since known truths
never change under this form of logic. This is called monotonic logic.
However, this view does not accurately capture the way in which humans
think since our actions constantly change what we believe to be true.
Humans reason nonmonotonically, which means they reason based on incomplete
or uncertain information, common sense, default values, changing conditions,
and other assertions subject to retraction or revision. Truth
maintenance systems seek to emulate the human reasoning process by
recording reasons for our beliefs and reasons for retraction or revision
of those beliefs, as well as the beliefs themselves. They are particularly
useful in keeping track of goals, sub-goals, decisions, tasks, assignments,
and design documents on complex projects (such as the design, construction,
and testing of a major commercial aircraft) being undertaken by large
numbers of people who may work for different organizations in different
parts of the world. This is the sort of situation where a decision
may be reversed, and all the people who may have to react to that
change may not be properly informed. Project management software using
TMS can help avoid design problems or wasted effort that can result
from this sort of oversight. Also known as Reason Maintenance