0% found this document useful (0 votes)
56 views65 pages

Properties of AI Problems

The document discusses properties of AI problems and techniques used in AI. It states that AI problems have a broad spectrum, are hard to solve, and require intelligence which itself requires knowledge. It then discusses knowledge representation as a way to capture knowledge needed for intelligent behavior. Other fundamental techniques discussed include search, use of knowledge, and abstraction. Specific examples provided include representing the game of chess and a water jug problem as state space searches. Production systems and control strategies for search are also summarized.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views65 pages

Properties of AI Problems

The document discusses properties of AI problems and techniques used in AI. It states that AI problems have a broad spectrum, are hard to solve, and require intelligence which itself requires knowledge. It then discusses knowledge representation as a way to capture knowledge needed for intelligent behavior. Other fundamental techniques discussed include search, use of knowledge, and abstraction. Specific examples provided include representing the game of chess and a water jug problem as state space searches. Production systems and control strategies for search are also summarized.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 65

Properties of AI Problems

AI Problems have a very broad spectrum.


AI problems are hard to solve.
AI problems require intelligence.
Intelligence requires knowledge.
Fundamental Techniques of AI

Knowledge Representation
Intelligence/intelligent behaviour requires knowledge.

Properties of Knowledge
Voluminous
Hard to characterize
Constantly changing

How can one capture formally (i.e., computerize) everything


needed for intelligent behaviour? Some questions...
How do you store all of that data in a useful way?
How can you store decision making steps?
Fundamental Techniques of AI

Characteristics of good data representation


techniques:

Captures general situation rather than being


overly specific
Understandable by the people who provide it
Easily modified to handle errors, changes in data,
and changes in perception
Of general use
Three important AI Techniques
Search
Provides a way of solving problems for which
no direct approach is available
as well as a framework into which any direct
techniques that are available can be embedded.

Use of Knowledge
Provides a way of solving complex problems by
exploiting the structures of the objects that are
involved.

Abstraction
Provides a way of separating important features and
variations from the many unimportant ones that
would otherwise overwhelm any process.
Advantages of using AI Techniques

They are much less fragile. They will not be thrown


off completely by a small changes in their input.
People easily understand what the program
knowledge is.
These techniques can work for large problems when
direct methods fail.
Search
Search is the fundamental technique of AI.
Possible answers, decisions or courses of action are structured into
an abstract space, which we then search.
Search is either "blind" or uninformed":
blind
we move through the space without worrying about
what is coming next, but recognising the answer if we
see it
informed
we guess what is ahead, and use that information to
decide where to look next.
We may want to search for the first answer that satisfies our
goal, or we may want to keep searching until we find the
best answer.
Knowledge Representation & Reasoning
The second most important concept in AI is Knowedge
Representation and Reasoning.
If we are going to act rationally in our environment, then
we must have some way of describing that environment
and drawing inferences from that representation.
how do we describe what we know about the world ?
how do we describe it so that we can get hold of the
right piece of knowledge when we need it ?
how do we generate new pieces of knowledge ?
how do we deal with uncertain knowledge ?
Types of Knowledge
Declarative Knowledge
Expressed as statements of facts about the world.
Ex.- Personnel data in a database is a declarative
knowledge.
Procedural Knowledge
It is a compiled knowledge related to the performance of
some task.
Ex.- The steps used to solve an algebraic equation are
expressed as procedural.
Heuristic
A special type of knowledge used by human to solve
complex problems. Heuristics are the knowledge used to
make good judgments or strategies, tricks or rules of
thumb used to simplify the solution of problem.
Heuristics are usually acquired with much experience.
Ex.- Fault finding in a TV set.
Problems, Problem Spaces, and Search
Building a Problem-Solving Program

1. Define the problem precisely.


2. Analyze the problem.
3. Represent the task knowledge.
4. Choose and apply representation and reasoning
techniques.
Defining the problem as State
Space Search
The state space representation forms the basis of most of
the AI methods.
Its structure corresponds to the structure of problem
solving in two important ways:
It allows for a formal definition of a problem as the need to convert
some given situation into some desired situation using a set of
permissible operations.
It permits us to define the process of solving a particular problem
as a combination of known techniques (each represented as a rule
defining a single step in the space) and search, the general
technique of exploring the space to try to find some path from
current state to a goal state.
Search is a very important process in the solution of hard problems
for which no more direct techniques are available.
Example: Playing Chess
To build a program that could play chess,
we could first have to specify the starting
position of the chess board, the rules that
define the legal moves, and the board
positions that represent a win for one side
or the other.
In addition, we must make explicit the
previously implicit goal of not only playing
the legal game of chess but also winning the
game, if possible,
One Legal Chess Move
Playing chess
The starting position can be described as an 8 by 8 array
where each position contains a symbol for appropriate
piece.
We can define as our goal the check mate position.
The legal moves provide the way of getting from initial
state to a goal state.
They can be described easily as a set of rules consisting of
two parts:
A left side that serves as a pattern to be matched against the
current board position.
And a right side that describes the change to be made to reflect the
move
However, this approach leads to large number of rules
10120 board positions !!
Using so many rules poses problems such as:
No person could ever supply a complete set of such rules.
No program could easily handle all those rules. Just storing so
many rules poses serious difficulties.
Defining chess problem as State
Space search
We need to write the rules describing the
legal moves in as general a way as possible.
The less work we will have to do to provide
the knowledge and more efficient the
program.

For example:
White pawn at Square( file e, rank 2) AND
Square( File e, rank 3) is empty AND Square(file
e, rank 4) is empty, then move the pawn from
Square( file e, rank 2) to Square( file e, rank 4).
Way to Describe Chess Moves
A Water Jug Problem
Water Jug Problem
The state space for this problem can be described as the
set of ordered pairs of integers (x,y) such that x = 0, 1,2,
3 or 4 and y = 0,1,2 or 3; x represents the number of
gallons of water in the 4-gallon jug and y represents the
quantity of water in 3-gallon jug
The start state is (0,0)
The goal state is (2,n)
Production Rules for the
Water Jug Problem
A Water Jug Problem (Contd)
To solve the water jug problem

Require a control structure that loops through a simple


cycle in which some rule whose left side matches the
current state is chosen, the appropriate change to the state
is made as described in the corresponding right side, and
the resulting state is checked to see if it corresponds to
goal state.
One Solution to the water Jug Problem
To Specify a Problem

1. Define the state space.


2. Specify the initial states.
3. Specify the goal states.
4. Specify the operations.
Production Systems
1. A set of rules.
2. Knowledge/databases.
3. A control strategy.
4. A rule applier.
Production Systems
A production system consists of:
A set of rules, each consisting of a left side that
determines the applicability of the rule and a right side
that describes the operation to be performed if that rule
is applied.
One or more knowledge/databases that contain
whatever information is appropriate for the particular
task. Some parts of the database may be permanent,
while other parts of it may pertain only to the solution
of the current problem.
A control strategy that specifies the order in which the
rules will be compared to the database and a way of
resolving the conflicts that arise when several rules
match at once.
A rule applier
How to decide which rule to apply next during the process
of searching for a solution to a problem?

The two requirements of good control strategy are that

It should cause motion.


It should be systematic
Algorithm:
1. Create a variable called NODE-LIST and set it to
initial state
2. Until a goal state is found or NODE-LIST is empty
do
a. Remove the first element from NODE-LIST and call it E. If
NODE-LIST was empty, quit
b. For each way that each rule can match the state described
in E do:
i. Apply the rule to generate a new state
ii. If the new state is a goal state, quit and return this state
iii. Otherwise, add the new state to the end of NODE-LIST
(0,0)

(4,0) (0,3)

(0,0) (1,3) (4,3) (0,0) (3,0)


(4,3)
1. If the initial state is a goal state, quit and return success
2. Otherwise, do the following until success or failure is
signaled:
a. Generate a successor, E, of initial state. If there are no more
successors, signal failure.
b. Call Depth-First Search, with E as the initial state
c. If success is returned, signal success. Otherwise continue in
this loop.
In this search, we pursue a signal branch of the tree until it
yields a solution or until a decision to terminate the path is
made.
It makes sense to terminate a path if it reaches dead-end,
produces a previous state. In such a state backtracking
occurs.
Chronological Backtracking: Order in which steps are
undone depends only on the temporal sequence in which
steps were initially made. Specifically most recent step is
always the first to be undone. This is also simple
backtracking.
DFS requires less memory since only the nodes on the
current path are stored.

By chance, DFS may find a solution without examining


much of the search space at all.
BFS will not get trapped exploring a blind alley.

If there is a solution, BFS is guaranteed to find it.

If there are multiple solutions, then a minimal solution will


be found.
A simple motion causing and systematic control
structure could solve this problem. Simply explore all
possible paths in the tree and return the shortest path.

If there are N cities, then number of different paths


among them is 1.2.(N-1) or (N-1)!. The time to examine
single path is proportional to N. So the total time required
to perform this search is proportional to N!

For 10 cities, 10! = 3,628,800.This phenomenon is called


Combinatorial explosion.
Begin generating complete paths, keeping track of
the shortest path found so far.
Give up exploring any path as soon as its partial

length becomes greater than the shortest path


found so far.
Using this algorithm, we are guaranteed to find

the shortest path.


It still requires exponential time. The time it

saves depends on the order in which paths are


explored.
A Heuristic is a technique that improves the efficiency of a
search process, possibly by sacrificing claims of completeness.
Heuristics are like tour guides. They are good to the extent that
they point in generally interesting directions;

They are bad to the extent that they may miss points of interest
to particular individuals.

On the average they improve the quality of the paths that are
explored.

Using Heuristics, we can hope to get good ( though possibly


non optimal ) solutions to hard problems.

There are good general purpose heuristics that are useful in a


wide variety of problem domains.

Special purpose heuristics exploit domain specific knowledge


It works by selecting locally superior alternative at each
step.
Applying to TSP:
1. Arbitrarily select a starting city
2. To select the next city, look at all cities not yet visited and
select the one closest to the current city. Go to next step.
3. Repeat step 2 until all cities have been visited.

This procedure executes in time proportional to N2


This is a function that maps from problem state
descriptions to measures of desirability, usually
represented as numbers.

which aspects of the problem state are considered.


how those aspects are evaluated, and
the weights given to individual aspects are chosen in
such a way that the value of the heuristic function at a
given node in the search process gives as good an
estimate as possible of whether that node is on the
desired path to a solution.

Well designed heuristic functions can play an


important part in efficiently guiding a search process
toward a solution.
Chess : The material advantage of our side over opponent.

TSP: the sum of distances so far

Tic-Tac-Toe: 1 for each row in which we could win and in


we already have one piece plus 2 for each such row in we
have two pieces
In order to choose the most appropriate method for a particular
problem, it is necessary to analyze the problem along several key
dimensions:
Is the problem decomposable into a set of independent smaller or
easier sub problems?
Can solution steps be ignored or at least undone if they prove
unwise?
Is the problems universe predictable?
Is a good solution to the problem obvious without comparison to
all other possible solutions?
Is the desired solution a state of the world or a path to a state?
Is a large amount of knowledge absolutely required to solve the
problem or is knowledge important only to constrain the search?
Can a computer that is simply given the problem return the
solution or will the solution of the problem require interaction
between the computer and a person?
Whether the problem can be decomposed into smaller
problems?

Using the technique of problem decomposition, we can


often solve very large problems easily.
Following operators A

are available: C B
A B C
CLEAR(x) [ block x
Goal:
has nothing on it]-> Start: ON(C,A) ON(B,C) and
ON(A,B)
ON(x, Table)
CLEAR(x) and
ON(B,C) and ON(A,B)
CLEAR(y) -> ON(x,y)
[ put x on y] ON(B,C) ON(A,B)

CLEAR(A) ON(A,B)
ON(B,C)
CLEAR(A) ON(A,B)
Proving Mathematical Theorem
Suppose we are trying to prove a mathematical theorem. We proceed by
first proving a lemma that we think will be useful. Eventually, we
realize that the lemma is no help at all.

Are we in trouble?

No, Everything we need to know to prove the theorem is still true and
in memory, if it ever was.

Any rules that could have been applied at the outset can still be applied.

We can just proceed as we should have in the first place.

All we have lost is the effort that was spent exploring the blind alley.
An Example of the 8-Puzzle
An Example of the 8-Puzzle
8-puzzle problem

We can backtrack and undo the moves.

Mistake can be recovered but not quite easily as in the theorem-


proving problem.

Additional steps must perform to undo each incorrect step.

Control mechanism must keep track of the order in which operations


are performed.
Can Solution Steps be ignored or
undone?
Chess: A move cannot be taken back.

Important classes of problems:


Ignorable ( theorem proving)
Recoverable ( 8-puzzle)
Irrecoverable ( Chess)

The recoverability of a problem plays an important role in determining


the complexity of the control structure necessary for the problems
solution.
Ignorable problems can be solved using a simple control structure
that never backtracks

Recoverable problems can be solved by a slightly more complicated


control strategy that does sometimes make mistakes

Irrecoverable problems will need to be solved by systems that


expends a great deal of effort making each decision since decision
must be final.
Is the universe Predictable?
Certain Outcome ( ex: 8-puzzle)
Uncertain Outcome ( ex: Bridge, controlling
a robot arm)
For solving certain outcome problems, open
loop approach ( without feedback) will work
fine.
For uncertain-outcome problems, planning
can at best generate a sequence of operators
that has a good probability of leading to a
solution. We need to allow for a process of
plan revision to take place.
Any path problem

Best path problem

Any path problems can often be solved in a reasonable


amount of time by using heuristics that suggest good
paths to explore.

Best path problems are computationally harder.


Examples:
Water jug : Here it is not sufficient to report that we have
solved , but the path that we found to the state (2,0).
Thus the statement of a solution to this problem must be
a sequence of operations ( Plan) that produces the final
state.
Two examples:
Chess: Knowledge is required to constrain the search for a
solution.
Newspaper story understanding: Lot of knowledge is required
even to be able to recognize a solution.
Consider a problem of scanning daily newspapers to decide
which are supporting the democrats and which are
supporting the republicans in some election. We need lots
of knowledge to answer such questions as:
The names of the candidates in each party.
The facts that if the major thing you want to see done is
have taxes lowered, you are probably supporting the
republicans
The fact that if the major thing you want to see done is
improved education for minority students, you are
probably supporting the democrats. etc
The programs require intermediate interaction with people
for additional inputs and to provided reassurance to the
user.

There are two types of programs:


Solitary
Conversational

Decision on using one of these approaches will be


important in the choice of problem solving method.
There are several broad classes into which the problems
fall. These classes can each be associated with generic
control strategy that is appropriate for solving the
problems:
1. Can production systems, like problems, be described by a
set of characteristics that shed some light on how they can
easily be implemented?
2. If so, what relationships are there between problem types
and the types of production systems best suited to solving
the problems?
Classes of Production systems:
Monotonic Production System: the application of a rule never
prevents the later application of another rule that could also
have been applied at the time the first rule was selected.
Non-Monotonic Production system
Partially commutative Production system: if application of a
particular sequence of rules transforms state x to state y, then
permutation of those rules allowable, also transforms state x
into state y.
Commutative Production system
Production system in which the application of a rule never
prevents the later application of another rule that could
also have been applied at the time the first rule was applied.
i.e., rules are independent.
These production systems are useful for solving ignorable
problems.
Example: Theorem Proving.

They can be implemented without the ability to backtrack


to previous states when it is discovered that an incorrect
path has been followed.
This often results in a considerable increase in efficiency,
particularly because since the database will never have to
be restored, It is not necessary to keep track of where in
the search process every change was made.
They are good for problems where things do not change;
new things get created.
A partially Commutative production system has a property
that if the application of a particular sequence of rules
transform state x into state y, then any permutation of
those rules that is allowable, also transforms state x into
state y.
A Commutative production system is a production system
that is both monotonic and partially commutative.
Useful for problems in which changes occur but
can be reversed and in which order of operations
is not critical.
Example: Robot Navigation, 8-puzzle, blocks
world
Suppose the robot has the following ops: go North
(N), go East (E), go South (S), go West (W). To
reach its goal, it does not matter whether the
robot executes the N-N-E or N-E-N.
Problems in which irreversible change occurs.
Example: chemical synthesis
The ops can be : Add chemical x to the pot, Change the
temperature to t degrees.
These ops may cause irreversible changes to the potion being
brewed.
The order in which they are performed can be very important

in determining the final output.


(x+y) +z is not the same as (z+y) +x
Non partially commutative production systems are less likely to

produce the same node many times in search process.


When dealing with ones that describe irreversible processes, it

is particularly important to make correct decisions the first


time.
Monotonic NonMonotonic

Partially Theorem Robot


Commutative proving Navigation

Not Partially Chemical Bridge


Commutative Synthesis
The direction in which to conduct the search
forward versus backward reasoning.

How to select applicable rules


Matching

How to represent each node of the search process


knowledge representation problem
A Search Graph for the Water
Jug Problem

40
Algorithm : Check Duplicate Nodes
1. Examine the set of nodes that have been created so far to see if the new node already
exists.

2. If it does not-simply add it to the graph just as for a tree.

3. If it does already exist, then do the following:

(a) Set the node that is being expanded to point to the already existing-node corresponding
to its successor rather than to the new one. The new one can simply be thrown away.

(b) If you are keeping track of the best (shortest or otherwise least-cost) path to each node,
then check to see if the new path is better or worse than the old one. If worse, do
nothing. If better, record the new path as the correct path to use to get to the node and
propagate the corresponding change in cost down through successor nodes as
necessary.

41
The Missionaries and cannibals Problem

The Tower of Hanoi

The Monkey and Bananas Problem

Cryptarithmetic
Some Cryptarithmetic Problems

42
Four steps for designing a program to solve a problem:
1. Define the problem precisely
2. Analyse the problem
3. Identify and represent the knowledge required by the task
4. Choose one or more techniques for problem solving and
apply those techniques to the problem.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy