Using Artificial Intelligence Techniques Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Artificial Intelligence began in the 1960s, the first attempts were game playing (checkers), theory proving a few simple theories and general problem solving.

General problem solving was much more difficult than originally anticipated. Researchers were unable to tackle problems routinely handled by human experts.

Artificial Intelligence can be defined in many ways as it depends from which point of view you look at it from. From the intelligence point of view artificial intelligence is to make machines intelligent thus making them act as we people would act.

However artificial intelligence from a research perspective is how to make machines do things people are currently doing better in other words making machines do what we humans can do.

Now from a business point of view artificial intelligence is a combination of powerful tools, and methods for using those tools to solve business problems.

As for the programming point of view artificial intelligence is the study of symbolic programming, search and problem solving.

Expert Systems:

Expert systems are defined on bases functional and structural.

Expert systems from a functional perspective are defined based on what the system does rather than how it does it.

"A computer program that behaves like a human expert in some useful ways."

Nevertheless we can define expert systems on the bases of their structure in many ways depending on which angle we look at it from

Problem Based Perspective

"Solve problems efficiently and effectively in a narrow problem area."

" typically, pertains to problems that can be symbolically represented"

The Difficulty of a Problem

" apply expert knowledge to difficult real world problems"

" solve problems that are difficult enough to require significant human expertise for their solution"

"Address problems normally thought to require human specialists for their solution"

Required Performance

Here are some of the definitions given over the years on the bases of performance requirements:

"the ability to perform at the level of an expert "

"Programs that mimic the advice-giving capabilities of human experts."

"Matches a competent level of human expertise in a particular field."

"Can offer intelligent advice or make an intelligent decision about a processing function."

"Allows a user to access this expertise in a way similar to that in which he might consult a human expert, with a similar result."

Giving reason

"The capability of the system, on demand, to justify its own line of reasoning in a manner directly intelligible to the enquirer."

"incorporation of explanation processes "

Expert Systems from a structural perspective are defined on the bases of how the system functions.

"Using the programming techniques of artificial intelligence, especially those techniques developed for problem solving"

However we can define expert systems on the bases of their structure in many ways depending on which angle we look at it from

Using Artificial Intelligence techniques

" using the programming techniques of artificial intelligence, especially those techniques developed for problem solving"

The Knowledge component

" the embodiment within a computer of a knowledge-based component, from an expert skill "

"a computer based system in which representations of expertise are stored "

"The knowledge of an expert system consists of facts and heuristics. The 'facts' constitute a body of information that is widely shared, publicly available, and generally agreed upon by experts in the field."

"Expert systems are sophisticated computer programs that manipulate knowledge to solve problems"

Separate knowledge and control

"Make domain knowledge explicit and separate from the rest of the system"

Use inference procedures

" an intelligent computer program that uses knowledge and inference procedures

"The style adopted to attain these characteristics is a rule-based programming style."

"Exhibit intelligent behavior by skillful application of heuristics."

"The 'heuristics' are mostly private, little rules of good judgment (rules of plausible reasoning, rules of good guessing) that characterize expert-level decision making in the field."

"incorporation of ways of handling uncertainty"

Model human expert

"Can be thought of as a model of the expertise of the best practitioners of the field."

" representation of domain-specific knowledge in the manner in which the expert thinks"

"Involving the use of appropriate information acquired previously from human experts."

Components of an Expert System

An expert system consists of 4 main components which are listed below:

Knowledge base - a representation of the expertise and is usually inputted in IF THEN rules, and are usually put into a database for easy access by the system.

Working storage - Data which is specific to a problem being solved by the expert system.

Inference engine - the code at the core of the system which derives recommendations from the knowledge base and problem-specific data in working storage.

User interface - the code that controls the dialog between the user and the system.

People and they consist of:

Domain experts - the individual or individuals who currently are experts in solving the problems the system is intended to solve.

Knowledge engineers - the individuals who encode the expert's knowledge in a declarative form that can be used by the expert system.

Users - the individuals who will be consulting with the system to get advice which would have been provided by the expert.

Furthermore there are some other optional components that might be added to the system as sub systems and which try to make the expert system more efficient thus making it more powerful and they are.

Explanation sub system - is used to explain the logic or reason of recommending a solution. Justifier is another name of explanation sub system. Justifier also explains why a solution is recommended or not recommended.

Knowledge refining sub system - is used to refine the knowledge in the knowledgebase after working every time over a problem. It works exactly like human beings who analyze their actions and learn from their mistakes to perform better in the future.

Programming Languages Used to Develop Expert Systems

Here are some of the programming languages used to develop expert systems.

LISP, developed in the 1950s, is the early programming language strongly associated with AI. LISP is a functional programming language with procedural extensions. LISP (LISt Processor) was specifically designed for processing heterogeneous lists which is a list of symbols.

Features of LISP that made it attractive to AI researchers included

Run- time type checking.

Higher order functions (functions that have other functions as parameters).

Automatic memory management (garbage collection) and an interactive environment.

The second language strongly associated with AI 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 AI programming. Important features of object-oriented languages include:

concepts of objects and messages

objects bundle data and methods for manipulating the data

sender specifies what is to be done receiver decides how to do it

inheritance (object hierarchy where objects inherit the attributes of the more general class of objects)

Examples of object-oriented languages are Smalltalk, Objective C, C++. Object oriented extensions to LISP (CLOS - Common LISP Object System) and PROLOG (L&O - Logic & Objects) are also used.

The Difference between these programming languages and procedural programming languages.

According to an article in the Information and Software Technology journal by Alexander Chatzigeorgiou of the Department of Applied Informatics, at the University of Macedonia, the object-oriented approach is known to introduce a significant performance penalty compared to classical procedural programming. For instance, profiling results for embedded applications indicate that C++ programs, apart from being slower than their corresponding C versions, consume significantly more energy (mainly due to the increased instruction count, larger code size and increased number of accesses to the data memory for the object-oriented versions).

Example of an Expert System

One of the most recognized expert systems used today by the general public is the online doctor due to the fact that many people use it daily.

In brief this expert system is used to diagnose people by asking them what the problem is and then suggesting the actions that they should take which sounds very similar to an expert system where the illness is the problem the recommended actions are the solutions.

In this example the website that was studied is

In this expert system there are main components of the expert system and they are:

The people

The people are separated into three categories and they are:

The domain experts - who are actually the doctors who provide the data for the system.

The knowledge engineers - are the engineers who enter this system in a rule based input for example giving multiple choice questions to diagnose a cold.

Do you feel cold.[ ]

Do you feel hot? [ ].

Do you feel normal? [ ]

System engineer - who is the person in charge assembling and managing the system.

The user - who is the person asking for the diagnoses.

The user interface

The user interface is the website used by the user to find the diagnoses.


The inherence engine

The inherence engine which in this case is made by the engineer using a web based programming language like ASP or PHP in the website from the last example we see that the programming language used is ASP and we can see that from the address bar.

The knowledge base

The knowledge base in this case is where all the rules that the knowledge engineer inputted them in this case the engineer used Microsoft SQL SERVER 2008. The knowledge in this case is the medical knowledge given by the doctors.

The working storage

The working storage in this case is a storage area on the server where each users data is stored in a relational database

The benefits of using artificial intelligence

The main benefits of using artificial intelligence are:

Provide answers for decisions, processes and tasks that are repetitive

Hold huge amounts of information

Minimize employee training costs

Centralize the decision making process

Make things more efficient by reducing the time needed to solve problems

Combine various human expertises.

Reduce the number of errors caused by humans.

Provide strategic and comparative advantages that may create problems for competitors

Look over transactions that human experts may not think of

Even though the benefits of artificial intelligence is more than the above we find that the main advantage to using artificial intelligence is to maximize the efficiency of a business thus giving the business the edge it needs to over throw its competitors.

Why Artificial intelligence is hard to include in information systems

The difficulties in including artificial intelligence in information systems are due to many facts one of which is the expense. Furthermore there are multiple factors why it's so difficult to include artificial intelligence in information systems from which is the human acceptance to Artificial intelligence especially in the older groups another factor is that domain experts will be threatened by the fact that they are giving their expertise to a company and the fear of being redundant.

From the technical point of view the implementation of artificial intelligence is quite hard due to the if rule conversion of the expertise. And the integration with old systems will require an effort especially for established companies with legacy hardware and software.

Which brings us to the expense part of the problem? There is no doubt that artificial intelligence is an expensive approach as it is time consuming as it requires a lot of time and human resources. Furthermore developing artificial intelligence relies heavily on having the correct expert information and having something wrong in the knowledge base might cause damages which will lead to costly error and problems.