CS 561, Session 6 1 Last time: Problem-Solving Problem solving: Goal formulation Problem formulation (states, operators) Search for solution Problem formulation: Initial state ? Problem types: single state:accessible and deterministic environment multiple state:? contingency:? exploration:?
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:accessible and deterministic environment multiple state:? contingency:? exploration:?
CS 561, Session 6 3 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:accessible and deterministic environment multiple state:inaccessible and deterministic environment contingency:inaccessible and nondeterministic environment exploration:unknown state-space
CS 561, Session 6 4 Last time: Finding a solution 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 Solution: is ??? Basic idea: offline, systematic exploration of simulated state-space by generating successors of explored states (expanding)
CS 561, Session 6 5 Last time: Finding a solution 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 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). Strategy: The search strategy is determined by ???
CS 561, Session 6 6 Last time: Finding a solution 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 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) Strategy: The search strategy is determined by the order in which the nodes are expanded.
CS 561, Session 6 7 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 8 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 9 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 10 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 11 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 childs state open Queuing-Fn(open, child) else if there exists node in open that has childs 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 childs state if PathCost(child) < PathCost(node) closed Delete-Node(closed, node) open Queuing-Fn(open, child) end [… see previous slide …]
CS 561, Session 6 12 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 13 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 14 Romania com custo de cada passo em km
CS 561, Session 6 15 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 16
CS 561, Session 6 17
CS 561, Session 6 18
CS 561, Session 6 19
CS 561, Session 6 20 Propriedades do Greedy Search Completo? Tempo? Memória? Ótimo?
CS 561, Session 6 21 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 22 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 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
CS 561, Session 6 29 Properties of A* Complete? Time? Space? Optimal?
CS 561, Session 6 30 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 f i+1 until f i is finished
CS 561, Session 6 31 Prova do lema: caminho máximo
CS 561, Session 6 32 Otimalidade de A* (prova mais usual)
CS 561, Session 6 33 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 34 Heurísticas admissíveis
CS 561, Session 6 35 Heurísticas admissíveis
CS 561, Session 6 36 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 37 Next time Iterative improvement Hill climbing Simulated annealing