Problems, Problem Spaces, and
Search
Introduction
• 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.
Introduction
– 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
• 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 operations.
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 available.
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.
ABCDEECDBBACDACDBCDECDADCADBADE
ECDBBACDACDBCDECDADCADBADCDBBACDA
BCDEECDBBACDACDBCDECDAD
BBACDACDBCDECDADCADBADEDCDBBA
DCDBBADCDBBABCDECDADCADBADEACDA
BACDACDBCDECDADBACDACDBCDECDAD
• 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 papyrus:
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 wound.
• 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 mite
• 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)
– IF-THEN
– 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
Production rule
Short Term Memory
Fact
Interpreter
(Inference engine)
Conclusion
Terminology
• 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
Terminology
• Rule can have multiple antecedents
– Conjunction AND
– Disjunction OR
– Or a combination of both
• Consequent can have multiple clauses
– IF <antecedent> THEN <consequent1>
<consequent2>
<consequentn>
Terminology
• 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.
• 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 l
Architecture of a typical production system: observed data working memory select modify rule memory fire interpreter output
Reasoning with production rules l
Architecture of a typical production system:
New information select working memory modify rule memory fire interpreter output
Reasoning with production rules l
Architecture of a typical production system:
New information select rule memory working memory fire modify
Interpreter executes actions output
Reasoning with production rules l
Architecture of a typical production system:
New information working memory select modify rule memory fire
Interpreter executes actions output
• Has a working memory.
– Holds items of data. Their presence, or their absence, causes the interpreter to trigger certain rules.
– 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.
• 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 (i.e.is brought into action).
• Which may change the working memory which changes the recognise-act cycle