Problems, Problem Spaces, and Search

advertisement

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

Defining the Problem as a State Space

Search

• 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.

Conditional branching vs. production rules

• 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

Architecture of a typical production system

• 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.

Architecture of a typical production system

• 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

Download