Problems, Problem Spaces, and Search

Problems, Problem Spaces, and
• To build a system to solve a particular
problem, we need to do four things:
– Define the problem precisely – the definition must
include precise specifications of what the initial
situation(s) will be as what final situations
constitute acceptable solutions to the problems.
– Analyse the problem – looking at other features
that could have an immense impact on the
appropriateness of various possible techniques for
solving the problem.
– Isolate and represent the task knowledge that is
necessary to solve the problem.
– Choose the best problem solving technique (s)
and apply it (them) to the particular problem
Defining the Problem as a State Space
• The focus now is on the first two things.
• Lets consider an example of problem statement
“Play Chess”
• To build a program that could “Play chess”, we
would first have to;
– specify the starting position of chess board,
– the rules that define the legal moves
– the board positions that represent a win for one side
or the other
– In addition we must make goal of winning the game.
Play Chess
• In “Play Chess” it is fairly easy to provide a
formal and complete problem description. The
starting position can be described as an 8-by-8
array where each position contains a symbol
standing for the appropriate piece in the
official chess opening position.
• Our goal is any board position in which the
opponent does not have a legal move and his
or her king is under attack.
Play Chess
• The legal moves provides the way of getting from
the initial state to a goal state.
• Find the way to write the rules describing the
legal moves in as general a way as possible.
– Use convenient notation for describing patterns and
substitutions as described in the following slide.
– The more succinctly in describing the rules needed,
the less work will be done to provide them and the
more efficient the program that uses them can be.
Play Chess
• Example of notation (Describing chess move):– White pawn at Square(file e, rank 2)
AND Square(file e, rank 3) is empty AND
Square(file e, rank 4) is empty – > move pawn from
Square(file e, rank 2) to Square (file e, rank 4)
Play Chess
• Play a chess is a problem of moving around in
a state space where each state corresponds to
a legal position of the board.
• We can then play chess by starting at initial
state, using a set of rules to move from one
state to another state, and attempting to end
up in one of a set of final states.
State Space
• The state space representation forms the basis
of most of AI methods to be discussed.
• Its structure corresponds to the structure of
problem solving in two important ways:
– It allows for a formal definition of a problem as
the need to convert some given situation into
some desired situation using a set of permissible
State of Space Search
• It permits us to define the process of solving a
particular problem as a combination of known
techniques and search, the general technique of
exploring the space to try to some path from the
current state to a goal state. Search is a very
important process in the solution of hard
problems for which no more direct techniques are
State of Space Search
• The first step toward design of a program to
solve a problem must be the creation of
formal and manipulable description of the
problem itself.
• Then write programs that can themselves
produce such formal descriptions from
informal ones.
State of Space Search
• To provide a formal description of a problem,
we must
– Define a state space that contains all the possible
configurations of the relevant objects.
– Specify one or more states within that space that
describe possible situations from which the
problem-solving process may start. These states
are called initial states.
State of Space Search
– Specify one or more states that would be
acceptable as solutions to the problem. These
states are called goals state
– Specify a set of rules that describe the actions
(operators) available.
Production System
Production Systems
• A production system is a model of
computation that provides pattern-directed
control of a problem – solving process and
consists of a set of production rules, a working
memory, and a recognize – act control cycle.
• A production system is defined by:
– A set of production rules, each consisting of a left
side (a pattern) that determines the applicability
of the rule and a right side that describes the
operation to be performed if the rule applied.
Production Systems
– One or more knowledge/databases (Working
Memory) that contains whatever information
(description) is appropriate for the particular task.
This description is a pattern that is matched the
condition part of a production to select
appropriate problem-solving actions.
– The recognise-act cycle. A control strategy that
specifies the order in which the rules will be
compared to the database and a way of resolving
the conflicts that arise when several rules match
at once
Production Systems
– A rule applier
• All of these systems provide the overall
architecture of a production systems and
allow the programmer to write rules that
define particular problems to be solved.
Production Rule
• One can often represent the expertise that
someone uses to do an expert task as rules.
• A rule means a structure which has an if
component and a then component.
The Edwin Smith papyrus
• The Edwin Smith papyrus is a 3700-year-old
ancient Egyptian text.
It contains medical descriptions of 48 different types of head wound.
There is a fixed format for each problem description: Title - symptoms - diagnosis - prognosis - treatment.
The Edwin Smith papyrus
• There's a fixed style for the parts of each
problem description. Thus, the prognosis
always reads "It is an injury that I will cure", or
"It is an injury that I will combat", or "It is an
injury against which I am powerless".
• An example taken from the Edwin Smith
The Edwin Smith papyrus
• Title:
– Instructions for treating a fracture of the cheekbone.
• Symptoms:
– If you examine a man with a fracture of the cheekbone,
you will find a salient and red fluxion, bordering the
• Diagnosis and prognosis:
– Then you will tell your patient: "A fracture of the
cheekbone. It is an injury that I will cure."
• Treatment:
– You shall tend him with fresh meat the first day. The
treatment shall last until the fluxion resorbs.
– Next you shall treat him with raspberry, honey, and
bandages to be renewed each day, until he is cured.
Other Examples of Rules
• if - the leaves are dry, brittle and discoloured
– then - the plant has been attacked by red spider
• if - the customer closes the account
– then - delete the customer from the database
Production Rule
• The statement, or set of statements, after the word if
represents some pattern which you may observe.
• The statement, or set of statements, after the word then
represents some conclusion that you can draw, or some
action that you should take.
• IF some condition(s) exists THEN perform some action(s)
– Test-Action
Production System
• Therefore production system can be described
as set of production rules, together with
software that can reason with them.
• Production System are sometimes known as
Rule Based Expert System.
• A rule-based system consists of
– a set of IF-THEN rules
– a set of facts
– an interpreter controlling the application of the
rules, given the facts.
Rule-based system model
Long Term Memory
Short Term Memory
Production rule
(Inference engine)
• Rule Part 1
– Antecedent/Premise/Condition
– IF part
– Test part
• Rule Part 2
– Consequent/Conclusion/Action)
– THEN part
– Action part
• IF <antecedent> THEN <consequent>
• A rule fires when its condition part is satisified and its
action part is executed
• Rule can have multiple antecedents
– Conjunction AND
– Disjunction OR
– Or a combination of both
• Consequent can have multiple clauses
– IF <antecedent> THEN <consequent1>
• In a production system, the rules are stored
together, in an area called the rulebase
Conditional branching
• Is a production rule the same as a conditional
branching statement?
• A production rule looks similar to the
if (statement to be evaluated) then (action)
pattern which is a familiar feature of all
conventional programming languages.
Conditional branching vs. production
• In a conventional program,
– The if...then... structure is an integral part of the code, and
represents a point where the execution can branch in one
of two (or more) directions.
– The paths available are pre-defined
• In a production system
– The if...then... rules are gathered together in a rule base
– The controlling part of the system (inference engine) has
mechanism for a rule from this knowledge (rule) base
which is appropriate to the current circumstances, and
then using it.
Reasoning with production rules
Architecture of a typical production
observed data
working memory
Reasoning with production rules
Architecture of a typical production
New information
working memory
Reasoning with production rules
Architecture of a typical production
New information
working memory
Reasoning with production rules
Architecture of a typical production
New information
working memory
Architecture of a typical production
• Has a working memory.
– Holds items of data. Their presence, or their
absence, causes the interpreter to trigger certain
– e.g. W.M. contains [john, age, 29] & [john,
employment, none]
• The system decides:
– Does this match any rules in the rulebase?
– If so, choose the rule.
Architecture of a typical production
• Behaviour of the interpreter:
– The system is started by putting a suitable data
item into working memory.
– Recognise-act cycle:
• When data in the working memory matches the
conditions of one of the rules in the system
• The rule fires ( brought into action).
• Which may change the working memory which changes
the recognise-act cycle
Related flashcards

Classes of computers

19 cards

Theory of computation

16 cards

Computer science

25 cards


43 cards

Create Flashcards