Anda di halaman 1dari 75

ARTIFICIAL INTELLEGENCE (AI)

UNIT I
Introduction & Definitions: Def 1: AI is the study of how to make computers do things which, at the moment, people do better (Rich & Knight) Def 2: The automation of activities that associates with human thinking, ac tivities such as decision- making, problem solving, learning (Bellman) Def 3: The exciting effort to make computers think, , machines with minds (Haugeland) Def 4: The art of creating machines that perform functions, which require intelligence when performed by people (Kurzwell) Def 5: The branch of computer science that is concerned with automation of intelligent behavior (Luger) AI PROBLEMS: AI Techniques used in the problems such as game playing & theorem proving. Game playing involves both checkers-playing program & chess. Theorem proving explored in the area of mathematics, as geometry. Both game playing & theorem proving share the property that people who do well are considered to be displaying intelligence. Computers could perform well at those tasks simply by being fast at exploring a large number of solution paths and then selecting the best one. This process required little knowledge & programmed easily. Task Domains of AI: (i) Mundane tasks a) Perception -Vision -Speech b) Natural Language -Understanding -Generation -Translation c) Commonsense Reasoning d) Robot Control. (ii) Formal Tasks a) Games -Chess -Checkers -GO -Backgammon b) Mathematics -Geometry -Logic -Integral Calculus -Proving Properties of programs

Page 1
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Eg on Mundane tasks: Consider going for shopping (i) Planning a route and a sequence of shops to visit (ii) Recognizing (through Vision) buses, people and shops (iii) Communicating through Natural Language (iv) Navigating round obstacles on the street, and manipulating objects for purchase Mundane tasks are hardest to compute (getting bore and bore as visiting shop by shop). Expert Tasks: Engineering -Design -Fault Finding -Manufacturing planning Scientific Analysis Medical Diagnosis Financial Analysis What is an AI Technique? AI problems span a very broad spectrum They appear to have little in common except that they are hard. The desirable properties of AI Techniques are i) It is voluminous. ii) It is hard to characterize accurately iii) It is constantly changing. iv) It differs from the data by being organized in a way that corresponds to the ways it will be used. Four goals of AI Systems that think like humans Systems that act like humans Systems that think rationally Systems that act rationally

Rationally : Systems do processes with intelligence and finds solutions to complex problems Human: Solving simple problems as like a human
Page 2
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

THE LEVEL OF MODEL: Before we set to do something, its a good practice to decide exactly What we are trying to do? What is our goal in t rying to produce programs that do the tasks the same way that people do? Goal is classified into two ways

To design programs that do Tasks what people do.

To design programs that do task in easiest Way.

Effort to build programs what people do can be classified in two ways. 1) Type: Efforts to build programs that solve problems that do not really fit the definition of AI task. Eg: EPAM (Elementary Perceiver And Memorizer) Illustration Wa ve ter ll ke

EPAM is an AI program which gives some syllables for a particular syllabi. 2) Efforts to build program that solve the problems which fit the definition of AI. The following are the reasons why we want to put our efforts to design 2 type, a) To test psychological theories of human performance: E.g. PARRY is an AI program which exploits a model of human paranoid behavior. (Paranoia is a disease who fears about some thing is about to happen (i.e. more anxiety) For: A person who enters into a flight may fear that the flight may crash. To enable computers to understand human reasoning: eg: A Computer to be able to read newspaper story and then answer a question such as why did the terrorists kill hostages The AI program must be able to stimulate the reasoning process and gives responses(Answers). To enable people to understand computer reasoning: In many circumstances, people are reluctant(against) to relay on the output of a computer unless they can understand how the machine arrived at its result.
Page 3
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

b)

c)

d) e)

If the computers reasoning process is similar to that pe ople, then producing an acceptable explanation is much easier. To exploit what knowledge we can glean from people since people are the best known performers of most of the tasks with we are dealing.

CRITERIA FOR SUCEESS: In 1950, ALAN TURING Proposed a method for determining WHETHER A MACHINE CAN THINK? This method has become TURING TEST. TURING TEST: To conduct Turing test, we need two people and the machine to be evaluated. In one room one person interrogator and is another room one person and machine. The interrogator can ask questions of either person or computer by typing and receiving typed responses. The interrogator knows then as A, B and aims to determine which is person and which is machine. If the machine succeeds at this, then we will conclude that machine can think. The machine is allowed to do whatever it can to fool the interrogator.. For e.g. How much is 12,324 times 739817 even though it can answer in microseconds, it will take several minutes and then respond with wrong answer. Computer takes long time to pass the Turing test. No computer can imitate 100% like a person. So it is necessary to settle at a particular level of imitation. Rating: We can limit the level of Turing test by setting certain rates to a program. For e.g. A Program can acquire classes rating based on rating of players whom it can beat. Turing Test based on level of achievement: We can limit the level of Turing test by comparing the level of achievements made by program with humans. For e.g. DENDRAL is a program that analyzes organic compounds to determine their structure. Turing Test Based on Time: We can compare the time it takes for a program to complete the task to the time required by a person to do the same thing. e.g. R1 is a program that requires minutes to perform tasks that previously required hours of a skilled engineers time. PROBLEM AS A STATE SPACE SEARCH: To solve a particular problem, we need to build a system. To build a system, four things are required.
Page 4
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

1. Define the proble m precisely: This includes precise specifications of what is initial situation as well as what will be the final situation constitute acceptable solution to the problem. 2. Analyze the problem: Explains about various possible techniques for solving the problem. 3. Isolate and represent the task knowledge that is necessary to solve the problem. 4. Choose the best problem solving technique and apply it to the particular problem. DEFINING THE PROBLEM ASE A STATE SPACE SEARCH PLAYING CHESS GAME To build a program that could play chess, We have to specify the starting position of the chess board, The rules that define legal moves The board positions that represent a win for one side We have to write a program explicitly the goal of not only playing a game of chess but also the winning game.

a) b) c) d)

1. For the problem Play Chess, it is fairly to provide a formal and complete description. The starting position can be described as 8-by-8 array where each position contains a symbol, standing for the appropriate piece in the chess opening position. Define our goal in any board position in which the opponent does not have a legal move and his/her kind is under attack. There are several ways in which these rules can be written. The two practical difficulties in writing the rules are: a) No person could ever supply a complete set of such rules. It would take too long and could certainly not to be done without mistakes. b) No program could easily handle all those rules. Although a hashing scheme could be used to find the relevant rules for each move fairly quickly.

In order to minimize such problems, we have to write the rules describing the legal moves in a general way. We have to define the problem of playing chess as a problem of moving around in a state space, where each state corresponds to a legal position of the board.

Page 5
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

WATER JUG PROBLEM: Proble m: You are given 2 Jugs, a 4- gallon one and a 3-gallon one. Neither has measuring monkers o it. There is a pump that can be used to fill the jugs with water. How can you get exactly 2 gallons of water into the 4 gallon jug? Sol: State space can be represented asset of ordered pairs of integers (x, y) such that x=0, 1, 2, 3 or 4. y=0, 1, 2 or 3. Where x represents the quantity of water in 3- gallon jug. The start space is (0,0) The goal state is (2mn) Some assumptions which are not mentioned in the problem statement are, that we can pour water out of a Jug onto the ground. Production Rules for water jug problem Rule No & Rule Name 1. 2. 3. 4. 5. 6. 7. (x, (x, (x, (x, (x, (x, (x, y) if x<4 y) if y<3 y) if x>0 y) if y>0 y) if x>0 y) if y>0 y) if (x+y)>=4y>0 Task to be done (4, y) (x, 3) (x-d, y) (x, y-d) (0,y) (x, 0) (4, y-(4-x)) (x-(3-y), 3) (x+y, 0) (0, x+y) (2, 0) (0, y) Meaning Fill the 4 gallon jug. Fill the 3-gallon jug. Pour some water out of the 4-gallon jug. Pour some water out of the 3-gallon jug. Empty the 4- gallon jug on the ground. Empty the 3- gallon jug on the ground. Pour water from the 3- gallon jug into 4 gallon jug until the 4- gallon jug is full. Pour water from the 4- gallon jug into 3gallon jug until 3-gallon jug is full. Pour all the water from 3- gallon jug into 4Gallon jug. Pour all the water from 4- gallon jug into the 3-gallon jug. Pour the 2-gallons from the 3-gallons jug into 4-gallon jug. Empty the 2- gallons in the 4-gallon jug on the ground.

8. (x, y) if (x+y)>=3&x>0 9. (x, y) if (x+y) <=4 & y>0 10. (x, y) if (x+y)<=3 & x>0 11. (0,2) 12. (2, y)

Page 6
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Solution to the water jug proble m

S.No.

Gallons in the 4-gallon jug

Gallons in the 3-gallon jug

applied

1 2 3 4 5 6 7 Ope rationalization:

0 0 3 3 4 0 2

0 3 0 3 2 2 0

Initial State space 2 9 2 7 5 9 or 11

In both chess and water jug problem explained the first step (Define the problem precisely) towards the design of a program to solve a problem. For that formal and manipulable description of the problem is required. Hence we ill be able to write programs which produces these formal description into informal. This process is known as Operationalization. To provide formal description of a problem, we have to do the following tasks. a) Define the state space that contains all the possible configurations of the relevant object. b) Specify one or more states within that state space that describe possible situation from which the problem solving process start. This is known as Initial State. c) Specify the state that would be acceptable as solution to the problem. This state is known as goal state. d) Specify set of rules that describe the actions available. Doing this will require giving thought to the following issues. i) What unstated assumptions are present in the informal problem description. ii) How general should the rules be? iii) How much work is required to solve the problem should be pre computed and represented in the rules? PRODUCTION SYSTEM: A production system consists of a) A set of rules, each consisting of left side that determines the applicability of the rule and right sides that describes the operation to be performed if the rule is applied. b) One or more knowledge/databases that contain whatever information is appropriate for the particular task.

Page 7
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

c) 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 general ruels match at once.

CONTROL STRATEGIES Control Strategies decides which rule to apply during the process of searching for solution to a problem. The two types of search algorithms are 1. Un informed search 2. Informed Search Search Algorithms

Uninformed

Informed

DFS

BFS

Cost-First Search

Generate & Test

Hill Climbing

Priority Queue n(n)

Best First Search

Problem Reduction

Constraint Satisfaction

Mean-end analysis

A*Search

Ao* Search

Priority Queue F(n) = h(n)+g(n).

Page 8
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Uninforme d Search: Also called Blind or Exhaustive search. Search and there fore may not be very efficient. Informal search: Also called heuristic or intelligent search. Uses information about the problem to guide the search. Uninforme d search is of two types i) BFS ii) DFS

i) BFS (Breadth-First Search): This is an exhaustive search technique. The search generates all nodes at a particular level before proceeding to the next level of tree. The search systematically proceeds testing each node that is reachable from a parent node before it expands to any child of those nodes. Search requires considerable memory resource. The space that is searched is quite large and start node. However, guarantee that if we find a solution it will be the shortest possible. Search terminates when a solution is found, the test returns true. Nodes are explored in the order A B C D E F G H I J K L M N O P The goal node J will be found before the goal node. M. Algorithm: Put the Root Node on a Queue. While (Queue is not empty) { Remove a node from the queue; If (node is a goal node) Return success; Put all children of node onto the queue; } return failure;

Page 9
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

DFS (Depth First-Search): This is also an exhaustive search. The search systematically proceeds to some depth d, before another path is considered. If the maximum depth of search tree is three, then if this limit is reached and if the solution has not been found, then the search back tracks to the previous level, and explores the remaining alternatives at this level.

A B D H E I F J C G

A a J a

Root node &


M a

are goal nodes.

Nodes are explored A B D E H L M I N O F G J K P After searching A, B, D the search backtracks and tries another path from node B. The goal M will be found before the goal node
a J a

Algorithm: Put the root node on a stack While (stack is not empty) { Remove a node from stack; If (node is goal node) Return success; Put all children of node onto stack; } Return failure;

Page 10
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

HEURISTIC SERACH A Heuristic is a technique that improves the efficiency of search process, possibly by sacrificing claims of completeness. Heuristics are like tourist guides. They are good to the extent that they point in generally interesting directions. They are bad to the extent that they miss the points of interest to particular individuals. For complex problems, traditional algorithms are unable to find the solution with some limits of time & space.

Hence heuristic functions are used to solve complex problems. Because of : a) Blind search is not always possible, because they require too much space & time. Heuristics are Rules of Thumb. they do not guarantee for a solution to a problem. Heuristics are knowledge about domain which help search and reasoning in its domain. Heuristics search function estimates cost from current state to goal, presuming function is efficient. Example: State space: Configuration of 8-tiles on the board. Initial State: 1 7 6 2 8 3 4 5 1 8 7 6 8-puzzle

Goal 2 3 4 5

Solution: Optimal sequence of operators Action: Move towards blank spaces -- condition: The move is with in the board. --Direction: Left, Right, Up, Down Problem: Which 8 puzzle move is best? What heuristic can decide? Which move is best?

Page 11
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Actions: Three possible moves: Left, Up, right 1 1 8 7 6 c 2 3 7 4 6 5 5 8 4 2 3

Right 1 7 2 8 6 h= 6 To find which move is best? 3 4 5 1 7 6 2 8 5 h=4 3 4

Left 1 7 6

Down 2 3 4 8 h=5 5

We can apply heuristics, 3 different approaches. -Count Correct position of each tile, compare to goal state -Count incorrect position of each tile, compare to goal state. -Count how far away, each tile is from its correct position. S.No 1. 2 3 Approaches Count correct position Count incorrect position Count how far away Right 6 2 2 Left 4 4 4 Down 5 3 4

Page 12
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Heuristics: 3 different approaches First approach: Count correct position of each tile, from its goal state. a) The higher the number, the better it is. b) Easy to compute (fast & takes less memory) c) Probably the simplest heuristic. Second approach: Count incorrect position of each tile, compare to goal state a) The lower the number, the better it is. b) The best move is where lowest number returned by heuristic. Third approach: Count how far away, each tile is form its correct position. a) The best move is where the lowest number returned by heuristic. PROBLEM CHARACTERSTICS In order to choose most appropriate method for a particular problem, it is necessary to analyze the problem such as i) Is the problem decomposable into a set of independent smaller or easier sub problems? ii) Can the solution steps be ignored or at least undone if they prove unwise? iii) Is the problem is universe predictable? iv) Is the good solution to be problem obviously without comparison to all other possible solutions? (or) Is the good solution absolute or relative? v) Is the solution a state of the world or path to a state? vi) Is a large amount of knowledge absolutely required to solve the problem or is knowledge important only to constrain the search? vii) Can a computer that simply given the problem return the solution or will the solution of the problem require interaction between the computer & person? PRODUCTION SYSTEM CHARACTISTICS: These relates with problem characteristics and various classes of problems. Majorly explains about set of characteristics & how the production system can be easily implemented.

Page 13
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Explain the relationship between problem type and types of production system those are best suited to solve the problem. Types of production systems: 1. Monotonic production system: A production system in which the application o f a rule never prevents the later application of another rule, that could also have been applied at the time the first rule was selected. 2. A non-monotonic production system: A production system in which mono-tonic production system is NOT TRUE 3. PARTIALLY COMMUTATIVE PRODUCTION SYSTEM: A production system with the property that if the application of a particular sequence of rules transformers state x into state y, then any permutation of those rules that is allowable also transforms state x into state y. 4. Communicative production system: A production system that is both monotonic & partially cumulative production systems. Four Categories of production system. Monotonic Partially Commutative Not Partially Commutative Theorem Proving Non Monotonic Robot Navigation

Chemical synthesis

Bridge

WORK BOOK (ANSWER THE FOLLOWING QUESTIONS)


1. What is the criteria of measuring the system success? (MAY 2008(new))

2. Define AI & What is an AI technique?(MAY 2008(old) 3. Define and show a solution for AI problem as state space search? ?(MAY 2008(old) 4. Explain the production system characteristics? ?(MAY 2008(old) 5. Explain the process of Turing Test?(November 2008) 6. Given two jugs, a 4- litre one and a 3- litre one with no measuring marks on them. A pump exists to fill the jugs with water. How can one get exactly 2 litres of water into the 4- litres jug? Write
Page 14
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

the production rules for water jug problem. Explain the p rocess of solving the problem. (November,2008) 7. What is a production system? Discuss about various types of production system with suitable examples? (November,2008)

Page 15
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

UNIT II FORWARD Vs BACKWARD REASONING


The object of a search procedure is to discover a path through a problem space from an initial configuration to a goal state. There are two search procedures. i) Forward Reasoning: ii) From the start states Forward rules to encode knowledge

Backward Reasoning: From the goal states. Backward rules to encode knowledge about how to achieve particular goals

Combining Forward & Backward Reasoning A1, A2, A3, AK - 1, AK, AK+1, Ak+2,.., An

Achieved by forward reasoning Backward-chaining Rule systems:

achieved by backward reasoning.

These rules can be implemented in PROLOG, which are good for goal directed problem solving. In PROLOG, rules are restricted and this allows rapid indexing. Rules are matched with Unification Procedure. Rules in a PRLOG program are matched in the order in which they appear. Forward-Chaining Rule Systems: Instead of being directed by goals, sometimes we want to be directed by incoming data. E.g. suppose you sense searching heat near your hand, you are likely to jerk your hand away. In forwardchaining systems, left sides of rules are matched against description. Rules that match dump their right hand side assertations into the state & the process repeats. Matching is typically more complex for forward-chaining systems than backward-chaining.

Page 16
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

PROBLEM TREES Vs GRAPHS A Tree is a graph in which any two vertices are connected by exactly one simple path. In other words, any connected graph without cycles is a tree. In other words, any connected graph without cycles is a tree. A tree is an Undirected simple graph G that satisfies any of the following conditions. G is connected an has no cycles. G has no cycles, and a simple cycle is formed if any edge is added to G. Moves in a graph can be undone. In a graph, there is more than one path to a goal, where as in a tree, a path to a goal is more cleanly distinguishable. A goal state may need to appear more than once in a tree. a e Graph b Knowledge Representation: c e f g h I j d Tree a

bb

In order to solve the complex problems encountered in AI, one needs both large amount of knowledge and some mechanisms for manipulating knowledge. Knowledge representation needs two entities. Facts Representation Facts: Truths in real world. These are the things we want to represent. Representations of facts in some choosen formalism

Page 17
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

*Mapping between facts & representations *

Facts

* *

Internal Representation English generation.

Eng. Understanding English Representation

The knowledge level, at which facts are described. The symbol level, at which representations of objects at the knowledge level are defined in terms of symbols that can be manipulated by programs. General Representation of Knowledge: Logical Representations Production Rules Semantic Networks Conceptual graphs Frames

Description Logics. What is Logic? A Language with concrete rules No ambiguity in representation Very Unlike natural languages eg. English Logics are languages, reasoning is a process.

Page 18
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Propositional Logic: Syntax: Propositions : eg: It is wet Connectives: AND , OR, NOT, IMPLIES, IFF Brackets, T (True), FL(False) FRAME PROBLEM: How to propagate information to the next situation when an action is taken. For example, if a box is at position P and the light is turned off, the box is still at P. The name frame problem derives from a common technique used by animated cartoon makers called framing where the currently moving parts of the cartoon are super imposed on the frame which depicts the background of the scene, which does not change. In logical context, actions are typically specified by what they change, with the implicit assumption that everything else remain unchanged. The frame problem occurs in simple domains. A Scenario with a door which can be opened or closed. Open (0)
True Open (1)

On (0) Locked (0) Open (0) On (0) Open (1) Open (1) On (1)

Eg: There might be a table with a plant on it under the window. Suppose if we move the table to the center of the room. We must also infer that the plant is now in the center of the room too, but the window is not. Frame Problem: Def: The problem of representing the facts that change as well as that does not change is known as frame problem. To support this kind of reasoning, some systems make use of an explicit set of axioms, called frame axioms, which describe all the things that do not change when a particular operator is applied in state n to produce state n+1
Page 19
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

MATCHING: The process of searching to solve the problems as the application of appropriate rules to individual problem states to generate new states to which the rules can then be applied, until a solution is found. This can be done by matching. Matching Through Indexing One way to select applicable rules is to do a simple search through all the rules, comparing each ones pre conditions to the current state and extracting all the ones that match. Matching with variables: The problem of selecting applicable rules is made more difficult when preconditions are not stated as exact descriptions. The Temporal nature of data. Full matching is only pursued for candidates that could be affected by incoming or outgoing data. Structural similarity in rules. Different rules may share a large number of pre-conditions. Persistence of variable binding consistency Complex and Approximate Matching: (X me Y) (I remember X) (My {family- member} is Y) (X {family- member} Y) (X you Y) (Why do remember X just now) (Who else in your family is Y?) (Tell me more about your family)

HEURISTIC FUNCTION
The various heuristic search methods are (a) Generate and test (b) Hill climbing (c) Best First search (d) Constrain Satisfaction (e) Means-ends analysis.
Page 20
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

a) Generate and Test: This is simplest of all approaches. i) ii) iii) Generate a possible solution. I.e. for some problems, generate a particular point in problem space and for some other problems generate a path from a start state. Test to see if this is actually a solution by comparing the chosen point or the end point of the chosen path to the set of all acceptable goal states. If a solution has found, quit, otherwise return to step1.

If the generation of possible solutions is done systematically, then the procedure will find a solution. If the problem space is very large, eventually may take very long time. Generate-and-Test algorithm is a depth-first procedure since complete solution must be generated before they can be tested. b) Hill Climbing: Search always moves towards the goal. Using heuristics, it finds direction will tak e to closest to the goal. The name hill climbing comes from analogy. A hiker is lost halfway up a mountain at night. His camp is at the top of the mountain. Even though it is dark, the hiker knows that every step he takes up the mountain is a step towards his goal. So a hill climbing search always goes to the node closest to the goal. Hill climbing is actually a combination of Generate-and- Test + Direction to move. Hill Climbing is a variant of generate-and-test in which feedback from the test procedure is used to help the generator decide to which direction to move in the search space. In a pure generate-and-test procedure, the test function responds with only yes or no. But if the test function is augmented with a heuristic function that provides an estimate of how close a give state is to a goal state. This is a nice approach because computation of heuristic function can be done at almost no cost at the same time that the test for a solution is being performed. Hill Climbing is often used when a good heuristic function is available for evaluating states but when no other useful knowledge is available.

Page 21
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Eg: You are in an Unfamiliar city without a map and you want to get downtown, you simply aim for tall buildings. The heuristic function is just distance between the current location and location of tall buildings and the desirable states are those in which the distance is minimized. The heuristic function is to estimate how close a given state to a goal state. Algorithm: 1. Evaluate the initial state. If it is goal state, then return and quit. Otherwise continue with initial state as the current state.

2. Loop until a solution is found or until there are no new operators left to be applied in the current state. a) Select an operator that has not yet been applied to the current state and apply it to produce a new state. b) Evaluate the new state. i) If it is goal state, then return & quit. ii) If it is not goal state, but it is better than the current state, then make it as current state. iii) If it is not better than current state, then continue in the loop. Steepest ascent hill climbing: Algorithm 1. Start with initial state and evaluate it

2. Continue in the loop till a solution is found or till a complete iteration produces no change to current state 2.1 Let SUCCESSOR be a state such that any possible successor of the current state will be better than SUCCESSOR. 2.2 For all operators that applies to the current state, evaluate the new state, if the new state is goal state, QUIT, else if it is better than SUCCESSOR, then set SUCCESSOR to this state 2.3 If SUCCESSOR is better than the current state, then set the current state to SUCCESSOR.

Page 22
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

PROBLEMS WITH HILL CLIMBING (a) Local Maxima (i) (ii) Cant see higher peak Shoulder: cant see the way out Diagram to be inserted A local maxima is a state where we have climbed to the top of the hill, and missed the mountain. A state that is better than all of its neighbours, but not better than some other states far away.

(b) Plateau A plateau is a state where everything around is about as where we are currently. In other words a flat area of the search space in which all the neighboring states have the same value.

Flat area

(c) Ridge Its a special kind of Local Maximum. It is an area of the search space that i s higher than surrounding areas and that itself has a slope. But in orientation of the high region, compared to the set of available moves and the directions in which they move, makes it impossible to traverse a ridge by single moves.

Page 23
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

SIMULATED ANNEALAING Simulate means to To Possess and Annealing means Heat and Cool Slowly Both in simple hill climbing and steepest ascent hill climbing, we used the heuristic function from the bottom of the hill to the top of the mountain. i.e., Heuristic function will maximize the options. Where as in Simulated Annealing, is a process which is one of the valley descending. Simulated annealing will minimize rather than maximize the value of objective function. Simulated annealing as a computational process , it is patterned after the physical process of annealing, in which the physical substances such as metals are melted (i.e., raised to high energy levels) and then gradually cooled until some solid state is reached. The goal of this process is to produce Minimalenergy final state. The process is one of valley descending in which the objective function is energy level. The physical substances usually move from higher energy configuration to lower one. Similarly valley descending occurs naturally. There is some probability that a transition to higher energy state will occur. The probability given by the function

P=eWhere

E / KT

E is the positive energy change in energy level.

T is the Temperature and K is Boltzmanns Constant.

Best-First Search: The Two systematic control strategies are Breadth-First Search & Depth-First search. BestFirst Search is the one which is a way of combining the advantages of both depth-first & breadth- first search into a single method. Eg: Step 1
A

Step 2:

B (3)

C (5)

D ( 1)

Page 24
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Step 3:
A

Step 4:
A

B (3)

C (5)

C (5) H (5) E

E (4)

F (6)

G (6)

(4)

F (6)

Step 5:
A

C (5)

G (6)

H (5) I (2)

In the next step, J will be expanded, since it is most promising. This process can continue until a solution is found.

J (1)

At each step of best- first search process, we select the most promising of the nodes we have generated so far. This is done by applying an appropriate heuristic function to each of them. We then expand the chosen node by using the rules to generate its successors If one of them is the solution, quit it If not, all those new nodes are added to the set of nodes generated so far, again the most promising node is selected and the process continues.

Page 25
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

ALGORITHM: 1. Start with OPEN containing just the initial state. 2. Until a goal is found or there are no nodes left on OPEN to a) Pick the best node on OPEN b) Generate its successors c) For each Successor do; i) If it has been generated before, evaluated it, add it to OPEN, and record its parent ii) If it has been generated before, the parent if this new path is better the previous one. In that case, update the cost of getting this node and to any successors that this node may already have. Informe d search methods/Domain Specific Information Add domain-specific information to select what is the best path to continue searching along. Define a heuristic function, n(n) that estimates the goodness of a node n with respect to reacting a goal. Specifically, h(n)=estimated cost (or distance) of minimal cost path from n to a goal state. h(n) is about cost of the future search. about cost of the past search. g(n) is

h(n) is an estimate (rule of thumb), based on domain specific information that is computable from the current state description. Heuristics do not guarantee feasible solutions and are often without theoretical basis. In general, n(n)>=0 for all nod es of n n(n0=0 implies that n is goal node n(n) = infinity implies that n is a dead end from which a goal cannot be reached.

Page 26
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Best First Search: Order nodes on the OPEN list by increasing value of an evaluation function, f(n), that incorporates domain specific information in the following way. f(n) = g(n) (Uniform Cost) f(n) = h(n) (Greedy Algorithm) f(n) = g(n) + h(n) (Algorithm A) A* Algorithm: The best first search was presented in a simplification of an algorithm called A*, which was presented by Hart etal. The algorithm uses the functions f, g, h and two lists {OPEN} & {CLOSED}.

Step 1: Start with {Open} Containing only initial node. Set the nodes g value to zero, and its h value to whatever it is, and its f value to h+0 or h. Set {Closed} to the empty list. Step 2: Until a goal node is found, repeat the following procedure. If there are no nodes on {OPEN} report failure. Otherwise, pick the node on {OPEN} with the lowest f value. Call it as BESTNODE. Remove it from OPEN. Place it on CLOSED. See if BESTNODE is goal node. If so, exit and report a solution, otherwise, generate the successors of BESTNODE but do not set BESTNODE but do not set BESTNODE to point to them yet. For each successor, do the following. Idea: avoid expanding paths that are already expensive. Evaluation function f(n)=g(n)+h(n) g(n) = Cost so far to reach n. h(n) = Estimated cost from n to goal. f(n) = estimated total cost of path through n to goal. a) Set SUCCESSOR to point back to BESTNODE. These backwards links will make it possible to recover the path once a solution is found. b) Compute g(SUCCESSOR) = g(BESTNODE) + the cost of getting from BESTNODE to SUCCESSOR. c) See if successor is same as any node on OPEN. If so, call that node u. Since this node already exists in graphs, we can throw successor away and add Old to the list of Best nodes Successors.

Page 27
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

d) If Successor was not already on either OPEN or CLOSED, then put it on OPEN, and add it to the list of BESTNODES successors. Compute f (Successor) = g (Successor) + h (Successor) Summary: A * is a Greedy best-First graph search algorithm that finds the least-cost path from a given initial node to goal node. It Uses a distance-plus-cost heuristic function (f(x)) to determine the order in which the search visits nodes in the tree. The distance-plus-cost heuristic is a sum of two functions. The Path Cost function, which is the cost from the starting node to the current node, usually denoted by g(x). And an admissible Heuristic estimate of the distance to the goa l, usually denoted by h(x). The h(x) part of the f(x) function must be an admissible heuristic, i.e. must not over estimate the distance to the goal. H(x) might represent the straight line distance to the goal, since that is physically smallest possible distance between any two points. A* is a search algorithm distance-to-goal + path- cost. Also known as OR Graph PROBLEM REDUCTION: In the Greedy Best- first search strategies for OR graphs through which we find a single path to a goal. Such structure represents the fact that will know how to get from a node to a goal state. AND OR GRAPHS Useful for certain problems where The solution involves decomposing the problem into small problem. We than solve these smaller problems.

The alternatives often involve branches where some or all most be satisfied before we can progress. For example If I want to learn to play a Frank Zappa guitar solo I could. Transcribe it from the Cd (OR) Buy the Frankzappa Guitar Book AND Read it from there.
Page 28
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Step 1:

Step 2: 1

6
4 6

Step 3: 3 7 5 6 4 1 6

Step 4: 3 6 4 7 5 1

2 1 Indicate that one or more nodes must all be satisfied before the parent node is achieved. To find solutions using an AND-OR graph. AO* ALGORITHM: 1. Initialize the graph to start node. 2. Traverse the graph following the current path accumulating nodes that have not yet been expanded or solved. 3. Pick up any of these nodes and expand it and if it has no successors call this value FUTILITY otherwise calculate only f for each of the successors. 4. If f is zero then mark the node as SOLVED. 5. Change the value of f for the newly created node to reflect its successors by back propagation. 6. Whenever possible use the most promising routes and if a node is marked as SOLVED then mark the parent as solved. 7. If starting node is SOLVED or value greater than FUTILITY, stop, else repeat from 2.

Means ENDS Analysis Allows both backward and forward searching This means we could solve major parts of a problem first and then return to smaller problems when assembling the final solution. GPS was the first AI program to exploit means ends analysis. A STRIP (A robot planner) is an advanced problem solver that incorporates means-ends analysis and other techniques. Algorithm 1. Until the goal is reached or no more procedures are available. Describe the current state, the goal state and the differences between the two. Use the difference the describe a procedure that will hopefully get nearer to goal. Use the procedure and update current state.
Page 29
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

2. It goal is reached then success otherwise fail. Constraint Satisfaction The General problem is to find a solution that satisfies a set of constraint. Heuristics used not to estimate the distance to the goal but to decide what node to expand nest. Example of this technique are Robot path planning, crypt arithmetic puzzles & design problems. Algorithm: 1) Propagate available constraints. To do this first set OPEN to the set of all objects that must have values assigned to then in a complete solution. Then do until an inconsistency is detected or until OPEN is empty. a) Select an object OB from OPEN. Strengthen as much as possible the set of constraints that apply to OB. b) If this set is different from the set that was assigned the last time OB was examined o r if this is the first time OB has been examined, then add to OPEN all objects that share any constraints with OB. c) Remove OB from OPEN. 2) If the Union of constrains discovered above defines a solution, then quit and report the solution. 3) If the Union of constraints discovered above defines a contradiction, then return failure. 4) If neither of the above occurs, then it is necessary to make a guess at something in order to proceed. To do this, loop until a solution is found or all possible solutions have been eliminated. a) Select an object whose value is not yet determined and select a way of strengthening the constraints on that object. b) Recursively invoke constraint satisfaction with the current set of constrains augmented by the strengthening constraint just selected. e.g. A) S EN D +M O R E __________________ MO N EY ___________________ b) CRO SS +RO ADS _______________ D AN G ER ______________

Crypt-Arithmetic problems

MINIMAX SEARCH PROCEDURE The Minimax search procedure is a depth-first, depth- limited search procedure. The idea is to start at the current position and use the plausible- move generator to generate a set of possible successor positions. Now we can apply the static evaluation function to those positions and simply choose the best one.
Page 30
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

After doing so, we can back that value upto the starting position to represent our evaluation of it. The starting position is exactly as good for us the position generated by the best move we can make next. Here we assume that the static evaluation function returns large values to indicate good situations for us, so our goal is to maximize the value of static evolution function of the next board position. Eg1.
B A

Two Ply Search

E
(9)

F
(6)

G
(0)

H
(0)
(-2)

I
(-2)

J
(-4)

K
(-3)

Eg2.
B
(-6)

Maximizing Ply

(-2)

(-4)

Minimizing Ply

E
(9)

F
(-6)

G
(0)

H
(0)

I
(-2)

J
(-4)

K
(-3)

An example of this operation is that, it assumes a static evaluation function that returns values ranging from -10 to +10, with +10 indicating a win for us, - 10 a win for the opponent, and 0 an even ma tch. Since our goal is maximize the value of heuristic function, we choose to move to B backing Bs value up to A, we can conclude that As value is 8. Adding Alpha-Beta cutoffs Minimax procedure is a depth- first process. In general, depth- first process officiency can be improved by using branch-bound technique, in which partial solutions that are clearly worse than known solutions can be abandoned early. To modify our minimax search procedure slightly to handle both maximizing and minimizing and minimizing players, it is also necessary to modify the branch-bound strategy to include two bounds, one for each of the players. This modified strategy is called Alpha-Beta Pruning.

Page 31
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Alpha-Beta Pruning requires maintenance of two threshold values, one represe nting the i) Lower bound on the value that a maximizing node may ultimately be assigned (called Alpha) ii) Represent a Upper bound on the value that a minimizing node may be assigned (Called Beta)
A B C D (3) B
(3)

(>3)

Maxmizing Ply

(-5) (<-5)
Minimizing Ply

D (3)

E (5)

F (-5)

G (0)

E (5)

(-5) (0) Two Ply Search

Two Ply Search

The Alpha-Beta procedure works as the follows. After examining node F, we know that the opponent is guaranteed a score of -% or less at c since the opponent is minimizing player. We also know that we are guaranteed a source of 3 or greater at node A. Additional Refine ments: One of the modifications to the minimax procedure is Alpha-Beta pruning. There are some other modifications to minimax, other than Alpha-beta pruning are known as additional refinements. Those are i) Waiting for Quiescence. ii) Secondary Search. iii) Using Book moves. Waiting for Quiescence: This is used for determining when to stop going deeper in the search tree is whether the situation is relatively stable. Suppose B node is expanded one more level. When we booked one move ahead, our estimate of worth B changed drastically. The opponent has significantly improved the immediate appearance of his/her position by initiating a piece of exchange. To make sure that such short-term measures do not influence our choice of move, we should continue the search until no such drastic change occurs from one level to the next called as waiting for Quiescence.

Page 32
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Secondary Search: Suppose, if we explore a game tree to an average depth of six play and on the basis of that search, choose a particular move. Although it would have been too e xpensive to search the entire tree to a depth of eight, it is not very expensive to search the single chosen branches an additional two levels to make sure that it still looks good. This technique is called secondary search. Using Book moves: For complicated games taken a whole, which is not feasible to select a move by simply looking up the game configuration in a catalogue and extracting the correct move. The catalogue would be immense and no one knows how to construct it. But for some segments of games, this approach is applicable. Eg. In Chess, for example, both the beginning (opening) sequences and endgame sequences are highly stylized. In these situation, the performance of a program can often be considerably enhanced if it is provided with a list of moves known as (Book moves) that should be made. The use of book moves in the opening sequences and endgames, combined with the use of minimax search procedure for the midgame, provides more effective results (technique).

WORK BOOK (ANSWER THE FOLLOWING QUESTIONS)


1. Explain about Alpha-Beta cutoff with an algorithm and suitable examples(Nov,2008(new))

2. Discuss about Forward Vs Backward reasoning(Nov,2008(old)) 3. Differentiate Problem Trees Vs Graphs (Nov,2008(old)) 4. Describe the different matching techniques(May,2008(old)) 5. Write the MiniMax procedure. 6. Differentiate between AO* and A* algorithm

7. Solve the crypt arithmetic problems (a) S E N D MO RE _________ MO N EY __________ (b) DONALD GERALD ____________ RO B ER T ____________

Page 33
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

UNIT III
Representing the simple facts in logic: Standard predicate logic symbols are Implication Not OR AND For all There exist. E.g. 1: It is raining Raining It is sunny Sunny It is windy windy If it is raining, then it is not sunny
Raining Sunny

These are facts.

E.g. 2. (i) Marcus was a man (ii) Marcus was a Pompeian (iii) All Pompeians were Romans (iv) Caesar was a ruler (v) All Romans were either loyal to Caesar or hated him (vi) Every one is loyal to someone. (vii) People only try to assassinate rulers they are not loyal to (viii) Marcus tried to assassinate Caesar. Predicate logic of the above facts are (i) Man ( Marcus ) (ii) Pompeian(Marcus) (iii) X: Pompeian (iv) Rules (Ceasar) (v) x: Roman (x) loyal to (x,Caesar) V hate (x,Caesar) (vi) X :y : loyal to (x,y) (vii) X: y: person (x) ^ ruler (y) ^ try assassinate (x,y) (viii) Try assassinate (Marcus, Caesar)
Page 34
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Computable Functions & Predicates: Simple facts were expressed as combinations of individ ual predicates. Computable functions explains about expressing simple facts, such as greater than and lessthan relationships. gt(1,0) lt(0,1) gt(2,1) lt(1,2) gt(3,2) lt(2,3) e.g: gt(2+3,1) Compute the value of the plus function given the arguments 2 and 3, then send the argument 5 and 1 to gt. Compute the following using predicates: 1. Marcus was a Pompeian 2. All Pompeians died when the volcano erupted in 79 AD 3. It is now 2004 AD Q: Is Marcus Alive? A) The predicates are as follows: 1) Pompeian(Marcus) 2) Erupted (Volcano, 79)^ x: Pompeian(x)died(x,79) 3) now = 2004. x : t1: t2:died(x,t1) ^ greater- than (t2,t1) dead(x,t2) Many English sentences are ambiguous. There is often a choice of how to represent knowledge. Obvious information may be necessary for reasoning. We may not know in advance which statements to deduce (p or p)

Representing Instance & ISA relationships: e.g. 1 Pompeian (Marcus) Predicate: x : Pompeian(x) Roman(x) e.g.2 Instance (Marcus, Pompeian) Predicate: x: instance (x, Pompeian) instance (x, roman) e.g.3 Instance (Marcus, Pompeian) Isa (Pompeian, Roman) Predicate: x: y : z : Instance (x,y) ^ Isa (y, z) Instance (x,z)

Page 35
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Resolution: Def 1: A Resolution is a principle based on machine-oriencted logic. Def 2: A Resolution is a procedure, which gains its efficiency from the fact that it operates on statements that have been converted to a very convenient standard form. Resolution produces proofs by refutation. i.e. to prove a statement,resolution attempts to show that the negation of statement produces a contraction with the known statements.
Basic Idea

KB l=d KB ^ .1 =false (KB stands for knowledge Base) ( V b) ^ (r V b) ( v r) Sound & complete (or) To proof given knowledge KB Step 1: Negate : Step 2: Add to KB Step 3: Convert KB into CNF Step 4: Infer contradiction (empty clause) using resolution rule. Basis of Resolution (Using Literals) Resolution procedure is a simple iterative process. At each step, 2 clauses called as (a) parent clause 2 resolved or compared. The two clauses yielding a new clause that has been inferred from them. The new clause represents ways that the two clauses interacts each other. Eg. Winter Vs summer

both clauses must be true. We can observe that one of winter and winter will be true at any point. From these two clauses, we can deduce. Summer V Cold Both winter and winter will produce an empty clause. Example on Resolution: Knowledge Base: 1) 2) 3) 4) 5) Ph.D(x1) V Highly qualified (x1) Ph.d(x2) V Early Earnings (x2) Highly Qualified (x3) V Rich (x3) Early Earnings (x4) V Rich (x4) Rich (me) Q) To prove Rich (Me)

Winter V Cold

In order to prove the above add


Rich(me) to the CNF KB

Page 36
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Proof:
Ph D(x) V Hq(x) HQ (x) V Rich (x)

Ph.D (x) V Rich (x)

Ph.D(x) V EE(x)

Rich(x) V EE(x)

EE(x) V Rich (x) Rich (x)

Rich(x)

Resolution in propositional logic: Algorithm: Step 1 : Convert all the propositions of KB (Knowledge base to clause form (s). Step 2: Negate and convert it to clause form. Add it to s.

Step 3: Repeat until either a contradiction is found or no progress can be made. a. b. Select two clauses ( V P) and (r V P) Add the resolvant ( V r) to s.

e.g. Given knowledge base KB axioms are KB = {p, (p^q) R, (S V T) Q, T }. ( = R to be proved) A. Give n Axioms P (P^Q) R
given

Conve rted to clause Form P pVQVR SVQ TVQ T (1) (2) (3) (4) (5) (6)

(S V T ) Q

Page 37
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

pVQVR

pVQ

Q TVQ

--T

Simple tips while conversion to clause form 1. PQ=PVQ 2. Reduce the scope of each to a single term. (P V Q) = P ^ Q (P ^ Q) = P V Q x:P = x: p x:P = x:p P=P. Eliminate

NATURAL DEDUCTION: Natural deduction is an approach to proof theory that attempts to provide a deductive system which is a formal model of logical reasoning as it naturally occurs. This approach is in contrast to axiomatic systems which use axioms. Eg. Suppose we believe that all judges who are not crooked are well-educated, can be represented in natural deduction as.
x:judge(x) ^ crooked(x) well -educated(x)

But the same statement is converted to clause form as


judge(x) V crooked(x) V educated (x)

Page 38
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

How? In the form of A B where A = judge(x) ^ crooked(x) AB= AV B A = (judge (x)/p ^ crooked x/q) = judge(x) V (crooked (x)) ((p^q)=pVQ) = judge(x) V crooked (x) AVB=
judge(x) V crooked(x) V well educated(x)

B= well educated (x)

Wffs = well-formed formulas

Non monotonic Reasoning: In Non-Monotonic reasoning, in which the axioms and/or the rules of inference are extended to make it possible to reason with incomplete information. These systems preserve, however, the property that, at any given time, a statement is either believed to be true, belived to the false, or not believed to be either. Infe rential Monotonicity Prope rty (P,Ai), {Ai,Ai+1, , An} | -- p{Ai, .An, An+1}1--p Monotonic Systems: Respects Inferential monotonicity. FOL(First Order Logic) with modus ponens (or) Resolution is monotonic Strict semantic net inheritance is monotonic. Non-Monotonic Systems: Do not respect Inferential Monotonicity. Most (x) Quantifier leads to non- monotonicity. Default reasoning is non- monotonic. Semantic net inheritance with exceptions is non- monotonic.

If P, then Q is a hypothetical proposition. Then the First half of a hypothetical proposition is known as Antecedent and second half is known as consequent P is Antecedent and Q is consequent. E.g. 2 if x is a men, then x is mortal. X is a man is the Antecedent of the proposition. (i) Modes ponens rule written in sequent nota tion as PQ, P Q. It means, PQ is True and P is True then Q must be True.

Page 39
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

(ii) Modes ponens written in rule form as PQ,P/Q E.g. If today is Tuesday, then I will go to work. Today is Tuesday.Therefore, I will go to work. Justification thru Truth Table P T T F F PQ is T P is T Q T F F T P F F T T PQ(or)/PVQ T F T T

. . Q is T known as Modus ponens.

A Truth Table is a mathematical Table used in logic-specifically in connection with Boolean Algebra, Boolean functions, and propositional calculus to compute the functional values of logical expressions. (i) Logical Negation () or ~ : P T F P F T

(ii) Logical Conjunction (^) or (&): P T T F F Q T F F T P^Q T F F F

Page 40
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

(iii)Logical Disjunction (V) or (||): P T T F F (iv) Logical Implication: P Q = P V Q (P implies Q) P T T F F Q T F F T PQ T F T T Q T F F T PVQ T T T F

(v) Logical Equality () P T T F F Q T F F T P^Q T F T T

(vi) Exclusive Disjunction (XOR) P P T T F F Q = P Q1 +QP1 . Q T F F T Q1 F T T F P1 F F T T PQ1 F T F F QP1 F F F T P F T F T Q

Page 41
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

(vii)

Logical NAND (NOT AND) P T T F F Q T F T F P^Q T F F F !(P^Q) (or) PQ F T T T

(viii)

Logical NOR (NOT OR) (): P T T F F Q T F T F P^Q T T T F PQ F F F T

A Non-Monotonic logic is a formal logic whose consequence relation is not monotonic. A Monotonic logic cannot handle various reasoning tasks such as (i) Reasoning by default (Consequences may be derived only because of lack of evidence of the contrary) (ii) Abductie Reasoning: Consequences are only deduced (iii)Belief Revision (New Knowledge may contradict old beliefs)

STASTICAL & PROBABILITSTIC REASONING Need for probabilistic Reasoning: Most everyday reasoning is based on uncertain evidence and inferences. Classical logic, which only allows conclusions to be strictly true or strict ly false, does not account for this uncertainty. Early expert systems employed fairly adhoc methods for reasoning under uncertainty and for combining evidence.

Page 42
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Axioms of probability theory: All probabilities 0 and 1 0<=P(A)<=1 True proposition has probability 1, false has probability 0 P(true)=1, P(false)=0 The probability of disjunction is P(AVB) = P(A) + P(B) P(A^B) Conditional Probability: P(A|B) is the probability of A given B. Assumes that B is all and only information known. Defined by P(A|B) = P(A^B)/P(B). Independence: A and B are independent if P(A|B) = P(A) P(B|A) = P(B) Therefore, if A and B are independent P(A|B) = P(A^B)/P(B) = P(A) P(A^B)=P(A) P(B) Classification (Categorization): Given: A Description of an instance, xX, where X is the instance space. A fixed set of categories C = {c1,c2,Cn} The category of x: c(x) C, where c(x) is a categorization function whose domain is X and whose range is C If C(x) is a binary function C = ({0,1},{true, false},{positive,negative}) then it is called a concept.

Determine:

Page 43
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Bayes Theorem:
P(H|E) = P(E|H) P(H)/P(E) where P(E) probability of evidence & P(H)probability of hypothesis. Simple proof from the definition of conditional probability. P(H|E) = P(H^E)/P(E) (def . cond. Prob) P(E|H) = P(E^H)/P(H) = P(H^E)/P(H) (. Def.cond. prob) P(H^E) = P(E|H) P(H) Application on Bayes Theorem: Suppose there is a school having 60% boys & 40 % girls as students. The female students wear Trousers or skirts in equal numbers. The boys all wear trousers. An observer sees a student is wearing trouser. What is the probability that this student is a girl? Ans: Event A is that student observed is a girl. Event B is that the student observed is wearing trousers. We have to compute P (A|B). For this P(A) i.e. the probability of the student is a girl regardless of any other information. Fraction of girls among the students is 40% the probability equals 0.4. P(B|A), i.e probability of student wearing trousers given that the student is a gril. As t hey are as likely to wear skirts as trousers, this o.s. P(B), i.e. the probability of a student wearing trousers regardless of any other information 60% + 20% = 80%=0.8% P(A|B) = P(B|A) P(A)/p(B)= 0.5 X 0.4/0.8=0.25.

Another method for solution: Assume, for concrete, that there are 100 students, 60 boys and 40 girls. Among these 60 boys and 20 girls wear trousers. All together there are 80 trouser wearers, of which 20 girls. A chance of getting random trouser wearer girl is equal to 20/80=1/4=0.25 Proving Bayes theorem by Derivation from conditional probabilities. P(A|B)=P(B|A)P(A)/P(B)

Page 44
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Proof: P(A|B) = P(AB)/P(B) (From def. of conditional probability)

The probability of event B given event A is, P(B|A)= P(BA)/P(A)=P(AB)/P(A) P(A|B) P(B)= P(AB ) (from 1) = P(B|A) P(A) (from 2)
A(A|B) = P(B|A) P(A)/P(B)

Hence proved.

Bayesian Networks: The main idea is that to describe the real world, it is not necessary to use a huge joint probability table in which we list the probabilities of all conceivable combinations of events.
Rain
Raing Season

Sprinkler

Wet

Sprinkler

Rain

Wet

There are two different ways that propositions can influence each other. The first is that causes influence the likelihood of their symptoms. The second is that observing a symptom affects the likelihood of all its possible causes. The idea behind the Bayesian network structure is to make a clear distinction between these two kinds of influence.

Attribute P(Wet|Sprinkler, Rain) P(Wet|Sprinkle, Rain) P(Wet|Sprinkler, Rain) P(Wet|Sprinkler, Rain) P(Sprinkler| Rainy Season) P(Sprinkler| Rainy Season) P(Rain| Rainy Season)

Probability 0.95 0.9 0.8 0.1 0.0 1.0 0.9


Page 45

ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

P(Rain| Rainy Season) P(Rainy Season)


Dempster-Shafer Theory:

0.1 0.5

This new approach considers set of propositions and assigns to each of then an internal [Belief, plausibility], in which the degree of belief must lie. Belief (Usually denoted Bel) measures the strength of the evidence in favor of set of propositions. It ranges from (zero) (indicating no evidence) to 1 (denoting certainy) Plausibility (pl) is defined to be
Pl(S) = 1-Bel (S)

Plausibility also ranges from 0 to 1 and measures the extent to which evidence in favor of s leaves room for belief in S. In particular if we have certain evidence in favor of s then bel (s) will be 1 and pl(s) will be 0. Fuzzy Logic: Def: Superset of conventional (Boolean) logic that has been extended to handle the concept of partial truth. Central notion of fuzzy systems is that values are indicated by a value on the range[0.0,1.0], with 0.0 (zero to zero) representing absolute falseness & 1.0 representing absolute truth.

Applications Expert systems Automatic Transmissions Video Cameras Robotics Decision Analysis

Comparison to various Logics: In bivalent logic, BL, Truth is bivalent, implying that every proposition, P is either true or false, with no degrees of truth allowed. In multivalent logic, ML, Truth is matter of degree. In Fuzzy logic, FL
Page 46
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Everything is (or) is allowed to be, imprecise (approximate) Everything is, or is allowed to be, granular (linguistic) True/False Yes/No 1/0 White/Black Approximate/possible/maybe Another definition of Fuzzy logic: Fuzzy logic is aimed to form reasoning which are approximate rather than exact.

Example: Exact All men are moral Socrates is a man Socrates is mortal

Approximate

Most Swedes are tall Magnus is a swede It is likely that magnus is tall ( May be)

Fuzzy logic was developed by Zadeh in 1979. The statements those are used in Fuzzy logic are called Fuzzy sets or Zadeh set Declarative Representation: Architectures with declarative representations have knowledge in a format that may be manipulated, decomposed and analyzed by its reasoners. A Classical example of declarative representation is logic.

Page 47
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Procedural Representation Architectures with procedural representations encode how to achieve a particular goal(result). Advantages of procedural knowledge are possibly faster usage.

WORK BOOK (ANSWER THE FOLLOWING QUESTIONS)


1. What is Bayes theorem? Explain its usage in reasoning?(Nov,200 8(new)) 2. Explain the sequence of steps to convert a well formed formula (wff) in predicate logic to clause form?(Nov,2008(old)) 3. Differentiate between declarative representation and procedural representation?(May,2008(new)) 4. What is meant by non- monotonic reasoning? Explain it?(May 2008,(new)) 5. Compare and contrast the statistical and probabilistic reasoning?(May,2008,(new)) 6. Explain the need for UNIFICATION with suitable example(Nov,2008(old)) 7. Discuss about natural deduction? (Nov,2008(old))

Page 48
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

UNIT-IV
PROLOG Prolog is a computer programming language, used for solving the problems that involve objects and relationships between objects. Computer programming in prolog consists of, Declaring some facts about objects and their relationships. Defining some rules about objects and their relationships. Asking questions about objects and their relationships. FACTS Facts are the statements that contain objects and their relationship Eg: John likes Mary Obj1 Obj2 Relationship In prolog, we write facts in standard form as Likes(John, Mary) Important things to be maintained while writing facts are 1. The names of all relationships and objects must begin with lowercase letter, such as likes, john , mary 2. The relationship is written first, and the objects are written separated by commas, and the objects are enclosed by a pair of round brackets. 3. The full stop character ., must come at the end of a fact. Examples of some facts and their meanings. 1) 2) 3) 4) 5) Valuable(gold). Female(lakshmi). Owns(john,mary). Father(john,mary). Gives(john,book,mary). Gold is valuable Lakshmi is female John owns gold John is the father of mary John gives the book to mary

The name(s) of the objects that are enclosed with in the round brackets in each fact are called arguments. The name of the relationship, which comes just before the round brackets is called predicate. Relationship can have arbitrary number of arguments. If we want to define a predicate called play,where we mention two players and a game they play each other,we need three arguments. Eg: Play (john,mary,football)

Page 49
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

In prolog, A collection of facts is called a database. QUESTIONS Once we have some facts, we can ask some questions about them, in prolog , a question looks like just like a fact,except that we put a special symbol for it. The Symbol is written as question mark and a hyphen ?owns (mary, book). means does mary owns the book?

When a question is asked of prolog , it will search through database you typed in before. It prolog finds a fact that matches the question, prolog will respond yes. If no such fact exists in the database, prolog will respond no. Eg: consider the following database. Likes(joe,fish). Likes(joe,mary). Likes(mary,book). Likes(john,book). Q: A: ? - likes(joe,maney). no ?-likes(mary,joe). No ?-likes(mary,book). Yes. ?-king(john,france). no

Greeks contain the following three facts Human (Socrates). Human (Aristotle). Athenian (Socrates). QUESTIONS ?-athenian(socrates). ?- greek(socrates). Yes no When prolog answers no to a question, it means not provable Variables Eg: Does john like mary? Does john like books?

i.e does john like x? we dont know w hat the object is that x could stand for. In prolog we can not only name particular objects, but we can also use names like x to stand for objects to be determined by prolog. Names of this second kind are called variables. When prolog uses a variable, the variable can be either instantiated or not instantiated. A variable is instantiated when there is an object that the variable stands for. Prolog can distinguish variables from names of particular objects because any name beginning with capital letter is taken to be a variable.
Page 50
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

E.g.: We cannot name something that john likes as an objects, so prolog adopts a way of saying this. ?- likes(john,something that john likes). Instead of asking a question like above, prolog uses the variable ?-likes(john,x). E.g.: Consider the following database Likes(john,flowers) Likes(john,mary) Likes(paul.mary) ?-likes(john,x)

Q:

The question asks, is there anything that john likes. Prolog will respond x=flowers(x=flowers) Important Note: After X=flowers instantiated. If we type the computer terminals RETURN one answer, then prolog will stop searching for more. Key, meaning you are satisfied with just

If instead you type the ; key (followed by RETURN),prolog will resume its search through the database as before , starting from where it left the place marker. E.g.: Likes(john, flowers). Likes(john, mary). Likes(paul, mary)

Database.

Q: ?-likes(x, Mary). Is there an object that likes mary? ?-likes(x,mary). X=john our question x=paul; first answer. We type ; in reply.second answer. again type ;. No No more answer Conjunctions In order to answer questions about more complicated relationship, such as, Do John and mary like each other? One way to do this, would be first to ask If john likes mary, and if prolog says yes, then we ask if mary likes john. So the original problem consists of two separate goals that the prolog system must try to satisfy.

Page 51
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Database: Likes(mary,food). Likes(mary,wine). Likes(john,wine). ?-likes(john,mary),likes(mary,john). Likes(john,mary). Asks

Does john like mary? And does mary like john? The and expresses conjunction and is rendered by,(comma). The comma is pronounced as and serves to separate any no. of diffent goals that have to be specified in order to answer a question. The answer for the given question is no. because the first goal is true and second goal is no. since we wanted to know if they both like each other, the whole question is answered no. Q2: Is there anything that john and mary both like? This consists of two goals. i) Find out if there is some x that may likes. ii) Then, find out if it john likes whatever x is . A: In prolog, using conjunction the above question can be written as ?-likes(mary,x),likes(john,x). ?likes(mary,x) likes(john,x). Food

Food Likes(mary,food). Likes(mary,wine). Likes(john,wine). Likes(john,mary). 1. The first goal succeeds, instantiating x to food. 2. Next, attempt to satisfy the second goal. ?-, likes(mary,x) Food likes(john,x). Food Likes(mary,food). Likes(mary,wine). Likes(john,wine). Likes(john,mary).

3. The second goal fails. 4. Next back track:forget the previous x,and attempt to re_satisfy the firs t goal.

Page 52
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

?-likes(mary,x), Wine

likes(john,x). Wine Likes(mary,food). Likes(mary,wine). Likes(john,wine). Likes(john,mary). 5. The first goal succeeds again, instantiating x to wine. 6. Next attempt to satisfy second goal. ?-likes(mary,x), Wine likes(john,x). Wine Likes(mary,food). Likes(mary,wine). Likes(john,wine). Likes(john,mary). 7. The second goal succeeds. 8 .Prolog notifies you of success,and waits for a reply. The behaviour, where prolog repeated attempts to satisfy and re-satisfy goals in a conjunction is called backtracking. Prolog, must uninstantiate any variables that because instantiated at this goal. i.e undo all the variables. Rules: In prolog, rules are used when you want to say that a fact depends on a group of other facts. In english, we use the word IF to express a rule. Eg:1. We want to state the fact that john likes all people. Likes(john,alfred). Likes(john,charles). Likes(john,david). For every in our database, we have to write separate fact, which become tedious, especially if there are hundreds of people in our prolog program. Another way to say that john likes all people is to say john likes any object provided it is a person. Instead of listing all the people john likes. Several examples of rules: 1. I use an umbrella if there is a rain. 2. John buys the wine if it is less expensive than the beer. 3. X is a bird if x is an animal, and x has feathers. 4. X is a sister of y if x is female, and x and y have the same parents. Hence, a rule is a general statement about objects and their relationships.

Page 53
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Examples with rules: A rule using one variable and a conjunction. John likes anyone who likes wine. (or) John likes anything if it likes wine, (or) with variables, John likes x if x likes wine. In prolog, a rule consists of a head and a body. The head and body are connected by the symbol:- ,which is made up of colon and hyphen. The :- is pronounced as if. Eg: likes (john, x) :- likes(x, wine). Head body A rule also ends with a dot. The head of the rule likes(john,x), describes what fact the rule is intended to define. The body of the rule likes(x,wine), describes the conjunction of goals that must be satisfied, one after the other, for the head to be true. E.g.: 1. John likes anyone who likes wine and food. Likes(john,x):- likes(x, wine),likes(x,food). 2. John likes any female who likes wine Likes(john, x) :- female(x),likes(x, wine). Both the examples contains a single variable inside a rule, which is x. A rule may also consists of more than one variable. Eg: parents(x, y, z) means the parents of x and y and z. The second argument is the mother and third argument is the father. Text : a) b) c) X is a sister of y, if X is female, X has mother M and father as F and Y has the same mother and father as like x.

The text can be written prolog as a rule as, Sister of(x,y):- female(x), parents(x,m,f),parents(y,m,f). For exercise on rule refer pages 15, 16 in prolog text book. SYNTAX OF PROLOG: The syntax of a language describes how we are allowed to fit words together. In english I see a zebra is correct but zebra see I a is incorrect.

Page 54
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Prolog syntax contains various parts. Prolog programs are built from TERMS. A TERM is either a constant a variable or a structure. Each term is written as a sequence of characters. Characters are divided into four categories. i) ii) iii) iv) A B C D E F .X Y Z. a b c d e f x y z. 0123456789 + - * / \ ~ ^ < > :. ? @ # $ &

The first row (i) consists of upper case letters. The second row (ii) consists of lower case letters. The third row (iii) consists of digits. The fourth row (iv) consists of sign characters. Constants: Constants name specific objects or specific relationships. There are two kinds of constants. Constants

atoms integers Atoms are the names such as like, mary, john, wine, owns, book. Along with these even special symbols like ?- and :- . Atoms are of two types (a) those made up of letters and digits and (b) those made up of signs. a) The first kind normally begin with a lower-case letter. b) If an atom is enclosed in single quotes , then the atom may have any characters in its name. c) The underline character _ may be inserted in the middle of an atom to improve legibility. Some examples of atoms are a Void george_smith ieh 2004 prolog allows integers ranging from 0 to 16383. VARIABLES: The second kind of term used in prolog is the variable. Variables look like atoms, except they have names beginning with a capital letter or underscore sign _. Eg: answer input gross_pay _3_blind ?-likes(_,john) Anyone who likes means john, hence who stand s as _ and is known as anonymous variable.
Page 55
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

STRUCTURES: The third kind of term with which prolog programs are written is the structure. A structure is a single object which consists of a collection of other objects, called components. The components are grouped together into a single structure for convenience in handling them. Structures are sometimes called as components terms or complex terms. A structure is written in prolog specifying its functor and its components. The functor names the general kinds of structure , and corresponds to a data type in an ordinary programming language. The components are enclosed in round brackets and separated by commas. The functor is written just before the opening round brackets. E.g. of a structure. 1. Owns (john, book(wuthering_heights,bronte)). i.e. inside the owns fact, there is a structure book, which has two components, a title and an author. The meaning is john owns the book called weithering_height written by bronte. 2. Owns(john, book(wuthering_height,author(emily,bronte))). Indicates nested structure relationship.i.e john owns the book, title wuthering_heights,which was by emily and bronte. ?-owns(john,book(x,author(y,bronte))). If this is true, the variable x be instantiated to the book title and variable y be instantiated to one of the author. ?-owns(john,book(_,author(_,bronte))). These are anonymous variables that do not share with each other. CHARACTERS: The names of constants and variables are built up from strings of characters. Prolog recognizes two kinds of characters. 1. Printing characters 2. Non printing characters. 1. Printing characters cause a mark to appear on computer terminals display. E.g.: (i). A B C D E F .X Y Z. (ii). a b c d e f x y z. (iii). 0 1 2 3 4 5 6 7 8 9 (iv). !, ,#,$,%,&,,(,),=,_,~,^,/,\.{,},[,],-,@,+,;,*,:,<,>,,,.,?.

2. Non printing characters do not cause a mark to appear, but cause an action to be carried out. E.g. printing a blank space, beginning new lines of text

Page 56
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

OPERATORS: Operators are form of syntax that makes some structures easier to read. For example the arithmetic expression, x+y*z can be written as a structure in prolog as +(x,*(y,z)).where + is addition operator,* is multiplication operator. Prolog uses the basic four operators

+, -, *, /, !
Three things should be known about each operator. a) Position b) Precedence c) Associativity a) Position: The operators are written between their arguments, called as INFIX operators. E.g.: x+y*z. Operators are written be fore the arguments, called as PREFIX operators. E.g. : x+y, where hyphen(-) before x is used in arithmetic to denote negation. Some operators are written after the argument(s), known as POSTFIX operators. E.g. (x! exclamation sign is used for denoting factorial). So the position of an operator tells where it is written with relationship to its arguments. b) Precedence: When using operators, we need to known the order in which operations are carried out, known as precedence. Prolog follows BODMAS rule. E.g.: x+y*z, +(x,*(y, z)) a-b/c, -(a,/(b,c)) c ) Associativity: When we use several operators of the same precedence, the execution of those operators can be explained by associativity. E.g. 8/2/2 Is this expression calculated as (8/2)/2 or 8/(2/2)? If it is (8/2)/2,the value is 2 and if it is 8/(2/2),the value is 8. The user has to distinguish whether the operator is left associative or right associative. By default, all the arithmetic operations are left associative. i.e. 8/4/4 is treated as (8/4)/4. 5+8/2/2 means 5+ ((8/2)/2).
Page 57
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Hint: As it is difficult to understand the rules of precedence associativity, users are advised to use round brackets for solving the arithmetic expressions. EQUALITY AND MATCHING: Equality, is an infix operator written as=.? - x=y pronounced as x equals y, prolog attempts to match x and y , and the goal succeeds if they match. A goal of the form x=y, where x and y are any two terms which are permitted to contain uninstantiated variables. The rules for deciding whether x and y are equal are as follows. 1. If x is an uninstantiated variable, and if y is instantiated to any term, then x and y are equal. Also, x will become instantiated to whatever y is. 2. Integers and atoms are always equals to themselves. Police man=police man succeeds. Paper=pencil fails 1066=1066 succeeds. 1206=1583 fails 3. Two structures are equal if they have same functor and number of components, and all the corresponding components are equal. Rides (clergyman, bicycle)=rides(clergyman, x) The goal succeeds, and causes x to be instantiated to bicycle. 4. Equal (x, y):- x=y. Prolog provides a predicate \= pronounced as not equal the goal x\=y succeeds if x=y fails, x\=y means x cannot be made equal to y. ARITHMATIC: Arithmetic operations are useful for comparing numbers and for calculating results. The following relational infix operators are x=y x and y stand for the same number. x\=y x and y stand for different numbers. x<y x is less than y x>y x is greater than y x=<y x is less than or equal to y x>=y x is greater than or equal to y.

Page 58
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

e.g. Density (x,y):-pop (x, p), area(x,a), y is p/a. The rule can be read as The population density of a counting x is y, if: The population of x is a, and The area of x is a, and Y is calculated by dividing p by a. IS operator is new. Its an infix operator. Its right- hand argument is a term which is interpreted as an arithmetic expression. The left argument y is unknown The values of right variables of is must be known. The arithmetic infix operators are x+ y sum of x and y x y difference of x and y x* y product of x and y x/ y x divided by y x mod y the remainder of x divided by y. SATISFYING GOALS: Prolog performs a task in response to a question from the programmer. A question provides a conjunction of goals to be satisfied. Prolog uses the known clauses to satisfy the goals. A fact can cause a goal to be satisfied immediately, where as a rule can only reduce the task to that of satisfying a conjunction of sub goals. A cause can only be used if it matches the goal under consideration. If a goal cannot be satisfied, backtracking will be initiated. Backtracking consists of reviewing what has been done, attempting to re-satisfy the goals by finding an alternative way to satisfy them. We can initiate backtracking by typing a semicolon. Satisfaction of a Conjunction of Goals: Prolog will not attempt to satisfy a goal until its neighbor on the left has been satisfied and when it has been satisfied, prolog will attempt to satisfy its neighbor on the right. E.g. Parent(C, M, F) :- mother(C,M),father(C,F). Mother (john, ann). Mother (mary, ann). Father (mary,fred). Father (john,fred).

Page 59
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Q: Whether mary is a sister of john? A: In order to answer the question, the following sequence of events are to be done successfully. ?- female(mary),parent(mary,M,F),parent(john,M,F). i) Female(mary) Parent(mary,M,F) Parent(john,M,F)

A sequence of sub goals not yet satisfied

ii) Female(mary) Parent(mary,ann,fred) The sequence of sub goals has been satisfied and the Parent(john,ann,fred) variables have been instantiated. MATCHING: The rules for deciding whether a goal matches the head of a clause are as follows. a) All variables are initially uninstantiated b) An uninstantiated variable will match any object c) An integer or atom will match only itself. d) A structure will match another structure with the same functor and number of arguments, and all the corresponding arguments must match.

DATA STRUCTURES: RECURSION: Recursion means A backward movement, return as per Oxford English dictionary. This definition is outdated and it is cryptic. Now a days recursion is popular and powerfu l technique in the world of non-numeric programming. Recursion is used in two ways. i) Used to describe structures that have other structures as components ii) Used to describe programs that need to satisfy a copy of themselves before they themselves can succeed. Structures and Trees It is easy to understand the complicated structure representation, as tree. i.e., complicated structure can be represented as a tree. In a tree, each functor is rendered as a node, and the components are branches Each branch may point to another structure, i.e structure with in structure

Page 60
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

E.g. (1) The structure parents(Charles, Philip, Elizabeth) is written as tree. Parents

Charles E.g. (2)

Elizabeth

Philip

a+b*c structure can be written as tree a+b*c = +(a,*(b,c)) + a b * c

E.g. (3) Structure book(moby_dick, author(herman, Melville)) is written as tree Book

Mody_dick herman

author

A sentence john likes mary the syntax of the sente nce can be represented as tree Simple syntax of English is that a sentence consists of a noun by a verb phrase. Additionally, a verb phrase consists of a verb and another noun Sentence (noun(x), verb_phrase(verb(y),noun(z))) can be written as tree Sentence Noun X Verb_phrase Verb Y Noun Z

Page 61
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Eg. John likes mary Sentence Noun John Verb_phrase verb noun

Likes mary LISTS AND OPERATIONS A list is a common data structure in non-numeric programming. The list is an ordered sequence of elements that can have any length. The elements of a list may be Constants Variables Structures Lists can represent any kind of structure, used in symbolic computation. Lists are widely used in representing parse trees, grammars, city maps, computer programs, and mathematical entities such as graphs, formulae and functions. LISP is a programming language which uses mostly lists. In LISP, the only data structures available are the constant and the list. Where as in PROLOG, a list is simply one particular kind of structure. Lists can be represented as a special kind of tree A list is either an empty list, having no elements or it is a structure that has two components. Those are head and tail. The end of a list represented as a tail that is set to empty list. The empty list is written as [ ]. The head and tail of a list are components of the functor named ., which is dot. E.g. (1). List consisting of one element a is, . (a,[]) and a tree format looks like

[]

E.g.(2) : List consisting of atoms a,b, and c is written as . (a, . (b, . (c,[]))). and a tree format looks like a b c []

Page 62
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

People like to write the tree diagram of a list with the tree growing from left to right and with branches hanging down. [ ] a b c

The list notation consists of elements of the list separated by commas and the whole list is enclosed in sequence brackets. E.g. i) List consisting of single element, as [ a ] ii) [ a,b,c] iii) [ ] empty list iv) [ a,v1,b,[x,y]] [ ]

vi

b x y

[ ]

A common operation with lists is to split a list into its head and tail. The special notation in PROLOG to represent The list with head X and tail Y is written as [ X | Y ], where the symbol separating X and Y is the vertical bar. P([1,2,3]). P is a pattern containing list elements 1,2,3 P([the, cat, sat,[on, the , mat]]). ?- p([x|y]). X=1 and y =[2,3]; X= the and y= [cat, sat,[on, the , mat]] ?- p([_ , _, _ , [ _ |x]]). X = [the, mat] E.g.: Lists with their head and tail. LIST [a, b, c] [] [[the, cat],sat] [the, [cat, sat]] [ X+Y , x+y] HEAD a (none) [the, cat] the X+Y TAIL [b, c] (none) [sat] [[cat, sat]] [x+y]

E.g. no

1 2 3 4 5

Page 63
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

WORK BOOK (ANSWER THE FOLLOWING QUESTIONS)


1. Explain the terms in PROLOG (a) facts (b) variables (c) conjunctions (d) rules with examples (Nov,2008(old) 2. List various mathematical operators in PROLOG. Give examples of each(May,2008(new)) 3. Write a recursive function to find the factorial of a Number N using PROLOG (May,2008(new)) 4. Write PROLOG code for (a) to create a LIST (b) to insert an element into LIST (c) to delete an element from LIST (d) to search for an element (Nov,2008(new)) 5. What are the built- in operators in PROLOG. Explain with examples. (May,08(old)) 6. Write a PROLOG program for computing Fibonacci series (Nov,08(old))

7. Write a PROLOG program to sort the numbers in ascending order (Nov,08(new))

Page 64
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

UNIT V
BACKTRACKING: 1. An attempt can be made to satisfy a goal. When we satisfy a goal, we search the database from the top. During the search process, two things can happen. a) A matching fact (or rule) can be found. Then we can say the goal has been matched. We mark the place in the database and instantiate any previously un instantiated variables that have matched. b) No matching fact (or rule) can be found. Then we can say goal has failed. We can attempt to re-satisfy the goal in the box above the arrowhead. If the original goal appears in a conjunction, then this will be the goal on its left in the program. 2. We can attempt to re-satisfy a goal. We attempt to re-satisfy each of the goals in turn, the arrow retreating up the page. If no sub goal can be re-satisfied in a suitable way. We attempt to find an alternative clause for the goal itself. In this case, we must make un instantiate any variables that became instantiated when the previous clause was chosen. i.e. undoing all the work previously done by this goal. E.g. Generating multiple solutions: father (x,y) means the father of x is y father (mary, George) father (john,George) father(sue,harry) father(george,Edward) Q1: ? father(x,y) This question will have several possible answers. It we prompt with a semicolon, prolog will give the answer as, X=mary, y=George; X=john, y= George; X=sue , y=harry; X=George, y=Edward; No ? father (-, x). i.e. for which x is x a father? X= George X=George X=harry X=Edward

Q2: A:

Page 65
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

The mechanism for finding multiple solutions to a given question is called as Backtracking. THE CUT: A special program that is used in prolog is CUT. CUT allows us to tell prolog which previous choices it need not consider again when it backtracks though the chain of satisfied goals.

CUT is important because of two reasons. Program will operate faster because it will not waste time in attempting to satisfy goals Program may occupy less of the of the computers memory space because more economical use of memory can be made if backtracking points do not have to be recorded to later examination. Example on CUT explained with Backtracking Controlling backtracking Automatic Backtracking can cause inefficiency. Y 4 2 X 3 6 From the dig, the rules are a) If X<3 then Y=0 b) If 3<=X and X<6 then Y=2 c) If 6<=X then Y=4 The relation f(x,y) in prolog would be F(x,0) :-X<3 F(x,2):-3<=x,x<6 F(x,4):-6<=x. The procedure assumes that before f(x,y) is executed, x is already instantiated to a number. The goal:f(1,y), 2<y fails, but before prolog replies no, it tries all 3 rules. The three rules are mutually exclusive so that one of them at most will succeed. If the goal matches the first rule and then fails, there is no point in trying the others. The cut mechanism will help us to prevent this. CUT A Cut prevents backtracking from some point on. Written as a 1 sub goal that always succeeds, but prevents backtracking through it. Correcting the example. f(x,0) :- x<3,! f(x,2) :- 3<=x, x<6, ! . f(x,4) :- 6<=x. whenever the goal f(x,y) is encountered, only the first rule that matches will be tried. If we now ask again f(2,y), 2<y. , we will get the same answer , no, but only the first rule of f will be tried.
Page 66
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

THE MEANING OF CUT


When matching a goal G to a rule H :- Body, G is called the parent goal. When the cut is encountered as a goal it succeeds immediately, but it commits the system to all choices made between, the time the parent goal was invoked and the time the cut was encountered H :- B1,B2, . Bm, !, , Bn. When the ! is encountered, the solution to B1, B2,..Bm is frozen , and all other possible solutions are discarded. The parent goal cannot be matched to any other rule. Examples using CUT The maximum of two elements max(X, Y, Max) , i.e., Max is the maximum of X and Y. max(X, Y, X) :- X >=Y. max(X, Y, Y) :- X< Y. A more economical solution (using otherwise logic) is max( X, Y, X) :- X>=Y, !. max( X, Y, Y).

COMMON USES OF CUT


The common uses of CUT are into 3 main areas. (a) The first concerns that we want to tell the PROLOG system CUT has found the right rule for a particular goal. (b) CUT is going to tell the PROLOG system to fail a particular goal immediately without trying for alternative solution (c) We want to terminate the generation of alternative solutions through backtracking. i.e., to found the only solution to the problem, and there is no point in ever looking for alternatives.

INPUT AND OUTPUT OPERATIONS


There is a database of world events in 16 th century arranged as facts containing dates and headlines. Atoms begin with an upper-case letter, enclosed in single quotes. Event (1505, [ Elucid, translated, into, Latin]). Event(1523, [christian, II, flees, from, Denmark]).

Page 67
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

?- event (1505, X) X= [Elucid, translated, into , Latin] Consider the predicate WHEN When (X,Y) succeeds if X is mentioned in year Y When (X,Y) :- event(Y,Z), member(X,Z). ?- when(Denmark, D). D = 1523.

READING AND WRITING TERMS


The most useful way to print on computer termina ls display is to use the build- in predicate WRITE. Write(x) will cause the term to be printed out on the display Built- in predicate nl is used to force all succeeding output to be printed on the next line of the display. Built- in predicate tab is used print a number of blank spaces across the display screen Tab(x) succeeds only once, it causes the cursor on the display to move the right by x space characters. Predicate pp such that pp(x, y) prints out the list in a helpful way. Pp means pretty print. Using pp predicate we can print the elements in a vertical column. Eg.(i) The list [1,2,3] is pretty printed as 1 2 3 Eg (ii) The list [1,2,[3,4],5,6] is pretty printed as 1 2 3 4 5 6 i.e., remove the separated commas and square brackets. If the element of a list is structure, we do not have to get inside structures to pretty-print their contents. Eg. Pp(X,I) :- tab(I), write(X), nl Pp([H|T], I) :- !, J is I+3, pp(H,J),ppx(T,J),nl. Ppx will print each element of the tail of the list all in the same column.

Page 68
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Difference between Display And Write Write prints a term, as it takes into account what operator declarations have been made. i.e.,we have declared an atom as an infix operator, then a term with this as a functor and two arguments will be printed out with the atom between the two arguments. Display will behave as like write, except that it ignores any operator declarations that have been made. E.g. Output: ?- write(a+b*c*c), nl, display(a+b*c*c), nl. a+b*c*c +(a,*(*(b,c),c)) Yes write ouput newline followed by display output

READING TERMS Read will read the next term that you type in from the computer terminals keyboard. The term must be followed by a dot . And a non-printing character such a space or RETURN. If X is un- instantiated, the goal read(X) will cause the next term to be read, and x to be instantiated to the term Using read & phh, we can write the prolog program to print historic headlines(phh) from the event database. E.g. Hello:Phh([what, date, do, you,desire?]), Read (D), Event (D,5), Phh(5). Q. A ?-hello prolog will print what date do you desire?

READING AND WRITING CHARACTERS The smallest entity that can be written and read is the character. WRITING CHARACTERS It can be done with predicate PUT(X) where X is instantiated to a character (represented as ASCII code as an integer).
Page 69
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Eg(i) ?-put(104),put(101),put(108),put(108),put(111). Output: hello Eg(ii) ?-put(104),put(105),nl,put(116),put(104),put(101),put(114),put(101). Output: hi There PRINT STRING Printstring(X) will print the entire string of a list, where X to be instantiated to a list of character codes (a string). E.g. (i) Output: ?- printstring(charles V adam at Denmark). Charles V adam at Denmark

In general put is used to print the head of the list and printstring used to print the tail of of the list. READING CHARACTERS Characters may read from keyboard using geto(X) and get(X). These goals will always succeed if their arguments are un-instantiated geto(X) will instantiate X to the very next character that is typed, no matter what it is get(x) will skip all non-printing characters and instantiate X to the first printing character.

BUILT-IN PREDICATES
Built- in predicates provides facilities that cannot be obtained by definitions in Prolog purely (OR) Built- in predicates provides convenient facilities just to save each programmer from having to define themselves. E.g. CUT is treated as built- in predicate The I/O predicates illustrates the fact that a built- in predicate may have side effects. i.e., satisfying a goal involving the predicate may cause changes apart from the instantiation of the arguments. E.g. Consider the predicate < (less than) X<Y succeeds if the number X is less than the number Y. X<Y goal, will simply fail or produce error message, if X and Y are un- instantiated. There are two basic built- in predicates for reading new clauses are consult and reconsult

Page 70
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

CONSULT(X): Consult is meant for those situations when we want the clauses in some file to augment those already in the database. The argument must be an atom giving the name of the file the clauses are to be taken from E.g. ?- consult(myfile). ?- conult(/usr/john/pl/chat) ?- consult(lib:iorout.pl).

Prolog reads through the file, adding the clauses the clauses it finds at the end of the database. As a result, the new clauses will appear after already existing clauses for the same predicates. Reconsult(X): Reconsult is like consult, except that the clauses read in are taken to supersede all clauses for the same predicate Note: the meaning of supersede is useless / effectiveness / acceptance LIST NOTATION Its more convenient to specify consult and reconsult goals, especially when we want prolog to look at more than one file. The notation involves simply putting filenames into a list, and giving that list as a goal to be satisfied If we want a file to be consulted, we have to put the name into list a s it is, and if we want a file to be reconsulted, the precede the name with a sign. E.g. ?- [file1, - file2, fred.1, - bill.2].

It is equivalent to ?- consult(file1), reconsult(file2), consult(fred.1),reconsult(bill.2).

SUCCESS & FAILURE Exciting a prolog program, a goal succeeds when it can be satisfied, and it fails when there is no way to satisfy it The two predicates used for the above two results are true and fail predicates

Page 71
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

TRUE The goal always succeeds. Clauses and goals can be reordered or recombined to obviate any use of true. FAIL The goal always fails. In two places, where fail is helpful. One place is CUT fail combination. i.e., A conjunction of goals of the form .., !, fail. The conjunction fails due to the fail, and the parent goal fails because of CUT. Second one, when we want another goal to backtrack through all solutions. E.g. ?- event(X,Y),Phh(Y),fail. CLASSIFYING TERMS 1. Var(x): Eg.(i) ?-var(x) Yes Eg.(ii) ?- var(23) No Eg(iii) ?- X=Y,Y=23,var(X) No

2. Nonvar(x): The goal nonvar(x) succeeds if x is not currently un- instantiated variable. The predicate nonvar is opposite to var. defined in prolog as E.g. (i) nonvar(x) :- var(x), !, fail. E.g. (ii) nonvar(-). 3. Atom(x): The goal atom(x) succeeds if x is currently stands for a prolog atom. E.g. (i) ?- atom(23) No (ii) ?-atom(apples) Yes (iii) ?- atom(/us/chris/pl.123). Yes (iv) ?- atom(a string). No (v) ?- atom(x) No
Page 72
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

4. Integer(x) The goal integer(x) succeeds if x is currently stands for an integer(a whole number). E.g. (i) ?-integer(23) Yes E.g. (ii) ?-integer(1.4) No 5. Atomic(x) The goal atomic(x) succeeds if x is currently stands for either an inte ger or an atom. E.g.(i) atomic(x) :- atom(x). Atomic(x):- integer(x). 6. Float(x) The goal float(x) succeeds if x is currently instantiated to a floating point number. 7. Number(x) The goal number(x) succeeds if x is currently instantiated to an integer or a floating point number. 8. List(x) The goal list(x) succeeds if x is currently instantiated to a list, i.e., an atom [ ] (empty list) or a term with principle. Functor . /2 and with second argument (the tail) a list. EQUALITY Built- in predicates for testing and making things equal in prolog (i) X =Y Goal X=Y, it attempts to make X and Y equal by matching them together. If it can match them, goal succeeds otherwise fails. (ii) X \=Y i.e. X is not equal to Y X\=Y is opposite to X = Y X \= Y succeeds if X=Y fails and vice versa X \=Y:-X=Y, ! , fail. X \= Y. (iii) X ==Y == is much stricter equality test than =

Page 73
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

EVALUATING ARITHMATIC EXPRESSIONS (i) X is Y (ii) X-Y COMPARING NUMBERS (i) X=Y (ii) X \=Y (iii) X < Y (iv) X > Y (v) X>=Y (vi) X =<Y (iii) X+Y (iv) X*Y (v) X/Y (vi) XmodY

COMPARATIVE STUDY OF LISP & PROLOG FEATURES FEATURE Basis Structures Symbols Control Type Compositional Values PROLOG Unification-based Logic Predicates Atoms Automatic Declarative Yes Parameters to Procedures LISP Lambda-based logics Lists Atoms User-defined Functional Yes Function Values

Both languages have their roots in logic, manipulate words(atoms) and not characters, are decompositional (top-down), have procedure- like units(predicates and functions) and can modify themselves (eg. Add new data and code to a running program to enable the program to learn) The differences between these two languages are (i) Prolog uses predicates, eg. Happy(person), where as LISP uses lists, eg.(happy person). (ii) In Prolog, the programmer does not have to specify program control ( the language takes the order of execution automatically), where as in LISP, as like in most programming languages the control must be specified by the programmer. (iii) Prolog stores data in a declarative format(easy to read), where LISP uses a functional(procedural) approach which is harder to read.

(iv) PROLOG hints CODE :% (v) LISP hints CODE Cond t ; (semicolon) Eql MEANS IF THEN Comment Equal
Page 74
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

MEANS IF COMMENT

Endp Nil Setq

Empty Return no value Variable assignment

(vi) Data stored in PROLOG as facts Eg. Father(john, ann). Father(mark,rob). mother(su, ann). Mother(jo,rob). (vii) And in LISP, as lists of associated values as Eg. (setq father ((john ann) (mark rob)) (setq mother ((su ann) (jo rob)) Both the lists and facts provide a means to store simple simple, static data about objects and their relationships Structures like these would be used to build semantic nets and frames (viii) Procedures are stored in PROLOG as E.g. Parent(P,C) :- father(P,C). Parent (P,C):- mother(P,C). And in LISP as (defun parent(P C) (cond t ((member (cons P ( cons C nil)) father: test# equal)t) (t nil))) Its found that Prolog slightly easier to read . This is because it is known as a declarative language which sets out, deliverately, to make the meaning clear. Both languages are extremely powerful, LISP is commonly used in USA and PROLOG is used in Europe.

WORK BOOK (ANSWER THE FOLLOWING QUESTIONS)


1. Compare LISP & PROLOG features with examples

2. Explain the use of backtracking in PROLOG 3. Explain the operation of CUT in PROLOG

4. Discuss about built- in predicates in PROLOG


Page 75
ARTIFICIAL INTELLIGENCE Prepared by T.MURALI KRISHNA, ASSOCIATE PROFESSOR, AURORAs SCHOOL OF COM PUTER SCIENCE & RESEARCH

Anda mungkin juga menyukai