400 likes | 506 Views
Problems, Problem Spaces, and Search. Introduction. To build a system to solve a particular problem, we need to do four things:
E N D
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 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.
Long Term Memory Short Term Memory Production rule Fact Interpreter (Inference engine) Conclusion Rule-based system model
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 • Architecture of a typical production system: observeddata working memory select modify rule memory interpreter fire output
Reasoning with production rules • Architecture of a typical production system: New information select working memory modify rule memory interpreter fire output
Reasoning with production rules • Architecture of a typical production system: New information working memory select modify Interpreter executes actions rule memory output fire
Reasoning with production rules • Architecture of a typical production system: New information working memory select modify Interpreter executes actions rule memory output fire
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