borda - WordPress.com
Transcrição
borda - WordPress.com
Inteligência Artificial Ronaldo F. Ramos, Dr. [email protected] Adaptado de : aima.cs.berkeley.edu 1 Visão Geral do Curso 1. Conceito de IA, Histórico e Metas 2. Agentes Inteligentes 3. Solução de Problemas, Busca e Jogos 4. Sistemas Lógicos, Conhecimento e Raciocínio 5. Sistemas Baseados em Conhecimento. 6. Planejamento 7. Incerteza, Probabilidade e Teoria da Decisão 8. Aprendizado 9. Linguagem e Comunicação 10. Percepção 11. Robótica 12. Questões Filosóficas 2 Bibliografia Básica 1. Russel, Stuart J. & Norvig, Peter. Artificial Intelligence. 2a. Ed. Elsevier,2003. Ou Inteligência Artificial. Tradução de publicare consultoria, Ed CAMPUS, Rio de Janeiro, 2004. 2. Rich, Elaine. Artificial Intelligence. McGraw-Hill, 1988 ou Inteligencia Artificial. Tradução Newton Vasconcelos. McGrawHill, São Paulo, 1988 (Biblioteca do CEFET) 3. Nolt, John. Lógica. Jonh Nolt & Denis Rohatyn: Tradução de Mineko Yamashita. McGraw-Hill, São Paulo, 1991 4. Schildt, Herbert. Artificial Intelligence Using C. McGraw-Hill, Berkeley,CA. EUA, 1987. (Tem Tradução) 5. Hegenberg, Leônidas Exercícios de Lógica. (Vários Vols) Editora da USP. São Paulo, 1978 3 Bibliografia Básica – Cont. 6. Ramos, Ronaldo. Sistemas Especialistas - Uma Abordagem Baseada em Objetos. Dissertação de Mestrado da UFSC. Florianópolis- SC, 1995. (Biblioteca do CEFET) 7. Claudia, Marcus. Prolog Programming. Arity Corporation. 1986 8. Waterman, Donald Arthur. A Guide to Expert Systems. Addison Wesley, 1986. 9. Barr, Avron & Feigenbaum. The Handbook of Artificial Intelligence. (4 vols). Addison Wesley, 1986 10. Fischler, Martin & Firschein, Oscar. Intelligence : The Eye, the Brain and the Computer. Addison-Wesley, 1987 11. Scott, A. Carlisle. A Pratical Guide to Knowledge Acquisition. Addison Wesley, 1991 4 Bibliografia Básica – Cont. 12. Loesch, Claudio & Sari, Solange. Redes Neurais Artificiais Fundamentos e Modelos. Editora da FURB. Blumenau-SC, 1996 13. Hykin, Simon. Neural Networks: A Comprehensive Foundation (2nd Edition). Prentice Hall. 1998. (Tradução em português: Redes Neurais. Princípios e Práticas. Ed. Bookman) 14. Freeman, James A. Neural networks : algorithms, applications, and programming techniques. AddisonWesley, 1991 15. Kovacs, Szolt. Redes Neurais Artificiais. Livraria da Física, 2002 16. Frontino de Medeiros, Luciano. Redes Neurais em Delphi. Ed. Visual Books, 2003. 5 Bibliografia Básica – Cont. 17. Mendes de Azevedo, Fernando. Redes Neurais com Aplicações em Controle e Sistemas Especialistas. Ed. Visual Books, 2001. 18. Padua Braga, Antônio de. Redes Neurais Artificiais : Teoria e Aplicações. Ed. LTC. 2000 19. Barone, Dante. Sociedades Artificiais: A Nova Fronteira da Inteligência nas Máquinas. Ed. Bookman. Porto Alegre - RS, 2003 20. Ferber, Jacques. Les systèmes multi-agents vers une intelligence collective. Intereditions. Paris. 1995 6 Bibliografia Recreativa. 21. Greenfield, Susan A. Journey to the Centers of the Mind. W H. Freedman and Company. N. Y. EUA, 1995 22. Kovacs, Zsolt L. O Cérebro e Sua Mente. Uma introdução à Neurociência Computacional. Edição Acadêmica. São Paulo 1997 23. Lama, Dalai. A Arte da Felicidade. Ed. Martins Fontes. São Paulo. 2000. (PRA DESOPILAR) 7 Pré-Requisitos - - - - - - - Capacidade de Abstração Raciocínio lógico Conhecimentos Básicos em Matemática Incluindo Combinatória (Arranjo, Combinação, Permutação, etc...) Conhecimento básicos de ciência da computação incluindo estruturas avançadas de dados (Pilhas, Filas, Árvores, Grafos) Conhecimento Básico de Estatística e Probabilidade Teoria da Complexidade (Análise Assintótica) Introdução a Álgebra Linear (Manipulação de Matrizes) 8 1. Inteligência Artificial ! What Hell is That (Que diabo é isso)? ! Inteligência e racionalidade ! Histórico ! Escopo ! Paradigmas 9 1.1 Inteligência Artificial – What hell is that?(Diabéisso? ) Sistemas que pensam como seres humanos O novo e interessante esforço para fazer os computadores pensarem ... máquinas com mentes, mas no sentido total e literal . (Haugeland) Automatização de atividades que associamos ao pensamento humano, atividades como a tomada de decisões, resolução de problemas, aprendizado ... (Bellman) Sistemas que pensam racionalmente O estudo das faculdades mentais pelo uso de modelos computacionais... (Charniak) O estudo das computações que tornam possível perceber, raciocinar e agir. (Winston) 10 1.1 Inteligência Artificial – What hell is that?( Diabéisso? ) Sistemas que agem como seres humanos A arte de criar máquinas que executam funções que exigem inteligência quando executadas por pessoas... (Kurzweil) A arte de fazer com que os computadores realizem tarefas em que, no momento, as pessoas são melhores (Rich) Sistemas que agem racionalmente A inteligência computacional é o estudo do projeto de agentes inteligentes (Poole) 11 1.2 Racionalidade? Um sistema é racional se faz “tudo certo” com os dados que tem. (Russel) Nem sempre os seres humanos são racionais!!! Inteligente Racional Racionalidade = Inteligência Ideal. 12 1.3 Agindo de forma humana Teste de Turing (1950) (Computer Machinery and Intelligence) Máquinas podem pensar e agir de forma inteligente? " Previu que no ano 2000 máquinas teriam 30% de chance de enganar um leigo por 5 minutos. " Antecipou os argumentos da IA nos 50 anos seguintes. " Sugeriu os principais componentes da IA: conhecimento, raciocínio, linguagem, compreensão e aprendizagem. Seis disciplinas da IA!!!!. Probs. Não pode ser reproduzido ou analisado matematicamente. 13 1.3 Agindo de forma humana (cont.) Seis disciplinas da IA!!!!. # Processamento de linguagem natural # Representação do conhecimento # Raciocínio automatizado # Aprendizado de máquina # Visão de computador # Robótica 14 1.4 Pensando de forma humana - Revolução cognitiva (anos 60) – Psicologia do processamento da informação (Em oposição ao comportamentalismo (behaviorism) ortodoxo) - Necessidade do conhecimento científico sobre o funcionamento do cérebro. - Modelos (Abstração) ( Conhecimento ou Circuitos?) - Teste e previsão (compreensão) do comportamento humano - Identificação de informações neurológicas - Surgimento de duas novas áreas distintas da IA. - Ciências Cognitivas - Neurociências - Ponto comun entre as duas novas áreas e IA. As Teorias disponíveis não explicam, nem criam, algo semehante à inteligência humana geral. 15 1.5 Pensando Racionalmente (As leis do pensamento) - Aristóteles e as escolas gregas : Lógica. (A ciência do raciocínio) - A lógica é o ponto de ligação entre a matemática, a filosofia e a I.A. Problemas: - Nem todo comportamento inteligente é mediado pela lógica. -Suposição subjacente da IA-simbólica (Um sistema de símbolos físicos pode representar a atividade inteligente geral) -Quais os objetivos do pensar? Que pensamentos eu devo ter? 16 1.6 Agindo Racionalmente Comportamento Racional Fazer a Coisa Certa (Otimização) [Nem sempre envolve o ato de pensar] (Ação reflexiva, por exemplo) Toda arte e toda investigação, e da mesma forma, toda ação e suas consequências são idealizadas visando algum bem. Aristóteles (Ética a Nicômano) 17 1.7 Agentes Racionais Um agente é uma entidade que percebe e age. f : P* ! A Onde: P* = Histórico de Percepções A = Conjunto de Ações IA (contemporânea) objetiva a construção de agentes racionais. Objetiva-se que a ação de cada agente ou grupo de agentes seja a melhor possível (ótima). A racionalidade perfeita requer poder computacional indisponível no momento. 18 1.9 Pré-História Filosofia Matemática Lógica e raciocínio, a mente como um sistema físico, fundamentos de linguagem, aprendizagem e racionalidade. Representação formal e prova, algoritmos, computabilidade, tratabilidade, probabilidade, etc. Psicologia Adaptação, percepção, controle motor Economia Teoria da decisão Linguística Gramática e representação do conhecimento Neurociências Atividade mental Teoria do Controle Estabilidade de sistemas e sistemas ótimos. 19 1.10 História • 1943 – McCulloch & Pitts – Modelo matemático do neurônio • 1950 – Alan Turing – Pai da ciência da computação – Teste de Turing • 1956 – Darmouth Conference – John McCarthy cria o termo “Inteligência artificial” • 1957 – GPS - General Problem Solver- Allen Newell e Herbert Simon • 1958 – LISP – McCarthy • 1966 – Eliza – Joseph Weizenbaum • 1972 – Primeiros Sistemas Especialistas • 1970s – Linguagem PROLOG – Franceses(Marseille) e Escoceses (Edinburgh) • 1970s – MYCIN – PROSPECTOR - DENDRAL • 1980s – Engenharia do conhecimento • 1990s – Sistemas Híbridos – Inteligência Computacional - Agentes • 2000s – Inteligência Ubíqua/Embarcada/Pervasiva 20 1.11 IA - Escopo • Solução de problemas. • Jogos • Prova de Teoremas (lógica, incerteza e lógica nebulosa) • Percepção (E reconhecimento de padrões) • Visão • Fala • Compreensão de linguagem natural • Resolução de problemas especializados (Incluindo sistemas especialistas) • Matemática simbólica • Diagnose (incluindo a diagnose médica) • Análise química • Projeto de engenharia • Robótica e aprendizado de máquina 21 1.12. IA - Paradigmas Paradigma Simbólico x Paradigma Conexionista Suposições Subjacentes 1. A atividade inteligente pode ser representada simbólicamente. O sistema de símbolos físicos possui os meios necessários e suficientes para a ação inteligente geral [Newell, 1976] 2. A atividade inteligente é realizada pelo cérebro humano que é constituido de uma rede de neurônios. Para se adquirir a verdadeira inteligência artificial é necessário que se construam redes neurais (ou neuronais) artificiais. 22 2. Agentes Inteligentes ! Agente e Ambiente ! Racionalidade ! Medida de desempenho, agente, ambiente, efetuador, sensor ! Tipos de ambientes ! Tipos de agentes 23 2.1 Agente e ambiente Um agente pode ser: Ser humano, robô, termostato, sofbot, etc. A função agente mapeia histórico de percepções em ações: f : P* ! A O programa agente “roda” sobre uma estrutura física para produzir f 24 2.1 Agente e ambiente (cont.) Ex. O mundo do aspirador de pó. Percepções: {(x,y) | x = A,B,C...(Local) e y = (LIMPO|SUJO)(Estado)}. Ex. (A,SUJO) Ações (Operadores): ESQUERDA, DIREITA, ASPIRAR, NULO 25 2.1 Agente aspirador de pó. Sequência de Percepções Ações (A,LIMPO) DIREITA (A,SUJO) ASPIRAR (B,LIMPO) ESQUERDA (B,SUJO) ASPIRAR (A,LIMPO),(A,LIMPO) DIREITA (A,LIMPO),(A,SUJO) ASPIRAR (A,LIMPO), (A,LIMPO) (A,LIMPO) DIREITA (A,LIMPO), (A,LIMPO) (A,SUJO) ASPIRAR 26 2.1 A função agente. Ação f_agente_aspirador_de_po(local,status){ if (status == SUJO){ return ASPIRAR; } elseif ( local == A){ return RIGHT; } elseif (local == B){ return LEFT; } return NoOp; } 27 2.2 Racionalidade Medida de Desempenho (performance) - Um ponto para cada quadrado limpo no tempo T - Um ponto por cada quadrado em um Δt menos 1 por cada movimento - Penalização sempre que se tiver mais de K quadrados sujos Agente racional $ Maximizar a medida de desempenho Racional Onisciente Racional Clarividente Racional Bem sucedido Racional $ Exploração, Aprendizado e Autonomia. 28 2.3 Método PEAS – Ambiente de tarefas (P) Performance (Medida de desempenho) (E) Ambiente (A) Efetuadores(Atuadores) (S) Sensores 29 2.3 Método PEAS – Ambiente de tarefas (cont.) Tipo de Agente Medida de desempenho Ambiente Atuadores Sensores Sistema de diagnóstico Médico Paciente Saudável, Minimizar custos e processos judiciais Paciente, Hospital, Equipe Perguntas, testes, diagnósticos, tratamentos, indicações Dispositivos de Entrada (teclado, etc) para sintomas, descobertas e respostas dos pacientes Sistema de Análise de imagens de satélites Definição correta da categoria da imagem Link de transmissão Exibir a categorização da cena. Matriz de pixels coloridos. Robôs de seleção de peças Porcetagem de peças em bandejas corretas Correia transportadora, bandejas Braços e mãos articulados Câmera, sensores angulados articulados. Controlador de refinaria Maximizar pureza, rendimento e segurança Refinaria, Operadores Válvulas, bombas, aquecedores mostradores Sensores de temperatura, pressão, produtos químicos. 30 2.3 (Programação multi agente - Método das vogais) (E) Ambiente (A) Agente (I) Interações (O) Organização 31 2.4 Tipos de ambientes Observável = Completamente | Parcialmente (O Agente conhece ou não o ambiente) Determinístico versus Estocástico (O próximo estado depende exclusivamente do estado anterior e da ação do agente.) Episódico ou sequencial (As ações são independentes e afetam somente o próximo estado) Estático x Dinâmico ou Semi-Dinâmico (Melhora do agente) (O ambiente não muda enquanto o agente delibera sua ação) Discreto ou contínuo. (Relacionado com a passagem do tempo) De agente simples ou multiagente. Competitivo ou cooperativo. 32 2.4 Tipos de ambientes (cont) Paciência Compras via Internet Taxi Automático Observável Sim Não Não Determinístico Sim Parcialmente Não Episódico Não Não Não Estático Sim Semi Não Discreto Sim Sim Não Agente Único Sim Não Não O ambiente determina o projeto do agente. Problemas do mundo real é parcialmente observável, estocástico, Seqüencial, dinâmico, contínuo e multi-agente. 33 2.5 Tipos de agentes • Agentes reativos simples • Agentes reativos com estado • Agentes baseados em modelos • Agentes baseados em metas (objetivos) • Agentes baseados em utilidade • Agentes com aprendizagem(Todos Podem Ser) • Outras classificações • Agentes Inteligentes e Agentes Móveis 34 2.5.1 Agentes reativos simples 35 2.5.2 Agentes reativos com estado 36 2.5.3 Agentes baseados em objetivos 37 2.5.4 Agentes baseados em utilidade 38 2.5.5 Agentes com aprendizagem 39 2.5.6 Uma taxonomia global de agente inteligente Ambiente (Percepção) + Recursos (Autonomia) + Comunicação Com seus pares + Serviços + Reprodução + Inteligência = + + Mobilidade Reatividade = = Agente Móvel Agente Reativo Tendências (Metas a realizar) + Agente Inteligente Inteligência coletiva SMA – Sistemas Multi Agente 40 2.5.7 Agente inteligentes e Agentes Móveis ! ! ! ! ! ! ! Agente de rede Agente comunicante Agente autônomo Agente inteligente Agente adaptativo Agente pró-ativo Agente flexível ! Agente cognitivo ! Agente reativo ! Agente móvel ! Agente Intinerante ! Etc. 41 2.5.7 Agentes Inteligentes - Aplicações % Agentes locais % % % % % Agentes baseados em DAI Assistentes pessoais % Conhecimento distribuído Conselheiros pessoais % Agentes Móveis Agendadores (Planejadores) % Telecomunicacões Ferramentas de diagnóstico e % Comunicação pessoal Solução de problemas % Gerenciamento de redes % Agentes em rede % Serviços sob demanda % Assistentes pessoais % Mercado eletrônico % Caixa de correio inteligente % Knowbot and Softbots 42 Exercício Implementar em linguagem qualquer uma forma elementar Desses agentes. 43 3. Solução de Problemas e Busca ! Agente para solução de problemas ! Tipos de problemas ! Formulação do problema ! Exemplos de problemas ! Algorítmos básicos de busca ! Recapitulando com o problema dos baldes 44 3.1 Agentes para solução de problemas 45 3.1 Exemplo : Romênia De férias na Romênia. Atualmente “em Arad” Formular Meta: - Estar em Bucareste Formular Problema: - Estados: Diversas cidades - Ações: Dirigir entre as cidades Buscar a solução: Seqüência de cidades, por exemplo: Arad Sibiu Fagaras Bucareste 46 3.1 Exemplo : Romênia 47 3.2 Tipos de problemas Determinístico, completamente observável Problema de estado único. O agente sabe exatamente em que estado o mesmo estará; a solução é uma seqüência. Não observável. Problema sem sensores ou de conformidade. O agente não tem idéia de sua localização. A solução (se existir) é uma seqüência. Não determinístico e/ou parcialmente observável Problema de contingência. As percepções fornecem informações novas sobre o estado atual. A solução é uma árvore ou uma política. Freqüentemente intercala-se busca com execução Espaço de estados desconhecido Problema de Exploração (“online”) 48 3.2 Exemplo do aspirador de pó. 49 3.3 Formulação do problema Um problema é definido em 4 itens: Estado Inicial, ex. Em(Arad) Função Sucessor, conjunto de pares ordenados (Ação, Estado) ex: S(Arad) = {(Arad->Zerind, Zerind) ...} Teste de Meta, pode ser: Explícito: x = Bucareste Implícito: não_sujo(x) Custo do Caminho(Aditivo) Soma das distâncias, número de ações executadas, etc. C(x,a,y) = custo do passo. C>=0 Solução: Uma seqüência de ações que levam do estado inicial ao estado meta. 50 3.3 Formulação do problema- Espaço de estados Problemas do mundo real são excessivamente complexos: & Espaço de estados é abstraído para a solução do problema. (Abstrato) Estado = conjunto de estados reais (Abstrato) Ação = combinação de ações (mais complexas) do mundo real. Ex. Arad->Zerind significa no mundo real um deslocamento passando por vários postos, rodovias, etc. Cada estado no mundo abstrato corresponde a um estado no mundo real. O problema abstraído deve ser mais fácil de solucionar que o problema no mundo real. 51 3.3 Formulação do problema- Espaço de estados 52 3.3 Exemplo: Quebra cabeça de 8 peças 53 3.3 Exemplo: Montagem por braço robótico 54 3.3 Algoritmos de busca em árvore 55 3.3 Exemplo de busca em árvore 56 3.4 Exemplo de busca em árvore 57 3.4 Exemplo de busca em árvore 58 3.4 Implementação : Estados x Nós 59 3.5 Implementação : Busca em Árvore Geral 60 3.5 Estratégias de busca 61 3.5 Estratégias de busca sem Informação (CEGA) 62 3.5 Busca em Largura 63 3.5 Busca em Largura 64 3.5 Busca em Largura. 65 3.5 Busca em Largura 66 3.5 Propriedades da Busca em Largura 67 3.5 Busca com custo uniforme Expande o nó de menor custo ainda não expandido Implementação: borda = fila ordenada pelo custo do caminho Equivalente à busca em largura se todos os passos têm o mesmo custo. Completa??: Sim, se custo de cada passo é positivo > є Tempo??: O(b[C*/є]) onde C* é o custo da solução ótima Espaço??: O(b[C*/є]) Ótima??: Sim 68 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 69 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 70 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 71 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 72 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 73 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 74 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 75 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 76 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 77 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 78 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 79 3.5 Busca em Profundidade Expande sempre o nó mais profundo ainda não expandido. Implementação: borda = fila tipo LIFO (pilha), i. e., sucessores são colocados na frente da fila (topo da pilha). A B C D H E I J F K L G M N O 80 3.5 Propriedades da Busca em Profundidade Completa??: Não. Falha em espaços com profundidade infinita, em laços. - Deve ser modificada para evitar estados repetidos. - É completa para espaços de estados finitos. Tempo??: O (bm) muito ruim no caso em que m > d - Para soluções densas pode ser mais rápida que busca em largura. Espaço??: O (b * m), i.e., linear Ótima??: Não. 81 3.5 Busca com Profundidade Limitada. = Busca em profundidade com limite l, i.e., nós com profundidade l não possuem sucessores. Implementação recursiva: função BUSCA-EM-PROFUNDIDADE-LIMITADA(problema,limite) retorna uma solução ou falha/ corte retornar BPL-RECURSIVA(CRIAR-NÓ(ESTADO-INICIAL[problema]),problema,limite) função BPL-RECURSIVA(nó,problema,limite) retorna uma solução ou falha/corte corte_ocorreu? ' falso se TESTAR-OBJETIVO[problema](ESTADO[nó]) então retornar SOLUÇÃO(nó) senão se PROFUNDIDADE[nó] = limite então retornar corte senão para cada sucessor em EXPANDIR(nó, problema) faça resultado ' BPL-RECURSIVA(sucessor,problema,limite) se resultado = corte então corte_ocorreu? ' verdadeiro senão se resultado =/= falha então retornar resultado se corte_ocorreu? então retornar corte senão retornar falha. 82 3.5 Busca por Aprofundamento Iterativo * função BUSCA-POR-APROFUNDAMENTO-ITERATIVO(problema) retorna solução ou falha entradas: problemas, um problema para profundidade ' 0 até infinito faça resultado ' BUSCA-EM-PROFUNDIDADE-LIMITADA(problema,profundidade) se resultado =/= corte então retornar resultado fim. (iterativo =/= interativo) 83 3.5 Busca por Aprofundamento Iterativo l = 0 A A Limite = 0 84 3.5 Busca por Aprofundamento Iterativo l = 1 Limite = 1 A B A C B A C B A C B C 85 3.5 Busca por Aprofundamento Iterativo l = 2 Limite = 2 A A B C D E F B G F C F G C D E F D C E B G D C E F A B G A B A B E C D E A D A F A B G D C E G F B G D C E F G 86 3.5 Busca por Aprofundamento Iterativo l = 3 Limite = 3 A C B E D H I J F K L G M N O 87 3.5 Propriedades da BAI Completa??: Sim Tempo??: (d+1)*b0 + d*b1 + (d –1)*b2 + ... + bd = O (bd) Espaço??: O (b*d) Ótima??: Sim, se o custo do passo = 1 Pode ser adaptada para uma busca do custo uniforme Comparação com a busca em largura para b=10 e d = 5 a solução estando à direita N(BAI) = 50+400+3.000+20.000+100.000 = 123.450 N(BL) = 10+100+1.000+10.000+100.000+999.990 = 1.111.100 88 3.5 Resumo dos Algoritmos de Busca Cega Critério Largura Custo Uniforme Profundidade Pronfundidade Limitada Aprofundamento Iterativo Completa Sima Sima,d Não Somente se l >=d Sima Tempo bd+1 b[C*/ є ] bm bl bd Espaço bd+1 b[C*/ є ] b*m b*l b*d Ótima Simc Sim Não Não Simc a Completa se b é finito; b custo do passo > algum valor positivo є; c Ótima se os custos dos passos são iguais 89 3.5 Controle de estados repetidos Repetição de estados pode levar um problema linear a uma explosão combinatória (geração exponencial de nós). A A B B A C ... ... .... A B B 90 3.5 Solução: Busca em Grafo Função BUSCA-EM-GRAFO(problema,borda) retorna Solução/Falha fechado ' um conjunto vazio borda ' INSERIR(CRIAR-NÓ(ESTADO-INICIAL[problema]),borda) repita se borda == vazia então retornar Falha nó ' REMOVE-FRENTE(borda) se TESTE-DE-META[problema](ESTADO([nó]) então retornar nó se ESTADO[nó] não em fechado então adicionar ESTADO[nó] a fechado borda ' INSERIR-TODOS(EXPANDIR(nó,problema),borda) fim-repita fim. 91 3.5 Resumindo • Formulação do problema requer abstração de detalhes do mundo real para definir um espaço de estados que pode ser explorado por um mecanismo de busca. • Foram verificadas uma variedade de estratégias de busca sem informação ou busca cega. • A busca por aprofundamento iterativo utiliza apenas espaço linear e não muito mais tempo que outras estratégias de busca cega. 92 3.6 Recapitulando com o problema dos baldes. Um exemplo de Técnica de IA em solução de problemas Passo 1 – Compreensão do problema Reservatório 4l 3l Sejam dois baldes, um de 4l e outro de 3l , e uma bomba d´água. Os baldes não possuem qualquer marcação. Como colocar exatamente 2l de água no vasilhame de 4l? 93 3.6 Recapitulando com o problema dos baldes. Passo 2 – Abstração – Definição de um espaço de estados Seja o conjunto de pares ordenados (x,y) tais que x representa o conteúdo em l do balde de 4l e y o conteúdo do balde de 3. Logo Et (Conjunto Espaço de Estados) sera : Et = { (x,y) | x = 0,1,2,3,4 e y = 0,1,2,3} Passo 3 – Definir o(s) estado(s) iniciai(s) Ei = (0,0) Passo 4 – Definir o(s) estado(s) meta(s) Ei = (2,n) n Є { 0,1,2,3} 94 3.6 Recapitulando com o problema dos baldes. Passo 5 – Especificar um conjunto de regras descrevendo ações (operadores) disponíveis. 1. 2. 3. 4. 5. 6. 7. (X,Y | X<4) ( (4,Y) = Encher o vasilhame de 4 litros (X,Y | Y<3) ( (X,3) = Encher o vasilhame de 3 litros (X,Y | X>0) ( (X-D,Y) = Despejar alguma água do vasilhame de 4 litros (X,Y| Y>0) ( (X,Y-I) = Despejar alguma água do vasilhame de 3 litros (X,Y| X>0) ( (0,Y) = Esvaziar o vasilhame de 4 litros (X,Y| Y>0) ( (X,0) = Esvaziar o vasilhame de 3 litros (X,Y| X+Y>=4 ^ Y>0 ) ( (4,Y-(4-x)) = Despejar água do vasilhame de 3 l dentro do vasilhame de 4 l até encher o vasilhame de 4 l 8. (X,Y|X+Y >=3 ^ X> 0) ( (X-(3-Y),3) = Despejar água do vasilhame de 4l no de 3l até que o vasilhame de 3l esteja cheio 9. (X,Y|X+Y <=4 ^ Y>0) ( (X+Y,0) = Despejar toda a água do vasilhame de 3l dentro do vasilhame de 4l 10. (X,Y|X+Y >= 3 ^ X>0) ( (0,X+Y) = Despejar toda a água do vasilhame de 4 l dentro do vasilhame de 3 l 95 3.6 Recapitulando com o problema dos baldes. Passo 6 – Usar as regras pra gerar uma árvore / grafo de busca e uma estratégia de controle pra encontrar um caminho do estado inicial até o estado meta. 3 Ei = (0,0) Ei = (X,X) 2 Ea = (0,3) X Ei = (X,X) 9 X Eb = (3,0) 1 Ei = (X,X) 2 En = (3,3) ... 7 Ey = (4,2) Ei = (4,0) ... 5 Ek = (0,2) 9 Em = (2,0) 96 3.7 Exercício Formalizar o problema dos missionários e dos canibais encontrando uma solução. Desc. do problema: 3 canibais e 3 missionários estão em uma margem do rio e querem atravessá-lo em uma canoa que só cabe duas pessoas por vez. Se em algum momento em alguma margem existir mais canibais que missionários, os mesmos serão devorados. A meta é estabelecer a seqüência de viagens para que todos os missionários cheguem com segurança à margem do outro lado. 97 3.8 Busca com Informação. (uso de heurísticas) • Busca gulosa ou pela melhor escolha • A* • Heurísticas • Subida da Encosta • Têmpera Simulada 98 3.8 Revisão de Busca em Árvore Função BUSCA-EM-ÁRVORE(problema,borda) retorna Solução/Falha borda ' INSERIR(CRIAR-NÓ(ESTADO-INICIAL[problema]),borda) repita se borda == vazia então retornar Falha nó ' REMOVE-FRENTE(borda) se TESTE-DE-META[problema](ESTADO([nó]) então retornar nó borda ' INSERIR-TODOS(EXPANDIR(nó,problema),borda) fim-repita fim. $ Uma estratégia é definida pela ordem de expansão dos nós. 99 3.9 Busca Gulosa / Pela Melhor Escolha Idéia básica: Utilizar uma função de avaliação para cada nó que indique sua proximidade da meta. Trata-se de uma estimativa. $ Expandir sempre o nó com melhor avaliação. Implementação: borda é uma fila ordenada em ordem decrescente pela função de avaliação Casos Especiais: - Busca Gulosa - A* 100 3.9 Busca Gulosa / Pela Melhor Escolha 101 3.9 Greedy Search (Busca Gulosa) Função de avaliação h(n) (Heurística) $ Estima o custo de n para a meta mais próxima e.g. hDLR(n) = Distância em linha reta de n a Bucareste $A busca gulosa, ou busca pela melhor escolha, expande o nó que estaria mais próximo da meta. 102 3.9 Exemplo de Busca Gulosa Passo 1 103 3.9 Exemplo de Busca Gulosa Passo 2 104 3.9 Exemplo de Busca Gulosa Passo 3 105 3.9 Exemplo de Busca Gulosa Passo 3 106 3.9 Propriedades da busca gulosa Completa?? Não. Pode se perder nos laços. Será completa em espaços de estados finitos com checagem de estados repetidos. Tempo?? O(bm), mas uma boa heurística pode diminuí-lo sensivelmente. Espaço?? O(bm) mantém todos os nós na memória Ótima?? Não. 107 3.9 Busca A* Idéia básica: Evitar expansão de caminho que são muito “custosos” Função de avaliação f(n) = g(n) + h(n) Onde: g(n) = custo da origem até n h(n) = estimativa do custo de n até a meta. f(n) = estimativa do custo total do caminho da origem à meta passando por n A* usa uma heurística admissível, i. e., h(n) <= h*(n) é o custo real de n. Também requer h(n) >= 0 e h(M) = 0 para toda meta M. e.g., hdlr(n) nunca superestima a distância rodoviária real. Teorema: A busca A* é ótima. 108 3.9 Exemplo de Busca A* 109 3.9 Exemplo de Busca A* 110 3.9 Exemplo de Busca A* 111 3.9 Exemplo de Busca A* 112 3.9 Exemplo de Busca A* 113 3.9 Exemplo de Busca A* 114 3.10 Otimização de Busca A* Suponha que alguma meta não-ótima (G2) foi gerada e está na fila. Seja n un nó não expandido sobre o caminho mais curto para a meta ótima (G1). Início n G2 G1 f(G2) = g(G2) uma vez que h(G2)=0 >= g(G1) uma vez que G2 não é ótima. >= f(n) uma vez que h é admissível Observe que f(n)< f(n*)<f(G1)<f(G2) f(n*) = custo real Uma vez que f(G2) > f(n) , A* nunca expandirá G2 115 3.10 Otimização de Busca A* Lema: A* expande nós em ordem crescente de f. Gradualmente forma contornos em f. Um contorno i contém todos os nós com f = fi onde fi < fi+1 116 3.10 Propriedades de Busca A* Completa?? - Sim, a não ser que existam infinitos nós com f <= f(G) Tempo?? - Exponencial em [erro relativo em h * comp. da solução] Espaço?? - Matém todos os nós na memória Ótima?? - Sim, não pode expandir fi+1 até que fi esteja terminada. A* expande todos os nós com f(n) < C* A* expande algum nó com f(n) = C* A* não expande nós com f(n) > C* 117 3.10 Prova de consistência Uma heurística é consistente se h(n) <= c(n,a,n’) + h(n’) Se h é consistente teremos f(n’) = g(n’) + h(n’) = g(n) + c(n,a,n’) + h(n’) >= g(n) + h(n) = f(n) i.e., f(n) é não decrescente em qualquer caminho 118 3.10 Exemplo de heurística Admissível E.g., para o quebra cabeça de 8: h1(n) = número de peças deslocadas h2(n) = distância manhattan (número de posições que cada peça está deslocada em relação à posição da meta) 119 3.10 Dominância Se h2(n) >= h1(n) para todo n (ambas admissíveis) então h2 domina h1 e é melhor para a busca. Custo de buscas típico: d = 14 IDS = 3.473.941 nós A*(h1) = 539 nós A*(h2) = 113 nós d = 24 IDS +/- 54.000.000.000 nós A*(h1) = 39.135 nós A*(h2) = 1.641 nós 120 3.10 Problemas Relaxados Uma heurística admissível pode ser derivada do custo de uma solução de uma versão relaxada do problema Problemas relaxados são problemas com menos restrições sobre as ações. Se as regras do problema do quebra cabeça de 8 peças forem relaxadas, poderíamos considerar que uma peça pode se mover para qualquer quadrado adjacente e então a heurística h2 nós dá a solução mais curta. Ponto chave: O custo da solução ótima para um problema relaxado não é maior que o de um problema real. 121 3.10 Algoritmos com Aperfeiçoamento Iterativo • Em muitos problemas de otimização o caminho é irrelevante. • O estado meta constitui a solução e não o caminho para se chegar ao mesmo. (Ver problema das 8 rainhas) • Nestes casos, pode-se utilizar algoritmos de aperfeiçoamento iterativo • Adequado tanto para busca “online” como “offline” • BUSCA LOCAL. - Subida da encosta - Têmpera simulada - Busca em feixe (Algoritmos genéticos) • Princípio: Manter-se um único estado e tentar melhorá-lo iterativamente. 122 3.10 Exemplo: Problema do caixeiro Viajante • Iniciar com qualquer caminho fechado e ir trocando pares 123 3.10 Exemplo: Problema das n rainhas • Colocar n rainhas em um tabuleiro n x n sendo que não poderão ficar duas ou mais rainhas na mesma fila, coluna ou diagonal. • Ação: mover a rainha para reduzir o número de conflitos 124 3.10 Heurística Subida da Encosta Subir o Evereste em meio a um nevoeiro denso com crise de amnésia. Função SubidaDaEncosta(problema) retorna um máximo local entradas: problema, um problema variáveis locais: corrente, um nó vizinho, um nó corrente ' CRIAR-NO(ESTADO-INICIAL[problema]) repita vizinho ' mais valorado sucessor de corrente se VALOR[vizinho] < VALOR[corrente] retornar ESTADO[corrente] corrente ' vizinho fim do repita Fim. 125 3.10 Heurística Subida da Encosta (cont) Problemas: - Máximos locais (Cristas) - Planícies/Platôs - Tamanho dos saltos em espaços contínuos/baixa convergência Variantes: Subida da encosta estocástica Subida da encosta pela melhor escolha Subida da Encosta com reinício aleatório Têmpera simulada 126 3.10 Heurística : Têmpera Simulada Idéia: Sair dos máximos locais permitindo alguns movimentos ruins, mas reduzir gradualmente sua ocorrência e tamanho Função Tempera-Simulada(problema,escalonamento) retorna um estado solução entradas: problema, um problema escalonamento, um mapeamento de tempo para temperatura variáveis locais: corrente, um nó proximo, um nó T, uma “temperatura” que controla a probabilidade de passos descendentes corrente ' CRIAR-NO(ESTADO-INICIAL[problema]) para t ' 1 até infinito faça T ' escalonamento[t] se T = 0 então retornar corrente proximo ' um sucessor de corrente selecionado ao acaso △E ' VALOR[proximo] – VALOR[corrente] se △E > 0 entao corrente ' proximo senão corrente ' proximo somente com probabilidade e△E/T 127 3.10 Heurística : Têmpera Simulada (propriedades) % Pode-se provar que: se T decresce de forma suficientemente lenta, a têmpera simulada encontrará um ponto ótimo global com probabilidade próxima de 1 % Muito utilizada no projeto de layout de circuitos VLSI, escalonamento de vôos, etc 128 3.10 Heurística : Busca em feixe local % % % % Matém k estados em memória no lugar de apenas 1. Inicia com k estados gerados aleatoriamente. A cada iteração, todos os sucessores de todos os k estados são gerados Se algum deles é um estado meta, para; senão selecionar os k melhores sucessores da lista completa e recomeçar. 129 3.10 Algoritmos genéticos % Os sucessores são gerados combinando dois estados “pais”. % Começa com k estados gerados aleatoriamente (população). % Um estado é representado como uma string sobre um alfabeto finito (normalmente uma string de 0s e 1s) % Função de avaliação (fitness). Valores mais altos para estados melhores % Produz uma nova geração por seleção, cruzamento (crossover) e mutação. 130 3.10 Algoritmos genéticos % Função Fitness : número de pares que não se atacam mutuamente(min = 0, max = 8 × 7/2 = 28) % 24/(24+23+20+11) = 31% % 23/(24+23+20+11) = 29% etc 131 3.10 Algoritmos genéticos 132 3.10 Problemas de Satisfação de Restrições Roteiro % % % Problemas de Satisfação de restrições(PSR) (CSP) Retrocesso (Backtracking) para PSRs Busca Local para PSRs 133 Problemas de Satisfação de Restrições % Problema de busca padrão: % % PSR: % % % Estado é uma caixa preta – qualquer estrutura de dados que suporte função sucessores, função heurística e teste de meta. Estado é definido por variáveis Xi com valores do domínio Di Teste de meta é um conjunto de restrições especificando combinações admissíveis de valores para subconjuntos de variáveis Permite o uso de algoritmos de propósito geral com mais eficiência que algoritmos de busca padrão 134 Problemas de Satisfação de Restrições. Coloração de mapas % % % % Variáveis WA, NT, Q, NSW, V, SA, T Domínios Di = {vermelho,verde,azul} Restrições: Regiões adjacentes devem ter cores diferentes Ex., WA ≠ NT, ou (WA,NT) in {(vermelho,verde),(vermelho,azul), (verde,vermelho), (verde,azul),(azul,vermelho),(azul,verde)} 135 Problemas de Satisfação de Restrições % Soluções são conjuntos de atribuições completas e consistentes, e.g., WA = vermelho, NT = verde, Q = vermelho, NSW = verde,V = vermelho,SA = azul, T = verde 136 Problemas de Satisfação de Restrições % % PSR binário: cada restrição relaciona duas variáveis Grafo de Restrições: Os nós representam as variáveis e os arcos as restrições 137 Problemas de Satisfação de Restrições % Variáveis discretas % Domínios finitos: % % % Domínios Infinitos: % % % % n variáveis, tamanho de domíniod ! O(dn) atribuição completa exs., PSR Booleano, incl. Satisfação não booleana(NP-completo) Inteiros, strings, etc. Exs., Escalas de trabalho, variáveis seriam dias de início/fim de cada trabalho. Necessita de uma linguagem de restrições, ex., InicioTrab1 + 5 ≤ InicioTrab3 Variáveis Contínuas % % Ex., Horas de Início/Fim das observações do telescópio Hubble são sincronizadas com variáveis astronômicas. Restrições lineares solucionáveis em tempo polinomial usando programação linear. 138 Problemas de Satisfação de Restrições % Restrições Unárias envolvem somente uma variável, % Ex., SA ≠ verde % Restrições % Binárias envolvem pares de variáveis, Ex., SA ≠ WA % Restrições de mais alta ordem envolvem 3 ou mais variáveis, % e.g., Restrições com colunas de criptoaritmética 139 Problemas de Satisfação de Restrições % % % Variáveis: F T U W R O X1 X2 X3 Domínios: {0,1,2,3,4,5,6,7,8,9} Restrições: TodosDiferentes (F,T,U,W,R,O) % % % % O + O = R + 10 · X1 X1 + W + W = U + 10 · X2 X2 + T + T = O + 10 · X3 X3 = F, T ≠ 0, F ≠ 0 140 Problemas de Satisfação de Restrições Problemas do Mundo Real % Problemas de Atribuições % ex., quem ensina que classe. % Problemas de escalas de horários % ex., Que classe é oferecida por quem e onde? % Escalas de Transportes. % Escalas de Fabricação. % Problemas do mundo real envolvem variáveis valoradas no mundo real. 141 Problemas de Satisfação de Restrições Estados são definidos pelos valores atribuídos até aqui. % % Estado Inicial: atribuição vazia { } Função sucessor: Atribuir um valor a uma variável não atribuída que não venha a gerar conflito com as atuais atribuições. ( Falha se não houver nenhuma atribuíção legal. % Teste de meta: O conjunto de atribuíções é completo. 1. 2. 3. 4. Sempre igual para todos os PSRs As soluções aparecem na profundidade n com n variáveis (Usar busca em profundidade Caminho é irrelevante, então também pode-se utilizar a formulação do estado completo. 5. b = (n - l )d na profundidade l, consequentemente a árvore possui n! · dn folhas 142 Problemas de Satisfação de Restrições % Atribuíção de Variáveis é comutativa, i.e., [WA = vermelho então NT = verde ] é o mesmo que [ NT = verde então WA = vermelho ] % A cada nó deve-se considerar apenas a atribuição de uma única variável. ( b = d e existem d^n folhas (d = domínio máximo) % Busca em profundidade para PSRs com atribuição à variável única é chamada busca com retrocesso (backtracking search) % A busca com retrocesso é a busca cega básica para PSRs % Pode resolver o problema de n-rainhas com n ≈ 25 143 Problemas de Satisfação de Restrições Busca com retrocesso função PESQUISA-COM-RETROCESSO(psr) retorna uma solução ou falha retornar RETROCESSO-RECURSIVO({},psr) função RETROCESSO-RECURSIVO(atribuição, psr) retorna uma solução ou falha se atribuição é completa então retornar atribuição var ' SELECIONAR-VARIÁVEL-NÃO-ATRIBUIDA(VARIÁVEIS[psr],atribuição, psr) para cada valor em VALORES-DE-ORDEM-NO-DOMINIO(var,atribuicao,psr) faça se valor é consistente com atribuicao de acordo com RESTRIÇÕES[psr] então adicionar { var = valor } a atribuição resultado ' RETROCESSO-RECURSIVO(atribuição, psr) se resultado <> falha então retornar resultado remover { var = valor} de atribuição retornar falha 144 Problemas de Satisfação de Restrições 145 Problemas de Satisfação de Restrições 146 Problemas de Satisfação de Restrições 147 Problemas de Satisfação de Restrições 148 Melhorando a eficiência do backtrack % Métodos de propósito geral podem dar grandes ganhos em velocidade: % Qual a próxima variável a ser atribuída? % Em qual ordem os valores devem ser tentados? % Podemos detectar falhas inevitáveis cedo? 149 Problemas de Satisfação de Restrições % Varável mais restrita: escolher a variável com menos valores legais. % Também conhecida como heurística dos valores restantes mínimos (VRM)(MRV) 150 Heurística de grau % Desempate: % Heurística de grau ou da Variável com maior número de restrições sobre variáveis não atribuídas. % Capaz de chegar a uma solução sem retrocesso. 151 Valor menos restritivo % Escolher o valor menos restritivo, ou seja, escolher o valor que elimina o menor número possível de escolhas para os vizinhos. % A combinação dessas heurísticas torna factível o problema das n rainhas com n = 1000 152 Checagem para a frente – Verificação Prévia Idéia básica: % % Manter lista de valores válidos remanescentes para variáveis não atribuídas. Terminar a busca quando não existir mais valores válidos. 153 Checagem para a frente – Verificação Prévia Idéia básica: % % Manter lista de valores válidos remanescentes para variáveis não atribuídas. Terminar a busca quando não existir mais valores válidos. 154 Checagem para a frente – Verificação Prévia Idéia básica: % % Manter lista de valores válidos remanescentes para variáveis não atribuídas. Terminar a busca quando não existir mais valores válidos. 155 Checagem para a frente – Verificação Prévia % Idéia básica: % % Manter lista de valores válidos remanescentes para variáveis não atribuídas. Terminar a busca quando não existir mais valores válidos. 156 Propagação de Restrições % Verificação prévia propaga informações de variáveis atribuídas para variáveis não atribuídas, mas não provê detecção prévia para todas as falhas: % NT e SA não podem ser azuis. Propagation de restrições : reforça repetidamente restrições locais % 157 Consistência de Arco % % % A forma mais simples de propagação mantém os arcos consistentes. Um arco X (Y é consistente se e somente se Para cada valor x de X existe um y permitido. 158 Consistência de Arco % % % A forma mais simples de propagação mantém os arcos consistentes. Um arco X (Y é consistente se e somente se Para cada valor x de X existe um y permitido. 159 Consistência de Arco % % % % A forma mais simples de propagação mantém os arcos consistentes. Um arco X (Y é consistente se e somente se Para cada valor x de X existe um y permitido. Se X perde um valor, vizinhos de X precisam ser rechecados. 160 Consistência de Arco % % % % % % A forma mais simples de propagação mantém os arcos consistentes. Um arco X (Y é consistente se e somente se Para cada valor x de X existe um y permitido. Se X perde um valor , vizinhos precisam ser rechecados. Consistência de arco detecta falhas mais cedo do que verificação prévia. Pode ser executada como um pré processador ou depois 161 de cada atribuição. Algoritmo de consistência de arco função CA-3(psr) retorna o PSR, possívelmente com domínios reduzidos entradas: psr, um PSR binário com variáveis {x1,x2,...,xn} variáveis locais : fila, uma fila de arcos, inicialmente todos arcos no psr enquanto fila é não-vazia faça (Xi,Xj) ' REMOVE-PRIMEIRO(fila) se REMOVER-VALORES-INCONSISTENTES(Xi,Xj) então para cada Xk em vizinhos[Xj] faça adicionar (Xk,Xi) a fila ----------------------------------------------------------------------------------------------------------------------------função REMOVER-VALORES-INCONSISTENTES(Xi,Xj) retorna verdadeiro se removermos um valor removido ' falso para cada x em DOMÍNIO[Xj] faça se nenhum valor y em DOMÍNIO[Xj] permitir que (x,y) satisfaça à restrição entre Xi e Xj então eliminar x de DOMÍNIO[Xi]; removido ' verdadeiro retornar removido % Complexidade de tempo: O(n2d3) 162 Problemas de Satisfação de Restrições % Busca Local Subida da encosta e têmpera simulada normalmente trabalham com estados completos, i.e., todas as variáveis atribuídas. % Para aplicar PSR: % Permitir estados com restrições não satisfeitas % Operadores reatribuem valores de variáveis % Seleção de variáveis: selecionar aleatoriamente variáveis com conflito % Seleção de valor pela heurística dos conflitos mínimos: % % Escolher valores que violam o menor número de restrições i.e., Subida-Encosta com h(n) = Número total de restrições violadas 163 PSR (CSP) – Exemplo com 4 rainhas % % % % % Estado: 4 rainhas em 4 colunas (44 = 256 estados) Ações: mover as rainhas nas colunas Teste de Meta: nenhum ataque. Avaliação: h(n) = número de ataques Dado estado inicial randômico pode-se solucionar n-rainhas em tempo quase constante para um certo valor n com alta probabilidade (e.g., n = 10,000,000) 164 Problemas de Satisfação de Restrições - Resumo % PSRs são tipos especiais de problemas: % % Estados são definidos por valores em um conjunto fixo de variáveis. Teste de meta é definida por restrições nos valores das variáveis % Retrocesso (Backtracking) = Busca em profundidade com uma variável atribuída por nó. % Ordenação de variáveis e heurísticas para seleção de valor ajuda de forma significativa o processo. % Verificação prévia previne atribuições que possam levar a uma falha mais tarde. % Propagação de restrições (ex. Consistência de arco ) ajuda a restringir valores e detectar inconsistências. % Heurística dos conflitos mínimos é normalmente efetiva na prática. 165 Busca Competitiva Decisões ótimas Poda α-β Decisões imperfeitas em tempo real. Jogos vs. Problemas de Busca % Oponente Imprevisível ( Especificar um movimento para cada resposta possível do oponente. % Limites de Tempo ( Na impossibilidade de se encontrar a meta, fazem-se aproximações. 167 Jogos vs. Problemas de Busca Duas características novas: % Oponente Imprevisível ( Especificar um movimento para cada resposta possível do oponente. % Limites de Tempo ( Na impossibilidade de se encontrar a meta, fazem-se aproximações. 168 Árvore de jogos 169 Minimax % % Perfeito para jogos determinísticos Idéia : Escolher o movimento com o maior valor minimax 170 Minimax algorithm função DECISÃO-MINIMAX(estado) retorna uma ação entrada: estado, estado corrente no jogo v' VALOR-MAX(estado) retornar a ação em SUCESSORES(estado) com valor v ---------------------------------------------------------------------------------------função VALOR-MAX(estado) retorna um valor de utilidade se TESTE-TERMINAL(estado) então retornar UTILIDADE(estado) v ' -∞ para a, s em SUCESSORES(estados) faça v ' MAX(v, VALOR-MIN(s)) retornar v ---------------------------------------------------------------------------------------função VALOR-MIN(estado) retorna um valor de utilidade se TESTE-TERMINAL(estado) então retornar UTILIDADE(estado) v'∞ para a, s em SUCESSORES(estado) faça v ' MIN(v,VALOR-MAX(s)) retornar v 171 Propriedades do minimax % % % % % Completo? Sim para árvore finita Ótimo Sim (contra um oponente ótimo) Complexidade de Tempo? O(bm) Complexidade de espaço? O(bm) (exploração em profundidade) Para Xadrez, b ≈ 35, m ≈100 ou outros jogos “razoáveis” ( Solução exata inalcançável. 172 Poda α-β 173 Poda α-β (exemplo) 174 Poda α-β (exemplo) 175 Poda α-β (exemplo) 176 Poda α-β (exemplo) 177 Propriedades da poda α-β % A poda não afeta o resultado final % Uma boa ordenação dos movimentos pode melhorar sua eficácia. % Com uma ordenação perfeita: Complexidade de tempo = O(bm/2) ( duplica a capacidade de exame do minimax convencional % % Trata-se de um exemplo do valor do raciocínio sobre que computação é relevante(um tipo de meta-raciocínio) 178 Porque α-β? % % % α é o valor do melhor escolha (mais alto valor) encontrado até o momento ao longo do caminho de max Se v é pior que α, max o evitará ( podar essa ramificação Define-se β de forma similar (para o valor mais baixo) para min. 179 O algoritmo α-β função BUSCA-ALFA-BETA(ESTADO) retorna uma ação entradas : estado, estado corrente do jogo v' VALOR-MAX(estado, - ∞ ,+ ∞ ) retornar a ação em SUCESSORES(ESTADO) com valor v ----------------------------------------------------------------------------------------------------------------------função VALOR-MAX(estado,α, β) retorna um valor de utilidade entradas: estado, estado corrente em jogo α, o valor da melhor alternativa para max ao longo do caminho até estado β, o valor da melhor alternativa para min ao longo do caminho até estado se TESTE-TERMINAL(estado) então retornar UTILIDADE(estado) v'-∞ para a, s em SUCESSORES(estado) faça v ' MAX(v,VALOR-MIN(s, α, β)) se v ≥ β então retornar v α ' MAX(α,v) retornar v -------------------------------------------------------------------------------------------------------------------função VALOR-MIN(estado, α, β) retorna um valor de utilidade entradas: estado, estado corrente em jogo α, o valor da melhor alternativa para max ao longo do caminho até estado β, o valor da melhor alternativa para min ao longo do caminho até estado se TESTE-TERMINAL(estado) então retornar UTILIDADE(estado) v'+∞ para a, s em SUCESSORES(estado) faça v ' MIN(v,VALOR-MAX(s, α, β)) se v ≤ α então retornar v β ' MIN(β,v) retornar v 180 Limite de recursos Suponha que vc tem 100 segs e explore 104 nós/sec ( 106 nós por movimento Abordagem padrão: % Teste de corte: e.g., limite de profundidade(talvez busca quiescente) (Impossibilidade de grandes mudanças próximas) % Função de Avaliação 181 Função de Avaliação % Para xadrez, normalmente, usa-se a soma de pesos lineares das características observadas: Eval(s) = w1 f1(s) + w2 f2(s) + … + wn fn(s) % e.g., w1 = 9 com f1(s) = (número de rainhas brancas) – (número de rainhas pretas), etc. 182 Busca com corte A busca com corte (MinimaxCutoff) é idêntica a minimax (MinimaxValue) exceto por : 1. 2. Terminal? Substituído por Corte?(Cutoff?) Utilidade é substituído por Aval (Eval) Funciona na prática? bm = 106, b=35 ( m=4 Um jogador que faz busca em até 4 níveis é um jogador sem esperança no xadrez. % % % 4 - níveis ≈ ser humano novato 8 - níveis ≈ um pc, um mestre 12 - níveis ≈ Deep Blue, Kasparov 183 Jogos Determinísticos na prática % Damas: O software Chinook desbancou o reinado de 40 anos do campeão mundial Marion Tinsley em 1994. Usou-se uma base de dados de jogos perfeitos para todas as posições envolvendo menos de 8 peças. % Xadrez: Deep blue derrota Kasparov em 1997 em seis partidas. O DB é capaz de examinar 200 milhões de posições por segundo, usa uma ulta sofisticada avaliação e métodos que permitem a busca chegar em 40 níveis. % Othello: Campeões humanos se recusam a jogar contra computadores pois os mesmos (computadores) são imbatíveis. % Go: Campeões humanos se recusam a jogar contra computadores pois os mesmos (computadores) são muito ruins. b > 300, então a maioria dos programas usa bases de padrões para sugerir movimentos plausíveis. 184 Sumário % % % % Jogos são divertidos para se trabalhar com. Eles ilustram importantes pontos de IA. Pefeição é inatingível. Deve-se aproximar É uma boa idéia pensar no que pensar. 185 Outras questões % % % % Jogos não determinísticos com busca expectminimax. Jogos de cartas Jogos com múltiplos jogadores Jogos com estratégias de cooperação para uma meta razoavelmente comum. 186 Fim da parte I 187