A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Resolução de Problemas por meio de busca

Apresentações semelhantes


Apresentação em tema: "Resolução de Problemas por meio de busca"— Transcrição da apresentação:

1 Resolução de Problemas por meio de busca
Baseado no Cap 3 de Russel, Norvig Artificial Intelligence: a Modern Aproach Carlos Augusto dos Santos Computação Inteligente UFS-DCOMP Prof . Maria Augusta Abril/2009

2 Introdução No Cap. 2 vimos agentes reativos,
baseiam suas ações em um mapeamento direto de estados de ações, não podem operar bem em ambientes cujo mapeamento seriam grande demais par armazenar e levaria muito tempo para aprender. No Cap. 3 veremos um tipo de agente baseados em objetivos chamado Agente de Resolução de Problemas. decidem o que fazer encontrando ações que levam a estados desejáveis.

3 Roteiro Agentes de Resolução de Problemas Formulação de Problemas
Busca da Solução Problemas e Soluções bem definidos Exemplos de Problemas Algoritmos Específicos Busca em Extensão Busca de Custo Uniforme Busca em Profundidade Busca em Profundidade Limitada (Backtracking) Busca em Profundidade Iterativa em Profundidade Busca Bidirecional Tabela Comparativa Limitações e Dificuldades Estados Repetidos Informações Parciais

4 Problemas e Soluções bem definidos

5 O que é um Problema? Qualquer situação a ser “resolvida” por uma seqüência ações a ser executada, com vistas a atingir um objetivo; Na descrição acima: Situação = estado inicial; Seqüência de Ações = operações que irão gerar uma sucessão de estados; Objetivo = estado final (ou conjunto de) desejado; Metáfora da resolução de problemas por meio de busca: Transformar um problema de raciocínio de um agente diretamente em um problema de navegação num espaço de estados, no qual, a partir de um estado inicial, um agente pode buscar uma seqüência de ações que conduzem ao estados final desejado. A solução de um problema é conjunto de seqüências de ações que levam de um estado inicial ao estado objetivado Uma solução ótima é uma seqüência de ações que leva de um estado inicial ao estado objetivado com o menor custo*. O que é um Problema? Qualquer situação a ser “resolvida” por uma seqüência ações a ser executada, com vistas a atingir um objetivo; Na descrição acima: Situação = estado inicial; Seqüência de Ações = operações que irão gerar uma sucessão de estados; Objetivo = estado final (ou conjunto de) desejado; Metáfora da resolução de problemas por meio de busca: Transformar um problema de raciocínio de um agente diretamente em um problema de navegação num espaço de estados, no qual, a partir de um estado inicial, um agente pode buscar uma seqüência de ações que conduzem ao estados final desejado. A solução de um problema é conjunto de seqüências de ações que levam de um estado inicial ao estado objetivado Uma solução ótima é uma seqüência de ações que leva de um estado inicial ao estado objetivado com o menor custo*.

6 Romênia: ir de Arad a Bucharest

7 Busca da Solução Algoritmo Genérico de busca
Função AGENTE-DE –RESOLUÇÃO-DE PROBLEMAS-SIMPLES(percepção) retorna uma ação entradas: percepção, uma percepção variáveis státicas: seq, uma sequencia de ações inicialmente vazia estado, alguma descrição dp estado atual do mundo Objetivo, um objetivo, inicialmente nulo Problema, uma formulação de problema Estado <- ATUALIZAR-ESTADO(estado,percepção) se seq está vazia então faça objetivo <- FORMULAR-OBJETIVO(estado) problema <- FORMULAR-PROBLEMA(estado, objetivo) seq <- BUSCA(problema) ação <- PRIMEIRO(seq) seq <- RESTO(seq) retornar ação Esse projeto de agente pressupõe que o ambiente é estático, porque a formulação e a resolução do problema é feita sem dedicar atenção a quaisquer mudança que estejam ocorrendo no ambiente. O projeto do agente também pressupõe que o estado inicial é conhecido; é mais fácil conhecê-lo se o ambiente é observável. A idéia de enumerar “cursos alternativos de ação” pressupõe que o ambiente que o ambiente pode ser visto como discreto. Por fim, e mais importante, o projeto pressupõe que o ambiente é determinístico. Lembremos que o agente é cego e não está preparado para situações imprevistas.

8 Antes de qualquer coisa... Formular o problema
Formular o objetivo: definir um estado final que satisfaz o agente ex: “Estar em Bucareste” Especificar o problema em termos de: Estado Inicial ex: “Estou em Arad” Função Sucessor S(x) = conjunto de pares ação-estado ex: S(Arad) = { (Arad→Zerind, Zerind), (Arad→Sibiu, Sibiu), } Teste do Objetivo: condição que é capaz de determinar se o estado final foi alcançado ex: “Estou em Bucareste?” Custo (path cost) ex: soma de distancias, nº de ações executadas, etc.

9 A Formulação do Problema define o Espaço de Estados possíveis
É definido implicitamente pelo estado inicial juntamente com todos os estados alcançáveis através da função sucessora S(x). Forma um grafo onde os nós representam estados e os arcos entre os nós representam ações. Entretanto: Estado Corresponde a uma configuração do mundo. Ex: “estou em Bucareste” Estrutura de Informação que compõe uma seqüência percorrida. Ex: Nó(“Bucareste”) (1) Antecessor = Nó(“Pitesti”) Path-cost = 418 Km Nó(“Bucareste”) (2) Antecessor = Nó(“Fagarás”) Path-cost = 450 Km

10 A Formulação do Problema exige Abstração do Mundo Real
O mundo real é absurdamente complexo: espaço de estados tem que ser abstraído para a resolução de problemas. Estado (abstrato) = conjunto de estados reais Ação (abstrata) = combinação complexa de ações reais, onde cada ação abstrata deveria ser “mais fácil” que o problema original. Ex: “Arad→Zerind” representa um complexo de rotas possíveis, paradas para descanso, etc. Solução (abstrata) = conjunto de caminhos reais que são soluções no mundo real para o problema.

11 Importância de uma Formulação adequada do Problema
O Espaço de Estados derivado da formulação do problema impacta na eficiência de busca da solução Ex: Problema das 8 Rainhas Dispor 8 rainhas num tabuleiro de xadrez, sem que qualquer uma delas esteja “sob ataque” das demais: não pode haver mais de uma rainha em uma mesma linha, coluna ou diagonal somente o custo da busca conta (nº de passos para a solução)

12 Importância de uma Formulação adequada do Problema
Problema das 8 Rainhas - Formulação 1: estado inicial: nenhuma rainha no tabuleiro operadores: adicionar uma rainha a qualquer quadrado vazio teste do objetivo: 8 rainhas no tabuleiro sem ataque mútuo? [_,_] 0: [1,1] [1,2] [2,1] [1,8] [2,2] [2,8] [8,1] [8,2] [8,8] (64 estados possíveis) 1: [1,2] [2,1] [1,8] [2,2] [2,8] [8,1] [8,2] [8,8] (64 x 63 estados possíveis) 2: .... E assim por diante, até 64 x 63 x 62 x x 57  1,8 x 1014 seqüências possíveis a serem testadas

13 Importância de uma Formulação adequada do Problema
Problema das 8 Rainhas - Formulação 2: estado inicial: nenhuma rainha no tabuleiro operadores: adicionar uma rainha a qualquer quadrado da coluna mais a esquerda que não contém nenhuma rainha teste do objetivo: 8 rainhas no tabuleiro sem ataque mútuo? [_,_] 0: [1,1] [2,1] [3,1] [8,1] (8 estados possíveis) 1: [1,2] [2,2] [3,2] [8,2] (8 x 8 estados possíveis) 2: .... E assim por diante, até 88  1,7 x 107 seqüências possíveis a serem testadas 1,8 x possibilidades da formulação 1 <<

14 Busca em um Espaço de Estados
Uma vez o problema bem formulado... usa-se um método de busca para encontrar o estado final desejado. Métodos genéricos de busca: Busca exaustiva ou cega Não sabe qual o melhor nó da fronteira a ser expandido = menor custo de caminho desse nó até um nó final (objetivo). Busca heurística - informada Estima qual o melhor nó da fronteira a ser expandido com base em funções heurísticas => conhecimento

15 Gráfico do Espaço de Estados do Aspirador
Estados: O agente está entre duas posições que podem estar limpas ou sujas. Ou seja, há 2 X 22=8 estados possíveis Ações: Esquerda, Direita, Aspirar Teste de Objetivo: Todos os locais limpos Custo de Caminho: 1 por ação Sensorless, começa em {1,2,3,4,5,6,7,8} e.g., à Direita ir para {2,4,6,8} Solução? [Direita,Aspira,Esquerda,Aspira] Contingency Nondeterministic: Suck may dirty a clean carpet Partially observable: location, dirt at current location. Percept: [L, Clean], i.e., start in #5 or #7 Solution? [Right, if dirt then Suck]

16 Examplo: Quebra-cabeça 8 peças
Estados: Cada peça pode estar em qualquer lugar Ações: Mover para o espaço vazio em qualquer direção Teste de Objetivo = Verifica se as peças estão devidamente sequenciadas Custo de Caminho: 1 por movimento O quebra-cabeça de 8 posições pertence à família quebra-cabeças de blocos deslizantes, usados com frequencia como problemas de testes para testes com novos algoritmos de IA. Sabes-se que essa classe é NP-Completa; assim ninguém espera encontrar métodos significativamente melhores no pior caso que os apresentados nesse capítulo e próximo. O qeubra-cabeça de 8 peças tem 9!/2= estados acessíveis e é resolvido com facilidade. O quebra cabeça de 15 peças tem aproximadamente 1,3 trilhões de estados, e instâncias aleatórias podem ser resolvidas de forma ótima em alguns milisegundos pelos melhores algoritmos de busca.

17 Busca em um Espaço de Estados
Uma vez o problema bem formulado... usa-se um método de busca para encontrar o estado final desejado. Métodos genéricos de busca: Busca exaustiva ou cega Não sabe qual o melhor nó da fronteira a ser expandido = menor custo de caminho desse nó até um nó final (objetivo). Busca heurística - informada Estima qual o melhor nó da fronteira a ser expandido com base em funções heurísticas => conhecimento

18 Busca em Árvore Descrição informal do algoritmo
função BUSCA-EM-ÁRVORE(problema, estratégia) retorna uma solução ou falha Inicializar a árvore de busca usando o estado inicial de problema repita se não existe nenhum candidato para expansão então retornar falha escolher um nó para expansão de acordo com a estratégia se o nó contém um estado objetivo então retornar solução correspondente Senão expandir o nó e adicionar os nós restantes à arvore de busca

19 Árvore de busca Nosso nó será uma estrutura de dados com cinco componentes: ESTADO: o estado no espaço de estados a que o nó corresponde; NÓ-PAI: O nó da árvore de busca que gerou esse nó; AÇÃO: A ação que foi aplicada ao pai para gerar o nó; CUSTO-DO-CAMINHO: O custo, tradicionalmente denotado por g(n), do caminho desde o estado inicial até o nó, indicado pelos ponteiros do pai.

20 Busca em um Espaço de Estados
Grafo do espaço de estados do problema Árvore de Busca Arad Fagaras Oradea R.Vilcea Lugoj Sibiu Timisoara Zenrid A cada passo, a árvore de busca é expandida a partir de sua fronteira, pelos operadores definidos na sua função sucessora

21 Busca em um Espaço de Estados
Grafo do espaço de estados do problema Árvore de Busca fronteira Arad Fagaras Oradea R.Vilcea Lugoj Sibiu Timisoara Zenrid A cada passo, a árvore de busca é expandida a partir de sua fronteira, pelos operadores definidos na sua função sucessora

22 Busca em um Espaço de Estados
Grafo do espaço de estados do problema Árvore de Busca Arad fronteira Sibiu Timisoara Zenrid Arad Fagaras Oradea R.Vilcea Arad Lugoj Arad Oradea A cada passo, a árvore de busca é expandida a partir de sua fronteira, pelos operadores definidos na sua função sucessora

23 Busca em um Espaço de Estados
Grafo do espaço de estados do problema Árvore de Busca Arad fronteira Sibiu Timisoara Zenrid É importante distinguir entre o espaço de estados e a árvore de busca. No caso do problema de localização de rotas, existem apenas 20 estados no espaço,um para cada cidade. No entanto, há um número infinito de caminhos nesse espaço de estados, e assim a árvore de busca tem u número infinito de nós. Arad Fagaras Oradea R.Vilcea Arad Lugoj Arad Oradea A cada passo, a árvore de busca é expandida a partir de sua fronteira, pelos operadores definidos na sua função sucessora

24 Desempenho de uma Estratégia de Busca
Completude: se sempre encontra uma solução, se ela existe; Complexidade de Tempo: em função do nº de nós gerados/expandidos; Complexidade de Espaço: em função do nº máximo de nós armazenados em memória; Otimização: se sempre encontra a solução de menor custo Complexidade de tempo e espaço é mensurada em termos de: b (branching) - fator máximo de ramificação da árvore de busca; d (depth) – profundidade da solução de menor custo; m – profundidade máxima do espaço de estados (que pode ser infinita)

25 Busca Cega ou Exaustiva
Estratégias de Busca Busca Cega ou Exaustiva

26 Métodos de Busca Exaustiva: Busca em todo espaço de estados, com sequencia sistemática de açoes que atingem todos os estados. Também chamada de Busca Cega, Sistemática ou Uniforme Parcial: Busca num conjunto restrito de espaço de estados a partir do conhecimento a cerca de características específicas do problema ou classe de problema Heurística: Estimativa ou conhecimento aproximado sobre a classe ou família em que o algoritmo de busca possa “confiar” para aprimorar o tempo de execução e/ou exigências de espaço; Buscas Não-heuristicas nao são escalonáveis a grandes problemas. (pior caso é exponencial em tempo e/ou espaço) Busca Heurística, parcial não oferece garantia de encontrar uma solução se ela existir ou a melhor solução entre muitas existentes.

27 Busca Cega Busca em Extensão/Largura (Breadth-first);
Busca de Custo Uniforme; Busca em Profundidade (Depth-first); Busca em Profundidade Limitada (Depth-limited) Busca de Aprofundamento Iterativo (Iterative deepening) Busca Bidirecional Todas as estratégias de busca se distinguem pela ordem em que os nós são expandidos.

28 Busca em Largura (Breadth-first)
Expande sempre o nó menos profundo ainda não expandido; Fronteira é uma fila do tipo FIFO, i.e., novos sucessores são postos no fim A B C D E F G H I J K L M N O Fronteira = (A)

29 Busca em Largura (Breadth-first)
Expande sempre o nó menos profundo ainda não expandido; Fronteira é uma fila do tipo FIFO, i.e., novos sucessores são postos no fim A B C D E F G H I J K L M N O Fronteira = (B,C)

30 Busca em Largura (Breadth-first)
Expande sempre o nó menos profundo ainda não expandido; Fronteira é uma fila do tipo FIFO, i.e., novos sucessores são postos no fim A B C D E F G H I J K L M N O Fronteira = (C,D,E)

31 Busca em Largura (Breadth-first)
Expande sempre o nó menos profundo ainda não expandido; Fronteira é uma fila do tipo FIFO, i.e., novos sucessores são postos no fim A B C D E F G H I J K L M N O Fronteira = (D,E,F,G)

32 Busca em Largura (Breadth-first)
Expande sempre o nó menos profundo ainda não expandido; Fronteira é uma fila do tipo FIFO, i.e., novos sucessores são postos no fim A B C D E F G H I J K L M N O Fronteira = (E,F,G,H,I)

33 Busca em Largura (Breadth-first)
Expande sempre o nó menos profundo ainda não expandido; Fronteira é uma fila do tipo FIFO, i.e., novos sucessores são postos no fim A B C D E F G H I J K L M N O Fronteira = (F,G,H,I,J,K)

34 Busca em Largura (Breadth-first)
Expande sempre o nó menos profundo ainda não expandido; Fronteira é uma fila do tipo FIFO, i.e., novos sucessores são postos no fim A B C D E F G H I J K L M N O Fronteira = (G,H,I,J,K,L,M)

35 Busca em Largura (Breadth-first)
Expande sempre o nó menos profundo ainda não expandido; Fronteira é uma fila do tipo FIFO, i.e., novos sucessores são postos no fim A B C D E F G H I J K L M N O Fronteira = (H,I,J,K,L,M,N,O)

36 Desempenho da Busca em Largura (Breadth-first)
Completa? Sim, desde que b (fator de ramificação) seja finito Tempo? 1 + b + b2 + b bd + b(bd – 1) = O(bd+1), i.e., exponencial em d (fator de profundidade) Espaço? O(bd+1) (armazena cada nó na memória) Ótima? Em geral, não. Sim quando o custo é constante a cada passo Espaço é o grande problema; pode facilmente gerar nódulos a 10MB/sec, o que em 24h chegaria a 860GB !!!!!

37 Busca de Custo Uniforme
Expande sempre o próximo nó ainda não expandido que possui caminho de menor custo Fronteira = fila de nós ordenada pelo custo do caminho até cada nó A Fronteira = (A) A B C D 1 5 15 Fronteira = (B,C,D) A B C D 11 5 15 Fronteira = (C, EB ,D) EB A C E B D Cidades: 1 10 5 15 A B C D 11 10 15 Fronteira = (Ec, EB ,D) EB Ec

38 Desempenho da Busca de Custo Uniforme
Completa? Tempo? Espaço? Ótima? Sim, desde que o custo de cada nó  0 Nº de nós com custo(nó) < custo(solução ótima) Nº de nós com custo(nó) < custo(solução ótima) Sim, já q os nódulos expandem em ordem crescente de custo(nó) Se o custo dos nós de um mesmo nível for igual, o desempenho é equivalente ao da Busca em Largura

39 Busca em Profundidade (Depth-first)
Expande sempre o nó mais profundo ainda não expandido; Fronteira é uma fila do tipo LIFO, i.e., novos sucessores são postos no início Fronteira = (A) A B C D E F G H I J K L M N O

40 Busca em Profundidade (Depth-first)
Expande sempre o nó mais profundo ainda não expandido; Fronteira é uma fila do tipo LIFO, i.e., novos sucessores são postos no início Fronteira = (B,C) A B C D E F G H I J K L M N O

41 Busca em Profundidade (Depth-first)
Expande sempre o nó mais profundo ainda não expandido; Fronteira é uma fila do tipo LIFO, i.e., novos sucessores são postos no início Fronteira = (D,E,C) A B C D E F G H I J K L M N O

42 Busca em Profundidade (Depth-first)
Expande sempre o nó mais profundo ainda não expandido; Fronteira é uma fila do tipo LIFO, i.e., novos sucessores são postos no início Fronteira = (H,I,E,C) A B C D E F G H I J K L M N O

43 Busca em Profundidade (Depth-first)
Expande sempre o nó mais profundo ainda não expandido; Fronteira é uma fila do tipo LIFO, i.e., novos sucessores são postos no início Fronteira = (I,E,C) A B C D E F G H I J K L M N O

44 Busca em Profundidade (Depth-first)
Expande sempre o nó mais profundo ainda não expandido; Fronteira é uma fila do tipo LIFO, i.e., novos sucessores são postos no início Fronteira = (E,C) A B C D E F G H I J K L M N O

45 Busca em Profundidade (Depth-first)
Expande sempre o nó mais profundo ainda não expandido; Fronteira é uma fila do tipo LIFO, i.e., novos sucessores são postos no início Fronteira = (J,K,C) A B C D E F G H I J K L M N O

46 Busca em Profundidade (Depth-first)
Expande sempre o nó mais profundo ainda não expandido; Fronteira é uma fila do tipo LIFO, i.e., novos sucessores são postos no início Fronteira = (K,C) A B C D E F G H I J K L M N O

47 Busca em Profundidade (Depth-first)
Expande sempre o nó mais profundo ainda não expandido; Fronteira é uma fila do tipo LIFO, i.e., novos sucessores são postos no início Fronteira = (C) A B C D E F G H I J K L M N O

48 Desempenho da Busca em Profundidade (Depth-first)
Completa? Tempo? Espaço? Ótima? Não: falha em árvores de profundidade infinita. Nesse caso, pode-se arbitrar um limite de profundidade L: Depth-limited search O(bm): muito ruim se m >> d (m profundidade máxima, d profundidade da solução) O(b.m), i.e., função de crescimento linear Não: deve ser evitada em árvores muito profundas ou profundidade infinita

49 Busca de Aprofundamento Iterativo
Variação da Busca em Profundidade, que utiliza um limite de profundidade L, que inicia em 0 e vai sendo incrementado de 1, a cada iteração. A L = 0 A A L = 1 A B C A B C A B C A L = 2 A B C A B C D E A B C D E A B C D E A B C D E A B C D E A B C D E

50 Desempenho da Busca por Aprofundamento Iterativo
Completa? Tempo? Espaço? Ótima? Sim, desde que b (fator de ramificação) seja finito O(bd) (b fator de ramificação, d profundidade do nó objetivado) O(b.d) (b fator de ramificação, d profundidade do nó objetivado) Em geral, não. Sim quando o custo é constante a cada passo Em geral, é o método de Busca Cega preferido para grandes espaços de busca e quando a profundidade da solução é desconhecida

51 Busca Bidirecional Princípio básico - dois agentes de busca agindo em paralelo, onde a cada expansão de nós verifica-se a existência de interseção entre as respectivas fronteiras de suas árvores de busca. A B

52 Busca Bidirecional Motivação: (bd/2 + bd/2) << bd A B

53 Busca Bidirecional Motivação: (bd/2 + bd/2) << bd
Infelizmente, nem sempre é aplicável! A B

54 Análise Comparativa das Estratégias de Busca Cega
Critério Largura Custo Uniforme Profun- Didade Aprofund. Iterativo Bidirecional (se aplicável) Completa? Sim* Não Tempo bd+1 bd* bm bd bd/2 Espaço b.m b.d Ótima? Sim

55 Repetição de Estados na Busca
Soluções possíveis (Custo x Eficácia) Não retornar ao estado “pai” Não retornar a um ancestral Não gerar qualquer estado que já tenha sido criado antes (em qualquer ramo) requer que todos os estados gerados permaneçam na memória: custo O(bd) pode ser implementado mais eficientemente com hash tables quando encontra nó igual tem de escolher o melhor (menor custo de caminho até então) A B C D A B C

56 Problemas com informação Parcial
Sensorless or conformant problem (ambiente inacessíveis) Agente não sabe seu estado inicial (percepção deficiente) Deve raciocinar sobre os conjuntos de estados Solução: seqüência de ações (via busca) Problema de contingência Efeito das ações não-determinístico e/ou mundo parcialmente observável => novas percepções depois de ação ex. aspirador que suja ao sugar e/ou só percebe sujeira localmente Solução: árvore de decisão (via planejamento, agente deliberativo) Problema exploratório (on-line) Espaço de estados desconhecido ex. dirigir sem mapa Solução.... via aprendizagem por reforço (agente indutivo situado)

57 Problemas com informação Parcial
Estado simples Início: 5 Solução: [dir, suga] Conformant problem Início: {1,2,3,4,5,6,7,8} Dica: direita => {2,4,6,8} Solução: [dir, suga, esq, suga] Problema de contingência Início: [lado esq, sujo] = {1,3} Solução? Sugar => {5,7}, Dir => {6,8}, Sugar no 6 => 8 mas sugar no 8 => 6 Solução: [sugar, dir, se sujo sugar] Solução geral: [dir, se sujo suga, esq, se sujo suga] Problema exploratório ....

58 FIM Referências: Russel e Norvig, Artificial Intelligence: a Modern Aproach, 2ed, Elsevier; Russel e Norvig, Inteligencia Artificial, Tradução da 2ed, Ed, Campos; Santana, André F, Resolução de Problemas por Meio de Busca Cega no Espaço Extensional de Hipótese, UFPE, 2003 Acessado em 08/04/2011 no link


Carregar ppt "Resolução de Problemas por meio de busca"

Apresentações semelhantes


Anúncios Google