Introduction to Artificial Intelligence:
Artificial Intelligence (AI) is the area of computer science focusing on creating machines that can engage on behaviors that humans consider intelligent. The ability to create intelligent machines has intrigued humans since ancient times, and today with the advent of the computer and 50 years of research into AI programming techniques, the dream of smart machines is becoming a reality. Researchers are creating systems which can mimic human thought, understand speech, beat the best human chess player, and countless other feats never before possible.
Artificial Intelligence is a branch of Science which deals with helping machines find solutions to complex problems in a more human-like fashion. This generally involves borrowing characteristics from human intelligence, and applying them as algorithms in a computer friendly way. A more or less flexible or efficient approach can be taken depending on the requirements established, which influences how artificial the intelligent behavior appears.
AI is generally associated with Computer Science, but it has many important links with other fields such as Maths, Psychology, Cognition, Biology and Philosophy, among many others. Our ability to combine knowledge from all these fields will ultimately benefit our progress in the quest of creating an intelligent artificial being.
The Main Components of an expert system:
The mechanism by which the user and the expert system communicate .
Explains the reasoning of the system to a user .
A global database of facts used by the rules .
Makes inferences by deciding which rules are satisfied by facts or objects, prioritizes the satisfied rules, and executes the rule with the highest priority.
A prioritized list of rules created by the inference engine, whose patterns are satisfied by facts or objects in working memory .
Knowledge acquisition facility:
An automatic way for the user to enter knowledge in the system rather than by having the knowledge engineer explicitly code the knowledge (an optional features on many systems)
Programming languages in expert systems:
Expert systems are typically written in special programming languages called object oriented programming languages . The use of languages like LISP and PROLOG in the development of an expert system simplifies the coding process. The major advantage of these languages, as compared to conventional programming languages, is the simplicity of the addition, elimination, or substitution of new rules and memory management capabilities.
Procedural Programming vs Object Oriented Programming:
Procedural programming is by far the most common form of programming. A program is a series of instructions which operate on variables. It is also known as imperative programming. Procedural programming bears a close relation to the Von Neumann form of computer architecture, and early procedural languages were little more complex than assemblers.
Examples of procedural programming languages include FORTRAN, ALGOL, Pascal, C, MODULA2, Ada, BASIC. Despite their differences they all share the common characteristics of procedural programming.
As a method of design, procedural programming attempts to encapsulate the human problem solving method of carrying out a sequence of operations. First, one carries out step 1, then step 2, etc. In addition, there are control structures such as IF-THEN-ELSE in all modern procedural languages. Variables play a central role in programs, and their scope is an important notion in block structured languages.
Advantages of procedural programming include its relative simplicity, and ease of implementation of compilers and interpreters. Procedural languages were important in the history of computers due to their low memory utilisation. Dijkstra believed that the introduction of microcomputers set back the development of computer science. This was in part due to the fact that the small memory microcomputers could only run languages like BASIC with 8Kbyte interpreters, and that languages that were run on main frame and minicomputers (such as LISP) that needed larger memory could not be implemented on the micros. All this has now changed with larger memory micros, but history has nevertheless affected the marketplace and people's perceptions of programming languages.
Disadvantages of procedural programming include the difficulties of reasoning about programs and to some degree difficulty of parallelisation. Procedural programming tends to be relatively low level compared to some other paradigms, and as a result can be very much less productive.
Object Oriented Programming:
Object oriented programming was introduced by Xerox with the language Smalltalk. This was intended to be a solution to the software crisis by providing an end-user programming language. However, Smalltalk has a complex syntax and has not found to be easy to use, and certainly is not realistic for end-users.
At the same time as Smalltalk was developed another part of Xerox developed an object system within LISP, known as LOOPS. This was the basis for the more recent CLOS (Common LISP Object System).
The most widely used object oriented language is C++ which provides object extensions to C, but this is rapidly being overtaken by Java.
Object oriented programming is characterised by the defining of classes of objects, and their properties. Inheritance of properties is one way of reducing the amount of programming, and provision of class libraries in the programming environment can also reduce the effort required.
Object oriented programming has proved to be particularly successful in the design of user interlaces.
EXAMPLE of a simple expert system to identify 20, 5and 1coins:
The first step is to identify the variables:
Then assign a range of values for each variable-
diameter is >25mm
diameter is <25mm
Then rules are constructed that identify the coins by combinations of attributes (attributes are the particular value of a variable e.g., a coin can have the attribute of being silver in colour, or decorated with a lion).
IF SIZE > 25 and COLOUR is bronze and DECORATION is ship THEN coin is 20K
IF SIZE < 25 and COLOUR is silver and DECORATION is crown THEN coin is 1K
IF SIZE >25 and COLOUR is silver and DECORATION is lion THEN coin is 5K
Benefits of using artificial intelligence:
Artificial intelligence would not need any sleep. This would be an advantage because it would not be interrupted from its tasks for sleep, as well as other issues that plague biological minds like restroom breaks and eating.
Unemotional consideration of problems. While an artificial mind could theoretically have emotions, it would be better for performance if it were programmed for unemotional reasoning. When people make decisions, sometimes those decisions are based on emotion rather than logic. This is not always the best way to make decisions.
Easier copying. Once an artificial mind is trained in a task, that mind can then be copied very easily, compared to the training of multiple people for the same task.
It is difficult to include artificial intelligence in an information system because:
1. No common sense used in making decisions
2. Lack of creative responses that human experts are capable of
3. Not capable of explaining the logic and reasoning behind a decision
4. It is not easy to automate complex processes
5. There is no flexibility and ability to adapt to changing environments
6. Not able to recognize when there is no answer
To date, all the traits of human intelligence have not been captured and applied together to spawn an intelligent artificial creature. Currently, Artificial Intelligence rather seems to focus on lucrative domain specific applications, which do not necessarily require the full extent of AI capabilities. This limit of machine intelligence is known to researchers as narrow intelligence.
There is little doubt among the community that artificial machines will be capable of intelligent thought in the near future. It's just a question of what and when... The machines may be pure silicon, quantum computers or hybrid combinations of manufactured components and neural tissue. As for the date, expect great things to happen within this century!
Handbook of AI, Paul Cohen and Ed Feigenbaum (editors), published by Kaufmann. (in reserve collection).
Arti_cial Intelligence, 3rd edition, by Pat Winston, Addison Wesley.
Pattern Classi_cation, 2nd edition, by Duda, Hart, and Stork, Wiley.
Essentials of AI, Matt Ginsberg, Morgan Kaufmann.
An Introduction to Genetic Algorithms, M. Mitchell, MIT Press. (Supplemental reading for genetic algorithms.)
Rethinking Innateness: A Connectionist Perspective on Development, J.L. Elman and E. A. Bates and
M. H. Johnson and A. Karmilo_-Smith and D. Parisi and K. Plunkett, MIT Press. (Supplemental reading for mental development.)
Arti_cial Intelligence journal, Elsevier press. (A leading AI journal).
AMD Newsletters, the publication of the IEEE CIS AMD Technical Committee. http://www.cse.msu.edu/amdtc/amdnl/
Conference proceedings: AAAI, IJCAI, WCCI, IJCNN, ICDL.
Mental Development Repository http://www.mentaldev.org/
J.L. Connell and L.B. Shafer, Structured Rapid Prototyping. Englewood Cliffs, NJ: Prentice-Hall, 1989.
D.E. Brown and J.J. Pomykalski, 1995. Reliability Estimation during Prototyping of Knowledge- Based Systems, IEEE Trans. on Knowl. Data Eng., 7 (3): 378-390, 1995.
J.J. Pomykalski and D.E. Brown, 1996. Knowledge-Based System Design Enhancement Through Reliability Measurement, Expert Systems with Applications: An International Journal, 11 (3): 277- 286, 1996.
Merriam-Webster Collegiate Dictionary, 10th Edition. Springfield, MA: Merriam-Webster, 1993.
S.J. Russell and P. Norvig, Artificial Intelligence: A Modern Approach. Englewood Cliffs, NJ: Prentice-Hall, 1995.