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

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

Inteligência Artificial I Resolução de Problemas

Apresentações semelhantes


Apresentação em tema: "Inteligência Artificial I Resolução de Problemas"— Transcrição da apresentação:

1 Inteligência Artificial I Resolução de Problemas
Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall.

2 Resolução de Problemas
Tópicos Conceitos Básicos Espaço de Estados Em Busca de Soluções Busca Heurística Como escolher uma boa função heurística h? Problemas de Satisfação de Restrições

3 Resolução de Problemas
Dedica-se ao estudo e elaboração de algoritmos, capazes de resolver, por exemplo, problemas considerados intratáveis do ponto de vista da computação convencional.

4 Resolução de Problemas
Primeiros problemas por computador: prova automática de teoremas e jogos. Capacidade de cálculo e memória dos computadores: insuficientes perante o enorme número de caminhos de solução. Exemplo: jogo de xadrez Um dos objetivos de IA: resolver problemas que o homem não sabe resolver facilmente ou num tempo razoável, desde que sejam completamente formalizados.

5 Exemplos de Problemas O quebra-cabeças 3x3 O Caixeiro Viajante
Cálculo Integral Formal Empilhamento de blocos: a partir de uma configuração de blocos iniciais, qual a seqüência de movimentos para se chegar a uma configuração final? As Oito Rainhas As Torres de Hanói

6 Formulação de Problemas
Elementos: Estado Inicial Função Sucessor Teste de Objetivo Custo de Caminho

7 Problemas e soluções bem definidos
Quatro componentes para definir um problema: 1. O estado inicial em que o agente começa. 2. Uma descrição das ações possíveis que estão disponíveis para o agente. Formulação mais comum: uso de uma função sucessor. Estado inicial e função sucessor: definem o espaço de estados do problema. Caminho no espaço de estados – seqüência de estados conectados por uma seqüência de ações. 3. O teste de objetivo – determina se um dado estado é um estado objetivo. 4. Função de custo de caminho – atribui um custo numérico a cada caminho.

8 Exemplos de Problemas Miniproblemas
Utilizado para ilustrar ou exercitar diversos métodos de resolução de problemas. Pode ter uma descrição concisa e exata – pode ser utilizado com facilidade por diferentes sistemas de busca, com a finalidade de comparar o desempenho de algoritmos. Problemas do mundo real Tendem a não apresentar uma única descrição consensual, mas é possível fornecer uma idéia geral de suas formulações.

9 Exemplos de Problemas Exemplos: Miniproblemas
Mundo do Aspirador de Pó Problema do Quebra-cabeça de 8 Peças Problema das 8 Rainhas Exemplos: Problemas do mundo real Problema de Roteamento Problema de Viagens Aéreas Problema de Tour Problema do Caixeiro Viajante Problema de Layout de VLSI Problema de Navegação de Robôs Problema da Seqüência Automática de Montagem Problema de Pesquisas na Internet

10 Miniproblemas Exemplo 1: Mundo do aspirador de pó com apenas locais.

11 Miniproblemas Problema do Mundo do Aspirador de Pó - Formulação
Estados O agente está em uma entre duas posições, cada uma das quais pode conter sujeira ou não. Há 2 x 22 = 8 estados do mundo possíveis. Estado inicial Qualquer estado pode ser designado como estado inicial. Função Sucessor Gera os estados válidos que resultam da tentativa de executar as três ações (Esquerda, Direita e Aspirar).

12 Espaço de estados para o mundo do aspirador de pó.
Miniproblemas Espaço de estados para o mundo do aspirador de pó. Os arcos denotam ações: E = Esquerda, D = Direita, A = Aspirar

13 Miniproblemas Problema do Mundo do Aspirador de Pó - Formulação
Teste de objetivo Verifica se todos os quadrados estão limpos. Custo de caminho Cada passo custa 1, e assim o custo do caminho é o número de passos do caminho. Esse miniproblema tem posições discretas, sujeira discreta, limpeza confiável e nunca é desorganizado depois de limpo. Ambiente com n posições: n x 2n estados

14 Miniproblemas Exemplo 2: Uma instância típica do quebra-cabeça de peças

15 Miniproblemas Problema do Quebra-cabeça de 8 Peças - Formulação
Estados Uma descrição de estado especifica a posição de cada uma das oito peças e do espaço vazio em um dos nove quadrados. Estado inicial Qualquer estado pode ser designado como estado inicial. Função Sucessor Gera os estados válidos que resultam da tentativa de executar as três ações (o espaço vazio se desloca para a Esquerda, Direita, Acima ou Abaixo).

16 Miniproblemas Problema do Quebra-cabeça de 8 peças - Formulação
Teste de objetivo Verifica se o estado corresponde à configuração de objetivo mostrada na figura (São possíveis outras configurações de objetivos) Custo de caminho Cada passo custa 1, e assim o custo do caminho é o número de passos do caminho.

17 Miniproblemas Problema do Quebra-cabeça de 8 Peças - Formulação
Abstrações incluídas As ações são reduzidas a seus estados iniciais e finais, ignorando-se as posições intermediárias por onde o bloco está deslizando. Foram abstraídas ações como sacudir o tabuleiro quando as peças ficam presas ou extrair as peças com uma faca e colocá-las de volta no tabuleiro.

18 Miniproblemas Problema do Quebra-cabeça de 8 Peças - Formulação
Pertence à família de quebra-cabeças de blocos deslizantes – usados com freqüência como problemas de teste para novos algoritmos de busca em IA. Número de estados acessíveis Quebra-cabeça de 8 peças: 9!/2 = Quebra-cabeça de 15 peças (tabuleiro de 4 x 4): aproximadamente 1,3 trilhão (instâncias aleatórias podem ser resolvidas de forma ótima em alguns ms pelos melhores algoritmos de busca). Quebra-cabeça de 24 peças (tabuleiro 5 x 5): cerca de 10 estados (difíceis de resolver de forma ótima com as máquinas e os algoritmos atuais)

19 Miniproblemas Exemplo 3: Problema das 8 Rainhas
Objetivo: posicionar 8 rainhas em um tabuleiro de xadrez de tal forma que nenhuma rainha ataque qualquer outra (uma rainha ataca qualquer peça situada na mesma linha, coluna ou diagonal). Uma quase solução para o problema das 8 rainhas.

20 Miniproblemas Problema das 8 Rainhas - Formulação
Formulação incremental Formulação de estados completos

21 Miniproblemas Problema das 8 Rainhas – Formulação Incremental Estados
Qualquer disposição de 0 a 8 rainhas no tabuleiro é um estado. Estado inicial Nenhuma rainha no tabuleiro. Função Sucessor Colocar uma rainha em qualquer quadrado vazio. Teste de objetivo 8 rainhas estão no tabuleiro e nenhuma é atacada. Seqüências possíveis de investigação: 64 x 63 x ... x 57 ≈ 1014

22 Miniproblemas Problema das 8 Rainhas – Formulação Incremental Melhorada Proibir a colocação de uma rainha em qualquer quadrado que já estiver sob ataque. Estados Os estados são disposições de n rainhas (0 ≤ n ≤ 8), uma por coluna nas n colunas mais à esquerda, sem que nenhuma rainha ataque outra. Função Sucessor Adicione uma rainha a qualquer quadrado na coluna vazia mais à esquerda de tal modo que ela não seja atacada por qualquer outra rainha. Espaço de estados: 2.057

23 Problemas do mundo real
Problema de Roteamento: Formulação Exemplos de aplicação Roteamento em redes de computadores Planejamento de operações militares Sistemas de planejamento de viagens aéreas

24 Problemas do mundo real
Problema de Viagens Aéreas – Formulação Estados Cada um é representado por uma posição (p.ex.: um aeroporto) e pela hora atual. Estado inicial É especificado pelo problema. Função Sucessor Retorna os estados resultantes de tomar qualquer vôo programado que parte depois da hora atual somada ao tempo de trânsito no aeroporto, desde o aeroporto atual até outro. Teste de objetivo Estamos no destino após algum tempo especificado?

25 Problemas do mundo real
Problema de Viagens Aéreas – Formulação Custo de caminho Depende do custo monetário, do tempo de espera, do tempo de vôo, dos procedimentos alfandegários, da hora do dia, ... Um sistema realmente bom deve incluir planos de contingência. Exemplo: reservas substitutas em vôos alternativos.

26 Problemas do mundo real
Problemas de Tour – Formulação Estreitamente relacionados aos problemas de roteamento Diferença: cada estado deve incluir não apenas a posição atual, mas também o conjunto de cidades que o agente visitou.

27 Problemas do mundo real
Problema do Caixeiro-Viajante (PCV) – Formulação É um problema de tour em que cada cidade deve ser visitada exatamente uma vez. Objetivo: encontrar o percurso mais curto. Outras aplicações: planejamento do movimento de máquinas automáticas para perfuração de placas de circuitos e de máquinas industriais em fábricas.

28 Problemas do mundo real
Problema de Layout de VLSI – Formulação Exige o posicionamento de milhões de componentes e conexões em um chip para minimizar a área, os retardos de circuitos e as capacitâncias de fuga e maximizar o rendimento industrial. Divisão usual: Layout de células Roteamento de canais

29 Problemas do mundo real
Problema da Navegação de Robôs – Formulação Generalização do problema de roteamento. Característica: um robô pode se mover em um espaço contínuo com (em princípio) um conjunto infinito de ações e estados possíveis. Robô com movimento circular sobre uma superfície plana: espaço bidimensional. Robô com braços e pernas ou rodas – espaço de busca com várias dimensões.

30 Problemas do mundo real
Problema da Seqüência Automática de Montagem – Formulação Objetivo: encontrar uma ordem na qual devem ser montadas as peças de algum objeto. Outro problema de montagem: projeto de proteínas Objetivo: encontrar uma seqüência de aminoácidos que serão incorporados em uma proteína tridimensional com as propriedades adequadas para curar alguma doença.

31 Problemas do mundo real
Problema de Pesquisas na Internet – Formulação Objetivo: procurar respostas para perguntas, informações inter-relacionadas ou oportunidades de compras

32 Em Busca de Soluções Busca em todo o espaço de estados
Uso de uma Árvore de busca explícita – gerada pelo estado inicial e pela função sucessor. Uso de um grafo de busca (substituindo a árvore de busca) – o mesmo estado pode ser alcançado a partir de vários caminhos.

33 Espaço de Estados do Problema
Um problema pode ser visto como uma tripla: {I,O,B} I = estados iniciais O = conjunto de operações B = estados objetivo Uma solução para o problema é uma seqüência finita de operações que permite sair de um elemento em I e chegar a um elemento em B.

34 Espaço de Estados do Problema
Um sistema de resolução de problemas comporta: Um conjunto de estruturas de dados organizada em um grafo; Um conjunto de operadores caracterizados por suas condições de aplicação e sua ação; Uma estrutura de controle implementando a estratégia de resolução.

35 Estratégias de Busca Abordagens de busca básicas num espaço de estados: Busca Cega (Sem informação/Não informada) Não tem informação sobre qual sucessor é mais promissor para atingir a meta. Busca Heurística (Busca Com Informação/Informada) Possui informação (estimativa) de qual sucessor é mais promissor para atingir a meta. É uma busca cega com algum guia ou orientação. Todas as estratégias de busca se distinguem pela ordem em que os nós são expandidos.

36 Estratégias de Busca Cega
Busca em Largura Busca de Custo Uniforme Busca em Profundidade Busca em Profundidade Limitada Busca em Profundidade com Aprofundamento Iterativo Busca Bidirecional Evitando Estados Repetidos Busca com Conhecimento Incompleto

37 Busca em Profundidade ... Ordem de expansão dos nós: 1. Nó raiz
2. Primeiro nó de profundidade 1 3. Primeiro nó de profundidade 2, etc …

38 Busca em Profundidade ... Começa na raiz e avança para baixo em níveis cada vez mais profundos; Um operador é aplicado a um nó para gerar o próximo nó mais profundo na seqüência; O processo continua até que uma solução é encontrada ou um retrocesso é forçado ao atingir-se um nó terminal que não é solução.

39 Busca em Profundidade ... Faz uma busca sistemática em cada filho de um nó até encontrar a meta. Exemplo: O caminho para se chegar ao nó G, usando busca em profundidade: Caminho = { B, F, C, E, J, K, D, G }

40 Busca em Profundidade ... Problema
Garante uma solução, mas a busca pode ser muito demorada. Motivo: muitas ramificações diferentes podem ter que ser consideradas até o nível mais profundo antes de uma solução ser atingida.

41 Busca em Largura ... Ordem de expansão dos nós: 1. Nó raiz
2. Todos os nós de profundidade 1 3. Todos os nós de profundidade 2, etc …

42 Busca em Largura ... Os nós em cada nível da árvore são completamente examinados antes de se mover para o próximo nível. Uma busca em largura sempre encontrará o menor caminho entre o estado inicial e o estado-objetivo. O menor caminho é o caminho com o menor número de passos (não confundir com o caminho de menor custo).

43 Busca em Largura ... Faz uma busca sistemática examinando primeiro os módulos próximos à raiz. Exemplo: Caminho para encontrar o nó G, usando a Busca em Largura: Caminho = { B, F, D, A, C, E, G }

44 Observações ... Critérios importantes na análise de um algoritmo de busca: Completeza: O algoritmo oferece a garantia de encontrar uma solução quando ela existir? Otimização: A estratégia encontra a solução ótima (tem o menor custo de caminho entre todas as soluções)? Complexidade de tempo: Quanto tempo ele leva para encontrar uma solução? Complexidade de espaço: Quanto de memória é necessário para executar a busca?

45 Observações ... Critério Busca em Largura Busca em Profundidade
Completa? Sima Sima,b Ótima? Simc Não Tempo O(bd+1) O(bm) Espaço b - fator de ramificação; d - profundidade da solução mais "rasa"; m - profundidade máxima da árvore de busca; l - limite de profundidade. Anotações sobrescritas: a - completa se b é finito; b - completa se o custo do passo é ≥  positivo; c - ótima se os custos dos passos são todos idênticos; d - se ambos os sentidos utilizam busca em extensão.

46 Observações ... Explosão combinatorial: quando o número de alternativas a serem exploradas é tão grande que o problema de complexidade torna-se crítico. Exemplo: Se cada nó no espaço de estados tem N sucessores, então o número de caminhos de comprimento C a partir do nó inicial é NC (assumindo que não há ciclos). O número de caminhos candidatos à solução é exponencial com relação ao seu comprimento. As estratégias de busca em profundidade e em largura não fazem nada para combater esta complexidade: todos os caminhos candidatos são tratados como igualmente relevantes.

47 Observações ... As buscas em profundidade e em largura não precisam ser realizadas em uma ordem específica; Em se tratando de memória utilizada, na busca em profundidade é preciso armazenar todos os filhos não visitados de cada nó entre nó atual e nó inicial. Na busca em largura, antes de examinar nó a uma profundidade d, é necessário examinar e armazenar todos os nodos a uma profundidade d - 1;

48 Observações ... Busca em profundidade utiliza menos memória;
Quanto ao tempo, a busca em profundidade é geralmente mais rápida. Métodos de busca cega não examinam a árvore de forma ótima, o que poderia minimizar o tempo gasto para resolver o problema.

49 Observações As buscas em largura e profundidade não fazem uso de nenhum conhecimento para encontrar sua solução, fazendo uma busca exaustiva dentro do seu espaço. Para contornar este problema, pode-se usar os métodos heurísticos.

50 Busca Heurística Heurística - Informação específica do domínio que pode ser usada para guiar o processo de busca. Em muitos casos uma heurística envolve a aplicação de uma função que avalia um nó particular e prediz a qualidade dos seus nós sucessores. Uma função heurística de avaliação no jogo-da-velha poderia ser o número de linhas, colunas e diagonais ainda disponíveis, quanto maior este número maior a chance de vitória.

51 Busca Heurística Os problemas de IA empregam heurísticas, basicamente, em duas situações: 1. Um problema pode não ter uma solução exata por causa das ambigüidades inerentes na sua formulação ou pela disponibilidade dos dados. Exemplos: Diagnóstico médico, Sistemas de visão. 2. Um problema pode ter uma solução exata, mas o custo computacional para encontrá-la pode ser proibitivo. Exemplo: Jogo de xadrez.

52 Busca Heurística As heurísticas podem falhar.
Uma heurística é apenas uma conjectura informada sobre o próximo passo a ser tomado na solução de um problema. A heurística é baseada na experiência e na intuição. Uma heurística pode levar um algoritmo de busca a uma solução subótima ou, inclusive, levá-lo a não conseguir encontrar uma solução. George Polya define heurística como “o estudo dos métodos e das regras de descoberta e invenção” (Polya, 1945) – relacionada com o termo grego original, o verbo eurisco (“Eu descubro”). Quando Arquimedes emergiu de seu famoso banho segurando a coroa de ouro, ele gritou “Eureka!” (“Eu descobri!”).

53 Busca Heurística – Exemplo ...
Porção do espaço de estados para o jogo-da-velha 9 N0 de caminhos = 9! 8 7 .

54 Busca Heurística – Exemplo ...
Os primeiros três níveis do espaço de estados do jogo-da-velha reduzidos por simetria. 3 movimentos iniciais: Para o canto Para o centro de um lado Para o centro da grade

55 Busca Heurística – Exemplo ...
A heurística do “maior número de vitórias” aplicada aos primeiros filhos do jogo-da-velha.

56 Busca Heurística – Exemplo
Espaço de estados reduzido heuristicamente para o jogo-da-velha.

57 Busca Heurística Estratégias de Busca Heurística
Usam conhecimento específico do problema na busca da solução. Mais eficientes do que a busca não informada. Algoritmo geral: Busca pela Melhor Escolha - BME (Best-first search) Seleciona para expansão o nó que tiver o menor custo estimado até a meta (objetivo), segundo uma função de avaliação f(n). Tipicamente f(n) usa uma função heurística h(n) = custo estimado do caminho mais econômico do nó n até um nó objetivo (Restrição inicial: se n é um nó objetivo, h(n)=0).

58 Busca Heurística Uma forma de uso da informação heurística sobre um problema consiste em computar estimativas numéricas para os nós no espaço de estados; Uma estimativa indica o quanto um nó é promissor com relação ao alcance de um nó-objetivo; A idéia é continuar a busca sempre a partir do nó mais promissor no conjunto de candidatos; O programa de busca do melhor caminho (escolha) é baseado neste princípio.

59 Busca Heurística Busca do melhor caminho - pode ser derivada de um refinamento da busca em largura. Busca em largura - sempre escolhe para expansão os menores caminhos-candidatos (isto é, os nós extremos menos profundos da busca). Busca do melhor caminho - refina este princípio calculando uma estimativa heurística para cada candidato e escolhe para expansão o melhor candidato de acordo com esta estimativa.

60 Busca Heurística Greedy best-first search
(Busca gulosa pela melhor escolha) Tenta expandir o nó mais próximo à meta, na suposição de que isso provavelmente levará a uma solução rápida. Avalia nós para expandir com base unicamente na função heurística: f(n) = h(n) Exemplo: encontrar a melhor rota (rota mais curta) de uma cidade a outra, num mapa. h(n) = distância em linha reta entre as cidades e a cidade-meta.

61 Um mapa rodoviário simplificado de parte da Romênia.
Busca Heurística Exemplo: Localização de rotas na Romênia, usando a heurística de distância em linha reta (hDLR) Objetivo: Bucharest (Bucareste) 176 100 Um mapa rodoviário simplificado de parte da Romênia.

62 Busca Heurística Busca pela melhor escolha - Busca Gulosa
Distância em linha reta para Bucharest:

63 Exemplo – Passo a Passo ... Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de distância em linha reta hDLR. Os nós são identificados por seus valores de h.

64 Exemplo – Passo a Passo ... Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de distância em linha reta hDLR. Os nós são identificados por seus valores de h.

65 Exemplo – Passo a Passo ... Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de distância em linha reta hDLR. Os nós são identificados por seus valores de h.

66 Exemplo – Passo a Passo ... Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de distância em linha reta hDLR. Os nós são identificados por seus valores de h.

67 Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de distância em linha reta hDLR. Os nós são identificados por seus valores de h.

68 Busca Heurística Não é completa
pode entrar em ciclos e não encontrar a solução se não detectar estados repetidos; pode se perder em um caminho infinito e nunca retroceder para tentar outras opções. Não é ótima No exemplo encontrou caminho (Arad, Sibiu, Fagaras, Bucharest) que é 32km maior que (Arad, Sibiu, Rimnicu Vilcea, Pitesti, Bucharest) Dependendo do problema e da qualidade da heurística a complexidade pode ter uma redução substancial.

69 Busca Heurística BME mais “famoso”: Busca A*
Objetivo: Minimizar o custo total estimado da solução. Função de avaliação: f(n) = g(n) + h(n) • g(n) = distância (custo) do nó inicial ao nó n • h(n) = distância (custo) estimada de n ao nó final • Assim, f(n) estima o custo da melhor solução que passa por n. A* expande o nó de menor valor de f na fronteira do espaço de estados.

70 Busca Heurística Quando n é encontrado pelo processo de busca, tem-se a seguinte situação: Um caminho de i para n já deve ter sido encontrado e o seu custo pode ser calculado como a soma dos custos dos arcos no caminho, e pode servir como uma estimativa g(n) do custo mínimo de i para n. h(n) é mais problemático porque o espaço entre n e t ainda não foi explorado, e portanto h(n) é meramente um palpite baseado no conhecimento geral do algoritmo sobre o problema particular. Não existe um método universal para construção de h, pois depende do domínio do problema.

71 Um mapa rodoviário simplificado de parte da Romênia.
Busca Heurística Exemplo: Localização de rotas na Romênia, usando a Busca A* Objetivo: Bucharest (Bucareste) Um mapa rodoviário simplificado de parte da Romênia. 176 100

72 Busca Heurística Busca pela melhor escolha - Algoritmo A*
Distância em linha reta para Bucharest: 449 220 239 417 393 366 317 447 413 455 418 415 496

73 Exemplo – Passo a Passo ...

74 Exemplo – Passo a Passo ...

75 Exemplo – Passo a Passo ...

76 Exemplo – Passo a Passo ...

77 Exemplo – Passo a Passo ...

78 Exemplo – Passo a Passo

79 Estágios em uma busca A. por Bucareste
Estágios em uma busca A* por Bucareste. Os nós estão rotulados f = g + h. Os valores de h são distâncias em linha reta para Bucareste.

80 Busca Heurística Desempenho do A*
A análise do caráter ótimo de A* é direta se for usada com BUSCA-EM-ÁRVORE: A* será ótima se h(n) for uma heurística admissível. Conseqüência mais importante da consistência (também chamada monotonicidade) é: A* usando BUSCA-EM-GRAFO é ótima se h(n) é consistente.

81 Busca Heurística Desempenho do A*
A* é completa e ótima se h(n) for admissível ou consistente • h admissível: nunca superestima o custo de atingir a meta • h consistente (ou monotônica): – n’ é sucessor de n, gerado pela ação a; – c(n,a,n’) é o custo de sair de n e atingir n’. – Se h é consistente, os valores de f(n) ao longo de qualquer caminho são não-decrescentes.

82 Busca Heurística Desempenho do A*
A* é otimamente eficiente: nenhum outro algoritmo ótimo garante expandir menos nós que A*. Infelizmente há, na maioria das vezes, crescimento exponencial do número de nós com o comprimento da solução (complexidade temporal). O maior problema é a complexidade espacial: A* armazena todos os nós gerados! Assim, A* não é aplicável em muitos problemas de grande escala. Usa-se variantes que encontram soluções subótimas.

83 Busca Heurística Com Memória Limitada IDA* (Iterative Deepening A*)
igual ao aprofundamento iterativo, porém seu limite é dado pela função de avaliação (f) , e não pela profundidade (d). necessita de menos memória do que A* SMA* (Simplified Memory-Bounded A*) O número de nós guardados em memória é fixado previamente.

84 Busca Heurística Solução de problemas usando técnicas de busca heurística: dificuldades em definir e usar a função de avaliação não consideram conhecimento genérico do mundo (ou “senso comum”) Função de avaliação: compromisso (conflito) entre tempo gasto na seleção de um nó e redução do espaço de busca Achar o melhor nó a ser expandido a cada passo pode ser tão difícil quanto o problema da busca em geral.

85 Busca Heurística Como escolher uma boa função heurística h?
h depende de cada problema particular. h deve ser admissível não superestimar o custo real da solução Exemplo: jogo dos 8 números um número pode mover-se de A para B se A é adjacente a B e B está vazio busca exaustiva: solução média em 22 passos fator de ramificação médio: 3 ≈ 322 estados possíveis ≈ 9!/2 (controlando os estados repetidos) 4 5 8 1 6 7 2 3

86 Busca Heurística Algumas heurísticas possíveis:
Distância de Manhattan: distância pombalina, distância de quarteirões ou distância de táxi. Recebeu o nome pois define a menor distância possível que um carro é capaz de percorrer numa malha urbana reticulada ortogonal, como se encontram em zonas como Manhattan ou a Baixa Pombalina. Algumas heurísticas possíveis: h1 = n0 de elementos em posições erradas h2 = soma das distâncias de cada elemento à posição final - objetivo (city block distance - Manhattan distance) h1 = 8 h2 = =18

87 Busca Heurística Função h2 (n) o espaço de estados gerado é menor 
o algoritmo acha mais rapidamente a solução. Exemplo:

88 2 8 3 1 6 4 7 5 (4) 7 5 (6) 1 4 7 6 5 (3) (5) 1 4 2 3 1 8 4 7 1 4 6 5 8 3 2 1 4 2 3 (2) 1 2 3 8 4 (1) 8 4 (0) 7 8 4 Exemplo: Espaço de estados gerado com h1 (n) (para cada estado está indicado entre parênteses o valor da função heurística): Estado Inicial Estado Objetivo 2 8 3 1 6 4 7 5 1 2 3 8 4 7 6 5 Neste exemplo não são considerados os nós que aparecem por mais de uma vez.

89 Exemplo: Espaço de estados gerado com h2 (n) Estado Inicial
2 8 3 1 6 4 7 5 (5) Exemplo: 2 8 3 1 6 4 7 5 (6) 2 8 3 1 4 7 6 5 (4) 2 8 3 1 6 4 7 5 (6) Espaço de estados gerado com h2 (n) 2 8 3 1 4 7 6 5 (5) 2 3 1 8 4 7 6 5 (3) 2 8 3 1 4 7 6 5 (5) Estado Inicial Estado Objetivo 2 8 3 1 6 4 7 5 1 2 3 8 4 7 6 5 2 3 1 8 4 7 6 5 (2) 2 3 1 8 4 7 6 5 (4) 1 2 3 8 4 7 6 5 (1) 1 2 3 8 4 7 6 5 1 2 3 7 8 4 6 5 (2) (0)

90 Busca Heurística Efeito da exatidão da heurística sobre o desempenho
Qualidade da função heurística: medida através do fator de expansão efetivo (b* ou fator de ramificação efetiva). b* - fator de expansão de uma árvore uniforme com N+1 nós e nível de profundidade d N+1 = 1 + b* + (b*) (b*)d , N = total de nós gerados pelo A* para um problema; d = profundidade da solução. Mede-se empiricamente a qualidade de h a partir do conjunto de valores experimentais de N e d. uma boa função heurística terá o b* muito próximo de 1.

91 Busca Heurística Uma boa função heurística b* muito próximo de 1.
Comparação entre os custos da busca e entre os fatores de expansão (ramificação) efetivo para os algoritmos BUSCA-POR-APROFUNDAMENTO-ITERATIVO e A* com h1, h2. A média dos dados é calculada sobre 100 instâncias de quebra-cabeça de 8 peças para diversos comprimentos de solução. Uma boa função heurística b* muito próximo de 1. h2 é melhor que h para qualquer nó, h2(n) ≥ h1(n) !

92 Busca Heurística É sempre melhor utilizar uma função heurística com valores mais altos, desde que ela seja admissível e que o tempo para computá-la não seja muito grande! Exemplo: h2 melhor que h1 no espaço de estados No exemplo anterior: h2 domina h1 , Isso pode ser traduzido na forma: A heurística 2 é melhor que a heurística 1, pois terá um menor fator de ramificação. Desde que h1 e h2 não superestimem o custo real.

93 h (n) = max(h1(n), h2(n),…,hm(n))
Busca Heurística Caso existam muitas funções heurísticas para o mesmo problema, e nenhuma delas domine as outras, usa-se uma heurística composta: h (n) = max(h1(n), h2(n),…,hm(n))

94 Busca Heurística Exemplo de estratégias genéricas para definir h:
1) Relaxar o problema (versão simplificada); 2) Usar informação estatística; 3) Identificar os atributos relevantes do problema e usar aprendizagem.

95 Busca Heurística Jogos simples, como o jogo-dos-8, são veículos ideais para explorar o projeto e o comportamento de algoritmos de busca heurística por várias razões: Os espaços de busca são grandes o suficiente para requererem poda heurística. A maioria dos jogos é suficientemente complexa para sugerir uma rica variedade de avaliações heurísticas para comparação e análise. Os jogos geralmente não envolvem questões representacionais complexas. Como todos os nós do espaço de estados têm uma representação comum, pode-se aplicar uma heurística única para todo o espaço de busca.

96 Busca Heurística Problemas mais realistas complicam bastante a implementação e a análise da busca heurística, requerendo heurísticas múltiplas. O entendimento ganho de jogos simples pode ser generalizado para problemas como aqueles encontrados em sistemas especialistas, planejamento, controle inteligente e aprendizado. Porém, uma heurística simples não pode ser aplicada a todos os estados nestes domínios.

97 Constraint Satisfaction Problems (CSP)
Um Problema de Satisfação de Restrições Tipo de problema que impõe propriedades estruturais adicionais à solução a ser encontrada. Há uma demanda mais refinada do que na busca clássica. Tem-se um conjunto de variáveis que podem assumir valores dentro de um dado domínio. Tem-se um conjunto de restrições que especificam propriedades da solução - valores que essas variáveis podem assumir.

98 Constraint Satisfaction Problems (CSP)
Formulação Estados: definidos pelos valores possíveis das variáveis. Estado inicial: nenhuma variável instanciada ainda. Operadores: atribuem valores (instanciação) às variáveis. – Uma variável por vez Teste de término: verificar se todas as variáveis estão instanciadas obedecendo às restrições do problema. Solução: conjunto dos valores das variáveis instanciadas. Custo de caminho: número de passos de atribuição.

99 Constraint Satisfaction Problems (CSP)
O conjunto de valores que a variável i pode assumir é chamado domínio Di O domínio pode ser discreto (fabricantes de uma peça do carro) ou contínuo (peso das peças do carro) Quanto à aridade, as restrições podem ser unárias (sobre uma única variável) binárias (sobre duas variáveis) n-árias Quanto à natureza, as restrições podem ser absolutas (não podem ser violadas) preferenciais (devem ser satisfeitas quando possível)

100 Constraint Satisfaction Problems (CSP)
Toda solução deve ser uma atribuição completa e, portanto, aparece na profundidade n. A árvore de busca se estende até a profundidade n. Por essas razões, os algoritmos de busca em profundidade são populares para CSP. O caminho pelo qual uma solução é alcançada é irrelevante.

101 Constraint Satisfaction Problems (CSP)
Exemplo: Problema das 8-rainhas variáveis: localização das rainhas (coluna, linha) valores: possíveis posições do tabuleiro restrição binária: duas rainhas não podem estar na mesma coluna, linha ou diagonal solução: valores para os quais a restrição é satisfeita

102 Constraint Satisfaction Problems (CSP)
Busca cega com Retrocesso para CSP Funcionamento estado inicial: variáveis sem atribuição aplica operador: instancia uma variável teste de parada: todas variáveis instanciadas sem violações Retrocesso (Backtracking) depois de realizar uma atribuição, verifica se restrições não são violadas caso haja violação, retrocede

103 Constraint Satisfaction Problems (CSP)
Busca cega com Retrocesso para CSP Análise pode ser busca em profundidade limitada (l = número de variáveis) é completa fator de expansão: ∑i |Di| o teste de parada é decomposto em um conjunto de restrições sobre as variáveis

104 Constraint Satisfaction Problems (CSP)
Exemplo: coloração de mapas variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={green,red,blue} restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E; B ≠ F; C ≠ E; C ≠ F; D ≠ F; E ≠ F Solucionar usando busca em profundidade limitada com l=6.

105 Constraint Satisfaction Problems (CSP)
green = g red = r blue = b Solucionar usando busca em profundidade limitada com l=6 e verificação prévia combinada com propagação de restrições

106 Constraint Satisfaction Problems (CSP)
Simulação passo a passo... A= green B = green (falha c/ A) B=red C=green (falha c/ A) C= red D=green E= green (falha c/ A) E= red (falha c/ B e C) E= blue F=green (falha c/ D) F=red (falha c/ C) F = blue (falha c/ E) F backtracking E backtracking D=red E=green (falha c/ A) E= red (falha c/ B) F=green Exemplo: coloração de mapas variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={green,red,blue} restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E; B ≠ F; C ≠ E; C ≠ F; D ≠ F; E ≠ F A B C D E F

107 Constraint Satisfaction Problems (CSP)
Mas poderia começar por red e fazer outra forma de seleção de valores no domínio ... variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={red, green, blue} restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E; B ≠ F; C ≠ E; C ≠ F; D ≠ F; E ≠ F A=red B=green C=blue D=red E= ?? Backtracking D=green E=?? Backtracking D=blue D= ?? Backtracking C = green D = green E = blue F=red

108 Constraint Satisfaction Problems (CSP)
Backtracking não basta... Problema do backtracking: não adianta mexer na 7a. rainha para poder posicionar a última. O problema é mais em cima... O backtrack normalmente tem que ser de mais de um passo Soluções: Verificação prévia (forward checking) Propagação de restrições

109 Constraint Satisfaction Problems (CSP)
Verificação prévia (forward checking) idéia: olhar para frente para detectar situações insolúveis. Algoritmo: Após cada atribuição, elimina do domínio das variáveis não instanciadas os valores incompatíveis com as atribuições feitas até agora. Se um domínio torna-se vazio, retrocede imediatamente. É bem mais eficiente!

110 Constraint Satisfaction Problems (CSP)
Exemplo: coloração de mapas Passo a passo... A=red => B, C, E ={green,blue} (variáveis c/ restrições c/ A) => D, F ={red,green,blue} B=green => E = {blue}, F = {red, blue} (variáveis c/ restrições c/ B) => C ={green,blue}, D ={red,green,blue} C = green => E ={blue}, F = {red, blue} (restrições c/ C) => D = {red,green,blue} D=red, E=blue, F=?? Backtracking F e D!! D=green, E=blue, F=red variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={red,green,blue} restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E; B ≠ F; C ≠ E; C ≠ F; D ≠ F; E ≠ F A B C D E F

111 Constraint Satisfaction Problems (CSP)
Propagação de restrições (constraint propagation) Uma conseqüência da verificação prévia. Quando um valor é eliminado, isto é propagado para outros valores que dele dependem, podendo torná-los inconsistentes e eliminados também. É como uma onda que se propaga: as escolhas ficam cada vez mais restritas.

112 Constraint Satisfaction Problems (CSP)
Exemplo: coloração de mapas: variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={green,red,blue} restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E; B ≠ F; C ≠ E; C ≠ F; D ≠ F; E ≠ F Simulando passo a passo: A= green B,C,E={r,b}, D,F={g,r,b} B=red C={r,b}, D={g,r,b}, E={b}, F={g,b}  C={r}, F={g}  D={r,b} C= red D={r,b}, E={b}, F={g} D=red E={b}, F={g} E= blue F=green Sem retrocesso!

113 Constraint Satisfaction Problems (CSP)
Heurística para CSP Tenta reduzir o fator de expansão do espaço de estados Onde pode entrar uma heurística? Ordenando a escolha da variável a instanciar Ordenando a escolha do valor a ser associado a uma variável Existem 3 heurísticas para isto... Variável mais restritiva: variável envolvida no maior número de restrições é preferida Variável mais restringida: variável que pode assumir menos valores é preferida Valor menos restritivo: valor que deixa mais liberdade para futuras escolhas

114 Constraint Satisfaction Problems (CSP)
Coloração de mapas: Variável mais restritiva (variável envolvida no maior número de restrições) Candidatas1: E, F, ...resto E = green Candidatas: F, ...resto F = red Candidatos: A, B, C, D A= red Candidatos: B, C, D B= blue Candidatos: C, D C= blue D = green SEM BACKTRACK!! variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={green,red,blue} restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E; B ≠ F; C ≠ E; C ≠ F; D ≠ F; E ≠ F A B C D E F 1 em ordem de prioridade

115 Constraint Satisfaction Problems (CSP)
Coloração de mapas: variável mais restringida (variável que pode assumir menos valores) Candidatas: todas A = green Candidatas: B, C, E, ... B = red Candidatos: E, F, ... E=blue Candidatos: C, F, D C=red Candidatos: F, D F=green D = blue ou red SEM BACKTRACK!! A B C D E F

116 Constraint Satisfaction Problems (CSP)
Coloração de mapas: valor menos restritivo (valor que deixa mais liberdade) variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={green,red,blue} restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E; B ≠ F; C ≠ E; C ≠ F; D ≠ F; E ≠ F A B C D E F Começando com A = green B = red C=??? red é melhor do que blue

117 CSP iterativo CSP pode ser resolvido iterativamente
1) instancia aleatoriamente todas variáveis; 2) aplica operadores para trocar os valores e então diminuir número de restrições não satisfeitas (min-conflicts). Heurística de reparos repara inconsistências Min-conflict resolve 8 rainhas em menos de 50 passos!!!

118 Número de ataques Exemplo:

119 Constraint Satisfaction Problems (CSP)
Grande importância prática, sobretudo em tarefas de Criação, projeto (design) Agendamento (scheduling) Em que várias soluções existem e é mais fácil dizer o que não se quer...


Carregar ppt "Inteligência Artificial I Resolução de Problemas"

Apresentações semelhantes


Anúncios Google