session06 - DCA

Last time: Problem-Solving
• Problem solving:
• Goal formulation
• Problem formulation (states, operators)
• Search for solution
• Problem formulation:
•
•
•
•
Initial state
?
?
?
• Problem types:
•
•
•
•
single state:
multiple state:
contingency:
exploration:
accessible and deterministic environment
?
?
?
CS 561, Session 6
1
Last time: Problem-Solving
• Problem solving:
• Goal formulation
• Problem formulation (states, operators)
• Search for solution
• Problem formulation:
•
•
•
•
Initial state
Operators
Goal test
Path cost
• Problem types:
•
•
•
•
single state:
multiple state:
contingency:
exploration:
accessible and deterministic environment
?
?
?
CS 561, Session 6
2
Last time: Problem-Solving
• Problem solving:
• Goal formulation
• Problem formulation (states, operators)
• Search for solution
• Problem formulation:
•
•
•
•
Initial state
Operators
Goal test
Path cost
• Problem types:
•
•
•
•
single state:
multiple state:
contingency:
exploration:
accessible and deterministic environment
inaccessible and deterministic environment
inaccessible and nondeterministic environment
unknown state-space
CS 561, Session 6
3
Last time: Finding a solution
Solution: is ???
Basic idea: offline, systematic exploration of simulated state-space by
generating successors of explored states (expanding)
Function General-Search(problem, strategy) returns a solution, or failure
initialize the search tree using the initial state problem
loop do
if there are no candidates for expansion then return failure
choose a leaf node for expansion according to strategy
if the node contains a goal state then return the corresponding solution
else expand the node and add resulting nodes to the search tree
end
CS 561, Session 6
4
Last time: Finding a solution
Solution: is a sequence of operators that bring you from current state to the
goal state.
Basic idea: offline, systematic exploration of simulated state-space by
generating successors of explored states (expanding).
Function General-Search(problem, strategy) returns a solution, or failure
initialize the search tree using the initial state problem
loop do
if there are no candidates for expansion then return failure
choose a leaf node for expansion according to strategy
if the node contains a goal state then return the corresponding solution
else expand the node and add resulting nodes to the search tree
end
Strategy: The search strategy is determined by ???
CS 561, Session 6
5
Last time: Finding a solution
Solution: is a sequence of operators that bring you from current state to the
goal state
Basic idea: offline, systematic exploration of simulated state-space by
generating successors of explored states (expanding)
Function General-Search(problem, strategy) returns a solution, or failure
initialize the search tree using the initial state problem
loop do
if there are no candidates for expansion then return failure
choose a leaf node for expansion according to strategy
if the node contains a goal state then return the corresponding solution
else expand the node and add resulting nodes to the search tree
end
Strategy: The search strategy is determined by the order in which the nodes
are expanded.
CS 561, Session 6
6
Last time: search strategies
Uninformed: Use only information available in the problem formulation
•
•
•
•
•
Breadth-first
Uniform-cost
Depth-first
Depth-limited
Iterative deepening
Informed: Use heuristics to guide the search
• Best first
• A*
CS 561, Session 6
7
Evaluation of search strategies
• Search algorithms are commonly evaluated according to the following
four criteria:
•
•
•
•
Completeness: does it always find a solution if one exists?
Time complexity: how long does it take as a function of number of nodes?
Space complexity: how much memory does it require?
Optimality: does it guarantee the least-cost solution?
• Time and space complexity are measured in terms of:
• b – max branching factor of the search tree
• d – depth of the least-cost solution
• m – max depth of the search tree (may be infinity)
CS 561, Session 6
8
Last time: uninformed search strategies
Uninformed search:
Use only information available in the problem formulation
•
•
•
•
•
Breadth-first
Uniform-cost
Depth-first
Depth-limited
Iterative deepening
CS 561, Session 6
9
Um algoritmo robusto e limpo
Function UniformCost-Search(problem, Queuing-Fn) returns a solution, or failure
open  make-queue(make-node(initial-state[problem]))
closed  [empty]
loop do
if open is empty then return failure
currnode  Remove-Front(open)
if Goal-Test[problem] applied to State(currnode) then return currnode
children  Expand(currnode, Operators[problem])
while children not empty
[… see next slide …]
end
closed  Insert(closed, currnode)
open  Sort-By-PathCost(open)
end
CS 561, Session 6
10
Um algoritmo robusto e limpo
[… see previous slide …]
children  Expand(currnode, Operators[problem])
while children not empty
child  Remove-Front(children)
if no node in open or closed has child’s state
open  Queuing-Fn(open, child)
else if there exists node in open that has child’s state
if PathCost(child) < PathCost(node)
open  Delete-Node(open, node)
open  Queuing-Fn(open, child)
else if there exists node in closed that has child’s state
if PathCost(child) < PathCost(node)
closed  Delete-Node(closed, node)
open  Queuing-Fn(open, child)
end
[… see previous slide …]
CS 561, Session 6
11
Informed search (busca com informação)
Informed search:
Uso de heurísticas para guiar a busca
•
•
•
•
•
Best first
A*
Heuristica
Hill-climbing
Simulated annealing
CS 561, Session 6
12
Best-first search
• Idéia:
usar uma função de avaliação para cada nó; estimação de
“desejabilidade”
 Expandir nó não expandido mais desejável.
• Implementação:
QueueingFn = insere successores em ordem decrescente de
desejabilidade
• Casos especiais:
greedy search
A* search
CS 561, Session 6
13
Romania com custo de cada passo em km
CS 561, Session 6
14
Greedy search (gula é um pecado capital)
• Função de estimação:
h(n) = estimação do custo de nó ao objetivo (heuristica)
• Por exemplo:
hSLD(n) = distância em linha reta do nó a Bucharest
• Greedy search expande primeiro o nó que aparentemente é o mais
próximo do objetivo, de acordo com h(n).
CS 561, Session 6
15
CS 561, Session 6
16
CS 561, Session 6
17
CS 561, Session 6
18
CS 561, Session 6
19
Propriedades do Greedy Search
• Completo?
• Tempo?
• Memória?
• Ótimo?
CS 561, Session 6
20
Properties of Greedy Search
• Completo?
Não – pode ficar parado em loops
e.g., Iasi > Neamt > Iasi > Neamt > …
Completo espaço finito com teste de estado repetido.
• Tempo?
O(b^m) mas uma boa heurística pode dar
uma melhora dramática
• Memória?
O(b^m) – mantém todos os nós em memória
• Ótimo?
Não.
CS 561, Session 6
21
A* search
• Idéia: evitar expandir caminhos que já são caros
função de avaliação: f(n) = g(n) + h(n)
com:
g(n) – custo do caminho para atingir o nó
h(n) – custo estimado ao objetivo, do nó
f(n) – custo estimado total do caminho pelo nó ao objetivo
• A* search usa uma heurística admissível, isto é,
h(n)  h*(n) onde h*(n) é o custo verdadeiro a partir de n.
Por exemplo: hSLD(n) nunca sobre-estima distância real da estrada.
• Teorema: A* search é ótimo
CS 561, Session 6
22
CS 561, Session 6
23
CS 561, Session 6
24
CS 561, Session 6
25
CS 561, Session 6
26
CS 561, Session 6
27
CS 561, Session 6
28
Properties of A*
• Complete?
• Time?
• Space?
• Optimal?
CS 561, Session 6
29
Properties of A*
• Complete?
Yes, unless infinitely many nodes with f  f(G)
• Time?
Exponential in [(relative error in h) x (length of solution)]
• Space?
Keeps all nodes in memory
• Optimal?
Yes – cannot expand fi+1 until fi is finished
CS 561, Session 6
30
Prova do lema: caminho máximo
CS 561, Session 6
31
Otimalidade de A* (prova mais usual)
CS 561, Session 6
32
Otimalidade de A* (prova standard)
Suponha que um objetivo G sub-ótimo2 foi gerado e está na fila. Seja
n um nó não expandido num caminho mais curto para um objetivo
G ótimo.
CS 561, Session 6
33
Heurísticas admissíveis
CS 561, Session 6
34
Heurísticas admissíveis
CS 561, Session 6
35
Problema relaxado
• Heurísticas admissíveis podem ser derivadas do custo exato de uma
solução para uma versão relaxada do problema.
• Se as regras do 8-puzzle forem relaxadas de maneira que uma casa
possa mover a qualquer lugar, então h1(n) produz a solução mais
curta.
• Se as regras são relaxadas de modo que uma casa possa se mover
a qualquer posição adjacente, então h2(n) produz a solução mais
curta.
CS 561, Session 6
36
Next time
• Iterative improvement
• Hill climbing
• Simulated annealing
CS 561, Session 6
37