Operations Research
Genetic Algorithm
Evolution
Individuals (animals or plants) produce a number
of offspring (children) which are almost, but not
entirely, like themselves.
Variation may be due to mutation (random
changes), or due to inheritance
(offspring/children inherit some characteristics
from each parent)
2
Genetic Algorithm
Genetic Algorithm is a search method in
which multiple search paths are followed in
parallel
At each step, current states of different pairs
of these paths are combined to form new
paths
The search paths don't remain independent
They share information with each other and
thus try to improve the overall performance
of the complete search space
3
Basic Genetic Algorithm
A very basic genetic algorithm can be stated
as below
Start with a population of randomly
generated, (attempted) solutions to a
problem
Repeatedly do the following:
Evaluate each of the attempted solutions
Keep the “best” solutions
Produce next generation from these
solutions (using “inheritance” and
“mutation”)
Quit when you have a satisfactory solution
(or you run out of time)
4
Basic Genetic Algorithm
The two important terms are inheritance and
mutation
Inheritance has the same notion of having
something or some attribute from a parent
Mutation refers to a small random change
5
Genetic Algorithm
Explore Internet and Books to find applications
of GA in various fileds like
Composing Music
Gaming
Market Strategies
Robotics
Industrial Optimization
6
Knowledge Representation
and Reasoning
The AI Cycle
Almost all AI systems have the following
components in general:
1. Perception
2. Learning
3. Knowledge Representation and Reasoning
4. Planning
5. Execution
7
Knowledge Representation
and Reasoning
8
Knowledge and its Types
Procedural knowledge:
Describes how to do things, provides a set of
directions of how to perform certain tasks,
e.g., how to drive a car.
Declarative knowledge:
It describes objects, rather than processes. What
is known about a situation,
e.g. it is sunny today, and cherries are red.
9
Knowledge and its Types
Meta knowledge
Knowledge about knowledge,
e.g., the knowledge that blood pressure is more
important for diagnosing a medical condition than
eye color.
Heuristic knowledge
Rule-of-thumb,
e.g. if I start seeing shops, I am close to the
market.
Heuristic knowledge is sometimes called shallow
knowledge.
10
Knowledge and its Types
Structural knowledge:
Describes structures and their relationships.
e.g. how the various parts of the car fit together to
make a car.
11
Knowledge and its Types
12
What is an Expert?
They possess specialized knowledge in a
certain area
They possess experience in the given area
They have a skill set that enables them to
translate the specialized knowledge gained
through experience into solutions.
13
What is an Expert System?
“A computer program designed to model the
problem solving ability of a human expert”
The aspects of human experts that expert
systems model are:
Knowledge
Reasoning
14
Comparison of a Human
Expert & an Expert System
استحکام
15
Roles of an Expert Systems
An expert system may take two main roles,
relative to the human expert. It may replace the
expert or assist the expert
Replacement of expert
Consider drastic situations where safety or location
is an issue, e.g. a mission to Mars. In such cases
replacement of an expert may be the only feasible
option.
Also, in cases where an expert cannot be available at
a particular geographical location e.g. volcanic
areas, it is expedient to use an expert system as a
substitute.
Example of France based oil exploration company
with a system called ‘Drilling Advisor’ (Elf-Aquitane
1983) was developed, which saved the company
from huge losses that would be incurred otherwise.
16
Roles of an Expert Systems
Assisting Expert
Assisting an expert is the most commonly found
role of an ES.
The goal is to aid an expert in a routine tasks to
increase productivity,
To aid in managing a complex situation by using an
expert system that may itself draw an experience of
other (possibly more than one) individuals.
Such an expert system helps an expert overcome
shortcomings such as recalling relevant
information.
XCON is an example of how an ES can assist an
expert.
17
How are Expert Systems
used?
Expert systems may be used in a host of
application areas including diagnosis,
interpretation, prescription, design, planning,
control, instruction, prediction and simulation.
18
Expert System Structure
To explain the structure of expert systems, we
use the analogy of an expert (say a doctor)
solving a problem. The expert has the
following:
Focused area of expertise
Specialized Knowledge (Long-term Memory,
LTM)
Case facts (Short-term Memory, STM)
Solves the given problem
19
Expert System Structure
Now, we are ready to define the
corresponding concepts in an Expert System.
20
Expert System Structure
21
Knowledge Base
The knowledge base is the part of an expert system
that contains the domain knowledge, i.e.
Problem facts, rules
Concepts
Relationships
The power of an ES lies to a large extent in its
richness of knowledge. Therefore, one of the prime
roles of the expert system designer is to act as a
knowledge engineer.
As a knowledge engineer, the designer must
overcome the knowledge acquisition bottleneck and
find an effective way to get information from the
expert and encode it in the knowledge base, using
one of the knowledge representation techniques.
One way of encoding that knowledge is in the form
of IF-THEN rules.
22
Working Memory
The working memory is the ‘part of the
expert system that contains the problem
facts that are discovered during the
session’.
One session in the working memory
corresponds to one consultation. During a
consultation:
User presents some facts about the situation.
These are stored in the working memory.
Using these and the knowledge stored in the
knowledge base, new information is inferred and
also added to the working memory.
23
Inference Engine
The inference engine can be viewed as the
processor in an expert system that matches the
facts contained in the working memory with the
domain knowledge contained in the knowledge
base, to draw conclusions about the problem.
It works with the knowledge base and the working
memory, and draws on both to add new facts to the
working memory.
If the knowledge of an ES is represented in the form
of IF-THEN rules, the Inference Engine has the
following strategy:
Match given facts in working memory to the premises of the
rules in the knowledge base, if match found, ‘fire’ the
conclusion of the rule, i.e. add the conclusion to the working
memory.
Do this repeatedly, while new facts can be added, until you
24
come up with the desired conclusion.
Expert System Example:
Family
25
Explanation facility
The explanation facility is a module of
an expert system that allows
transparency of operation, by providing
an explanation of how it reached the
conclusion.
In the family example, how does the
expert system draw the conclusion that
Ali likes Ahmed?
The answer to this is the sequence of
reasoning steps as shown with the
arrows in the table at next slide.
26
Explanation facility
27
Programming vs.
Knowledge Engineering
Conventional programming is a sequential,
three step process: Design, Code, Debug.
Knowledge engineering, which is the process of
building an expert system, also involves
assessment, knowledge acquisition, design,
testing, documentation and maintenance.
However, there are some key differences
between the two programming paradigms.
28
Programming vs. knowledge
engineering
Conventional programming focuses on solution,
while ES programming focuses on problem.
Unlike traditional programs, you don’t just
program an ES and consider it ‘built’. It grows
as you add new knowledge. Once framework is
made, addition of knowledge dictates growth of
ES.
29
People Involved in an
Expert System Project
Domain Expert
A domain expert is ‘A person who posses the skill
and knowledge to solve a specific problem in a
manner superior to others.
For our purposes, an expert should have expert
knowledge in the given domain, good
interpretation skills, and availability
30
People involved in an
expert system project
Knowledge Engineer
A knowledge engineer is ‘a person who designs,
builds and tests an Expert System’. A
knowledge engineer plays a key role in
identifying, acquiring and encoding knowledge.
31
People involved in an
expert system project
End-user
The end users are the people who will use
the expert system. Correctness, usability and
clarity are important ES features for an end
user.
32