Chapter 2
Chapter 2
Solving Problems by
Searching
1
Problem Solving by Searching
Problem is a goal and a means for achieving the goal.
The process of exploring what the means can do is search.
Searching is the process of considering various possible
sequences of operators applied to the initial state, and
finding out a sequence which culminates in a goal sate.
The goal specifies the state of affairs we want to
bring about and the means specifies the operations
we can perform in an attempt to bring about the goal.
Solution will be a sequence of operations (actions)
leading from initial state to goal state (plan)
2
Example
5
Problem Solution
6
Problem-solving agents
InArtificial Intelligence, Searching techniques
are universal problem-solving methods.
Rational Agents or Problem-solving
agents in AI mostly used these search
strategies or algorithms to solve a specific
problem and provide the best result.
Problem-solving agents are the goal-based
agents and use atomic representation. In this
topic, we will learn various problem-solving
search algorithms.
7
Cont..
Problem solving agents are goal-directed agents:
1. Goal Formulation: Set of one or more (desirable)
world states (e.g. checkmate in chess).
2. Problem Formulation: What actions and states to
consider given a goal and an initial state.
3. Search for solution: Given the problem, search
for a solution --- a sequence of actions to
achieve the goal starting from the initial state.
4. Execution of the solution
8
Problem formulation
A well-defined problem can be described by:
a)Initial state: The initial state that the agent starts in.
b)Action: A description of the possible actions available to the
agent.
c)Transitionmodel: A description of what each action
does; the formal name for this is the transition model.
d)Path cost: functions that assigns a cost to a path
e)Goal test: test to determine the goal state
9
Example A
The initial state is In(Arad)
From the state In(Arad), the applicable actions are
{Go(Sibiu), Go(Timisoara), Go(Zerind)}.
Transition Model: RESULT(In(Arad), Go(Zerind)) = In(Zerind)
Goal test :{In(Bucharest)}
Path cost: length in kilometers
10
11
Example B : The 8-puzzle
S: start
1 2 3
2 8 3 G: Goal
state state 8 4
1 6 4
7 6 5
7 5
State:
The boards, i.e., Location of blank, integer location of tile Initial
sate: any sate can be initial state
Operators/ Actions: Blank moves left, right, up, and down
Goal state: Match G
Path Cost: Each step costs 1 so cost length of path to reach goal
12
Search tree
13
14
Example C
You are given two jugs, a 4-gallon and a 3-
gallon one. Neither has any measuring marks
on it. There is a tap that can be used to fill the
jugs with water. How can you get exactly 2
gallons of water into the 4-gallon jugs.
Specify the initial state, the goal state , all the
possible operators to reach from the start
state to the goal state.
Solution:
15
16
Steps to solve the problem
There are many possible ways to formulate the
problem as search.
1st step:
State description the integers (x,y) {x:0,1,2,3,4},
{y:0,1,2,3,4}
2nd step:
Describe the initial and goal state
The initial state is {0,0}
The goal state is {2,x} where x can take any
value.
3rd step:
List all the action in the production rule(as rules or
operators as follows) 17
Cont..
Fill the 4-gallon jug {x,y}{4,y}, if x<4
Fill the 3-gallon jug {x,y} {x,3}, if y<3
Empty 4-gallon jug {x,y}{0,y},if x>0
Empty 3-gallon jug{x,y}{x,0}, if y>0
Empty the 4-gallon jug into the 3-gallon one {x,y}
{0,x+y}(if x+y<=3 and y>0)
Empty the 3-gallon into the 4-gallon one{x,y}
{x+y,0} (if x+y<=4)
Fill the 4-gallon jug from the 3-gallon until it become full {x,y}
{4,y-(4-x)}or {4,x+y-4} (if x+y >4)
Fill the 3-gallon jug from the 4-gallon until it become full {x,y}
{x-(3-y) or x+y-3 ,3}(if x+y >3)
18
Possible answers
Option 1 Option2
(0,3)---rule2 (4,0)---rule1
(3,0)---rule4 (1,3)---rule6
(3,3)---rule2 (1,0)---rule4
(4,2)---rule5 (0,1)---rule6
(0,2)---rule 8 (4,1)---rule1
(2,0)---rule4 (2,3)---rule6
(2,0)---rule7 19
Example D: The wolf-goat-cabbage problem
20
Cont..
A farmer has a goat, a wolf and a cabbage on the
west side of the river. He wants to get all of his
animals and his cabbage across the river onto the
cost side. The farmer has a boat but he only has
enough room for himself and one other thing.
Case 1: The goat will eat the cabbage if they are
left together alone.
Case 2: The wolf will eat the goat if they are left
alone.
How can the farmer get everything on the other
side? 21
Possible solution
State Space Representation:
We can represent the states of the problem with two
sets W and E. We can also can have representations for
the elements in the two sets as f, g ,w, c representing
the farmer, goat, wolf, and cabbage.
Actions :
Move f from the E to W and vice versa
Move f and one of g,c,w from E to W and vice versa.
Start state:
W={f, g, c, w}, E={}
Goal state:
W={},E={f, g,c,w}
22
One possible Solution:
Farmer takes goat across the river, W={w,c},E={f,g}
Farmer comes back alone, W={f,c,w,},E={g}
Farmer takes wolf across the river, W={c},E={f,g,w}
Farmer comes back with goat, W=={f,g,c},E={w}
Farmer takes cabbage across the river,
W={g},E={f,w,c}
Farmer comes back alone, W={f, g}, E={w, c}
Farmer takes goat across the river, W={},E={f,
g,w,c}
23
Cont..
24
Quiz
1.The missionaries and cannibals problem is usually
stated as follows. Three missionaries and three
cannibals are on one side of a river, along with a boat
that can hold one or two people. Find a way to get
everyone to the other side without ever leaving a
group of missionaries in one place outnumbered by
the cannibals in that place.
A. Formulate the problem precisely, making only those
distinctions necessary to ensure a valid solution.
2.For each of the following activities, give a PEAS
description of the task environment
Shopping for used AI books on the Internet.
Playing soccer 25
Search Algorithm Terminologies
Search: Searching is a step by step procedure to solve a search-
problem in a given search space. A search problem can have three
main factors:
Search Space: it represents a set of possible solutions, which a
system may have.
Start State: It is a state from where agent begins the search.
Goal test: It is a function which observe the current state and
returns whether the goal state is achieved or not.
Search tree: A tree representation of search problem is called
Search tree. The root of the search tree is the root node which is
corresponding to the initial state.
Path Cost: It is a function which assigns a numeric cost to each path.
Solution: It is an action sequence which leads from the start node to
the goal node.
Optimal Solution: If a solution has the lowest cost among all
26
solutions.
Properties of Search Algorithms
27
Cont..
Time Complexity: is a measure of time for
an algorithm to complete its task.
Space Complexity: It is the maximum
storage space required at any point during
the search, as the complexity of the problem.
28
Cont..
Different
search strategies are evaluated along
completeness, time complexity, space complexity
and optimality. The time and space complexity are
measured in terms of:
b:Maximum branching factor of the search tree
(actions per state).
d: Depth of the solution
m: Maximum depth of the state space (may be ∞)
(also noted sometimes D).
29
Types of Searching Algorithms
Based on the search problems, we can classify the
search algorithms into uninformed (Blind search) and
informed search (Heuristic search) algorithms.
30
31
Uninformed/Blind Search
34
Cont..
Breadth-first search implemented using FIFO queue
data structure.
Advantages:
BFS will provide a solution if any solution exists.
If there are more than one solutions for a given
problem, then BFS will provide the minimal solution
which requires the least number of steps.
35
Cont..
Disadvantages:
It
requires lots of memory since each level of the tree
must be saved into memory to expand the next level.
BFS needs lots of time if the solution is far away from
the root node.
Example:
In the below tree structure, we have shown the
traversing of the tree using BFS algorithm from the root
node S to goal node K.
36
BFS algorithm traverse in layers, so it will follow
the path which is shown by the dotted arrow, and
the traversed path will be:
S---> A--->B---->C--->D---->G--->H--->E---->F----
>I---->K
37
Cont..
Tosimplify the search algorithms, it is often
convenient to logically and programmatically
represent a problem space as a tree.
A tree is a graph in which any two vertices are
connected exactly one path. Alternatively, any
connected graph with no cycles is a tree.
38
Cont..
• The process constructs a search tree is as follows, where
• root is the initial state and
• leaf nodes are nodes
• not yet expanded (i.e., in fringe/agenda)
• having no successors (i.e., “dead-ends”)
• Search tree may be infinite because of loops even if state
space is small
• The search problem will return as a solution a path to a goal
node.
• Treat agenda as queue
• Expansion: put children at the end of the queue
39
40
BFS illustrated
Step 1: Initially fringe contains only one
node corresponding to the source state A.
Fringe: A
41
BFS illustrated
Step 2: A is removed from fringe. The node is
expanded, and its children B and C are
generated. They are placed at the back of fringe.
Fringe: BC
42
BFS illustrated
Step 3: Node B is removed from fringe and is
expanded. Its children D, E are generated and
put at the back of fringe.
Fringe: CDE
43
BFS illustrated
Step 4: Node C is removed from fringe and is
expanded. Its children D and G are added to
the back of fringe.
Fringe: DEDG
44
BFS illustrated
Step 5: Node D is removed from fringe. Its
children C and F are generated and added to the
back of fringe.
Fringe: EDGCF
45
BFS illustrated
Step 6: Node E is removed from fringe. It has
no children.
Fringe: DGCF
46
BFS illustrated
Step 7: D is expanded, B and F are put in
OPEN.
Fringe: GCFBF
47
cont..
48
Exercise: Consider the following graph
representing the state space and
operators of a navigation problem:
What is the order that BFS will expand
A
the nodes D
G
S
B E F
C H
•S is the start state and G is the goal
state. When placing expanded child
nodes on the queue, assume that the
child nodes are placed in the alphabetical
order(if node S is expanded the queue
will be A,B). Assume that we never 49
51
Cont..
Advantages:
DFS requires very less memory as it only needs to store a
stack of the nodes on the path from root node to the
current node.
It takes less time to reach to the goal node than BFS
algorithm (if it traverses in the right path).
Disadvantages:
There is the possibility that many states keep re-
occurring, and there is no guarantee of finding the
solution.
DFS algorithm goes for deep down searching and
sometime it may go to the infinite loop. 52
Cont..
Example:
In the below search tree, we have shown the flow
of depth-first search, and it will follow the order as:
Root node--->Left node ----> right node.
It will start searching from root node S, and
traverse A, then B, then D and E, after traversing E,
it will backtrack the tree as E has no other
successor and still goal node is not found. After
backtracking it will traverse node C and then G,
and here it will terminate as it found goal node.
53
Cont..
54
Search tree for the state space
Let us now run Depth First Search on the search
space given in Figure below, and trace its progress
55
DFS illustrated
Fringe: A
56
DFS illustrated
Step 2: A is removed from fringe. A is
expanded and its children B and C are put in
front of fringe
Fringe: BC
57
DFS illustrated
Step 3: Node B is removed from fringe, and
its children D and E are pushed in front of
fringe.
Fringe: DEC
58
DFS illustrated
Step 4: Node D is removed from fringe. C
and F are pushed in front of fringe.
Fringe: CFEC
59
DFS illustrated
Step 5: Node C is removed from fringe. Its
child G is pushed in front of fringe.
Fringe: GFEC
60
DFS illustrated
Step 6: Node G is expanded and found to be
a goal node. The solution path A-B-D-C-G is
returned and the algorithm terminates.
Goal.
Fringe: GFEC
61
Cont..
Completeness: DFS search algorithm is complete within finite
state space as it will expand every node within a limited search
tree.
Time Complexity: Time complexity of DFS will be equivalent to
the node traversed by the algorithm. It is given by: T(n)= 1+ n2+
n3 +.........+ nm=O(nm)
Where, m= maximum depth of any node and this can be much
larger than d (Shallowest solution depth)
Space Complexity: DFS algorithm needs to store only single
path from the root node, hence space complexity of DFS is
equivalent to the size of the fringe set which is O(bm).
Optimal: DFS search algorithm is non-optimal, as it may
generate a large number of steps or high cost to reach to the
goal node. 62
Depth-Limited Search Algorithm
A depth-limited search algorithm is similar to
depth-first search with a predetermined limit.
Depth-limited search can solve the drawback of
the infinite path in the Depth-first search.
In this algorithm, the node at the depth limit will
treat as it has no successor nodes further.
Depth-limited search can be terminated with two
Conditions of failure:
Standard failure value: It indicates that problem
does not have any solution. 63
Cont..
Cutoff failure value: It defines no solution for the
problem within a given depth limit.
Advantages:
Depth-limited search is Memory efficient.
Disadvantages:
Depth-limited search also has a disadvantage of
incompleteness.
It may not be optimal if the problem has more than one
solution.
64
Cont..
65
Cont..
Completeness: DLS search algorithm is complete if
the solution is above the depth-limit.
Optimal: Depth-limited search can be viewed as a
special case of DFS, and it is also not optimal.
Time Complexity: Time complexity of DLS
algorithm is O(bℓ).
Space Complexity: Space complexity of DLS
algorithm is O(b×ℓ).
66
Uniform-cost Search Algorithm
69
Cont..
70
Cont..
Thesuccessors of Sibiu are Riminculus Vilcea (with
cost of 80) and Fagaras (cost = 99). The least-cost
node is Riminculus Vilcea, which is expanded next
to get Pitesti whose path cost from Sibiu is now 80
+ 97 =177. The least-cost node is now Fagaras,
which is then expanded to get Bucharest with path
cost 99 + 211 = 310.
Now, we have generated the goal node, but the
search still continues. What if the path through
Pitesti reaches Bucharest with a lesser cost? Turns
out this is the case in this situation. The Pitesti is
expanded next, to give Bucharest with path cost
177 + 101 = 278. Bucharest, now with path cost71
[C*/ε]
).
Optimal:
Uniform-cost search is always optimal as it only
selects a path with the lowest path cost.
73
Iterative deepening depth-first Search(IDDS)
is unknown.
Cont..
Advantages:
It combines the benefits of BFS and DFS search algorithm in
terms of fast search and memory efficiency.
Disadvantages:
The main drawback of IDDFS is that it repeats all the work of
the previous phase.
Example:
Following tree structure is showing the iterative deepening
depth-first search. IDDFS algorithm performs various
iterations until it does not find the goal node. The iteration
performed by the algorithm is given as: 75
Cont..
76
Cont..
1'st Iteration-----> A
2'nd Iteration----> A, B, C
3'rd Iteration------>A, B, D, E, C, F, G
4'th Iteration------>A, B, D, H, I, E, C, F, K, G
In the fourth iteration, the algorithm will find the
goal node.
77
78
79
80
Cont..
Completeness:
This algorithm is complete if the branching factor is finite.
Time Complexity:
Suppose b is the branching factor and depth is d then the
worst-case time complexity is O(bd).
Space Complexity:
The space complexity of IDDFS will be O(bd).
Optimal:
IDDFS algorithm is optimal if path cost is a non decreasing
function of the depth of the node.
81
Bidirectional Search Algorithm
Bidirectional search algorithm runs two simultaneous
searches, one from initial state called as forward-search and
the other from goal node called as backward-search, to find
the goal node.
Bidirectional search replaces one single search graph with
two small subgraphs in which one starts the search from an
initial vertex and other starts from goal vertex.
The search stops when these two graphs intersect each
other.
Bidirectionalsearch can use search techniques such as BFS,
DFS, DLS, etc.
82
Cont..
Advantages:
Bidirectional search is fast.
Bidirectional search requires less memory
Disadvantages:
Implementation of the bidirectional search tree is
difficult.
83
Example:
In the below search tree, bidirectional search algorithm is
applied.
This algorithm divides one graph/tree into two sub-graphs. It
starts
traversing from node 1 in the forward direction and starts from
goal
node 16 in the backward direction. The algorithm terminates
at node 9 where two searches meet.
84
Cont..
Completeness: Bidirectional Search is
complete if we use BFS in both searches.
Time Complexity: Time complexity of
bidirectional search using BFS is O(bd).
Space Complexity: Space complexity of
bidirectional search is O(bd).
Optimal: Bidirectional search is Optimal.
85
Informed Search Algorithms
So far we have talked about the uninformed search algorithms
which looked through search space for all possible solutions of
the problem without having any additional knowledge about
search space.
But informed search algorithm contains an array of knowledge
such as how far we are from the goal, path cost, how to reach
to goal node, etc.
This knowledge help agents to explore less to the search space
and find more efficiently the goal node.
The informed search algorithm is more useful for large search
space.
Informed search algorithm uses the idea of heuristic, so it is
also called Heuristic search. 86
Cont..
Heuristics Function: Heuristic is a function which is used in
Informed Search, and it finds the most promising path.
It takes the current state of the agent as its input and produces
the estimation of how close agent is from the goal.
The heuristic method, however, might not always give the best
solution, but it guaranteed to find a good solution in reasonable
time.
Heuristic function estimates how close a state is to the goal.
It is represented by h(n), and it calculates the cost of an
optimal path between the pair of states.
The value of the heuristic function is always positive.
87
Pure Heuristic Search
Pure heuristic search is the simplest form of heuristic
search algorithms.
It expands nodes based on their heuristic value h(n).
It maintains two lists: OPEN and CLOSED lists.
In the CLOSED list, it places those nodes which have
already expanded and in the OPEN list, it places nodes
which have yet not been expanded.
88
Cont..
On each iteration, each node n with the lowest
heuristic value is expanded and generates all its
successors and n is placed to the closed list.
The algorithm continues unit a goal state is found.
In the informed search we will discuss two main
algorithms which are given below:
Best First Search Algorithm(Greedy search)
A* Search Algorithm
89
Best-first Search Algorithm (Greedy
Search)
Greedy best-first search algorithm always selects the
path which appears best at that moment.
It is the combination of depth-first search and breadth-
first search algorithms.
It uses the heuristic function and search.
Best-first search allows us to take the advantages of both
algorithms.
With the help of best-first search, at each step, we can
choose the most promising node.
90
Cont..
In the best first search algorithm, we expand the node
which is closest to the goal node and the closest cost
is estimated by heuristic function.
The greedy best first algorithm is implemented by the
priority queue.
91
Cont..
Best first search algorithm:
Step 1: Place the starting node into the OPEN list.
Step 2: If the OPEN list is empty, Stop and return failure.
Step 3: Remove the node n, from the OPEN list which has the
lowest value of h(n), and places it in the CLOSED list.
Step 4: Expand the node n, and generate the successors of node n.
Step 5: Check each successor of node n, and find whether any
node is a goal node or not. If any successor node is goal node, then
return success and terminate the search, else proceed to Step 6.
Step 6: For each successor node, algorithm checks for evaluation
function f(n), and then check if the node has been in either OPEN or
CLOSED list. If the node has not been in both list, then add it to the
OPEN list.
92
Step 7: Return to Step 2.
Cont..
Advantages:
Best first search can switch between BFS and DFS by gaining the
advantages of both the algorithms.
This algorithm is more efficient than BFS and DFS algorithms.
Disadvantages:
It can behave as an unguided depth-first search in the worst case
scenario.
It can get stuck in a loop as DFS.
This algorithm is not optimal.
Example: Consider the below search problem, and you will traverse it
using greedy best-first search. At each iteration, each node is expanded
using evaluation function f(n)=h(n) which is given in the below table.
93
Cont..
94
In this search example, we are using two lists which
are OPEN and CLOSED Lists. Following are the
iteration for traversing the above example.
95
Cont..
Expand the nodes of S and put in the CLOSED list
Initialization: Open [A, B], Closed [S]
Iteration 1: Open [A], Closed [S, B]
Iteration 2: Open [E, F, A], Closed [S, B]
: Open [E, A], Closed [S, B, F]
Iteration 3: Open [I, G, E, A], Closed [S, B, F]
: Open [I, E, A], Closed [S, B, F, G]
Hence the final solution path will be: S----> B----->F----> G
Time Complexity: The worst case time complexity of Greedy best first
search is O(bm).
Space Complexity: The worst case space complexity of Greedy best first
search is O(bm). Where, m is the maximum depth of the search space.
Complete: Greedy best-first search is also incomplete, even if the given
state space is finite.
Optimal: Greedy best first search algorithm is not optimal. 96
97
A* Search Algorithm
A* Search is the most commonly known form of best-
first search.
It uses heuristic function h(n), and cost to reach the
node n from the start state g(n).
It has combined features of UCS and greedy best-first
search, by which it solve the problem efficiently.
A* search algorithm finds the shortest path through
the search space using the heuristic function.
98
Cont..
Thissearch algorithm expands less search tree
and provides optimal result faster. A* algorithm is
similar to UCS except that it uses g(n)+h(n)
instead of g(n).
InA* search algorithm, you use search heuristic
as well as the cost to reach the node. Hence, you
can combine both costs as following, and this
sum is called as a fitness number.
99
At each point in the search space, only those node is
expanded which have the lowest value of f(n), and
the algorithm terminates when the goal node is
found.
100
Cont..
Algorithm of A* search:
Step1: Place the starting node in the OPEN list.
Step 2: Check if the OPEN List is empty or not, if the
list is empty then return failure and stops.
Step 3: Select the node from the OPEN list which has
the smallest value of evaluation function (g+h), if node n
is goal node then return success and stop, otherwise
101
Cont..
Step 4: Expand node n and generate all of its
successors, and put n into the closed list. For each
successor n', check whether n' is already in the OPEN
or CLOSED list, if not then compute evaluation
function for n' and place into Open list.
Step 5: Else if node n' is already in OPEN and
CLOSED, then it should be attached to the back
pointer which reflects the lowest g(n') value.
Step 6: Return to Step 2.
102
Cont..
Advantages:
A* search algorithm is the best algorithm than other search
algorithms.
A* search algorithm is optimal and complete.
This algorithm can solve very complex problems.
Disadvantages:
It does not always produce the shortest path as it mostly based on
heuristics and approximation.
A* search algorithm has some complexity issues.
The main drawback of A* is memory requirement as it keeps all
generated nodes in the memory, so it is not practical for various
large-scale problems. 103
Example: In this example, we will traverse the given graph
using the A* algorithm. The heuristic value of all states is given
in the below table so we will calculate the f(n) of each state
using the formula f(n)= g(n) + h(n), where g(n) is the cost to
reach any node from start state. Here we will use OPEN and
CLOSED list.
104
Solution
105
Cont..
Initialization: {(S, 5)}
Iteration1: {(S--> A, 4), (S-->G, 10)}
Iteration2: {(S--> A-->C, 4), (S--> A-->B, 7), (S-->G, 10)}
Iteration3: {(S--> A-->C--->G, 6), (S--> A-->C--->D, 11), (S--> A--
>B, 7), (S-->G, 10)}
Iteration 4: will give the final result, as S--->A--->C--->G it
provides the optimal path with cost 6.
Points to Remember:
A* algorithm returns the path which occurred first, and it does not
search for all remaining paths.
The efficiency of A* algorithm depends on the quality of heuristic.
Complete: A* algorithm is complete as long as:
Branching factor is finite.
Cost at every action is fixed.
106
Exercise
3
S C 2
7 2
3 L
A B 4 4
4 4 1 6
I J
D H
4 4
5 3 2 K
F 5
G 2
E
107
108
Node H(n)
S 10
S=0+10=10, then expand S,
A 9 then A,B,C
B 7 A=9+7,B=2+7,C=3+8
C 8 Prioritize them BCA
D 8 Then expand the smallest
E 0 value which is B
D=6+8, H=3+6
F 6
Expand H
G 3
Ans= SBHGE
H 6
I 4
J 4
K 3
L 6 109
Cont..
Optimal: A* search algorithm is optimal if it follows below two
conditions:
Admissible: the first condition requires for optimality is that h(n)
should be an admissible heuristic for A* tree search. An admissible
heuristic is optimistic in nature.
Consistency: Second required condition is consistency for only A*
graph-search.
If the heuristic function is admissible, then A* tree search will
always find the least cost path.
Time Complexity: The time complexity of A* search algorithm
depends on heuristic function, and the number of nodes expanded is
exponential to the depth of solution d. So the time complexity is O(b^d),
where b is the branching factor.
Space Complexity: The space complexity of A* search algorithm
110
is O(b^d)
Hill Climbing Algorithm in Artificial Intelligence
114
Cont..
115
Different regions in the state space landscape
Local Maximum: Local maximum is a state which is better
than its neighbor states, but there is also another state which
is higher than it.
Global Maximum: Global maximum is the best possible
state of state space landscape. It has the highest value of
objective function.
Current state: It is a state in a landscape diagram where
an agent is currently present.
Flat local maximum: It is a flat space in the landscape
where all the neighbor states of current states have the
same value.
Shoulder: It is a plateau region which has an uphill edge.
116
Types of Hill Climbing Algorithm
Simple hill Climbing:
Steepest-Ascent hill-climbing:
Stochastic hill Climbing:
117
Simple Hill Climbing
Simple hill climbing is the simplest way to implement a hill climbing algorithm. It
only evaluates the neighbor node state at a time and selects the first
one which optimizes current cost and set it as a current state. It only
checks it's one successor state, and if it finds better than the current state, then
move else be in the same state. This algorithm has the following features:
Less time consuming
Less optimal solution and the solution is not guaranteed
Algorithm for Simple Hill Climbing:
Step 1: Evaluate the initial state, if it is goal state then return success and Stop.
Step 2: Loop Until a solution is found or there is no new operator left to apply.
Step 3: Select and apply an operator to the current state.
Step 4: Check new state:
If it is goal state, then return success and quit.
Else if it is better than the current state then assign new state as a current state.
Else if not better than the current state, then return to step2.
118
Step 5: Exit.
Steepest-Ascent hill climbing
The steepest-Ascent algorithm is a variation of simple hill climbing algorithm. This algorithm examines
all the neighboring nodes of the current state and selects one neighbor node which is closest to the goal
state. This algorithm consumes more time as it searches for multiple neighbors
Algorithm for Steepest-Ascent hill climbing:
Step 1: Evaluate the initial state, if it is goal state then return success
and stop, else make current state as initial state.
Step 2: Loop until a solution is found or the current state does not
change.
Let SUCC be a state such that any successor of the current state will be better
than it.
For each operator that applies to the current state:
Apply the new operator and generate a new state.
Evaluate the new state.
If it is goal state, then return it and quit, else compare it to the SUCC.
If it is better than SUCC, then set new state as SUCC.
If the SUCC is better than the current state, then set current state
119 to SUCC.
Step 5: Exit.
Stochastic hill climbing
Stochastichill climbing does not examine for all its
neighbor before moving. Rather, this search
algorithm selects one neighbor node at random and
decides whether to choose it as a current state or
examine another state.
120
Problems in Hill Climbing Algorithm
1. Local Maximum: A local maximum is a peak
state in the landscape which is better than each of
its neighboring states, but there is another state
also present which is higher than the local
maximum.
Solution: Backtracking technique can be a solution
of the local maximum in state space landscape.
Create a list of the promising path so that the
algorithm can backtrack the search space and
explore other paths as well.
121
Cont..
122
Cont..
2. Plateau: A plateau is the flat area of the search space in
which all the neighbor states of the current state contains
the same value, because of this algorithm does not find any
best direction to move. A hill-climbing search might be lost
in the plateau area.
Solution: The solution for the plateau is to take big steps or
very little steps while searching, to solve the problem.
Randomly select a state which is far away from the current
state so it is possible that the algorithm could find non-
plateau region.
123
124
Cont..
Ridges: A ridge is a special form of the local maximum. It
has an area which is higher than its surrounding areas, but
itself has a slope, and cannot be reached in a single move.
Solution: With the use of bidirectional search, or by
moving in different directions, we can improve this
problem.
125
Simulated Annealing
A hill-climbing algorithm which never makes a move towards
a lower value guaranteed to be incomplete because it can get
stuck on a local maximum.
And if algorithm applies a random walk, by moving a
successor, then it may complete but not efficient.
Simulated Annealing is an algorithm which yields both
efficiency and completeness.
126
Cont..
In mechanical term Annealing is a process of
hardening a metal or glass to a high temperature
then cooling gradually, so this allows the metal to
reach a low-energy crystalline state.
The same process is used in simulated annealing in
which the algorithm picks a random move, instead
of picking the best move.
If the random move improves the state, then it
follows the same path.
Otherwise, the algorithm follows the path which has
a probability of less than 1 or it moves downhill and
chooses another path.
127
Means-Ends Analysis in Artificial Intelligence
We have studied the strategies which can reason either in
forward or backward, but a mixture of the two directions is
appropriate for solving a complex and large problem.
Such a mixed strategy, make it possible that first to solve the
major part of a problem and then go back and solve the small
problems arise during combining the big parts of the problem.
Such a technique is called Means-Ends Analysis.
128
Cont..
Means-Ends Analysis is problem-solving techniques
used in Artificial intelligence for limiting search in AI
programs.
It is a mixture of Backward and forward search
technique.
The MEA technique was first introduced in 1961 by
Allen Newell, and Herbert A. Simon in their problem-
solving computer program, which was named as
General Problem Solver (GPS).
The MEA analysis process centered on the
evaluation of the difference between the current
state and goal state.
129
How means-ends analysis Works
The means-ends analysis process can be applied recursively for
a problem. It is a strategy to control search in problem-solving.
Following are the main Steps which describes the working of
MEA technique for solving a problem.
First, evaluate the difference between Initial State and final
State.
Select the various operators which can be applied for each
difference.
Apply the operator at each difference, which reduces the
difference between the current state and goal state.
130
Operator Subgoaling
In the MEA process, we detect the differences between the
current state and goal state.
Once these differences occur, then we can apply an operator
to reduce the differences.
But sometimes it is possible that an operator cannot be
applied to the current state.
So we create the subproblem of the current state, in which
operator can be applied, such type of backward chaining in
which operators are selected, and then sub goals are set up to
establish the preconditions of the operator is called Operator
Subgoaling.
131
Algorithm for Means-Ends Analysis
Let's we take Current state as CURRENT and Goal State as GOAL, then
following are the steps for the MEA algorithm.
Step 1: Compare CURRENT to GOAL, if there are no differences between
both then return Success and Exit.
Step 2: Else, select the most significant difference and reduce it by doing
the following steps until the success or failure occurs.
Select a new operator O which is applicable for the current difference, and if there
is no such operator, then signal failure.
Attempt to apply operator O to CURRENT. Make a description of two states.
i) O-Start, a state in which O?s preconditions are satisfied.
ii) O-Result, the state that would result if O were applied In O-start.
If
(First-Part <------ MEA (CURRENT, O-START)
And
(LAST-Part <----- MEA (O-Result, GOAL), are successful, then signal Success
and return the result of combining FIRST-PART, O, and LAST-PART.
The above-discussed algorithm is more suitable for a simple problem and
not adequate for solving complex problems.
132
Adversarial Search
Adversarial search is a search, where we examine
the problem which arises when we try to plan
ahead of the world and other agents are planning
against us.
In previous topics, we have studied the search
strategies which are only associated with a single
agent that aims to find the solution which often
expressed in the form of a sequence of actions.
But, there might be some situations where more
than one agent is searching for the solution in the
same search space, and this situation usually
occurs in game playing.
133
Cont..
The environment with more than one agent is
termed as multi-agent environment, in which
each agent is an opponent of other agent and
playing against each other. Each agent needs to
consider the action of other agent and effect of that
action on their performance.
So, Searches in which two or more players
with conflicting goals are trying to explore the
same search space for the solution, are called
adversarial searches, often known as Games.
Games are modeled as a Search problem and
heuristic evaluation function, and these are the two
main factors which help to model and solve games
in AI. 134
Types of Games in AI
Chance Moves
Deterministic
Perfect information Chess, Checkers, go, Backgammon,
Othello monopoly
Imperfect Battleships, blind, tic- Bridge, poker,
information tac-toe scrabble, nuclear war
135
Cont..
Perfect information: A game with the perfect
information is that in which agents can look into the
complete board.
Agents have all the information about the game, and
they can see each other moves also. Examples are
Chess, Checkers, Go, etc.
Imperfect information: If in a game agents do not
have all information about the game and not aware
with what's going on, such type of games are called
the game with imperfect information, such as tic-tac-
toe, Battleship, blind, Bridge, etc.
136
Cont..
Deterministic games: Deterministic games are those
games which follow a strict pattern and set of rules for the
games, and there is no randomness associated with them.
Examples are chess, Checkers, Go, tic-tac-toe, etc.
Non-deterministic games: Non-deterministic are those
games which have various unpredictable events and has a
factor of chance or luck.
This factor of chance or luck is introduced by either dice or
cards. These are random, and each action response is not
fixed. Such games are also called as stochastic games.
Example: Backgammon, Monopoly, Poker, etc.
137
Zero-Sum Game
Zero-sum games are adversarial search which involves
pure competition.
InZero-sum game each agent's gain or loss of utility is
exactly balanced by the losses or gains of utility of
another agent.
One player of the game try to maximize one single
value, while other player tries to minimize it.
Each move by one player in the game is called as ply.
Chess and tic-tac-toe are examples of a Zero-sum
game.
138
Zero-sum game: Embedded thinking
The Zero-sum game involved embedded
thinking in which one agent or player is trying to
figure out:
What to do.
How to decide the move
Needs to think about his opponent as well
The opponent also thinks what to do
Eachof the players is trying to find out the
response of his opponent to their actions. This
requires embedded thinking or backward
reasoning to solve the game problems in AI.
139
Formalization of the problem
A game can be defined as a type of search in
AI which can be formalized of the following
elements:
Initial state: It specifies how the game is set up at
the start.
Player(s): It specifies which player has moved in
the state space.
Action(s): It returns the set of legal moves in state
space.
Result(s, a): It is the transition model, which
specifies the result of moves in the state space.
140
Cont..
Terminal-Test(s): Terminal test is true if the game is over,
else it is false at any case. The state where the game ends is
called terminal states.
Utility(s, p): A utility function gives the final numeric value
for a game that ends in terminal states s for player p. It is
also called payoff function.
For Chess, the outcomes are a win, loss, or draw and its
payoff values are +1, 0, ½. And for tic-tac-toe, utility values
are +1, -1, and 0.
141
END
142