SlideShare uma empresa Scribd logo
1 de 187
Baixar para ler offline
1 
Inteligência Artificial 
Ronaldo F. Ramos, Dr. 
ronaldo@cefet-ce.br 
Adaptado de : aima.cs.berkeley.edu
2 
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
3 
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. McGraw- 
Hill, 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
4 
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
5 
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. Addison- 
Wesley, 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.
6 
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
7 
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)
8 
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)
9 
1. Inteligência Artificial 
! What Hell is That (Que diabo é isso)? 
! Inteligência e racionalidade 
! Histórico 
! Escopo 
! Paradigmas
10 
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)
11 
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)
12 
1.2 Racionalidade? 
Um sistema é racional se faz “tudo certo” com os dados que tem. 
Nem sempre os seres humanos Inteligente Racional 
são racionais!!! 
(Russel) 
Racionalidade = Inteligência Ideal.
" 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. 
Probs. Não pode ser reproduzido ou analisado matematicamente. 
13 
1.3 Agindo de forma humana 
Teste de Turing (1950) (Computer Machinery and Intelligence) 
Máquinas podem pensar e agir de forma inteligente? 
Seis disciplinas da IA!!!!.
14 
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
15 
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.
16 
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?
17 
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)
18 
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.
19 
1.9 Pré-História 
Matemática 
Lógica e raciocínio, a mente como um sistema físico, 
fundamentos de linguagem, aprendizagem e racionalidade. 
Filosofia 
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.
20 
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
21 
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
22 
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.
23 
2. Agentes Inteligentes 
! Agente e Ambiente 
! Racionalidade 
! Medida de desempenho, agente, ambiente, efetuador, sensor 
! Tipos de ambientes 
! Tipos de agentes
24 
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
25 
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
26 
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) 
DIREITA 
(A,LIMPO) 
(A,LIMPO), (A,LIMPO) 
(A,SUJO) 
ASPIRAR
27 
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; 
}
28 
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.
29 
2.3 Método PEAS – Ambiente de tarefas 
(E) Ambiente 
(P) Performance 
(Medida de desempenho) 
(A) Efetuadores(Atuadores) 
(S) Sensores
30 
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.
31 
2.3 (Programação multi agente - Método das vogais) 
(A) Agente 
(E) Ambiente 
(I) Interações 
(O) Organização
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) 
32 
2.4 Tipos de ambientes 
De agente simples ou multiagente. 
Competitivo ou cooperativo.
33 
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.
34 
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
35 
2.5.1 Agentes reativos simples
36 
2.5.2 Agentes reativos com estado
37 
2.5.3 Agentes baseados em objetivos
38 
2.5.4 Agentes baseados em utilidade
39 
2.5.5 Agentes com aprendizagem
40 
2.5.6 Uma taxonomia global de agente inteligente 
+ + + + 
Inteligência coletiva 
Ambiente 
(Percepção) 
Recursos 
(Autonomia) 
Comunicação 
Com seus pares 
Tendências 
(Metas a realizar) 
+ + 
Serviços Reprodução 
Reatividade 
Inteligência = Agente 
Inteligente 
+ 
= 
Agente 
Reativo 
+ 
Mobilidade 
= 
Agente 
Móvel 
SMA – Sistemas Multi Agente
41 
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.
42 
2.5.7 Agentes Inteligentes - Aplicações 
% Agentes locais 
% Assistentes pessoais 
% Conselheiros pessoais 
% Agendadores (Planejadores) 
% Ferramentas de diagnóstico e 
Solução de problemas 
% Agentes em rede 
% Assistentes pessoais 
% Caixa de correio inteligente 
% Knowbot and Softbots 
% Agentes baseados em DAI 
% Conhecimento distribuído 
% Agentes Móveis 
% Telecomunicacões 
% Comunicação pessoal 
% Gerenciamento de redes 
% Serviços sob demanda 
% Mercado eletrônico
43 
Exercício 
Implementar em linguagem qualquer uma forma elementar 
Desses agentes.
44 
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
45 
3.1 Agentes para solução de problemas
46 
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
47 
3.1 Exemplo : Romênia
48 
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”)
49 
3.2 Exemplo do aspirador de pó.
50 
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.
51 
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.
52 
3.3 Formulação do problema- Espaço de estados
53 
3.3 Exemplo: Quebra cabeça de 8 peças
54 
3.3 Exemplo: Montagem por braço robótico
55 
3.3 Algoritmos de busca em árvore
56 
3.3 Exemplo de busca em árvore
57 
3.4 Exemplo de busca em árvore
58 
3.4 Exemplo de busca em árvore
59 
3.4 Implementação : Estados x Nós
60 
3.5 Implementação : Busca em Árvore Geral
61 
3.5 Estratégias de busca
62 
3.5 Estratégias de busca sem Informação (CEGA)
63 
3.5 Busca em Largura
64 
3.5 Busca em Largura
65 
3.5 Busca em Largura.
66 
3.5 Busca em Largura
67 
3.5 Propriedades da Busca em Largura
68 
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??: 
Tempo??: 
Espaço??: 
Ótima??: 
Sim, se custo de cada passo é positivo > є 
O(b[C*/є]) onde C* é o custo da solução ótima 
O(b[C*/є]) 
Sim
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 
D E 
C 
F G 
H I J K L 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 
D E 
C 
F G 
H I J K L 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 
D E 
C 
F G 
H I J K L 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 
D E 
C 
F G 
H I J K L 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 
D E 
C 
F G 
H I J K L 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 
D E 
C 
F G 
H I J K L 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 
D E 
C 
F G 
H I J K L 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 
D E 
C 
F G 
H I J K L 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 
D E 
C 
F G 
H I J K L 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 
D E 
C 
F G 
H I J K L 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 
D E 
C 
F G 
H I J K L M N O
80 
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 
D E 
C 
F G 
H I J K L M N O
81 
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??: 
Espaço??: 
Ótima??: 
O (bm) muito ruim no caso em que m > d 
- Para soluções densas pode ser mais rápida que 
busca em largura. 
O (b * m), i.e., linear 
Não.
82 
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.
83 
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 
(iterativo =/= interativo) 
fim.
84 
3.5 Busca por Aprofundamento Iterativo l = 0 
Limite = 0 
A A
85 
3.5 Busca por Aprofundamento Iterativo l = 1 
Limite = 1 
A 
B C 
A 
B C 
A 
B C 
A 
B C
86 
3.5 Busca por Aprofundamento Iterativo l = 2 
Limite = 2 
B 
A 
D 
C 
E F G 
B 
A 
D 
C 
E F G 
B 
A 
D 
C 
E F G 
B 
A 
D 
C 
E F G 
B 
A 
D 
C 
E F G 
B 
A 
D 
C 
E F G 
B 
A 
D 
C 
E F G 
B 
A 
D 
C 
E F G
87 
3.5 Busca por Aprofundamento Iterativo l = 3 
B 
A 
Limite = 3 
D 
C 
E F G 
H I J K L M N O
88 
3.5 Propriedades da BAI 
Completa??: 
Tempo??: 
Espaço??: 
Ótima??: 
Sim 
(d+1)*b0 + d*b1 + (d –1)*b2 + ... + bd = O (bd) 
O (b*d) 
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
89 
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
90 
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 
B C 
A .... 
... ... 
B 
A 
B 
A 
B
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) 
91 
fim-repita 
fim.
92 
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.
93 
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 
4l 3l 
Reservatório 
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?
94 
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}
95 
3.6 Recapitulando com o problema dos baldes. 
Passo 5 – Especificar um conjunto de regras descrevendo ações (operadores) 
disponíveis. 
1. (X,Y | X<4) ( (4,Y) = Encher o vasilhame de 4 litros 
2. (X,Y | Y<3) ( (X,3) = Encher o vasilhame de 3 litros 
3. (X,Y | X>0) ( (X-D,Y) = Despejar alguma água do vasilhame de 4 litros 
4. (X,Y| Y>0) ( (X,Y-I) = Despejar alguma água do vasilhame de 3 litros 
5. (X,Y| X>0) ( (0,Y) = Esvaziar o vasilhame de 4 litros 
6. (X,Y| Y>0) ( (X,0) = Esvaziar o vasilhame de 3 litros 
7. (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 
4 l 
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
96 
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. 
Ei = (0,0) 
Ea = (0,3) 
Eb = (3,0) 
En = (3,3) 
Ey = (4,2) 
Ek = (0,2) 
Em = (2,0) 
2 
9 
2 
7 
5 
9 
1 
Ei = (4,0) 
Ei = (X,X) 
3 
Ei = (X,X) 
Ei = (X,X) 
X 
X 
... 
...
97 
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.
98 
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
99 
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.
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. 
100 
$ 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*
101 
3.9 Busca Gulosa / Pela Melhor Escolha
102 
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.
103 
3.9 Exemplo de Busca Gulosa 
Passo 1
104 
3.9 Exemplo de Busca Gulosa 
Passo 2
105 
3.9 Exemplo de Busca Gulosa 
Passo 3
106 
3.9 Exemplo de Busca Gulosa 
Passo 3
107 
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.
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
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.9 Exemplo de Busca A*
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). 
115 
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
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
117 
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*
118 
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
119 
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)
120 
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
121 
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.
122 
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.
123 
3.10 Exemplo: Problema do caixeiro Viajante 
• Iniciar com qualquer caminho fechado e ir trocando pares
124 
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
125 
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.
126 
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
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 
127 
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
128 
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
129 
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.
130 
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.
131 
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
132 
3.10 Algoritmos genéticos
133 
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
134 
Problemas de Satisfação de Restrições 
% Problema de busca padrão: 
% Estado é uma caixa preta – qualquer estrutura de dados que 
suporte função sucessores, função heurística e teste de meta. 
% PSR: 
% 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
135 
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)}
136 
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
137 
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
138 
Problemas de Satisfação de Restrições 
% Variáveis discretas 
% Domínios finitos: 
% n variáveis, tamanho de domíniod ! O(dn) atribuição completa 
% exs., PSR Booleano, incl. Satisfação não booleana(NP-completo) 
% Domínios Infinitos: 
% 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.
139 
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
140 
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
141 
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.
142 
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. Sempre igual para todos os PSRs 
2. As soluções aparecem na profundidade n com n variáveis 
3. (Usar busca em profundidade 
4. 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
143 
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
144 
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
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 
Problemas de Satisfação de Restrições
149 
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?
150 
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)
151 
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.
152 
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
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 
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.
157 
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
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.
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 de X precisam ser 
rechecados.
161 
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 
de cada atribuição.
162 
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)
163 
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
164 
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)
165 
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.
Busca Competitiva 
Decisões ótimas 
Poda α-β 
Decisões imperfeitas em tempo real.
167 
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.
168 
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.
169 
Árvore de jogos
170 
Minimax 
% Perfeito para jogos determinísticos 
% Idéia : Escolher o movimento com o maior valor 
minimax
171 
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
172 
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.
173 
Poda α-β
174 
Poda α-β (exemplo)
175 
Poda α-β (exemplo)
176 
Poda α-β (exemplo)
177 
Poda α-β (exemplo)
178 
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)
179 
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.
180 
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
181 
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
182 
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.
183 
Busca com corte 
A busca com corte (MinimaxCutoff) é idêntica a minimax 
(MinimaxValue) exceto por : 
1. Terminal? Substituído por Corte?(Cutoff?) 
2. 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
184 
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.
185 
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.
186 
Outras questões 
% Jogos não determinísticos com busca expect-minimax. 
% Jogos de cartas 
% Jogos com múltiplos jogadores 
% Jogos com estratégias de cooperação para uma 
meta razoavelmente comum.
187 
Fim da parte I

Mais conteúdo relacionado

Mais procurados

Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Inteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos GenéticosInteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos GenéticosRafael Pinto
 
Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)val10z
 
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos EstombeloFundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos EstombeloRogerio P C do Nascimento
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1engenhariadecomputacao
 
Evolução e Desempenho de Computadores - Arquitetura e Organização de Computad...
Evolução e Desempenho de Computadores - Arquitetura e Organização de Computad...Evolução e Desempenho de Computadores - Arquitetura e Organização de Computad...
Evolução e Desempenho de Computadores - Arquitetura e Organização de Computad...Wellington Oliveira
 
Aula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosAula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosMessias Batista
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º BimestreMaterial Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º BimestreElaine Cecília Gatto
 
6025 ccom - filipe moleiro
6025   ccom - filipe moleiro6025   ccom - filipe moleiro
6025 ccom - filipe moleiroFatima Campos
 
Introdução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaIntrodução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaFernando Palma
 
Introdução à Computação Aula 03 - Introdução a Ciência da Computação (A compu...
Introdução à Computação Aula 03 - Introdução a Ciência da Computação (A compu...Introdução à Computação Aula 03 - Introdução a Ciência da Computação (A compu...
Introdução à Computação Aula 03 - Introdução a Ciência da Computação (A compu...Leinylson Fontinele
 
Introdução à Computação Aula 01 - Apresentação
Introdução à Computação  Aula 01 - ApresentaçãoIntrodução à Computação  Aula 01 - Apresentação
Introdução à Computação Aula 01 - ApresentaçãoLeinylson Fontinele
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturaisthaisedd
 

Mais procurados (20)

Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Inteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos GenéticosInteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos Genéticos
 
Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)
 
Aula 01 - Visão Geral da IA
Aula 01 - Visão Geral da IAAula 01 - Visão Geral da IA
Aula 01 - Visão Geral da IA
 
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos EstombeloFundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
 
Algoritmos: Variáveis e Constantes
Algoritmos: Variáveis e ConstantesAlgoritmos: Variáveis e Constantes
Algoritmos: Variáveis e Constantes
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Evolução e Desempenho de Computadores - Arquitetura e Organização de Computad...
Evolução e Desempenho de Computadores - Arquitetura e Organização de Computad...Evolução e Desempenho de Computadores - Arquitetura e Organização de Computad...
Evolução e Desempenho de Computadores - Arquitetura e Organização de Computad...
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Estatistica Basica para Saude Aula 1
Estatistica Basica para Saude Aula 1Estatistica Basica para Saude Aula 1
Estatistica Basica para Saude Aula 1
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e LógicosAula 03.1 - Operadores Relacionais e Lógicos
Aula 03.1 - Operadores Relacionais e Lógicos
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º BimestreMaterial Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
 
6025 ccom - filipe moleiro
6025   ccom - filipe moleiro6025   ccom - filipe moleiro
6025 ccom - filipe moleiro
 
Introdução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaIntrodução à Aprendizagem de Máquina
Introdução à Aprendizagem de Máquina
 
Introdução à Computação Aula 03 - Introdução a Ciência da Computação (A compu...
Introdução à Computação Aula 03 - Introdução a Ciência da Computação (A compu...Introdução à Computação Aula 03 - Introdução a Ciência da Computação (A compu...
Introdução à Computação Aula 03 - Introdução a Ciência da Computação (A compu...
 
Introdução à Computação Aula 01 - Apresentação
Introdução à Computação  Aula 01 - ApresentaçãoIntrodução à Computação  Aula 01 - Apresentação
Introdução à Computação Aula 01 - Apresentação
 
Aula 02 - Agentes Inteligentes
Aula 02 - Agentes InteligentesAula 02 - Agentes Inteligentes
Aula 02 - Agentes Inteligentes
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 

Semelhante a Inteligência Artificial: Visão Geral do Curso

Capítulo 1 Inteligência Artificial RUSSELL
Capítulo 1 Inteligência Artificial RUSSELLCapítulo 1 Inteligência Artificial RUSSELL
Capítulo 1 Inteligência Artificial RUSSELLWellington Oliveira
 
Ia aula1
Ia aula1Ia aula1
Ia aula1eneoron
 
Inteligência Artificial Conceitos e Aplicações.pdf
Inteligência Artificial Conceitos e Aplicações.pdfInteligência Artificial Conceitos e Aplicações.pdf
Inteligência Artificial Conceitos e Aplicações.pdfAndrLyra5
 
Inteligência Artificial-Ficção Científica e Realidade
Inteligência Artificial-Ficção Científica e RealidadeInteligência Artificial-Ficção Científica e Realidade
Inteligência Artificial-Ficção Científica e RealidadeCláudio Luís Vieira Oliveira
 
[José Ahirton Lopes] Inteligência Artificial 101
[José Ahirton Lopes] Inteligência Artificial 101[José Ahirton Lopes] Inteligência Artificial 101
[José Ahirton Lopes] Inteligência Artificial 101Ahirton Lopes
 
Fundamentos De Ia E Sistemas Baseados em Conhecimento
Fundamentos De Ia E Sistemas Baseados em ConhecimentoFundamentos De Ia E Sistemas Baseados em Conhecimento
Fundamentos De Ia E Sistemas Baseados em Conhecimentozehzinho
 
ApresentaçãoIA.pdf
ApresentaçãoIA.pdfApresentaçãoIA.pdf
ApresentaçãoIA.pdfssuser638955
 
VISAO GERAL INTELIGENCIA ARTIFICIAL.pdf
VISAO GERAL INTELIGENCIA ARTIFICIAL.pdfVISAO GERAL INTELIGENCIA ARTIFICIAL.pdf
VISAO GERAL INTELIGENCIA ARTIFICIAL.pdfSilvioMattos3
 
INTELIGENCIA ARTIFICIAL.pdf
INTELIGENCIA ARTIFICIAL.pdfINTELIGENCIA ARTIFICIAL.pdf
INTELIGENCIA ARTIFICIAL.pdfSilvioMattos3
 
Inteligência Artificial e Oportunidades.pptx
Inteligência Artificial e Oportunidades.pptxInteligência Artificial e Oportunidades.pptx
Inteligência Artificial e Oportunidades.pptxAlexandreDeOliveira64
 
Fundamentos De Ia E SbCs
Fundamentos De Ia E SbCsFundamentos De Ia E SbCs
Fundamentos De Ia E SbCszehzinho
 
Sistemas de Informações - Aula 11: Gestão do Conhecimento, Inteligência Artif...
Sistemas de Informações - Aula 11: Gestão do Conhecimento, Inteligência Artif...Sistemas de Informações - Aula 11: Gestão do Conhecimento, Inteligência Artif...
Sistemas de Informações - Aula 11: Gestão do Conhecimento, Inteligência Artif...Marcus Araújo
 
iaum.PPT
iaum.PPTiaum.PPT
iaum.PPTBinho36
 
Introdução a IA para conhecimentos gerais
Introdução a IA para conhecimentos geraisIntrodução a IA para conhecimentos gerais
Introdução a IA para conhecimentos geraisfabioprass1
 
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...Igenesis - Fábrica de Inovação
 
Aula 1 - Inteligência Artificial
Aula 1 - Inteligência ArtificialAula 1 - Inteligência Artificial
Aula 1 - Inteligência ArtificialThaís Gaudencio
 

Semelhante a Inteligência Artificial: Visão Geral do Curso (20)

Capítulo 1 Inteligência Artificial RUSSELL
Capítulo 1 Inteligência Artificial RUSSELLCapítulo 1 Inteligência Artificial RUSSELL
Capítulo 1 Inteligência Artificial RUSSELL
 
Ia aula1
Ia aula1Ia aula1
Ia aula1
 
CAP1_intro.ppt
CAP1_intro.pptCAP1_intro.ppt
CAP1_intro.ppt
 
Inteligência Artificial Conceitos e Aplicações.pdf
Inteligência Artificial Conceitos e Aplicações.pdfInteligência Artificial Conceitos e Aplicações.pdf
Inteligência Artificial Conceitos e Aplicações.pdf
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificial
 
Ia labidi p1
Ia labidi p1Ia labidi p1
Ia labidi p1
 
Inteligência Artificial-Ficção Científica e Realidade
Inteligência Artificial-Ficção Científica e RealidadeInteligência Artificial-Ficção Científica e Realidade
Inteligência Artificial-Ficção Científica e Realidade
 
[José Ahirton Lopes] Inteligência Artificial 101
[José Ahirton Lopes] Inteligência Artificial 101[José Ahirton Lopes] Inteligência Artificial 101
[José Ahirton Lopes] Inteligência Artificial 101
 
Fundamentos De Ia E Sistemas Baseados em Conhecimento
Fundamentos De Ia E Sistemas Baseados em ConhecimentoFundamentos De Ia E Sistemas Baseados em Conhecimento
Fundamentos De Ia E Sistemas Baseados em Conhecimento
 
ApresentaçãoIA.pdf
ApresentaçãoIA.pdfApresentaçãoIA.pdf
ApresentaçãoIA.pdf
 
VISAO GERAL INTELIGENCIA ARTIFICIAL.pdf
VISAO GERAL INTELIGENCIA ARTIFICIAL.pdfVISAO GERAL INTELIGENCIA ARTIFICIAL.pdf
VISAO GERAL INTELIGENCIA ARTIFICIAL.pdf
 
INTELIGENCIA ARTIFICIAL.pdf
INTELIGENCIA ARTIFICIAL.pdfINTELIGENCIA ARTIFICIAL.pdf
INTELIGENCIA ARTIFICIAL.pdf
 
Inteligência Artificial e Oportunidades.pptx
Inteligência Artificial e Oportunidades.pptxInteligência Artificial e Oportunidades.pptx
Inteligência Artificial e Oportunidades.pptx
 
Fundamentos De Ia E SbCs
Fundamentos De Ia E SbCsFundamentos De Ia E SbCs
Fundamentos De Ia E SbCs
 
Sistemas de Informações - Aula 11: Gestão do Conhecimento, Inteligência Artif...
Sistemas de Informações - Aula 11: Gestão do Conhecimento, Inteligência Artif...Sistemas de Informações - Aula 11: Gestão do Conhecimento, Inteligência Artif...
Sistemas de Informações - Aula 11: Gestão do Conhecimento, Inteligência Artif...
 
iaum.PPT
iaum.PPTiaum.PPT
iaum.PPT
 
iaum.PPT
iaum.PPTiaum.PPT
iaum.PPT
 
Introdução a IA para conhecimentos gerais
Introdução a IA para conhecimentos geraisIntrodução a IA para conhecimentos gerais
Introdução a IA para conhecimentos gerais
 
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...
Introdução à Inteligência Artificial Genérica (AGI – Artificial General Intel...
 
Aula 1 - Inteligência Artificial
Aula 1 - Inteligência ArtificialAula 1 - Inteligência Artificial
Aula 1 - Inteligência Artificial
 

Mais de ronaldo ramos

javascript_funcional.pdf
javascript_funcional.pdfjavascript_funcional.pdf
javascript_funcional.pdfronaldo ramos
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdfronaldo ramos
 
paradigmas_de_programacao_2_X.pdf
paradigmas_de_programacao_2_X.pdfparadigmas_de_programacao_2_X.pdf
paradigmas_de_programacao_2_X.pdfronaldo ramos
 
paradigmas_de_programacao_1_X.pdf
paradigmas_de_programacao_1_X.pdfparadigmas_de_programacao_1_X.pdf
paradigmas_de_programacao_1_X.pdfronaldo ramos
 
paradigmas_de_programacao.pdf
paradigmas_de_programacao.pdfparadigmas_de_programacao.pdf
paradigmas_de_programacao.pdfronaldo ramos
 
paradigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdfparadigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdfronaldo ramos
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdfronaldo ramos
 
48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdfronaldo ramos
 
47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdfronaldo ramos
 

Mais de ronaldo ramos (20)

03_lisp.pdf
03_lisp.pdf03_lisp.pdf
03_lisp.pdf
 
02_lisp.pdf
02_lisp.pdf02_lisp.pdf
02_lisp.pdf
 
01_lisp.pdf
01_lisp.pdf01_lisp.pdf
01_lisp.pdf
 
javascript_funcional.pdf
javascript_funcional.pdfjavascript_funcional.pdf
javascript_funcional.pdf
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
 
_001_introducao.pdf
_001_introducao.pdf_001_introducao.pdf
_001_introducao.pdf
 
paradigmas_de_programacao_2_X.pdf
paradigmas_de_programacao_2_X.pdfparadigmas_de_programacao_2_X.pdf
paradigmas_de_programacao_2_X.pdf
 
paradigmas_de_programacao_1_X.pdf
paradigmas_de_programacao_1_X.pdfparadigmas_de_programacao_1_X.pdf
paradigmas_de_programacao_1_X.pdf
 
paradigmas_de_programacao.pdf
paradigmas_de_programacao.pdfparadigmas_de_programacao.pdf
paradigmas_de_programacao.pdf
 
paradigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdfparadigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdf
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
 
40-aula40.pdf
40-aula40.pdf40-aula40.pdf
40-aula40.pdf
 
43-aula43.pdf
43-aula43.pdf43-aula43.pdf
43-aula43.pdf
 
48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf
 
47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf
 
46-aula46-fuzzy.pdf
46-aula46-fuzzy.pdf46-aula46-fuzzy.pdf
46-aula46-fuzzy.pdf
 
42-aula42.pdf
42-aula42.pdf42-aula42.pdf
42-aula42.pdf
 
39-aula39.pdf
39-aula39.pdf39-aula39.pdf
39-aula39.pdf
 
38-aula38.pdf
38-aula38.pdf38-aula38.pdf
38-aula38.pdf
 
36-aula36.pdf
36-aula36.pdf36-aula36.pdf
36-aula36.pdf
 

Último

Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Caixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarCaixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarIedaGoethe
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 

Último (20)

Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Caixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarCaixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogar
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 

Inteligência Artificial: Visão Geral do Curso

  • 1. 1 Inteligência Artificial Ronaldo F. Ramos, Dr. ronaldo@cefet-ce.br Adaptado de : aima.cs.berkeley.edu
  • 2. 2 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
  • 3. 3 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. McGraw- Hill, 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
  • 4. 4 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
  • 5. 5 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. Addison- Wesley, 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.
  • 6. 6 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
  • 7. 7 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)
  • 8. 8 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)
  • 9. 9 1. Inteligência Artificial ! What Hell is That (Que diabo é isso)? ! Inteligência e racionalidade ! Histórico ! Escopo ! Paradigmas
  • 10. 10 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)
  • 11. 11 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)
  • 12. 12 1.2 Racionalidade? Um sistema é racional se faz “tudo certo” com os dados que tem. Nem sempre os seres humanos Inteligente Racional são racionais!!! (Russel) Racionalidade = Inteligência Ideal.
  • 13. " 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. Probs. Não pode ser reproduzido ou analisado matematicamente. 13 1.3 Agindo de forma humana Teste de Turing (1950) (Computer Machinery and Intelligence) Máquinas podem pensar e agir de forma inteligente? Seis disciplinas da IA!!!!.
  • 14. 14 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
  • 15. 15 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.
  • 16. 16 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?
  • 17. 17 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)
  • 18. 18 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.
  • 19. 19 1.9 Pré-História Matemática Lógica e raciocínio, a mente como um sistema físico, fundamentos de linguagem, aprendizagem e racionalidade. Filosofia 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.
  • 20. 20 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
  • 21. 21 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
  • 22. 22 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.
  • 23. 23 2. Agentes Inteligentes ! Agente e Ambiente ! Racionalidade ! Medida de desempenho, agente, ambiente, efetuador, sensor ! Tipos de ambientes ! Tipos de agentes
  • 24. 24 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
  • 25. 25 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
  • 26. 26 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) DIREITA (A,LIMPO) (A,LIMPO), (A,LIMPO) (A,SUJO) ASPIRAR
  • 27. 27 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; }
  • 28. 28 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.
  • 29. 29 2.3 Método PEAS – Ambiente de tarefas (E) Ambiente (P) Performance (Medida de desempenho) (A) Efetuadores(Atuadores) (S) Sensores
  • 30. 30 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.
  • 31. 31 2.3 (Programação multi agente - Método das vogais) (A) Agente (E) Ambiente (I) Interações (O) Organização
  • 32. 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) 32 2.4 Tipos de ambientes De agente simples ou multiagente. Competitivo ou cooperativo.
  • 33. 33 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.
  • 34. 34 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
  • 35. 35 2.5.1 Agentes reativos simples
  • 36. 36 2.5.2 Agentes reativos com estado
  • 37. 37 2.5.3 Agentes baseados em objetivos
  • 38. 38 2.5.4 Agentes baseados em utilidade
  • 39. 39 2.5.5 Agentes com aprendizagem
  • 40. 40 2.5.6 Uma taxonomia global de agente inteligente + + + + Inteligência coletiva Ambiente (Percepção) Recursos (Autonomia) Comunicação Com seus pares Tendências (Metas a realizar) + + Serviços Reprodução Reatividade Inteligência = Agente Inteligente + = Agente Reativo + Mobilidade = Agente Móvel SMA – Sistemas Multi Agente
  • 41. 41 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.
  • 42. 42 2.5.7 Agentes Inteligentes - Aplicações % Agentes locais % Assistentes pessoais % Conselheiros pessoais % Agendadores (Planejadores) % Ferramentas de diagnóstico e Solução de problemas % Agentes em rede % Assistentes pessoais % Caixa de correio inteligente % Knowbot and Softbots % Agentes baseados em DAI % Conhecimento distribuído % Agentes Móveis % Telecomunicacões % Comunicação pessoal % Gerenciamento de redes % Serviços sob demanda % Mercado eletrônico
  • 43. 43 Exercício Implementar em linguagem qualquer uma forma elementar Desses agentes.
  • 44. 44 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
  • 45. 45 3.1 Agentes para solução de problemas
  • 46. 46 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
  • 47. 47 3.1 Exemplo : Romênia
  • 48. 48 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”)
  • 49. 49 3.2 Exemplo do aspirador de pó.
  • 50. 50 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.
  • 51. 51 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.
  • 52. 52 3.3 Formulação do problema- Espaço de estados
  • 53. 53 3.3 Exemplo: Quebra cabeça de 8 peças
  • 54. 54 3.3 Exemplo: Montagem por braço robótico
  • 55. 55 3.3 Algoritmos de busca em árvore
  • 56. 56 3.3 Exemplo de busca em árvore
  • 57. 57 3.4 Exemplo de busca em árvore
  • 58. 58 3.4 Exemplo de busca em árvore
  • 59. 59 3.4 Implementação : Estados x Nós
  • 60. 60 3.5 Implementação : Busca em Árvore Geral
  • 62. 62 3.5 Estratégias de busca sem Informação (CEGA)
  • 63. 63 3.5 Busca em Largura
  • 64. 64 3.5 Busca em Largura
  • 65. 65 3.5 Busca em Largura.
  • 66. 66 3.5 Busca em Largura
  • 67. 67 3.5 Propriedades da Busca em Largura
  • 68. 68 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??: Tempo??: Espaço??: Ótima??: Sim, se custo de cada passo é positivo > є O(b[C*/є]) onde C* é o custo da solução ótima O(b[C*/є]) Sim
  • 69. 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 D E C F G H I J K L M N O
  • 70. 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 D E C F G H I J K L M N O
  • 71. 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 D E C F G H I J K L M N O
  • 72. 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 D E C F G H I J K L M N O
  • 73. 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 D E C F G H I J K L M N O
  • 74. 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 D E C F G H I J K L M N O
  • 75. 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 D E C F G H I J K L M N O
  • 76. 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 D E C F G H I J K L M N O
  • 77. 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 D E C F G H I J K L M N O
  • 78. 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 D E C F G H I J K L M N O
  • 79. 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 D E C F G H I J K L M N O
  • 80. 80 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 D E C F G H I J K L M N O
  • 81. 81 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??: Espaço??: Ótima??: O (bm) muito ruim no caso em que m > d - Para soluções densas pode ser mais rápida que busca em largura. O (b * m), i.e., linear Não.
  • 82. 82 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.
  • 83. 83 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 (iterativo =/= interativo) fim.
  • 84. 84 3.5 Busca por Aprofundamento Iterativo l = 0 Limite = 0 A A
  • 85. 85 3.5 Busca por Aprofundamento Iterativo l = 1 Limite = 1 A B C A B C A B C A B C
  • 86. 86 3.5 Busca por Aprofundamento Iterativo l = 2 Limite = 2 B A D C E F G B A D C E F G B A D C E F G B A D C E F G B A D C E F G B A D C E F G B A D C E F G B A D C E F G
  • 87. 87 3.5 Busca por Aprofundamento Iterativo l = 3 B A Limite = 3 D C E F G H I J K L M N O
  • 88. 88 3.5 Propriedades da BAI Completa??: Tempo??: Espaço??: Ótima??: Sim (d+1)*b0 + d*b1 + (d –1)*b2 + ... + bd = O (bd) O (b*d) 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
  • 89. 89 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
  • 90. 90 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 B C A .... ... ... B A B A B
  • 91. 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) 91 fim-repita fim.
  • 92. 92 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.
  • 93. 93 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 4l 3l Reservatório 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?
  • 94. 94 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}
  • 95. 95 3.6 Recapitulando com o problema dos baldes. Passo 5 – Especificar um conjunto de regras descrevendo ações (operadores) disponíveis. 1. (X,Y | X<4) ( (4,Y) = Encher o vasilhame de 4 litros 2. (X,Y | Y<3) ( (X,3) = Encher o vasilhame de 3 litros 3. (X,Y | X>0) ( (X-D,Y) = Despejar alguma água do vasilhame de 4 litros 4. (X,Y| Y>0) ( (X,Y-I) = Despejar alguma água do vasilhame de 3 litros 5. (X,Y| X>0) ( (0,Y) = Esvaziar o vasilhame de 4 litros 6. (X,Y| Y>0) ( (X,0) = Esvaziar o vasilhame de 3 litros 7. (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 4 l 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
  • 96. 96 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. Ei = (0,0) Ea = (0,3) Eb = (3,0) En = (3,3) Ey = (4,2) Ek = (0,2) Em = (2,0) 2 9 2 7 5 9 1 Ei = (4,0) Ei = (X,X) 3 Ei = (X,X) Ei = (X,X) X X ... ...
  • 97. 97 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.
  • 98. 98 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
  • 99. 99 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.
  • 100. 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. 100 $ 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*
  • 101. 101 3.9 Busca Gulosa / Pela Melhor Escolha
  • 102. 102 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.
  • 103. 103 3.9 Exemplo de Busca Gulosa Passo 1
  • 104. 104 3.9 Exemplo de Busca Gulosa Passo 2
  • 105. 105 3.9 Exemplo de Busca Gulosa Passo 3
  • 106. 106 3.9 Exemplo de Busca Gulosa Passo 3
  • 107. 107 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.
  • 108. 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
  • 109. 109 3.9 Exemplo de Busca A*
  • 110. 110 3.9 Exemplo de Busca A*
  • 111. 111 3.9 Exemplo de Busca A*
  • 112. 112 3.9 Exemplo de Busca A*
  • 113. 113 3.9 Exemplo de Busca A*
  • 114. 114 3.9 Exemplo de Busca A*
  • 115. 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). 115 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
  • 116. 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
  • 117. 117 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*
  • 118. 118 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
  • 119. 119 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)
  • 120. 120 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
  • 121. 121 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.
  • 122. 122 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.
  • 123. 123 3.10 Exemplo: Problema do caixeiro Viajante • Iniciar com qualquer caminho fechado e ir trocando pares
  • 124. 124 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
  • 125. 125 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.
  • 126. 126 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
  • 127. 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 127 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
  • 128. 128 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
  • 129. 129 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.
  • 130. 130 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.
  • 131. 131 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
  • 132. 132 3.10 Algoritmos genéticos
  • 133. 133 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
  • 134. 134 Problemas de Satisfação de Restrições % Problema de busca padrão: % Estado é uma caixa preta – qualquer estrutura de dados que suporte função sucessores, função heurística e teste de meta. % PSR: % 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
  • 135. 135 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)}
  • 136. 136 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
  • 137. 137 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
  • 138. 138 Problemas de Satisfação de Restrições % Variáveis discretas % Domínios finitos: % n variáveis, tamanho de domíniod ! O(dn) atribuição completa % exs., PSR Booleano, incl. Satisfação não booleana(NP-completo) % Domínios Infinitos: % 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.
  • 139. 139 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
  • 140. 140 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
  • 141. 141 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.
  • 142. 142 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. Sempre igual para todos os PSRs 2. As soluções aparecem na profundidade n com n variáveis 3. (Usar busca em profundidade 4. 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
  • 143. 143 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
  • 144. 144 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
  • 145. 145 Problemas de Satisfação de Restrições
  • 146. 146 Problemas de Satisfação de Restrições
  • 147. 147 Problemas de Satisfação de Restrições
  • 148. 148 Problemas de Satisfação de Restrições
  • 149. 149 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?
  • 150. 150 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)
  • 151. 151 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.
  • 152. 152 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
  • 153. 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. 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. 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. 156 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.
  • 157. 157 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
  • 158. 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. 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.
  • 160. 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 de X precisam ser rechecados.
  • 161. 161 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 de cada atribuição.
  • 162. 162 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)
  • 163. 163 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
  • 164. 164 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)
  • 165. 165 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.
  • 166. Busca Competitiva Decisões ótimas Poda α-β Decisões imperfeitas em tempo real.
  • 167. 167 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.
  • 168. 168 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.
  • 169. 169 Árvore de jogos
  • 170. 170 Minimax % Perfeito para jogos determinísticos % Idéia : Escolher o movimento com o maior valor minimax
  • 171. 171 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
  • 172. 172 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.
  • 174. 174 Poda α-β (exemplo)
  • 175. 175 Poda α-β (exemplo)
  • 176. 176 Poda α-β (exemplo)
  • 177. 177 Poda α-β (exemplo)
  • 178. 178 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)
  • 179. 179 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.
  • 180. 180 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
  • 181. 181 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
  • 182. 182 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.
  • 183. 183 Busca com corte A busca com corte (MinimaxCutoff) é idêntica a minimax (MinimaxValue) exceto por : 1. Terminal? Substituído por Corte?(Cutoff?) 2. 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
  • 184. 184 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.
  • 185. 185 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.
  • 186. 186 Outras questões % Jogos não determinísticos com busca expect-minimax. % Jogos de cartas % Jogos com múltiplos jogadores % Jogos com estratégias de cooperação para uma meta razoavelmente comum.
  • 187. 187 Fim da parte I