Artificial Intelligence
Problem solving by searching
CSC 361
Dr. Yousef Al-Ohali
Computer Science Depart.
CCIS – King Saud University
Saudi Arabia
yousef@ccis.edu.sa
http://faculty.ksu.edu.sa/YAlohali
Problem Solving by Searching
Search Methods :
Local Search for
Optimization Problems
Heuristic Functions
A heuristic function is a function f(n) that gives an estimation on the
“cost” of getting from node n to the goal state – so that the node with
the least cost among all possible choices can be selected for expansion
first.
Three approaches to defining f:
f measures the value of the current state (its “goodness”)
f measures the estimated cost of getting to the goal from the current state:
f(n) = h(n) where h(n) = an estimate of the cost to get from
n to a goal
f measures the estimated cost of getting to the goal state from the current
state and the cost of the existing path to it. Often, in this case, we
decompose f:
f(n) = g(n) + h(n) where g(n) = the cost to get to n (from
initial state) 3
Approach 1: f Measures the Value of
the Current State
Usually the case when solving optimization problems
Finding a state such that the value of the metric f is optimized
Often, in these cases, f could be a weighted sum of a set of
component values:
Chess
Example: piece values, board orientations …
Traveling Salesman Person
Example: the length of a tour (sum of distances between visited cities)
4
Traveling Salesman Person
Find the shortest Tour traversing all cities once.
5
Traveling Salesman Person
A Solution: Exhaustive Search
(Generate and Test) !!
The number of all tours
is about (n-1)!/2
If n = 36 the number is about:
566573983193072464833325668761600000000
Not Viable Approach !!
6
Traveling Salesman Person
A Solution: Start from an initial solution and
improve using local transformations.
7
2-opt mutation for TSP
Choose two edges at random
8
2-opt mutation for TSP
Choose two edges at random
9
2-opt mutation for TSP
Remove them
10
2-opt mutation for TSP
Reconnect in a different way (there is only one valid new way)
11
Optimization Problems
Local Search Algorithms
Local Search Algorithms
The search algorithms we have seen so far keep track of
the current state, the “fringe” of the search space, and the
path to the final state.
In some problems, one doesn’t care about a solution path
but only the orientation of the final goal state
Example: 8-queen problem
Local search algorithms operate on a single state –
current state – and move to one of its neighboring states
Solution path needs not be maintained
Hence, the search is “local”
13
Local Search Algorithms
Example:
Put N Queens on an n × n board with no two
queens on the same row, column, or diagonal
Initial state … Improve it … using local transformations (perturbations)
14
Local Search Algorithms
Basic idea: Local search algorithms operate on a single state – current
state – and move to one of its neighboring states.
The principle: keep a single "current" state, try to improve it
Therefore: Solution path needs not be maintained.
Hence, the search is “local”.
Two advantages
Use little memory.
More applicable in searching large/infinite search space. They find
reasonable solutions in this case.
15
Local Search Algorithms for
optimization Problems
Local search algorithms are
very useful for optimization
problems
systematic search doesn’t
work
however, can start with a
suboptimal solution and
improve it
Goal: find a state such that Minimize the number
the objective function is
optimized of attacks
16
Local Search Algorithms
Hill Climbing,
Simulated Annealing,
Tabu Search
Local Search: State Space
A state space landscape is a graph of states associated with their
costs
18
Hill Climbing
• "Like climbing Everest in thick fog with amnesia"
• Hill climbing search algorithm (also known as greedy local
search) uses a loop that continually moves in the direction
of increasing values (that is uphill).
• It teminates when it reaches a peak where no neighbor
has a higher value.
19
Steepest Ascent Version
Steepest ascent version
Function Hill climbing (problem) return state that is a local maximun
Inputs: problem, a problem
Local variables: current, a node
neighbor, a node
Current ← Make-Node (initial-state [problem])
Loop do
neighbor ← a highest-valued successor of current
If Value[neighbor] ≤ Value[current] then return state [current]
Current ← neighbor
20
Hill Climbing: Neighborhood
Consider the 8-queen problem:
A State contains 8 queens on the board
The neighborhood of a state is all states generated by moving a single queen
to another square in the same column (8*7 = 56 next states)
The objective function h(s) = number of queens that attack each other in
state s.
h(s) = 17 best next is 12 h(s)=1 [local minima]
21
Hill Climbing Drawbacks
Local maxima/minima : local search can get
stuck on a local maximum/minimum and not
find the optimal solution
Local minimum
• Cure
+ Random restart
22
+ Good for Only few local maxima
Hill Climbing
Cost
States
23
Hill Climbing
Current
Solution
24
Hill Climbing
Current
Solution
25
Hill Climbing
Current
Solution
26
Hill Climbing
Current
Solution
27
Hill Climbing
Best
28
Local Search Algorithms
Simulated Annealing
(Stochastic hill climbing …)
Simulated Annealing
Key Idea: escape local maxima by allowing some "bad" moves
but gradually decrease their frequency
Take some uphill steps to escape the local minimum
Instead of picking the best move, it picks a random move
If the move improves the situation, it is executed. Otherwise,
move with some probability less than 1.
Physical analogy with the annealing process:
Allowing liquid to gradually cool until it freezes
The heuristic value is the energy, E
Temperature parameter, T, controls speed of convergence. 30
Simulated Annealing
Basic inspiration: What is annealing?
In mettallurgy, annealing is the physical process used to temper or
harden metals or glass by heating them to a high temperature
and then gradually cooling them, thus allowing the material to
coalesce into a low energy cristalline state.
Heating then slowly cooling a substance to obtain a strong
cristalline structure.
Key idea: Simulated Annealing combines Hill Climbing with a
random walk in some way that yields both efficiency and
completeness.
Used to solve VLSI layout problems in the early 1980
31
Simulated Annealing
32
Simulated Annealing
33
Simulated Annealing
Temperature T
Used to determine the probability
High T : large changes
Low T : small changes
Cooling Schedule
Determines rate at which the temperature T is lowered
Lowers T slowly enough, the algorithm will find a global
optimum
In the beginning, aggressive for searching alternatives,
become conservative when time goes by
34
Simulated Annealing
Cost Best
States
35
Simulated Annealing
Cost Best
States
36
Simulated Annealing
Cost Best
States
37
Simulated Annealing
Cost Best
States
38
Simulated Annealing
Cost Best
States
39
Simulated Annealing
Cost Best
States
40
Simulated Annealing
Cost Best
States
41
Simulated Annealing
Cost Best
States
42
Simulated Annealing
Cost Best
States
43
Simulated Annealing
Cost Best
States
44
Simulated Annealing
Cost Best
States
45
Simulated Annealing
Cost Best
States
46
Simulated Annealing
Cost Best
States
47
Simulated Annealing
Cost Best
States
48
Simulated Annealing
Cost Best
States
49
Simulated Annealing
Cost Best
States
50
Simulated Annealing
Cost Best
States
51
Simulated Annealing
Cost Best
States
52
Simulated Annealing
Cost Best
States
53
Simulated Annealing
Cost Best
States
54
Simulated Annealing
Cost Best
States
55
Simulated Annealing
Cost Best
States
56
Simulated Annealing
Cost Best
States
57
Local Search Algorithms
Tabu Search
(hill climbing with small memory)
Tabu Search
The basic concept of Tabu Search as described by
Glover (1986) is "a meta-heuristic superimposed on
another heuristic.
The overall approach is to avoid entrainment in
cycles by forbidding or penalizing moves which take
the solution, in the next iteration, to points in the
solution space previously visited ( hence "tabu").
The Tabu search is fairly new, Glover attributes it's
origin to about 1977 (see Glover, 1977).
59
Tabu Search: TS
Cost
States
60
Tabu Search: TS
Best
61
Tabu Search: TS
Best
62
Tabu Search: TS
Best
63
Tabu Search: TS
Best
64
Tabu Search: TS
Best
65
Tabu Search: TS
Best
66
Tabu Search: TS
Best
67
Tabu Search: TS
Best
68
Tabu Search: TS
Best
69
Tabu Search: TS
Best
70
Tabu Search: TS
Best
71
Tabu Search: TS
Best
72
Tabu Search: TS
Best
73
Tabu Search: TS
Best
74
Tabu Search: TS
Best
75
Tabu Search: TS
Best
76
Tabu Search: TS
Best
77
Tabu Search: TS
Best
78
Tabu Search: TS
Best
79
Tabu Search: TS
Best
80
Tabu Search: TS
Best
81
Tabu Search: TS
Best
82
Optimization Problems
Population Based Algorithms
Beam Search, Genetic Algorithms
& Genetic Programming
Population based Algorithms
Beam Search Algorithm
Local Beam Search
Unlike Hill Climbing, Local Beam Search keeps track of k states
rather than just one.
It starts with k randomly generated states.
At each step, all the successors of all the states are generated.
If any one is a goal, the algorithm halts, otherwise it selects the k
best successors from the complete list and repeats.
LBS≠ running k random restarts in parallel instead of sequence.
Drawback: less diversity. → Stochastic Beam Search
85
Local Beam Search
Idea: keep k states instead of just 1
Begins with k randomly generated states
At each step all the successors of all k states
are generated.
If one is a goal, we stop, otherwise select k
best successors from complete list and
repeat
86
Local Beam Search
Cost
States
87
Local Beam Search
88
Local Beam Search
89
Local Beam Search
90
Local Beam Search
91
Local Beam Search
92
Local Beam Search
93
Local Beam Search
94
Local Beam Search
95
Local Beam Search
96
Local Beam Search
97
Local Beam Search
98
Local Beam Search
99
Local Beam Search
100
Local Beam Search
101
Local Beam Search
102
Population based Algorithms
Genetic Algorithms
Genetic programming
Stochastic Search: Genetic Algorithms
Formally introduced in the US in the 70s by John
Holland.
GAs emulate ideas from genetics and natural selection
and can search potentially large spaces.
Before we can apply Genetic Algorithm to a problem,
we need to answer:
- How is an individual represented?
- What is the fitness function?
- How are individuals selected?
- How do individuals reproduce?
104
Stochastic Search: Genetic Algorithms
Representation of states (solutions)
• Each state or individual is represented as a string over
a finite alphabet. It is also called chromosome which
Contains genes.
genes
Solution: 607 1001011111
Encoding
Chromosome:
Binary String
105
Stochastic Search: Genetic Algorithms
Fitness Function
• Each state is rated by the evaluation function called fitness
function. Fitness function should return higher values for better
states:
Fitness(X) should be greater than Fitness(Y) !!
[Fitness(x) = 1/Cost(x)]
Cost
States
106
X Y
Stochastic Search: Genetic Algorithms
Selection
How are individuals selected ?
Roulette Wheel Selection
1 2 3 4 5 6 7 8
1 2 3 1 3 5 1 2
0 Rnd[0..18] = 7 Rnd[0..18] = 12 18
Chromosome4 Chromosome6
107
Stochastic Search: Genetic Algorithms
Cross-Over and Mutation
How do individuals reproduce ?
108
Stochastic Search: Genetic Algorithms
Crossover - Recombination
1010000000 Parent1 Offspring1 1011011111
1001011111 Parent2 Offspring2 1010000000
Crossover
single point - With some high probability (crossover
random rate) apply crossover to the parents.
(typical values are 0.8 to 0.95)
109
Stochastic Search: Genetic Algorithms mutate
Mutation
Offspring1 1011011111 Offspring1 1011001111
Offspring2 1010000000 Offspring2 1000000000
Original offspring Mutated offspring
With some small probability (the mutation rate) flip
each bit in the offspring (typical values between 0.1
and 0.001)
110
Genetic Algorithms
GA is an iterative process and can be described as
follows:
Iterative process
Start with an initial population of “solutions” (think:
chromosomes)
Evaluate fitness of solutions
Allow for evolution of new (and potentially better) solution
populations
E.g., via “crossover,” “mutation”
Stop when “optimality” criteria are satisfied
111
Genetic Algorithms
Algorithm:
1. Initialize population with p Individuals at random
2. For each Individual h compute its fitness
3. While max fitness < threshold do
Create a new generation Ps
4. Return the Individual with highest fitness
112
Genetic Algorithms
Create a new generation Ps:
1. Select (1-r)p members of P and add them to Ps. The probability of
selecting a member is as follows:
P(hi) = Fitness (hi) / Σj Fitness (hj)
2. Crossover: select rp/2 pairs of hypotheses from P according to
P(hi).
For each pair (h1,h2) produce two offspring by applying the
Crossover operator. Add all offspring to Ps.
3. Mutate: Choose mp members of Ps with uniform probability. Invert
one bit in the representation randomly.
4. Update P with Ps
5. Evaluate: for each h compute its fitness.
113
Stochastic Search: Genetic Algorithms
114
Genetic Algorithms
Cost
States
115
Genetic Algorithms
Mutation
Cross-Over
116
Genetic Algorithms
117
Genetic Algorithms
118
Genetic Algorithms
119
Genetic Algorithms
120
Genetic Algorithms
121
Genetic Algorithms
122
Genetic Algorithms
123
Genetic Algorithms
124
Genetic Algorithms
125
Genetic Algorithms
126
Genetic Algorithms
127
Genetic Algorithms
128
Genetic Algorithms
129
Genetic Algorithms
130
Genetic Algorithms
131
Genetic Algorithms
132
Genetic Algorithms
133
Optimization Problems
Genetic programming: GP
Genetic Programming
Genetic programming (GP)
Programming of Computers
by Means of Simulated
Evolution
How to Program a Computer
Without Explicitly Telling It
What to Do?
Genetic Programming is
Genetic Algorithms where
solutions are programs …
135
Genetic programming
When the chromosome encodes an entire
program or function itself this is called
genetic programming (GP)
In order to make this work,encoding is often
done in the form of a tree representation
Crossover entials swaping subtrees between
parents
136
Genetic programming
It is possible to evolve whole programs like this
but only small ones. Large programs with complex
functions present big problems
137
Genetic programming
Inter-twined Spirals: Classification Problem
Red Spiral
Blue Spiral
138
Genetic programming
Inter-twined Spirals: Classification Problem
139
Optimization Problems
New Algorithms
ACO, PSO, QGA …
Anything to be Learnt from
Ant Colonies?
Fairly simple units generate complicated
global behaviour.
An ant colony expresses a complex
collective behavior providing intelligent
solutions to problems such as:
carrying large items
forming bridges
finding the shortest routes from the
nest to a food source, prioritizing food
sources based on their distance and ease
of access.
“If we knew how an ant colony works,
we might understand more about how all
such systems work, from brains to
ecosystems.”
(Gordon, 1999)
141
Shortest path discovery
142
Shortest path discovery
Ants get to find the shortest path after few minutes …
143
Ant Colony Optimization
Each artificial ant is a probabilistic mechanism that constructs a
solution to the problem, using:
• Artificial pheromone deposition
• Heuristic information: pheromone trails, already
visited cities memory …
144
TSP Solved using ACO
145
Summary
* Local search methods keep small number of nodes in memory.
They are suitable for problems where the solution is the goal
state
itself and not the path.
* Hill climbing, simulated annealing and local beam search are
examples of local search algorithms.
* Stochastic algorithms represent another class of methods for
informed search. Genetic algorithms are a kind of stochastic hill-
climbing search in which a large population of states is
maintained. New states are generated by mutation and by
146
crossover which combines pairs of states from the population.