Artificial Intelligence Techniques
AI programs that use expert-level competence to solve task related
problems use knowledge-based
or expert systems.
A artificial intelligence 'technique' refers to the problem-solving
model, or controls and steps taken to solve the problem. In an IF-THEN
rule-based system, such methods include chaining.
- Forward
Chaining - the chaining starts from a set of conditions
and moves toward some conclusion
- Backward
Chaining - the conclusion is known [a goal to be
achieved] but the path to that conclusion is not known
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.
Whilst the discovery and cumulation of knowledge of a task domain
is performed by domain experts, tools, shells and skeletons are
AI techniques employed to represent that knowledge.
Tools, Shells, and Skeletons
Compared to the wide variation in domain knowledge, only a small
number of AI methods are known that are useful in expert systems.
Such systems are known as skeletal systems, shells, or simply AI
tools. Systems can be built that contain these methods without any
domain-specific knowledge. Thus, they can be applied to any knowledge
domain.
Building expert systems by using shells offers a significant advantage
in that an expert system can be built to perform a unique task by
entering into a shell all the necessary knowledge about a task domain.
The inference engine that applies the knowledge to the task at
hand is built into the shell.
If the program is not very complicated, with a little training
in use of the shell, domain experts can enter knowledge themselves.
Commercial Shells
Many commercial shells are available today. They are designed for
various platforms and range in price from hundreds to tens of thousands
of dollars.
The complexity of shells also varies greatly.
- Simple shells based on forward-chained, rule-based systems require
only two days training
- Complex shells can only be used by highly trained knowledge
engineers.
Shells range from general-purpose shells to shells custom-tailored
to a class of tasks, such as financial planning or real-time process
control.
Shells simplify programming, but unfortunately do not assist with
knowledge acquisition.
AI Programming
The fundamental hypothesis of AI is that intelligent behavior
can be precisely described as symbol manipulation, and modeled with
the symbol processing capabilities of a computer.
Programming languages have been developed to facilitate symbol
manipulation. The two most common AI program sets are:
- LISP [LISt Processing] - the simplest and most
flexible program, mostly using in AI research. Based on lambda
calculus.
- PROLOG [PROgramming in LOGic] - used for commercial
applications. Based on first-order predicate calculus.
PROLOG
PROLOG is a logic based code consisting of English-like statements
built on facts [assertions], rules [inference], and questions.
A typical inference rule: 'If object-x is part-of object-y then
a component-of object-y is object-x'.
Programs written in PROLOG behave similar to rule-based systems
written in LISP. PROLOG was used by the Japanese for the Fifth Generation
Computing Systems (FGCS) Project.
A variety of logic-based programming languages have been developed,
such that the term prolog has become generic.
CLIPS Development Environment
CLIPS is a development and delivery expert system tool environment
for the construction of rule and/or object based expert systems.
ts key features are:
Knowledge Representation - CLIPS provides a cohesive
tool for handling a wide variety of knowledge with support for three
different programming paradigms: rule-based, object-oriented and
procedural.
- Rule-based programming allows knowledge to be represented as
rules which specify a set of actions to be performed for a given
situation.
- Object-oriented programming allows complex systems to be modeled
as modular components.
- Procedural programming capabilities similar to capabilities
found in languages such as C, Java, Ada, and LISP.
Portability - CLIPS is written in C for portability
and speed and has been installed on many different operating systems
without code changes. Supports Windows 95/98/NT, MacOS X, and Unix.
CLIPS can be ported to any system which has an ANSI compliant C
or C++ compiler. CLIPS comes with all source code which can be modified
or tailored to meet a user's specific needs.
Integration/Extensibility - can be embedded within
procedural code, called as a subroutine, and integrated with languages
such as C, Java, FORTRAN and ADA; and easily extended by a user
through the use of several well-defined protocols.
Interactive Development - The standard version
of CLIPS provides an interactive, text oriented development environment,
including debugging aids, on-line help, and an integrated editor.
Interfaces providing features such as pulldown menus, integrated
editors, and multiple windows have been developed for the MacOS,
Windows XP, and X Window environments.
Verification/Validation - support for modular
design and partitioning of a knowledge base, static and dynamic
constraint checking of slot values and function arguments, and semantic
analysis of rule patterns to determine if inconsistencies could
prevent a rule from firing or generate an error.
Fully Documented - CLIPS comes with extensive
documentation including a Reference Manual and a User's Guide.
Low Cost - CLIPS is maintained as public domain
software.
Uses
of AI In Expert Systems
Back To Top
|