Artificial Intelligence can be defined in many perspectives, in simple plain words Artificial Intelligence is making machines (Intelligent) acting as we would expect people to act, or as (Rich and Knight, 1991, p.3) said "artificial intelligence is the study of how to make computers do things which, at the moment, people do better".
Expert Systems are computer programs that are derived from Artificial Intelligence (AI).
Definitions of expert systems vary. Some definitions are based on function. Some definitions are based on structure. Some definitions have both functional and structural components. Many early definitions assume rule-based reasoning.
What is Artificial Intelligence (AI)
The Field of Artificial Intelligence was founded in the 1960s and the very first attempt was game playing, theorem proving and general problem solving, and as soon as researchers started developing Artificial Intelligence they found out it was much more difficult than what had originally anticipated. They were not able to tackle problems routinely handled by human experts.
Artificial Intelligence researchers are active in different Areas called Domains.
Some of The domains are:
- Formal Tasks (mathematics, games),
- Expert tasks (financial analysis, medical diagnostics, engineering, scientific analysis, and other areas)
- Mundane tasks (perception, robotics, natural language, common sense reasoning)
From a business perspective Artificial Intelligence is a set methodologies and very powerful tools, and for using those tools to solve business problems.
From a programming perspective, Artificial Intelligence includes the study of problem solving, symbolic programming, and search.
Typically Artificial Intelligence programs focus mainly on symbols and less than numeric processing, Problem solving - achieve goals, Search. It rarely reaches a solution directly. Search may include a variety of techniques.
Artificial Intelligence's scientific goal is to understand intelligence by building computer programs that acts in an intelligent behavior. It is concerned with the concepts and ways of symbolic inference, how the knowledge used to make those inferences will be represented inside the machine or reasoning, by a computer.
Artificial Intelligence 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 or expert systems.
An expert system is a computer program designed to act like a human who is an expert in a narrow domain or discipline to solving a certain type of problems. An expert system is normally contains inference engine (analyzes the knowledge base), knowledge base (information, heuristics, etc.), and the end user interface (accepting inputs, generating outputs).
All expert systems are composed of several basic components:
A user interface is the method by which the expert system interacts with a user. These can be through dialog boxes, command prompts, forms, or other input methods. Some expert systems interact with other computer applications, and do not interact directly with a human. In these cases, the expert system will have an interaction mechanism for transactions with the other application, and will not have a user interface.
The inference engine is the main processing element of the expert system. The inference engine chooses rules from the agenda to fire. If there are no rules on the agenda, the inference engine must obtain information from the user in order to add more rules to the agenda.
"The embodiment within a computer of a knowledge-based component, from an expert skill" [British Computer Society's Specialist Group in Forsyth, 1984, pp.9-10]
"A computer based system in which representations of expertise are stored" [Edwards and Connell, 1989, p.3]
Of course there are other components that are relatively common in an expert system, but are not strictly needed, Expert system development usually proceeds through several phases including problem selection, knowledge acquisition, knowledge representation, programming, testing and evaluation.
Expert systems programming languages:
- The most widely used expert system tool is CLIPS which is a public domain software tool because it is fast, efficient and free.
- LISP, developed in the 1950s, is the early programming language strongly associated with Artificial Intelligence, LISP is a functional programming language with procedural extensions.
- The second language strongly associated with Artificial Intelligence is PROLOG. PROLOG was developed in the 1970s. PROLOG is based on first order logic. PROLOG is declarative in nature and has facilities for explicitly limiting the search space.
- Object-oriented languages are a class of languages more recently used for Artificial Intelligence programming
Examples of object-oriented languages are Smalltalk, Objective C, and C++. Object oriented extensions to LISP (CLOS - Common LISP Object System) and PROLOG (L&O - Logic & Objects) are also used.
The path that leads to the development of expert systems is different from that of conventional programming techniques (some call it procedural programming). The concepts for expert system development come from the subject domain of artificial intelligence (AI) (Object Oriented Programming) OOP, and require a departure from conventional computing practices and programming techniques. A conventional program consists of an algorithmic process to reach a specific result. An Artificial Intelligence program is made up of a knowledge base and a procedure to infer an answer. Expert systems are capable of delivering quantitative information, much of which has been developed through basic and applied research as well as heuristics to interpret qualitatively derived values, or for use in lieu of quantitative information. Another feature is that these systems can address imprecise and incomplete data through the assignment of confidence values to inputs and conclusions.
The main difference between procedural language and Object Oriented Programming is Procedural language fallows Top Down approach, that means flow starts from main and goes through functions ./ function call.
Object Oriented Programming fallows Bottom Up approach, That means everything is wrapped in object / classes, so these classes are building blocks of your application
So Classes with data, members joined will constructs your application with Object communication / messaging, and also Object Oriented Programming has many benefits like Data Abstraction, Inheritance, Polymorphism (compile & runtime) etc.
Benefits of using Artificial intelligence:
We can sum up the benefits and reasons of using Artificial intelligence as follows,
• Efficiency - can increase productivity and decrease personnel costs
- Yes expert systems are expensive to design and make, but they are inexpensive to operate
- When spreading the cost over many users the cost of development and maintenance can be decreased.
- Compared to expensive and scarce human experts the overall cost can be quite reasonable.
- Cost savings:
- Other costs - (minimize loan loss)
Wages - (Decrease the number of employees dramatically
• Permanence - Expert systems as being in a computer do not forget, but human experts may
• Consistency - It handles similar transactions in the same way.
Humans are influenced by
- Primacy effects (early information have a big impact on the judgment).
- Recency effects (Recent information interferes on judgment)
• Reproducibility - Training new human experts is expensive and time consuming, but many copies of an expert system can be made.
Timeliness - Information is always available sooner for decision making, Fraud and/or errors can be decreased or even prevented.
• If there is a maze of rules, the expert system can "unravel" the maze
• Documentation - Expert system provides permanent and always available documentation of the decision process
• Completeness - While a human expert can only review a sample, an expert system can review all the transactions.
• Entry barriers - Provide a tool and help a firm create entry barriers for potential competitors
Expert System Example
A good Example of expert systems as quoted from (wikipedia.org) "Is an expert system for mortgages which is a computer program that contains the knowledge and analytical skills of human experts, related to mortgage banking.
Loan departments are interested in expert systems for mortgages because of the growing cost of labor which makes the handling and acceptance of relatively small loans less profitable. They also see in the application of expert systems a possibility for standardized, efficient handling of mortgage loans, and appreciate that for the acceptance of mortgages there are hard and fast rules which do not always exist with other types of loans.
Since most interest rates for mortgages are controlled by the government, intense competition sees to it that a great deal in terms of business depends on the quality of service offered to clients - who shop around for the loan best suiting their needs. Expert systems for mortgages considers the key factors which enter the profitability equation.
The expert system also capitalizes on regulatory possibilities. In France, the government subsidizes one type of loan which is available only on low-cost properties (the HLM) and to lower income families, these carry a rate of interest lower than the rate on the ordinary property loan from a bank. The difficulty is that granting them is subject to numerous regulations, concerning both:
- The home which is to be purchased, and
- The financial circumstances of the borrower.
To assure that all conditions have been met, every application has to be first processed at branch level and then sent to a central office for checking, before going back to the branch, often with requests for more information from the applicant. This leads to frustrating delays. Expert system for mortgages takes care of these by providing branch employees with tools permitting them to process an application correctly, even if a bank employee does not have an exact knowledge of the screening procedure.
The expert system neither refuses nor grants loans, but it:
- Establishes whether all the conditions for granting a particular type of loan to a given client have been satisfied, and
- Calculates the required term of repayment, according to the borrower's
- Means and the security to be obtained from him.
The goal is to produce applications which are correct in 80 per cent to 90 per cent of all cases, and transfer responsibility for granting or refusing loans to the branch offices.
The expert system provides the branch with a significant amount of assistance simply by producing correct applications for a loan. In many cases the client had to choose between different types of loans, and it was planned that expert system should enable bank employees to advise clients on the type of loan which best matched their needs. This, too, has been done and as such contributes to the bank employees' training.
The main tasks of expert system for mortgages focused on:
- The speed of moving a loan through red tape, which management considered to be a very important factor;
- The reduction of the errors made in the filling form;
- The shortening of the turnaround time, which was too long with classical
Simple expert systems constitute the first phase of a loan application for mortgage purposes. After a prototype is made, the construct should be presented to expert loan officers who, working together with the knowledge engineer(s) will refine the first model. But if there is no first try which is simple and understandable, there will not be complex real-life solutions afterwards.
Whether simple or sophisticated, an expert system for mortgages should be provided with explanation facilities that show how it reaches its decisions and hence its advice. The confidence of the loan officer in the Artificial Intelligence construct will be increased when this is done in a convincing manner".
Cost of Development
Expert systems are expensive to develop. They require expertise, resources, and time to build.
Before developing an Expert system a feasibly study needs to take place to determined if the proposed expert system worth the cost of investment in any benefits it produces. The cost includes personnel to do the work, hardware, and software.
Expert systems can make expertise available to decision makers in agriculture when expert opinions are not available. An expert system can be available for the grower to use at any time of the day and it could be available to every grower in the state at the same time.
Sometimes there are other benefits in using expert systems which more than justify cost such as: reduced pesticide inputs, a developer should ask if the problem to be solved justifies the investment of time and money. If current loss due to disease, whether it be due to reduced yield or quality, is great enough, then the successful implementation of an expert system may offset cost of development,