Last time ProblemSolving Problem solving Goal formulation Problem
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 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 Uniform. Cost-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-Path. Cost(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 Path. Cost(child) < Path. Cost(node) open Delete-Node(open, node) open Queuing-Fn(open, child) else if there exists node in closed that has child’s state if Path. Cost(child) < Path. Cost(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: Queueing. Fn = 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: h. SLD(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 > … 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: h. SLD(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-ótimo 2 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 h 1(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 h 2(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
- Slides: 37