8889b8a66d3c3972974795b47e9d5ff3.ppt
- Количество слайдов: 22
Knowledge and search Points Properties of knowledge § § Completeness Objectivity Certainty Formalizability The role of search A small case study CSI 4106, Winter 2005 Knowledge and search, page 1
Properties of knowledge: completeness "Knowledge is always incomplete": true or false? What do we need to know when we • play a game? • make a holiday plan? • recognize a picture? CSI 4106, Winter 2005 Knowledge and search, page 2
. . . completeness (2) Even in a very restricted real-life domain there may be unexpected situations. Find examples of such situations in • buying groceries, • fixing a car. Knowledge contained in an AI software system for some application is necessarily much less complete than what we know about this application: true or false? CSI 4106, Winter 2005 Knowledge and search, page 3
Properties of knowledge: objectivity Knowledge may be objective or subjective: we have to make a distinction between facts and beliefs. Beliefs are associated with agents. • Jack is planning a gift for his mother. He believes that she dislikes classical music. Will he buy a Mozart CD for her? • Is there anything subjective in the game of chess? • Is there anything objective in art appreciation? CSI 4106, Winter 2005 Knowledge and search, page 4
Properties of knowledge: certainty Knowledge may be certain or uncertain. Diagnostic expert systems are a good example: faults and repair advice do not always logically follow from observations or symptoms. What (if anything) can we conclude with certainty from • a sick person's short breath? • a car engine noise? • a position in a chess game? Probability plays an essential role here -- more to come, later. CSI 4106, Winter 2005 Knowledge and search, page 5
Properties of knowledge: formalizability Knowledge may or may not be easily formalized -- written down in some symbolic language (recall the physical-symbol systems). People often operate in an approximate manner and allow themselves a margin of error. Perhaps the same should be possible for intelligent systems, except that systems only have explicit knowledge that has been put into them. CSI 4106, Winter 2005 Knowledge and search, page 6
. . . formalizability (2) People rely on experience; systems must have experience formalized as well. Which of the following can be formalized (represented!) with little effort: • the rules of ice hockey? • the relationship between moods and colours? • the decision-making of a loan officer in a bank? • a surgical procedure? CSI 4106, Winter 2005 Knowledge and search, page 7
The role of search Intelligent behaviour requires knowledge. There is a hypothesis is that intelligent action can be reduced to search. While intelligence is certainly more than search, the hypothesis is attractive: search is well understood, easily mechanized, manageable, and so on. Formally represented knowledge can also be easily used in search. CSI 4106, Winter 2005 Knowledge and search, page 8
The role of search (2) Search means systematic traversal of a space of possible solutions of a problem. A search space is usually a graph (often as simple as a tree). A node represents a partial solution. An edge represents a step in the construction of a solution. CSI 4106, Winter 2005 Knowledge and search, page 9
The role of search (3) The purpose of search may be: • to find a path in the graph from a start node to a goal node (that is, from an initial to a final situation), • to find a goal node. Examples in textbooks are often puzzles and games -- not surprisingly, because these problems are the easiest to present as search. The challenge is to try it with other kinds of problems. CSI 4106, Winter 2005 Knowledge and search, page 10
The role of search (4) Examples of such problems: • Analyze an English sentence. • Debug a Pascal procedure. • Program a robot. CSI 4106, Winter 2005 Knowledge and search, page 11
A small case study A farmer has a wolf, a goat and a cabbage. He wants to cross the river from the south bank to the north bank. There is a boat that can only carry the farmer and at most one of his possessions. The wolf left alone with the goat will eat it. The goat left alone with the cabbage will eat it. How can the farmer cross the river and lose none of the three? CSI 4106, Winter 2005 Knowledge and search, page 12
. . . case study (2) This is a classical example of a planning problem. We must find a sequence of actions that will take the farmer across the river. At each moment, the whole situation is in one of its possible states. A state describes the position of the farmer, his three possessions and the boat with respect to the north and south bank of the river. An action is one crossing of the river, north or south. As a result of such an action, the farmer, the boat and possibly one of the three objects transfer from one bank to the other. There are constraints on actions, as no action should leave to an unsafe state. CSI 4106, Winter 2005 Knowledge and search, page 13
. . . case study (3) In the initial situation, everything is on the south bank. In the desired final situation the farmer and his three possessions are on the north bank. We will represent a situation as a four-tuple of locations: of the farmer, the wolf, the goat and the cabbage. We do not need to represent the position of the boat, because in is always located on the same bank as the farmer. For example, in the situation(s, n, s, n) the farmer and the goat are on the south bank, and the other two on the north bank. Is this situation safe? CSI 4106, Winter 2005 Knowledge and search, page 14
. . . case study (4) We represent the initial situation as situation(s, s, s, s) and the final situation as situation(n, n, n, n) Four actions are possible in each situation. The farmer transfers himself to the opposite bank; he also transfers nothing, or the wolf, or the goat, or the cabbage. We will represent these actions as Prolog terms: moved( nothing ) moved( wolf ) moved( goat ) moved( cabbage ) CSI 4106, Winter 2005 Knowledge and search, page 15
. . . case study (5) A situation is safe if it is safe both for the goat and the cabbage. The goat is safe if the farmer is on the same bank of the river, or when the wolf is not. The cabbage is safe if the farmer is on the same bank, or when the goat is not. We can express in Prolog everything we know about this problem. First, the main predicate: successful. Moves( Mvs ) : moves. Leading. To( Mvs, situation( n, n, n, n ) ). Mvs is a list of representations of actions. CSI 4106, Winter 2005 Knowledge and search, page 16
. . . case study (6) No actions are necessary to stay in the initial situation: moves. Leading. To( [], situation( s, s, s, s ) ). Otherwise, let Mvs 1 be a list of legal actions leading to situation S 1. Perform one more action and add it to Mvs 1: moves. Leading. To( Mvs, S ) : moves. Leading. To( Mvs 1, S 1 ), transforms( Mv, S 1, S ), append( Mvs 1, [Mv], Mvs ), safe( S ). CSI 4106, Winter 2005 Knowledge and search, page 17
. . . case study (7) North is opposite south: opposite( n, s ). opposite( s, n ). The four possible actions: transforms( moved( nothing ), situation( X, Z 1, Z 2, Z 3 ), situation( Y, Z 1, Z 2, Z 3 ) ) opposite( X, Y ). transforms( moved( wolf ), situation( X, X, Z 2, Z 3 ), situation( Y, Y, Z 2, Z 3 ) ) opposite( X, Y ). : - : continued CSI 4106, Winter 2005 Knowledge and search, page 18
. . . case study (8) transforms( moved( goat ), situation( X, Z 1, X, Z 3 ), situation( Y, Z 1, Y, Z 3 ) ) opposite( X, Y ). transforms( moved( cabbage ), situation( X, Z 1, Z 2, X ), situation( Y, Z 1, Z 2, Y ) ) opposite( X, Y ). : - The safety rules are as discussed earlier: safe( S ) : safe_for_goat( S ), safe_for_cabbage( S ). CSI 4106, Winter 2005 Knowledge and search, page 19
. . . case study (9) The farmer and the goat together: safe_for_goat( situation( X, Z 1, X, Z 3 ) ). The wolf and the goat separated: safe_for_goat( situation( X, Z 1, Y, Z 3 ) ) : opposite( Z 1, Y ). CSI 4106, Winter 2005 Knowledge and search, page 20
. . . case study (10) The same for the goat and the cabbage: safe_for_cabbage( situation( X, Z 1, Z 2, X ) ). safe_for_cabbage( situation( X, Z 1, Z 2, Y ) ) : opposite( Z 2, Y ). And finally here is a solution: ? - successful. Moves( Mvs ). Mvs = [moved(goat), moved(nothing), moved(wolf), moved(goat), moved(cabbage), moved(nothing), moved(goat)] Yes CSI 4106, Winter 2005 Knowledge and search, page 21
. . . case study (11) This program requires cuts in the definitions of safe_for_cabbage and safe_for_goat if it is to lose its annoying nondeterminism. It will then quickly deliver the other optimal solution: Mvs = [moved(goat), moved(nothing), moved(cabbage), moved(goat), moved(wolf), moved(nothing), moved(goat)] After that, the program begins to deliver nonoptimal solutions, longer and longer, with the unproductive moved(X), moved(X) inserted just about everywhere. CSI 4106, Winter 2005 Knowledge and search, page 22