curso inteligência artificial - parte 1 -

187
1 Inteligência Artificial Ronaldo F. Ramos, Dr. [email protected] Adaptado de : aima.cs.berkeley.edu

Upload: ronaldo-ramos

Post on 01-Jul-2015

1.637 views

Category:

Education


5 download

DESCRIPTION

Curso de Inteligência Artificial - Parte 1-

TRANSCRIPT

Page 1: Curso Inteligência Artificial - Parte 1 -

1

Inteligência Artificial Ronaldo F. Ramos, Dr. [email protected]

Adaptado de : aima.cs.berkeley.edu

Page 2: Curso Inteligência Artificial - Parte 1 -

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

Page 3: Curso Inteligência Artificial - Parte 1 -

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

Page 4: Curso Inteligência Artificial - Parte 1 -

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

Page 5: Curso Inteligência Artificial - Parte 1 -

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.

Page 6: Curso Inteligência Artificial - Parte 1 -

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

Page 7: Curso Inteligência Artificial - Parte 1 -

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)

Page 8: Curso Inteligência Artificial - Parte 1 -

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)

Page 9: Curso Inteligência Artificial - Parte 1 -

9

!  What Hell is That (Que diabo é isso)?

!  Inteligência e racionalidade

!  Histórico

!  Escopo

!  Paradigmas

1. Inteligência Artificial

Page 10: Curso Inteligência Artificial - Parte 1 -

10

1.1 Inteligência Artificial – What hell is that?(Diabéisso? )

Sistemas que pensam como seres humanos

Sistemas que pensam racionalmente

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)

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)

Page 11: Curso Inteligência Artificial - Parte 1 -

11

1.1 Inteligência Artificial – What hell is that?( Diabéisso? )

Sistemas que agem como seres humanos

Sistemas que agem racionalmente

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)

A inteligência computacional é o estudo do projeto de agentes inteligentes (Poole)

Page 12: Curso Inteligência Artificial - Parte 1 -

12

Inteligente Racional Nem sempre os seres humanos são racionais!!!

1.2 Racionalidade?

Um sistema é racional se faz “tudo certo” com os dados que tem. (Russel)

Racionalidade = Inteligência Ideal.

Page 13: Curso Inteligência Artificial - Parte 1 -

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!!!!.

"  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.

Page 14: Curso Inteligência Artificial - Parte 1 -

14

1.3 Agindo de forma humana (cont.)

#  Processamento de linguagem natural #  Representação do conhecimento #  Raciocínio automatizado #  Aprendizado de máquina #  Visão de computador #  Robótica

Seis disciplinas da IA!!!!.

Page 15: Curso Inteligência Artificial - Parte 1 -

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.

Page 16: Curso Inteligência Artificial - Parte 1 -

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?

Page 17: Curso Inteligência Artificial - Parte 1 -

17

1.6 Agindo Racionalmente

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)

Comportamento Racional Fazer a Coisa Certa (Otimização)

[Nem sempre envolve o ato de pensar] (Ação reflexiva, por exemplo)

Page 18: Curso Inteligência Artificial - Parte 1 -

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.

Page 19: Curso Inteligência Artificial - Parte 1 -

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

Teoria da decisão Economia

Linguística Gramática e representação do conhecimento

Neurociências Atividade mental

Estabilidade de sistemas e sistemas ótimos. Teoria do Controle

Page 20: Curso Inteligência Artificial - Parte 1 -

20

1.10 História

•  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)

•  1980s – Engenharia do conhecimento •  1990s – Sistemas Híbridos – Inteligência Computacional - Agentes

•  1970s – MYCIN – PROSPECTOR - DENDRAL

•  2000s – Inteligência Ubíqua/Embarcada/Pervasiva

•  1943 – McCulloch & Pitts – Modelo matemático do neurônio

Page 21: Curso Inteligência Artificial - Parte 1 -

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

Page 22: Curso Inteligência Artificial - Parte 1 -

22

1.12. IA - Paradigmas

Paradigma Simbólico x Paradigma Conexionista

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.

Suposições Subjacentes

Page 23: Curso Inteligência Artificial - Parte 1 -

23

2. Agentes Inteligentes

!  Agente e Ambiente

!  Racionalidade

!  Medida de desempenho, agente, ambiente, efetuador, sensor

!  Tipos de ambientes

!  Tipos de agentes

Page 24: Curso Inteligência Artificial - Parte 1 -

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:

O programa agente “roda” sobre uma estrutura física para produzir f

f : P* ! A

Page 25: Curso Inteligência Artificial - Parte 1 -

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

Page 26: Curso Inteligência Artificial - Parte 1 -

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) (A,LIMPO)

DIREITA

(A,LIMPO), (A,LIMPO) (A,SUJO)

ASPIRAR

Page 27: Curso Inteligência Artificial - Parte 1 -

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; }

Page 28: Curso Inteligência Artificial - Parte 1 -

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.

Page 29: Curso Inteligência Artificial - Parte 1 -

29

2.3 Método PEAS – Ambiente de tarefas

(E) Ambiente

(P)  Performance (Medida de desempenho)

(A) Efetuadores(Atuadores)

(S) Sensores

Page 30: Curso Inteligência Artificial - Parte 1 -

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.

Page 31: Curso Inteligência Artificial - Parte 1 -

31

2.3 (Programação multi agente - Método das vogais)

(A) Agente

(E) Ambiente

(I) Interações

(O) Organização

Page 32: Curso Inteligência Artificial - Parte 1 -

32

2.4 Tipos de ambientes

De agente simples ou multiagente.

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)

Competitivo ou cooperativo.

Page 33: Curso Inteligência Artificial - Parte 1 -

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.

Page 34: Curso Inteligência Artificial - Parte 1 -

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

Page 35: Curso Inteligência Artificial - Parte 1 -

35

2.5.1 Agentes reativos simples

Page 36: Curso Inteligência Artificial - Parte 1 -

36

2.5.2 Agentes reativos com estado

Page 37: Curso Inteligência Artificial - Parte 1 -

37

2.5.3 Agentes baseados em objetivos

Page 38: Curso Inteligência Artificial - Parte 1 -

38

2.5.4 Agentes baseados em utilidade

Page 39: Curso Inteligência Artificial - Parte 1 -

39

2.5.5 Agentes com aprendizagem

Page 40: Curso Inteligência Artificial - Parte 1 -

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

Page 41: Curso Inteligência Artificial - Parte 1 -

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.

Page 42: Curso Inteligência Artificial - Parte 1 -

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

Page 43: Curso Inteligência Artificial - Parte 1 -

43

Exercício

Implementar em linguagem qualquer uma forma elementar Desses agentes.

Page 44: Curso Inteligência Artificial - Parte 1 -

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

Page 45: Curso Inteligência Artificial - Parte 1 -

45

3.1 Agentes para solução de problemas

Page 46: Curso Inteligência Artificial - Parte 1 -

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

Page 47: Curso Inteligência Artificial - Parte 1 -

47

3.1 Exemplo : Romênia

Page 48: Curso Inteligência Artificial - Parte 1 -

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”)

Page 49: Curso Inteligência Artificial - Parte 1 -

49

3.2 Exemplo do aspirador de pó.

Page 50: Curso Inteligência Artificial - Parte 1 -

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.

Page 51: Curso Inteligência Artificial - Parte 1 -

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.

Page 52: Curso Inteligência Artificial - Parte 1 -

52

3.3 Formulação do problema- Espaço de estados

Page 53: Curso Inteligência Artificial - Parte 1 -

53

3.3 Exemplo: Quebra cabeça de 8 peças

Page 54: Curso Inteligência Artificial - Parte 1 -

54

3.3 Exemplo: Montagem por braço robótico

Page 55: Curso Inteligência Artificial - Parte 1 -

55

3.3 Algoritmos de busca em árvore

Page 56: Curso Inteligência Artificial - Parte 1 -

56

3.3 Exemplo de busca em árvore

Page 57: Curso Inteligência Artificial - Parte 1 -

57

3.4 Exemplo de busca em árvore

Page 58: Curso Inteligência Artificial - Parte 1 -

58

3.4 Exemplo de busca em árvore

Page 59: Curso Inteligência Artificial - Parte 1 -

59

3.4 Implementação : Estados x Nós

Page 60: Curso Inteligência Artificial - Parte 1 -

60

3.5 Implementação : Busca em Árvore Geral

Page 61: Curso Inteligência Artificial - Parte 1 -

61

3.5 Estratégias de busca

Page 62: Curso Inteligência Artificial - Parte 1 -

62

3.5 Estratégias de busca sem Informação (CEGA)

Page 63: Curso Inteligência Artificial - Parte 1 -

63

3.5 Busca em Largura

Page 64: Curso Inteligência Artificial - Parte 1 -

64

3.5 Busca em Largura

Page 65: Curso Inteligência Artificial - Parte 1 -

65

3.5 Busca em Largura.

Page 66: Curso Inteligência Artificial - Parte 1 -

66

3.5 Busca em Largura

Page 67: Curso Inteligência Artificial - Parte 1 -

67

3.5 Propriedades da Busca em Largura

Page 68: Curso Inteligência Artificial - Parte 1 -

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

Page 69: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 70: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 71: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 72: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 73: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 74: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 75: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 76: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 77: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 78: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 79: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 80: Curso Inteligência Artificial - Parte 1 -

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

H I J K L M N O

C

F G

Page 81: Curso Inteligência Artificial - Parte 1 -

81

3.5 Propriedades da Busca em Profundidade

Completa??:

Tempo??:

Espaço??:

Ótima??:

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.

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.

Page 82: Curso Inteligência Artificial - Parte 1 -

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.

Page 83: Curso Inteligência Artificial - Parte 1 -

83

3.5 Busca por Aprofundamento Iterativo *

(iterativo =/= interativo)

função BUSCA-POR-APROFUNDAMENTO-ITERATIVO(problema) retorna solução ou falha entradas: problemas, um problema para profundidade ' 0 até infinito faça resultado ' BUSCA-EM-PROFUNDIDADE-LIMITADA(problema,profundidade) se resultado =/= corte então retornar resultado fim.

Page 84: Curso Inteligência Artificial - Parte 1 -

84

3.5 Busca por Aprofundamento Iterativo l = 0

Limite = 0 A A

Page 85: Curso Inteligência Artificial - Parte 1 -

85

3.5 Busca por Aprofundamento Iterativo l = 1

Limite = 1

A

B C

A

B C

A

B C

A

B C

Page 86: Curso Inteligência Artificial - Parte 1 -

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

Page 87: Curso Inteligência Artificial - Parte 1 -

87

3.5 Busca por Aprofundamento Iterativo l = 3

B

A

D

C

E F G

L M O N H I J K

Limite = 3

Page 88: Curso Inteligência Artificial - Parte 1 -

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

Page 89: Curso Inteligência Artificial - Parte 1 -

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

Page 90: Curso Inteligência Artificial - Parte 1 -

90

3.5 Controle de estados repetidos

A

B C

A .... ... ...

B

Repetição de estados pode levar um problema linear a uma explosão combinatória (geração exponencial de nós).

A

B

A

B

Page 91: Curso Inteligência Artificial - Parte 1 -

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)

fim-repita fim.

Page 92: Curso Inteligência Artificial - Parte 1 -

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.

Page 93: Curso Inteligência Artificial - Parte 1 -

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?

Page 94: Curso Inteligência Artificial - Parte 1 -

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}

Page 95: Curso Inteligência Artificial - Parte 1 -

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

Page 96: Curso Inteligência Artificial - Parte 1 -

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

Ei = (4,0)

1

Ei = (X,X) 3

Ei = (X,X)

Ei = (X,X)

X

X

...

...

Page 97: Curso Inteligência Artificial - Parte 1 -

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.

Page 98: Curso Inteligência Artificial - Parte 1 -

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

Page 99: Curso Inteligência Artificial - Parte 1 -

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.

Page 100: Curso Inteligência Artificial - Parte 1 -

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. $ 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*

Page 101: Curso Inteligência Artificial - Parte 1 -

101

3.9 Busca Gulosa / Pela Melhor Escolha

Page 102: Curso Inteligência Artificial - Parte 1 -

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.

Page 103: Curso Inteligência Artificial - Parte 1 -

103

3.9 Exemplo de Busca Gulosa

Passo 1

Page 104: Curso Inteligência Artificial - Parte 1 -

104

3.9 Exemplo de Busca Gulosa

Passo 2

Page 105: Curso Inteligência Artificial - Parte 1 -

105

3.9 Exemplo de Busca Gulosa

Passo 3

Page 106: Curso Inteligência Artificial - Parte 1 -

106

3.9 Exemplo de Busca Gulosa

Passo 3

Page 107: Curso Inteligência Artificial - Parte 1 -

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.

Page 108: Curso Inteligência Artificial - Parte 1 -

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.

Page 109: Curso Inteligência Artificial - Parte 1 -

109

3.9 Exemplo de Busca A*

Page 110: Curso Inteligência Artificial - Parte 1 -

110

3.9 Exemplo de Busca A*

Page 111: Curso Inteligência Artificial - Parte 1 -

111

3.9 Exemplo de Busca A*

Page 112: Curso Inteligência Artificial - Parte 1 -

112

3.9 Exemplo de Busca A*

Page 113: Curso Inteligência Artificial - Parte 1 -

113

3.9 Exemplo de Busca A*

Page 114: Curso Inteligência Artificial - Parte 1 -

114

3.9 Exemplo de Busca A*

Page 115: Curso Inteligência Artificial - Parte 1 -

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).

Início

G1

n G2

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

Page 116: Curso Inteligência Artificial - Parte 1 -

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

Page 117: Curso Inteligência Artificial - Parte 1 -

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*

Page 118: Curso Inteligência Artificial - Parte 1 -

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

Page 119: Curso Inteligência Artificial - Parte 1 -

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)

Page 120: Curso Inteligência Artificial - Parte 1 -

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

Page 121: Curso Inteligência Artificial - Parte 1 -

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.

Page 122: Curso Inteligência Artificial - Parte 1 -

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.

Page 123: Curso Inteligência Artificial - Parte 1 -

123

3.10 Exemplo: Problema do caixeiro Viajante

• Iniciar com qualquer caminho fechado e ir trocando pares

Page 124: Curso Inteligência Artificial - Parte 1 -

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

Page 125: Curso Inteligência Artificial - Parte 1 -

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.

Page 126: Curso Inteligência Artificial - Parte 1 -

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

Page 127: Curso Inteligência Artificial - Parte 1 -

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 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

Page 128: Curso Inteligência Artificial - Parte 1 -

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

Page 129: Curso Inteligência Artificial - Parte 1 -

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.

Page 130: Curso Inteligência Artificial - Parte 1 -

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.

Page 131: Curso Inteligência Artificial - Parte 1 -

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

Page 132: Curso Inteligência Artificial - Parte 1 -

132

3.10 Algoritmos genéticos

Page 133: Curso Inteligência Artificial - Parte 1 -

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

Page 134: Curso Inteligência Artificial - Parte 1 -

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

Page 135: Curso Inteligência Artificial - Parte 1 -

135

Problemas de Satisfação de Restrições.

%  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)}

Coloração de mapas

Page 136: Curso Inteligência Artificial - Parte 1 -

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

Page 137: Curso Inteligência Artificial - Parte 1 -

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

Page 138: Curso Inteligência Artificial - Parte 1 -

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.

Page 139: Curso Inteligência Artificial - Parte 1 -

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

Page 140: Curso Inteligência Artificial - Parte 1 -

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

Page 141: Curso Inteligência Artificial - Parte 1 -

141

Problemas de Satisfação de Restrições

%  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.

Problemas do Mundo Real

Page 142: Curso Inteligência Artificial - Parte 1 -

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

Page 143: Curso Inteligência Artificial - Parte 1 -

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

Page 144: Curso Inteligência Artificial - Parte 1 -

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

Page 145: Curso Inteligência Artificial - Parte 1 -

145

Problemas de Satisfação de Restrições

Page 146: Curso Inteligência Artificial - Parte 1 -

146

Problemas de Satisfação de Restrições

Page 147: Curso Inteligência Artificial - Parte 1 -

147

Problemas de Satisfação de Restrições

Page 148: Curso Inteligência Artificial - Parte 1 -

148

Problemas de Satisfação de Restrições

Page 149: Curso Inteligência Artificial - Parte 1 -

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?

Page 150: Curso Inteligência Artificial - Parte 1 -

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)

Page 151: Curso Inteligência Artificial - Parte 1 -

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.

Page 152: Curso Inteligência Artificial - Parte 1 -

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

Page 153: Curso Inteligência Artificial - Parte 1 -

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.

Page 154: Curso Inteligência Artificial - Parte 1 -

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.

Page 155: Curso Inteligência Artificial - Parte 1 -

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.

Page 156: Curso Inteligência Artificial - Parte 1 -

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.

Page 157: Curso Inteligência Artificial - Parte 1 -

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

Page 158: Curso Inteligência Artificial - Parte 1 -

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.

Page 159: Curso Inteligência Artificial - Parte 1 -

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.

Page 160: Curso Inteligência Artificial - Parte 1 -

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.

Page 161: Curso Inteligência Artificial - Parte 1 -

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.

Page 162: Curso Inteligência Artificial - Parte 1 -

162

Algoritmo de consistência de arco

% Complexidade de tempo: O(n2d3)

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

Page 163: Curso Inteligência Artificial - Parte 1 -

163

Problemas de Satisfação de Restrições

%  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

Busca Local

Page 164: Curso Inteligência Artificial - Parte 1 -

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)

Page 165: Curso Inteligência Artificial - Parte 1 -

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.

Page 166: Curso Inteligência Artificial - Parte 1 -

Busca Competitiva

Decisões ótimas Poda α-β Decisões imperfeitas em tempo real.

Page 167: Curso Inteligência Artificial - Parte 1 -

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.

Page 168: Curso Inteligência Artificial - Parte 1 -

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.

Page 169: Curso Inteligência Artificial - Parte 1 -

169

Árvore de jogos

Page 170: Curso Inteligência Artificial - Parte 1 -

170

Minimax %  Perfeito para jogos determinísticos %  Idéia : Escolher o movimento com o maior valor

minimax

Page 171: Curso Inteligência Artificial - Parte 1 -

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

Page 172: Curso Inteligência Artificial - Parte 1 -

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.

Page 173: Curso Inteligência Artificial - Parte 1 -

173

Poda α-β

Page 174: Curso Inteligência Artificial - Parte 1 -

174

Poda α-β (exemplo)

Page 175: Curso Inteligência Artificial - Parte 1 -

175

Poda α-β (exemplo)

Page 176: Curso Inteligência Artificial - Parte 1 -

176

Poda α-β (exemplo)

Page 177: Curso Inteligência Artificial - Parte 1 -

177

Poda α-β (exemplo)

Page 178: Curso Inteligência Artificial - Parte 1 -

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)

Page 179: Curso Inteligência Artificial - Parte 1 -

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.

Page 180: Curso Inteligência Artificial - Parte 1 -

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

Page 181: Curso Inteligência Artificial - Parte 1 -

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

Page 182: Curso Inteligência Artificial - Parte 1 -

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.

Page 183: Curso Inteligência Artificial - Parte 1 -

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

Page 184: Curso Inteligência Artificial - Parte 1 -

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.

Page 185: Curso Inteligência Artificial - Parte 1 -

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.

Page 186: Curso Inteligência Artificial - Parte 1 -

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.

Page 187: Curso Inteligência Artificial - Parte 1 -

187

Fim da parte I