SlideShare uma empresa Scribd logo
1 de 234
Baixar para ler offline
Inteligência Artificial – ACH2016
Aula 02 – Busca como Solução de Problemas
Norton Trevisan Roman
(norton@usp.br)
21 de fevereiro de 2019
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 1 / 38
Solução de Problemas
Exige, em geral, algoritmo que:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 2 / 38
Solução de Problemas
Exige, em geral, algoritmo que:
Considere futuras ações juntamente com quão
desejáveis são seus resultados
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 2 / 38
Solução de Problemas
Exige, em geral, algoritmo que:
Considere futuras ações juntamente com quão
desejáveis são seus resultados
Decida o que fazer com base na sequência de ações
que levam a estados desejáveis
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 2 / 38
Solução de Problemas
Exige, em geral, algoritmo que:
Considere futuras ações juntamente com quão
desejáveis são seus resultados
Decida o que fazer com base na sequência de ações
que levam a estados desejáveis
É uma abordagem comum em I.A. buscar por
soluções em um espaço de estados e explorar
alternativas até o objetivo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 2 / 38
Busca como Solução de Problemas
Reduzir o problema a uma busca em um grafo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 3 / 38
Busca como Solução de Problemas
Reduzir o problema a uma busca em um grafo
Cada nó no espaço de busca é um estado do mundo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 3 / 38
Busca como Solução de Problemas
Reduzir o problema a uma busca em um grafo
Cada nó no espaço de busca é um estado do mundo
As arestas são ações que levam de um estado a
outro
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 3 / 38
Busca como Solução de Problemas
Reduzir o problema a uma busca em um grafo
Cada nó no espaço de busca é um estado do mundo
As arestas são ações que levam de um estado a
outro
A solução é um caminho (sequência de ações) que
levam de um estado inicial a um estado final
(objetivo final)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 3 / 38
Busca como Solução de Problemas
Reduzir o problema a uma busca em um grafo
Cada nó no espaço de busca é um estado do mundo
As arestas são ações que levam de um estado a
outro
A solução é um caminho (sequência de ações) que
levam de um estado inicial a um estado final
(objetivo final)
Achar a solução torna-se então um problema de busca no
grafo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 3 / 38
Busca como Solução de Problemas
Exemplo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
Busca como Solução de Problemas
Exemplo
Mundo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
Busca como Solução de Problemas
Exemplo
Mundo
Conjunto de 3 blocos que podem ser empilhados
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
Busca como Solução de Problemas
Exemplo
Mundo
Conjunto de 3 blocos que podem ser empilhados
Estado do mundo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
Busca como Solução de Problemas
Exemplo
Mundo
Conjunto de 3 blocos que podem ser empilhados
Estado do mundo
Uma configuração de empilhamento dos 3 blocos
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
Busca como Solução de Problemas
Exemplo
Mundo
Conjunto de 3 blocos que podem ser empilhados
Estado do mundo
Uma configuração de empilhamento dos 3 blocos
Nós
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
Busca como Solução de Problemas
Exemplo
Mundo
Conjunto de 3 blocos que podem ser empilhados
Estado do mundo
Uma configuração de empilhamento dos 3 blocos
Nós
Descrevem um estado do mundo (que blocos estão em cima
de quais)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
Busca como Solução de Problemas
Exemplo
Arestas
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 5 / 38
Busca como Solução de Problemas
Exemplo
Arestas
Ações que levam de um estado a outro (de uma
configuração de blocos a outra)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 5 / 38
Busca como Solução de Problemas
Exemplo
Arestas
Ações que levam de um estado a outro (de uma
configuração de blocos a outra)
Nesse caso, empilhamento de um bloco
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 5 / 38
Busca como Solução de Problemas
Exemplo
Arestas
Ações que levam de um estado a outro (de uma
configuração de blocos a outra)
Nesse caso, empilhamento de um bloco
Caminho no grafo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 5 / 38
Busca como Solução de Problemas
Exemplo
Arestas
Ações que levam de um estado a outro (de uma
configuração de blocos a outra)
Nesse caso, empilhamento de um bloco
Caminho no grafo
Um plano de ação para passar de um estado inicial a um final
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 5 / 38
Busca como Solução de Problemas
Exemplo (reduzido)
A B C
A B
C
empilhe C
em A
A B
C
empilhe C
em B
empilhe C
em B
empilhe C
em A
A
C
B
empilhe B
em C
B
C
A
empilhe A
em C
Fonte: Adaptado de MIT, 6-034 Spring-2005.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 6 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Determinı́sticos, totalmente observáveis
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Determinı́sticos, totalmente observáveis
Conhecemos todos os estados
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Determinı́sticos, totalmente observáveis
Conhecemos todos os estados
Sabemos exatamente em que estados estamos
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Determinı́sticos, totalmente observáveis
Conhecemos todos os estados
Sabemos exatamente em que estados estamos
Sabemos exatamente em que estado estaremos se
executarmos determinada ação
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Determinı́sticos, totalmente observáveis
Conhecemos todos os estados
Sabemos exatamente em que estados estamos
Sabemos exatamente em que estado estaremos se
executarmos determinada ação
Não observáveis
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Determinı́sticos, totalmente observáveis
Conhecemos todos os estados
Sabemos exatamente em que estados estamos
Sabemos exatamente em que estado estaremos se
executarmos determinada ação
Não observáveis
Não sabemos onde estamos
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Não determinı́sticos e/ou parcialmente observáveis:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Não determinı́sticos e/ou parcialmente observáveis:
Continuamente obtemos informação adicional sobre o estado
em que estamos
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Não determinı́sticos e/ou parcialmente observáveis:
Continuamente obtemos informação adicional sobre o estado
em que estamos
Abordados por meio de planos de contingência ou polı́tica de
ação
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Não determinı́sticos e/ou parcialmente observáveis:
Continuamente obtemos informação adicional sobre o estado
em que estamos
Abordados por meio de planos de contingência ou polı́tica de
ação
De espaço de estados desconhecido:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Não determinı́sticos e/ou parcialmente observáveis:
Continuamente obtemos informação adicional sobre o estado
em que estamos
Abordados por meio de planos de contingência ou polı́tica de
ação
De espaço de estados desconhecido:
Nada sabemos sobre nenhum estado
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Não determinı́sticos e/ou parcialmente observáveis:
Continuamente obtemos informação adicional sobre o estado
em que estamos
Abordados por meio de planos de contingência ou polı́tica de
ação
De espaço de estados desconhecido:
Nada sabemos sobre nenhum estado
Deve-se explorar o ambiente
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Como esse problema pode ser classificado?
A B C
A B
C
empilhe C
em A
A B
C
empilhe C
em B
empilhe C
em B
empilhe C
em A
A
C
B
empilhe B
em C
B
C
A
empilhe A
em C
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 9 / 38
Busca como Solução de Problemas
Alguns Tipos de Problemas
Como esse problema pode ser classificado?
A B C
A B
C
empilhe C
em A
A B
C
empilhe C
em B
empilhe C
em B
empilhe C
em A
A
C
B
empilhe B
em C
B
C
A
empilhe A
em C
Determinı́stico, totalmente observável
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 9 / 38
Busca como Solução de Problemas
E quando apelamos à I.A.?
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
Busca como Solução de Problemas
E quando apelamos à I.A.?
Quando o tamanho do grafo é inviável às técnicas
exatas
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
Busca como Solução de Problemas
E quando apelamos à I.A.?
Quando o tamanho do grafo é inviável às técnicas
exatas
Quando há outras variáveis sobre as quais não se
tem controle. Ex:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
Busca como Solução de Problemas
E quando apelamos à I.A.?
Quando o tamanho do grafo é inviável às técnicas
exatas
Quando há outras variáveis sobre as quais não se
tem controle. Ex:
Probabilidade de algo inesperado acontecer (ambiente não
determinı́stico ou não observável)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
Busca como Solução de Problemas
E quando apelamos à I.A.?
Quando o tamanho do grafo é inviável às técnicas
exatas
Quando há outras variáveis sobre as quais não se
tem controle. Ex:
Probabilidade de algo inesperado acontecer (ambiente não
determinı́stico ou não observável)
Desconhecimento de todos os estados no grafo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
Busca como Solução de Problemas
E quando apelamos à I.A.?
Quando o tamanho do grafo é inviável às técnicas
exatas
Quando há outras variáveis sobre as quais não se
tem controle. Ex:
Probabilidade de algo inesperado acontecer (ambiente não
determinı́stico ou não observável)
Desconhecimento de todos os estados no grafo
Mudanças dinâmicas no próprio grafo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
Busca como Solução de Problemas
E quando apelamos à I.A.?
Quando o tamanho do grafo é inviável às técnicas
exatas
Quando há outras variáveis sobre as quais não se
tem controle. Ex:
Probabilidade de algo inesperado acontecer (ambiente não
determinı́stico ou não observável)
Desconhecimento de todos os estados no grafo
Mudanças dinâmicas no próprio grafo
Ou seja, nos 3 últimos tipos de problemas vistos
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
Não informados
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
Não informados
Não recebem qualquer outra informação sobre o problema,
além de sua definição
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
Não informados
Não recebem qualquer outra informação sobre o problema,
além de sua definição
Informados
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
Não informados
Não recebem qualquer outra informação sobre o problema,
além de sua definição
Informados
Possuem pistas sobre onde encontrar a solução
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
Não informados
Não recebem qualquer outra informação sobre o problema,
além de sua definição
Informados
Possuem pistas sobre onde encontrar a solução
Possuem acesso a alguma informação especı́fica da tarefa,
que os ajude a executá-la
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
Não informados
Não recebem qualquer outra informação sobre o problema,
além de sua definição
Informados
Possuem pistas sobre onde encontrar a solução
Possuem acesso a alguma informação especı́fica da tarefa,
que os ajude a executá-la
Ex: saber que determinada via tem maior chance de engarrafamentos
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
De caminho ótimo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 12 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
De caminho ótimo
Buscam o melhor meio para resolver o problema
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 12 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
De caminho ótimo
Buscam o melhor meio para resolver o problema
Tentam otimizar a solução do problema
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 12 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
De caminho ótimo
Buscam o melhor meio para resolver o problema
Tentam otimizar a solução do problema
De qualquer caminho
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 12 / 38
Busca como Solução de Problemas
Classificação dos Algoritmos
De caminho ótimo
Buscam o melhor meio para resolver o problema
Tentam otimizar a solução do problema
De qualquer caminho
Buscam tão somente uma solução para o problema (um
caminho qualquer até a solução)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 12 / 38
Busca como Solução de Problemas
Passos para uma Solução
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
Busca como Solução de Problemas
Passos para uma Solução
Definição dos possı́veis estados
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
Busca como Solução de Problemas
Passos para uma Solução
Definição dos possı́veis estados
Formulação do objetivo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
Busca como Solução de Problemas
Passos para uma Solução
Definição dos possı́veis estados
Formulação do objetivo
Formulação do problema
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
Busca como Solução de Problemas
Passos para uma Solução
Definição dos possı́veis estados
Formulação do objetivo
Formulação do problema
Estado inicial
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
Busca como Solução de Problemas
Passos para uma Solução
Definição dos possı́veis estados
Formulação do objetivo
Formulação do problema
Estado inicial
Ações possı́veis em cada estado
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
Busca como Solução de Problemas
Passos para uma Solução
Definição dos possı́veis estados
Formulação do objetivo
Formulação do problema
Estado inicial
Ações possı́veis em cada estado
Uma descrição do que cada ação faz (modelo de transição)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
Busca como Solução de Problemas
Passos para uma Solução
Definição dos possı́veis estados
Formulação do objetivo
Formulação do problema
Estado inicial
Ações possı́veis em cada estado
Uma descrição do que cada ação faz (modelo de transição)
Teste do objetivo, para ver se estamos no estado final
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
Busca como Solução de Problemas
Passos para uma Solução
Definição dos possı́veis estados
Formulação do objetivo
Formulação do problema
Estado inicial
Ações possı́veis em cada estado
Uma descrição do que cada ação faz (modelo de transição)
Teste do objetivo, para ver se estamos no estado final
Avaliação do custo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
Busca como Solução de Problemas
Passos para uma Solução
Juntos, estado
inicial, ações e
modelo de transição
definem o espaço de
estados do problema
Definição dos possı́veis estados
Formulação do objetivo
Formulação do problema
Estado inicial
Ações possı́veis em cada estado
Uma descrição do que cada ação faz (modelo de transição)
Teste do objetivo, para ver se estamos no estado final
Avaliação do custo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
Busca como Solução de Problemas
Passos para uma Solução
Espaço de estados:
conjunto de todos
os estados atingı́veis
a partir do estado
inicial por alguma
sequência de ações
Definição dos possı́veis estados
Formulação do objetivo
Formulação do problema
Estado inicial
Ações possı́veis em cada estado
Uma descrição do que cada ação faz (modelo de transição)
Teste do objetivo, para ver se estamos no estado final
Avaliação do custo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
Busca como Solução de Problemas
Passos para uma Solução
Busca de sequência de atos que solucionem o
problema
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 14 / 38
Busca como Solução de Problemas
Passos para uma Solução
Busca de sequência de atos que solucionem o
problema
Execução das ações
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 14 / 38
Passos para uma Solução
Definição dos Possı́veis Estados
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
Passos para uma Solução
Definição dos Possı́veis Estados
Estados representam todos os aspectos relevantes
do problema
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
Passos para uma Solução
Definição dos Possı́veis Estados
Estados representam todos os aspectos relevantes
do problema
São descrições do domı́nio em um determinado
curso de ação (snapshot)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
Passos para uma Solução
Definição dos Possı́veis Estados
Estados representam todos os aspectos relevantes
do problema
São descrições do domı́nio em um determinado
curso de ação (snapshot)
Exemplos:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
Passos para uma Solução
Definição dos Possı́veis Estados
Estados representam todos os aspectos relevantes
do problema
São descrições do domı́nio em um determinado
curso de ação (snapshot)
Exemplos:
Posição de caixas em uma sala (empilhamento)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
Passos para uma Solução
Definição dos Possı́veis Estados
Estados representam todos os aspectos relevantes
do problema
São descrições do domı́nio em um determinado
curso de ação (snapshot)
Exemplos:
Posição de caixas em uma sala (empilhamento)
Nomes de aeroportos (viagem pelo mundo)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
Passos para uma Solução
Definição dos Possı́veis Estados
Estados representam todos os aspectos relevantes
do problema
São descrições do domı́nio em um determinado
curso de ação (snapshot)
Exemplos:
Posição de caixas em uma sala (empilhamento)
Nomes de aeroportos (viagem pelo mundo)
Endereço dos aeroportos (translado do hotel ao aeroporto)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
Passos para uma Solução
Formulação do Objetivo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 16 / 38
Passos para uma Solução
Formulação do Objetivo
O objetivo é qualquer conjunto de estados
desejáveis (não necessariamente um só)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 16 / 38
Passos para uma Solução
Formulação do Objetivo
O objetivo é qualquer conjunto de estados
desejáveis (não necessariamente um só)
Trata-se de identificar os estados em que se deseja
estar
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 16 / 38
Passos para uma Solução
Formulação do Objetivo
O objetivo é qualquer conjunto de estados
desejáveis (não necessariamente um só)
Trata-se de identificar os estados em que se deseja
estar
A tarefa será encontrar uma sequência de atos que
leve a um ou mais estados objetivos
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 16 / 38
Passos para uma Solução
Formulação do Problema
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
Passos para uma Solução
Formulação do Problema
Para tal, deve-se definir:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
Passos para uma Solução
Formulação do Problema
Para tal, deve-se definir:
Se o ambiente é estático ou dinâmico
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
Passos para uma Solução
Formulação do Problema
Para tal, deve-se definir:
Se o ambiente é estático ou dinâmico
Se é observável (conhecemos todos os estados) ou não
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
Passos para uma Solução
Formulação do Problema
Para tal, deve-se definir:
Se o ambiente é estático ou dinâmico
Se é observável (conhecemos todos os estados) ou não
Se determinı́stico (soluções são simples sequências de atos)
ou não (deve-se lidar com o inesperado)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
Passos para uma Solução
Formulação do Problema
Para tal, deve-se definir:
Se o ambiente é estático ou dinâmico
Se é observável (conhecemos todos os estados) ou não
Se determinı́stico (soluções são simples sequências de atos)
ou não (deve-se lidar com o inesperado)
O nı́vel dos detalhes envolvidos. Ex: se consideramos “sair
do estacionamento” uma ação, ou teremos que descrever
cada um de seus passos
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
Passos para uma Solução
Formulação do Problema: Ações Possı́veis
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
Passos para uma Solução
Formulação do Problema: Ações Possı́veis
Dado um estado particular, quais são as ações
permitidas e a que estados nos levam?
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
Passos para uma Solução
Formulação do Problema: Ações Possı́veis
Dado um estado particular, quais são as ações
permitidas e a que estados nos levam?
Ações devem ser
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
Passos para uma Solução
Formulação do Problema: Ações Possı́veis
Dado um estado particular, quais são as ações
permitidas e a que estados nos levam?
Ações devem ser
Determinı́sticas: sabemos exatamente o estado em que o
algoritmo estará após a execução de uma ação
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
Passos para uma Solução
Formulação do Problema: Ações Possı́veis
Dado um estado particular, quais são as ações
permitidas e a que estados nos levam?
Ações devem ser
Determinı́sticas: sabemos exatamente o estado em que o
algoritmo estará após a execução de uma ação
Discretas: não precisamos representar o que acontece
enquanto a ação está sendo executada.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
Passos para uma Solução
Formulação do Problema: Ações Possı́veis
Dado um estado particular, quais são as ações
permitidas e a que estados nos levam?
Ações devem ser
Determinı́sticas: sabemos exatamente o estado em que o
algoritmo estará após a execução de uma ação
Discretas: não precisamos representar o que acontece
enquanto a ação está sendo executada.
Ex: assumimos que um voo nos leva ao destino, sem nos
importarmos com o que acontece durante ele
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
Passos para uma Solução
Teste do Objetivo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 19 / 38
Passos para uma Solução
Teste do Objetivo
Determina se um dado estado é um estado-objetivo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 19 / 38
Passos para uma Solução
Teste do Objetivo
Determina se um dado estado é um estado-objetivo
Exemplos:
Todos os blocos estão empilhados
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 19 / 38
Passos para uma Solução
Teste do Objetivo
Determina se um dado estado é um estado-objetivo
Exemplos:
Todos os blocos estão empilhados
Chegamos ao aeroporto de destino
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 19 / 38
Passos para uma Solução
Teste do Objetivo
Determina se um dado estado é um estado-objetivo
Exemplos:
Todos os blocos estão empilhados
Chegamos ao aeroporto de destino
Chegamos ao aeroporto em tempo para o voo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 19 / 38
Passos para uma Solução
Avaliação do Custo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
Passos para uma Solução
Avaliação do Custo
Atribui um valor numérico a cada solução obtida
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
Passos para uma Solução
Avaliação do Custo
Atribui um valor numérico a cada solução obtida
A cada caminho no grafo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
Passos para uma Solução
Avaliação do Custo
Atribui um valor numérico a cada solução obtida
A cada caminho no grafo
Via de regra, o custo do caminho é a soma dos
custos de cada ação dentro dele
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
Passos para uma Solução
Avaliação do Custo
Atribui um valor numérico a cada solução obtida
A cada caminho no grafo
Via de regra, o custo do caminho é a soma dos
custos de cada ação dentro dele
Pode haver custos marginais, atrelados a eventos externos,
por exemplo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
Passos para uma Solução
Avaliação do Custo
Atribui um valor numérico a cada solução obtida
A cada caminho no grafo
Via de regra, o custo do caminho é a soma dos
custos de cada ação dentro dele
Pode haver custos marginais, atrelados a eventos externos,
por exemplo
Ex:
Tempo de viagem
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
Passos para uma Solução
Avaliação do Custo
Atribui um valor numérico a cada solução obtida
A cada caminho no grafo
Via de regra, o custo do caminho é a soma dos
custos de cada ação dentro dele
Pode haver custos marginais, atrelados a eventos externos,
por exemplo
Ex:
Tempo de viagem
Número de operações
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
Passos para uma Solução
Avaliação do Custo
Atribui um valor numérico a cada solução obtida
A cada caminho no grafo
Via de regra, o custo do caminho é a soma dos
custos de cada ação dentro dele
Pode haver custos marginais, atrelados a eventos externos,
por exemplo
Ex:
Tempo de viagem
Número de operações
Etc.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Fonte: AIMA. Russell & Norvig.
Estados:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Fonte: AIMA. Russell & Norvig.
Estados:
Cada uma das possı́veis localizações (inteiras) dos números
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Fonte: AIMA. Russell & Norvig.
Estados:
Cada uma das possı́veis localizações (inteiras) dos números
Ignoro localizações enquanto são movidos
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Fonte: AIMA. Russell & Norvig.
Estados:
Cada uma das possı́veis localizações (inteiras) dos números
Ignoro localizações enquanto são movidos
Objetivo:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Fonte: AIMA. Russell & Norvig.
Estados:
Cada uma das possı́veis localizações (inteiras) dos números
Ignoro localizações enquanto são movidos
Objetivo:
Ordenar os números
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Fonte: AIMA. Russell & Norvig.
Estados:
Cada uma das possı́veis localizações (inteiras) dos números
Ignoro localizações enquanto são movidos
Objetivo:
Ordenar os números
Formulação:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Fonte: AIMA. Russell & Norvig.
Estados:
Cada uma das possı́veis localizações (inteiras) dos números
Ignoro localizações enquanto são movidos
Objetivo:
Ordenar os números
Formulação:
Estado inicial: qualquer um
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Fonte: AIMA. Russell & Norvig.
Estados:
Cada uma das possı́veis localizações (inteiras) dos números
Ignoro localizações enquanto são movidos
Objetivo:
Ordenar os números
Formulação:
Estado inicial: qualquer um. Ex:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Formulação (cont.):
Ações possı́veis:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Formulação (cont.):
Ações possı́veis:
Ir à esquerda, direita, para cima ou
para baixo, dependendo de onde
estiver o número movido
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Formulação (cont.):
Ações possı́veis:
Ir à esquerda, direita, para cima ou
para baixo, dependendo de onde
estiver o número movido
Deve ser movido de modo a ocupar
posição em branco
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Formulação (cont.):
Ações possı́veis:
Ir à esquerda, direita, para cima ou
para baixo, dependendo de onde
estiver o número movido
Deve ser movido de modo a ocupar
posição em branco
Teste:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Formulação (cont.):
Ações possı́veis:
Ir à esquerda, direita, para cima ou
para baixo, dependendo de onde
estiver o número movido
Deve ser movido de modo a ocupar
posição em branco
Teste:
Se o estado atual corresponde ao
objetivo =
?
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Formulação (cont.):
Ações possı́veis:
Ir à esquerda, direita, para cima ou
para baixo, dependendo de onde
estiver o número movido
Deve ser movido de modo a ocupar
posição em branco
Teste:
Se o estado atual corresponde ao
objetivo
Custo:
=
?
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça
Formulação (cont.):
Ações possı́veis:
Ir à esquerda, direita, para cima ou
para baixo, dependendo de onde
estiver o número movido
Deve ser movido de modo a ocupar
posição em branco
Teste:
Se o estado atual corresponde ao
objetivo
Custo:
O número total de movimentos
=
?
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
Busca como Solução de Problemas
Exemplo: Quebra-Cabeça – Grafo (parcial)
Desloque o
2 para baixo
Desloque o
2 para cima
Desloque o
7 para baixo
Desloque o
7 para cima
Desloque o 5
para a direita
Desloque o 5
para a esquerda
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 23 / 38
Busca como Solução de Problemas
Exemplo: Robô
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
Busca como Solução de Problemas
Exemplo: Robô
Estados:
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
Busca como Solução de Problemas
Exemplo: Robô
Estados:
Conjunto de coordenadas
(ângulos) de cada parte
do robô
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
Busca como Solução de Problemas
Exemplo: Robô
Estados:
Conjunto de coordenadas
(ângulos) de cada parte
do robô
Posição das partes do
objeto a ser montado
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
Busca como Solução de Problemas
Exemplo: Robô
Estados:
Conjunto de coordenadas
(ângulos) de cada parte
do robô
Posição das partes do
objeto a ser montado
Fonte: AIMA. Russell & Norvig.
Objetivo:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
Busca como Solução de Problemas
Exemplo: Robô
Estados:
Conjunto de coordenadas
(ângulos) de cada parte
do robô
Posição das partes do
objeto a ser montado
Fonte: AIMA. Russell & Norvig.
Objetivo:
Ter o objeto montado
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
Busca como Solução de Problemas
Exemplo: Robô
Formulação:
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 25 / 38
Busca como Solução de Problemas
Exemplo: Robô
Formulação:
Estado inicial: posição
atual do robô
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 25 / 38
Busca como Solução de Problemas
Exemplo: Robô
Formulação:
Estado inicial: posição
atual do robô
Ações possı́veis:
Movimentos contı́nuos das
juntas do robô (ângulos
de movimento)
Fonte: AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 25 / 38
Busca como Solução de Problemas
Exemplo: Robô
Formulação:
Estado inicial: posição
atual do robô
Ações possı́veis:
Movimentos contı́nuos das
juntas do robô (ângulos
de movimento)
Fonte: AIMA. Russell & Norvig.
Teste: Se o objeto está montado (sem levar em conta o
robô!)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 25 / 38
Busca como Solução de Problemas
Exemplo: Robô
Formulação:
Estado inicial: posição
atual do robô
Ações possı́veis:
Movimentos contı́nuos das
juntas do robô (ângulos
de movimento)
Fonte: AIMA. Russell & Norvig.
Teste: Se o objeto está montado (sem levar em conta o
robô!)
Custo: Tempo de execução
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 25 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
Definição:
3 missionários e 3 canibais estão em uma margem de um rio.
Há uma canoa para apenas 2 pessoas. Deve-se levar todos
para o outro lado do rio, cuidando para que o número de
canibais nunca ultrapasse o número de missionários.
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 26 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
Definição:
3 missionários e 3 canibais estão em uma margem de um rio.
Há uma canoa para apenas 2 pessoas. Deve-se levar todos
para o outro lado do rio, cuidando para que o número de
canibais nunca ultrapasse o número de missionários.
Estados:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 26 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
MMC C
MC
Definição:
3 missionários e 3 canibais estão em uma margem de um rio.
Há uma canoa para apenas 2 pessoas. Deve-se levar todos
para o outro lado do rio, cuidando para que o número de
canibais nunca ultrapasse o número de missionários.
Estados:
Qualquer combinação de canibais
e missionários na margem esquerda,
barco e margem direita
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 26 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
MMC C
MC
Definição:
3 missionários e 3 canibais estão em uma margem de um rio.
Há uma canoa para apenas 2 pessoas. Deve-se levar todos
para o outro lado do rio, cuidando para que o número de
canibais nunca ultrapasse o número de missionários.
Estados:
Qualquer combinação de canibais
e missionários na margem esquerda,
barco e margem direita
Não há estado em que o número de canibais ultrapasse o de
missionários
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 26 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
Objetivo:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
MMMCCC
Objetivo:
Todos no lado direito do rio
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
MMMCCC
Objetivo:
Todos no lado direito do rio
Formulação:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
MMMCCC
MMMCCC
Objetivo:
Todos no lado direito do rio
Formulação:
Estado inicial:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
MMMCCC
MMMCCC
Objetivo:
Todos no lado direito do rio
Formulação:
Estado inicial:
Ações possı́veis:
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
MMMCCC
MMMCCC
Objetivo:
Todos no lado direito do rio
Formulação:
Estado inicial:
Ações possı́veis:
Transportar ou uma ou duas pessoas (canibais, missionários ou
ambos) de um lado a outro do rio
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
MMMCCC
MMMCCC
Objetivo:
Todos no lado direito do rio
Formulação:
Estado inicial:
Ações possı́veis:
Transportar ou uma ou duas pessoas (canibais, missionários ou
ambos) de um lado a outro do rio
Ou seja, embarque + desembarque de uma ou duas pessoas
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
MMMCCC
MMMCCC
Objetivo:
Todos no lado direito do rio
Formulação:
Estado inicial:
Ações possı́veis:
Transportar ou uma ou duas pessoas (canibais, missionários ou
ambos) de um lado a outro do rio
Ou seja, embarque + desembarque de uma ou duas pessoas
Teste: Compara se o estado atual é o estado-objetivo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
Busca como Solução de Problemas
Exemplo: Missionários e Canibais
MMMCCC
MMMCCC
Objetivo:
Todos no lado direito do rio
Formulação:
Estado inicial:
Ações possı́veis:
Transportar ou uma ou duas pessoas (canibais, missionários ou
ambos) de um lado a outro do rio
Ou seja, embarque + desembarque de uma ou duas pessoas
Teste: Compara se o estado atual é o estado-objetivo
Avaliação do custo: Número de viagens da canoa
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
Busca por Soluções
Soluciona o problema via uma busca
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 28 / 38
Busca por Soluções
Soluciona o problema via uma busca
Procedimento Básico
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 28 / 38
Busca por Soluções
Soluciona o problema via uma busca
Procedimento Básico
Mapeiam-se os estados do problema a um grafo
(redução do problema)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 28 / 38
Busca por Soluções
Soluciona o problema via uma busca
Procedimento Básico
Mapeiam-se os estados do problema a um grafo
(redução do problema)
Busca-se um caminho que leve do estado inicial a
um final (solução do problema)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 28 / 38
Busca por Soluções
Soluciona o problema via uma busca
Procedimento Básico
Mapeiam-se os estados do problema a um grafo
(redução do problema)
Busca-se um caminho que leve do estado inicial a
um final (solução do problema)
O caminho representa um plano de ação para
solução do problema
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 28 / 38
Busca por Soluções
Tipos de Busca
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
Busca por Soluções
Tipos de Busca
Não informadas
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
Busca por Soluções
Tipos de Busca
Não informadas
Mesmas caracterı́sticas de soluções não-informadas
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
Busca por Soluções
Tipos de Busca
Não informadas
Mesmas caracterı́sticas de soluções não-informadas
Olham todos os nós em uma ordem especı́fica
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
Busca por Soluções
Tipos de Busca
Não informadas
Mesmas caracterı́sticas de soluções não-informadas
Olham todos os nós em uma ordem especı́fica
São as buscas “clássicas”: largura, profundidade etc
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
Busca por Soluções
Tipos de Busca
Não informadas
Mesmas caracterı́sticas de soluções não-informadas
Olham todos os nós em uma ordem especı́fica
São as buscas “clássicas”: largura, profundidade etc
Informadas
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
Busca por Soluções
Tipos de Busca
Não informadas
Mesmas caracterı́sticas de soluções não-informadas
Olham todos os nós em uma ordem especı́fica
São as buscas “clássicas”: largura, profundidade etc
Informadas
Mesmas caracterı́sticas de soluções informadas
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
Busca por Soluções
Tipos de Busca
Não informadas
Mesmas caracterı́sticas de soluções não-informadas
Olham todos os nós em uma ordem especı́fica
São as buscas “clássicas”: largura, profundidade etc
Informadas
Mesmas caracterı́sticas de soluções informadas
Usam informação especı́fica do problema
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
Busca por Soluções
Tipos de Busca
Não informadas
Mesmas caracterı́sticas de soluções não-informadas
Olham todos os nós em uma ordem especı́fica
São as buscas “clássicas”: largura, profundidade etc
Informadas
Mesmas caracterı́sticas de soluções informadas
Usam informação especı́fica do problema
São buscas com heurı́sticas: melhor primeiro, A*, hill
climbing etc
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
Busca por Soluções
Buscas Não Informadas
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 30 / 38
Buscas Não Informadas
Busca de Custo Uniforme
A
B
C
D
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Extensão à busca em largura
A
B
C
D
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Extensão à busca em largura
Os pesos (custos) nas arestas não são iguais
A
B
C
D
4
2
3
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Extensão à busca em largura
Os pesos (custos) nas arestas não são iguais
Sempre expande o nó n cujo caminho até a raiz g(n) é o
menor (menor custo de caminho)
A
B
C
D
4
2
3
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Extensão à busca em largura
Os pesos (custos) nas arestas não são iguais
Sempre expande o nó n cujo caminho até a raiz g(n) é o
menor (menor custo de caminho)
Não necessariamente faz a busca em largura
A
B
C
D
4
2
3
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Extensão à busca em largura
Os pesos (custos) nas arestas não são iguais
Sempre expande o nó n cujo caminho até a raiz g(n) é o
menor (menor custo de caminho)
Não necessariamente faz a busca em largura
Os custos devem ser > 0
A
B
C
D
4
2
3
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Extensão à busca em largura
Os pesos (custos) nas arestas não são iguais
Sempre expande o nó n cujo caminho até a raiz g(n) é o
menor (menor custo de caminho)
Não necessariamente faz a busca em largura
Os custos devem ser > 0
Do contrário, pode cair em um
laço infinito, caso haja aresta de
custo 0 levando ao próprio nó A
B
C
D
4
2
3
0
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Extensão à busca em largura
Os pesos (custos) nas arestas não são iguais
Sempre expande o nó n cujo caminho até a raiz g(n) é o
menor (menor custo de caminho)
Não necessariamente faz a busca em largura
Os custos devem ser > 0
Do contrário, pode cair em um
laço infinito, caso haja aresta de
custo 0 levando ao próprio nó
O custo do caminho deve sempre
aumentar
A
B
C
D
4
2
3
0
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
Lista de caminhos
(com seu custo)
a partir da origem
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
C:
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[A] (0)
C:
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[A] (0)
C:
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
C: [A] (0)
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
C: [A] (0)
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
C: [A] (0)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[B,A] (2)
C: [A] (0)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[B,A] (2)
C: [A] (0)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[B,A] (2)
[C,A] (5)
C: [A] (0)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[B,A] (2)
[C,A] (5)
C: [A] (0)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
C: [B,A] (2)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
C: [B,A] (2)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
C: [B,A] (2)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
[A,B,A] (5)
C: [B,A] (2)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
[A,B,A] (5)
C: [B,A] (2)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
[A,B,A] (5)
[E,B,A] (4)
C: [B,A] (2)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
[A,B,A] (5)
[E,B,A] (4)
C: [B,A] (2)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
[A,B,A] (5)
C: [E,B,A] (4)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
[A,B,A] (5)
C: [E,B,A] (4)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
[A,B,A] (5)
C: [E,B,A] (4)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
[A,B,A] (5)
[D,E,B,A] (7)
C: [E,B,A] (4)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
[A,B,A] (5)
[D,E,B,A] (7)
C: [E,B,A] (4)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
[A,B,A] (5)
[D,E,B,A] (7)
[O,E,B,A] (5)
C: [E,B,A] (4)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[C,A] (5)
[A,B,A] (5)
[D,E,B,A] (7)
[O,E,B,A] (5)
C: [E,B,A] (4)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[A,B,A] (5)
[D,E,B,A] (7)
[O,E,B,A] (5)
C: [C,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[A,B,A] (5)
[D,E,B,A] (7)
[O,E,B,A] (5)
C: [C,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[A,B,A] (5)
[D,E,B,A] (7)
[O,E,B,A] (5)
C: [C,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[A,B,A] (5)
[D,E,B,A] (7)
[O,E,B,A] (5)
[E,C,A] (7)
C: [C,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[A,B,A] (5)
[D,E,B,A] (7)
[O,E,B,A] (5)
[E,C,A] (7)
C: [C,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[A,B,A] (5)
[D,E,B,A] (7)
[O,E,B,A] (5)
[E,C,A] (7)
[O,C,A] (10)
C: [C,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[A,B,A] (5)
[D,E,B,A] (7)
[O,E,B,A] (5)
[E,C,A] (7)
[O,C,A] (10)
C: [C,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[D,E,B,A] (7)
[O,E,B,A] (5)
[E,C,A] (7)
[O,C,A] (10)
C: [A,B,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[D,E,B,A] (7)
[O,E,B,A] (5)
[E,C,A] (7)
[O,C,A] (10)
C: [A,B,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[D,E,B,A] (7)
[O,E,B,A] (5)
[E,C,A] (7)
[O,C,A] (10)
C: [A,B,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[D,E,B,A] (7)
[O,E,B,A] (5)
[E,C,A] (7)
[O,C,A] (10)
[B,A,B,A] (7)
C: [A,B,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[D,E,B,A] (7)
[O,E,B,A] (5)
[E,C,A] (7)
[O,C,A] (10)
[B,A,B,A] (7)
C: [A,B,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[D,E,B,A] (7)
[O,E,B,A] (5)
[E,C,A] (7)
[O,C,A] (10)
[B,A,B,A] (7)
[C,A,B,A] (10)
C: [A,B,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[D,E,B,A] (7)
[O,E,B,A] (5)
[E,C,A] (7)
[O,C,A] (10)
[B,A,B,A] (7)
[C,A,B,A] (10)
C: [A,B,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[D,E,B,A] (7)
[E,C,A] (7)
[O,C,A] (10)
[B,A,B,A] (7)
[C,A,B,A] (10)
C: [O,E,B,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[D,E,B,A] (7)
[E,C,A] (7)
[O,C,A] (10)
[B,A,B,A] (7)
[C,A,B,A] (10)
C: [O,E,B,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme – Algoritmo
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Q:
Caminho (custo)
[D,E,B,A] (7)
[E,C,A] (7)
[O,C,A] (10)
[B,A,B,A] (7)
[C,A,B,A] (10)
C: [O,E,B,A] (5)
f
Q ← Nó inicial (custo = 0);
enquanto Q não estiver vazia faça
C ← Retire de Q o caminho com
menor custo;
se cabeça(C) = objetivo então
Retorne C
para cada filho f de cabeça(C) faça
Adicione [f,C] a Q
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
Buscas Não Informadas
Busca de Custo Uniforme
BCU dá o melhor caminho
entre 2 vértices
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 33 / 38
Buscas Não Informadas
Busca de Custo Uniforme
BCU dá o melhor caminho
entre 2 vértices
E mesmo havendo laços, o
algoritmo consegue
prosseguir
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 33 / 38
Buscas Não Informadas
Busca de Custo Uniforme
BCU dá o melhor caminho
entre 2 vértices
E mesmo havendo laços, o
algoritmo consegue
prosseguir
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Uma hora o laço cria um caminho grande demais para ser
considerado
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 33 / 38
Buscas Não Informadas
Busca de Custo Uniforme
BCU dá o melhor caminho
entre 2 vértices
E mesmo havendo laços, o
algoritmo consegue
prosseguir
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Uma hora o laço cria um caminho grande demais para ser
considerado
Mas isso, claro, somente se os pesos das arestas forem > 0
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 33 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Ainda assim, seguir o laço
gasta processamento
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 34 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Ainda assim, seguir o laço
gasta processamento
Uma alternativa é marcar
os nós já visitados
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 34 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Ainda assim, seguir o laço
gasta processamento
Uma alternativa é marcar
os nós já visitados
E não mais considerá-los em
futuros caminhos
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 34 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Ainda assim, seguir o laço
gasta processamento
Uma alternativa é marcar
os nós já visitados
E não mais considerá-los em
futuros caminhos
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Mas aı́ o resultado não é mais ótimo
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 34 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Ainda assim, seguir o laço
gasta processamento
Uma alternativa é marcar
os nós já visitados
E não mais considerá-los em
futuros caminhos
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Mas aı́ o resultado não é mais ótimo
Isso porque podemos chegar a um nó já visitado por um
caminho menor, que acabará sendo ignorado
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 34 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Para remediar isso,
podemos, sempre que
chegarmos a um nó já
visitado, ver se o caminho
até ele é menor do que
aquele que está em Q
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 35 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Para remediar isso,
podemos, sempre que
chegarmos a um nó já
visitado, ver se o caminho
até ele é menor do que
aquele que está em Q
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Se for menor, substituı́mos o caminho em Q por esse menor
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 35 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Para remediar isso,
podemos, sempre que
chegarmos a um nó já
visitado, ver se o caminho
até ele é menor do que
aquele que está em Q
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Se for menor, substituı́mos o caminho em Q por esse menor
Assim consideraremos sempre o caminho mais curto
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 35 / 38
Buscas Não Informadas
Busca de Custo Uniforme
É uma busca guiada pelo
custo dos caminhos, não
sua profundidade (número
de arestas)
A
B
C
E
D
O
5
5
2
1
3
2
2
3
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 36 / 38
Buscas Não Informadas
Busca de Custo Uniforme
É uma busca guiada pelo
custo dos caminhos, não
sua profundidade (número
de arestas)
Pode preferir explorar longos
caminhos de passos pequenos
antes de explorar caminhos
maiores e potencialmente mais
úteis
A
B
C
E
D
O
5
5
2
1
3
2
2
3
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 36 / 38
Buscas Não Informadas
Busca de Custo Uniforme
É uma busca guiada pelo
custo dos caminhos, não
sua profundidade (número
de arestas)
Pode preferir explorar longos
caminhos de passos pequenos
antes de explorar caminhos
maiores e potencialmente mais
úteis
A
B
C
E
D
O
5
5
2
1
3
2
0.1
0.1
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 36 / 38
Buscas Não Informadas
Busca de Custo Uniforme
É uma busca guiada pelo
custo dos caminhos, não
sua profundidade (número
de arestas)
Pode preferir explorar longos
caminhos de passos pequenos
antes de explorar caminhos
maiores e potencialmente mais
úteis
A
B
C
E
D
O
5
5
2
1
3
2
0.1
0.1
Não muito adequada se a profundidade do caminho
importar
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 36 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Quando todos os custos
são iguais, a busca é similar
à em largura
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 37 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Quando todos os custos
são iguais, a busca é similar
à em largura
Exceto que ela não para assim
que encontra o objetivo, como
na busca em largura
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 37 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Quando todos os custos
são iguais, a busca é similar
à em largura
Exceto que ela não para assim
que encontra o objetivo, como
na busca em largura
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Em vez disso, examina todos os nós na profundidade do
objetivo para ver se algum tem custo menor
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 37 / 38
Buscas Não Informadas
Busca de Custo Uniforme
Quando todos os custos
são iguais, a busca é similar
à em largura
Exceto que ela não para assim
que encontra o objetivo, como
na busca em largura
A
B
C
E
D
O
5
5
2
1
3
2
3
2
Em vez disso, examina todos os nós na profundidade do
objetivo para ver se algum tem custo menor
Gasta mais tempo com um procedimento inútil (pelos pesos
serem iguais)
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 37 / 38
Referências
Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern
Approach. Prentice Hall. 3a ed.
https://ocw.mit.edu/courses/aeronautics-and-
astronautics/16-410-principles-of-autonomy-and-
decision-making-fall-2010/lecture-notes/MIT16_
410F10_lec14.pdf
http://ocw.mit.edu/OcwWeb/
Electrical-Engineering-and-Computer-Science/
6-034Spring-2005/LectureNotes/index.htm
Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 38 / 38

Mais conteúdo relacionado

Mais procurados

(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22Norton Trevisan Roman
 

Mais procurados (11)

(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
 
Pronomes demonst
Pronomes demonstPronomes demonst
Pronomes demonst
 

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (12)

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21
 
(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19
 
(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18
 
(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17
 
(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16
 

Último

Slides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosSlides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosGentil Eronides
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022LeandroSilva126216
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Cabiamar
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticash5kpmr7w7
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)Centro Jacques Delors
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa paraAndreaPassosMascaren
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaCentro Jacques Delors
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docPauloHenriqueGarciaM
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubeladrianaguedesbatista
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...MariaCristinaSouzaLe1
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfAutonoma
 

Último (20)

Slides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosSlides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exercicios
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 

(ACH2044) Inteligência Artificial - Aula 02

  • 1. Inteligência Artificial – ACH2016 Aula 02 – Busca como Solução de Problemas Norton Trevisan Roman (norton@usp.br) 21 de fevereiro de 2019 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 1 / 38
  • 2. Solução de Problemas Exige, em geral, algoritmo que: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 2 / 38
  • 3. Solução de Problemas Exige, em geral, algoritmo que: Considere futuras ações juntamente com quão desejáveis são seus resultados Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 2 / 38
  • 4. Solução de Problemas Exige, em geral, algoritmo que: Considere futuras ações juntamente com quão desejáveis são seus resultados Decida o que fazer com base na sequência de ações que levam a estados desejáveis Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 2 / 38
  • 5. Solução de Problemas Exige, em geral, algoritmo que: Considere futuras ações juntamente com quão desejáveis são seus resultados Decida o que fazer com base na sequência de ações que levam a estados desejáveis É uma abordagem comum em I.A. buscar por soluções em um espaço de estados e explorar alternativas até o objetivo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 2 / 38
  • 6. Busca como Solução de Problemas Reduzir o problema a uma busca em um grafo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 3 / 38
  • 7. Busca como Solução de Problemas Reduzir o problema a uma busca em um grafo Cada nó no espaço de busca é um estado do mundo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 3 / 38
  • 8. Busca como Solução de Problemas Reduzir o problema a uma busca em um grafo Cada nó no espaço de busca é um estado do mundo As arestas são ações que levam de um estado a outro Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 3 / 38
  • 9. Busca como Solução de Problemas Reduzir o problema a uma busca em um grafo Cada nó no espaço de busca é um estado do mundo As arestas são ações que levam de um estado a outro A solução é um caminho (sequência de ações) que levam de um estado inicial a um estado final (objetivo final) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 3 / 38
  • 10. Busca como Solução de Problemas Reduzir o problema a uma busca em um grafo Cada nó no espaço de busca é um estado do mundo As arestas são ações que levam de um estado a outro A solução é um caminho (sequência de ações) que levam de um estado inicial a um estado final (objetivo final) Achar a solução torna-se então um problema de busca no grafo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 3 / 38
  • 11. Busca como Solução de Problemas Exemplo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
  • 12. Busca como Solução de Problemas Exemplo Mundo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
  • 13. Busca como Solução de Problemas Exemplo Mundo Conjunto de 3 blocos que podem ser empilhados Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
  • 14. Busca como Solução de Problemas Exemplo Mundo Conjunto de 3 blocos que podem ser empilhados Estado do mundo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
  • 15. Busca como Solução de Problemas Exemplo Mundo Conjunto de 3 blocos que podem ser empilhados Estado do mundo Uma configuração de empilhamento dos 3 blocos Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
  • 16. Busca como Solução de Problemas Exemplo Mundo Conjunto de 3 blocos que podem ser empilhados Estado do mundo Uma configuração de empilhamento dos 3 blocos Nós Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
  • 17. Busca como Solução de Problemas Exemplo Mundo Conjunto de 3 blocos que podem ser empilhados Estado do mundo Uma configuração de empilhamento dos 3 blocos Nós Descrevem um estado do mundo (que blocos estão em cima de quais) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 4 / 38
  • 18. Busca como Solução de Problemas Exemplo Arestas Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 5 / 38
  • 19. Busca como Solução de Problemas Exemplo Arestas Ações que levam de um estado a outro (de uma configuração de blocos a outra) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 5 / 38
  • 20. Busca como Solução de Problemas Exemplo Arestas Ações que levam de um estado a outro (de uma configuração de blocos a outra) Nesse caso, empilhamento de um bloco Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 5 / 38
  • 21. Busca como Solução de Problemas Exemplo Arestas Ações que levam de um estado a outro (de uma configuração de blocos a outra) Nesse caso, empilhamento de um bloco Caminho no grafo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 5 / 38
  • 22. Busca como Solução de Problemas Exemplo Arestas Ações que levam de um estado a outro (de uma configuração de blocos a outra) Nesse caso, empilhamento de um bloco Caminho no grafo Um plano de ação para passar de um estado inicial a um final Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 5 / 38
  • 23. Busca como Solução de Problemas Exemplo (reduzido) A B C A B C empilhe C em A A B C empilhe C em B empilhe C em B empilhe C em A A C B empilhe B em C B C A empilhe A em C Fonte: Adaptado de MIT, 6-034 Spring-2005. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 6 / 38
  • 24. Busca como Solução de Problemas Alguns Tipos de Problemas Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
  • 25. Busca como Solução de Problemas Alguns Tipos de Problemas Determinı́sticos, totalmente observáveis Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
  • 26. Busca como Solução de Problemas Alguns Tipos de Problemas Determinı́sticos, totalmente observáveis Conhecemos todos os estados Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
  • 27. Busca como Solução de Problemas Alguns Tipos de Problemas Determinı́sticos, totalmente observáveis Conhecemos todos os estados Sabemos exatamente em que estados estamos Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
  • 28. Busca como Solução de Problemas Alguns Tipos de Problemas Determinı́sticos, totalmente observáveis Conhecemos todos os estados Sabemos exatamente em que estados estamos Sabemos exatamente em que estado estaremos se executarmos determinada ação Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
  • 29. Busca como Solução de Problemas Alguns Tipos de Problemas Determinı́sticos, totalmente observáveis Conhecemos todos os estados Sabemos exatamente em que estados estamos Sabemos exatamente em que estado estaremos se executarmos determinada ação Não observáveis Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
  • 30. Busca como Solução de Problemas Alguns Tipos de Problemas Determinı́sticos, totalmente observáveis Conhecemos todos os estados Sabemos exatamente em que estados estamos Sabemos exatamente em que estado estaremos se executarmos determinada ação Não observáveis Não sabemos onde estamos Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 7 / 38
  • 31. Busca como Solução de Problemas Alguns Tipos de Problemas Não determinı́sticos e/ou parcialmente observáveis: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
  • 32. Busca como Solução de Problemas Alguns Tipos de Problemas Não determinı́sticos e/ou parcialmente observáveis: Continuamente obtemos informação adicional sobre o estado em que estamos Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
  • 33. Busca como Solução de Problemas Alguns Tipos de Problemas Não determinı́sticos e/ou parcialmente observáveis: Continuamente obtemos informação adicional sobre o estado em que estamos Abordados por meio de planos de contingência ou polı́tica de ação Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
  • 34. Busca como Solução de Problemas Alguns Tipos de Problemas Não determinı́sticos e/ou parcialmente observáveis: Continuamente obtemos informação adicional sobre o estado em que estamos Abordados por meio de planos de contingência ou polı́tica de ação De espaço de estados desconhecido: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
  • 35. Busca como Solução de Problemas Alguns Tipos de Problemas Não determinı́sticos e/ou parcialmente observáveis: Continuamente obtemos informação adicional sobre o estado em que estamos Abordados por meio de planos de contingência ou polı́tica de ação De espaço de estados desconhecido: Nada sabemos sobre nenhum estado Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
  • 36. Busca como Solução de Problemas Alguns Tipos de Problemas Não determinı́sticos e/ou parcialmente observáveis: Continuamente obtemos informação adicional sobre o estado em que estamos Abordados por meio de planos de contingência ou polı́tica de ação De espaço de estados desconhecido: Nada sabemos sobre nenhum estado Deve-se explorar o ambiente Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 8 / 38
  • 37. Busca como Solução de Problemas Alguns Tipos de Problemas Como esse problema pode ser classificado? A B C A B C empilhe C em A A B C empilhe C em B empilhe C em B empilhe C em A A C B empilhe B em C B C A empilhe A em C Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 9 / 38
  • 38. Busca como Solução de Problemas Alguns Tipos de Problemas Como esse problema pode ser classificado? A B C A B C empilhe C em A A B C empilhe C em B empilhe C em B empilhe C em A A C B empilhe B em C B C A empilhe A em C Determinı́stico, totalmente observável Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 9 / 38
  • 39. Busca como Solução de Problemas E quando apelamos à I.A.? Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
  • 40. Busca como Solução de Problemas E quando apelamos à I.A.? Quando o tamanho do grafo é inviável às técnicas exatas Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
  • 41. Busca como Solução de Problemas E quando apelamos à I.A.? Quando o tamanho do grafo é inviável às técnicas exatas Quando há outras variáveis sobre as quais não se tem controle. Ex: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
  • 42. Busca como Solução de Problemas E quando apelamos à I.A.? Quando o tamanho do grafo é inviável às técnicas exatas Quando há outras variáveis sobre as quais não se tem controle. Ex: Probabilidade de algo inesperado acontecer (ambiente não determinı́stico ou não observável) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
  • 43. Busca como Solução de Problemas E quando apelamos à I.A.? Quando o tamanho do grafo é inviável às técnicas exatas Quando há outras variáveis sobre as quais não se tem controle. Ex: Probabilidade de algo inesperado acontecer (ambiente não determinı́stico ou não observável) Desconhecimento de todos os estados no grafo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
  • 44. Busca como Solução de Problemas E quando apelamos à I.A.? Quando o tamanho do grafo é inviável às técnicas exatas Quando há outras variáveis sobre as quais não se tem controle. Ex: Probabilidade de algo inesperado acontecer (ambiente não determinı́stico ou não observável) Desconhecimento de todos os estados no grafo Mudanças dinâmicas no próprio grafo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
  • 45. Busca como Solução de Problemas E quando apelamos à I.A.? Quando o tamanho do grafo é inviável às técnicas exatas Quando há outras variáveis sobre as quais não se tem controle. Ex: Probabilidade de algo inesperado acontecer (ambiente não determinı́stico ou não observável) Desconhecimento de todos os estados no grafo Mudanças dinâmicas no próprio grafo Ou seja, nos 3 últimos tipos de problemas vistos Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 10 / 38
  • 46. Busca como Solução de Problemas Classificação dos Algoritmos Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
  • 47. Busca como Solução de Problemas Classificação dos Algoritmos Não informados Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
  • 48. Busca como Solução de Problemas Classificação dos Algoritmos Não informados Não recebem qualquer outra informação sobre o problema, além de sua definição Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
  • 49. Busca como Solução de Problemas Classificação dos Algoritmos Não informados Não recebem qualquer outra informação sobre o problema, além de sua definição Informados Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
  • 50. Busca como Solução de Problemas Classificação dos Algoritmos Não informados Não recebem qualquer outra informação sobre o problema, além de sua definição Informados Possuem pistas sobre onde encontrar a solução Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
  • 51. Busca como Solução de Problemas Classificação dos Algoritmos Não informados Não recebem qualquer outra informação sobre o problema, além de sua definição Informados Possuem pistas sobre onde encontrar a solução Possuem acesso a alguma informação especı́fica da tarefa, que os ajude a executá-la Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
  • 52. Busca como Solução de Problemas Classificação dos Algoritmos Não informados Não recebem qualquer outra informação sobre o problema, além de sua definição Informados Possuem pistas sobre onde encontrar a solução Possuem acesso a alguma informação especı́fica da tarefa, que os ajude a executá-la Ex: saber que determinada via tem maior chance de engarrafamentos Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 11 / 38
  • 53. Busca como Solução de Problemas Classificação dos Algoritmos De caminho ótimo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 12 / 38
  • 54. Busca como Solução de Problemas Classificação dos Algoritmos De caminho ótimo Buscam o melhor meio para resolver o problema Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 12 / 38
  • 55. Busca como Solução de Problemas Classificação dos Algoritmos De caminho ótimo Buscam o melhor meio para resolver o problema Tentam otimizar a solução do problema Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 12 / 38
  • 56. Busca como Solução de Problemas Classificação dos Algoritmos De caminho ótimo Buscam o melhor meio para resolver o problema Tentam otimizar a solução do problema De qualquer caminho Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 12 / 38
  • 57. Busca como Solução de Problemas Classificação dos Algoritmos De caminho ótimo Buscam o melhor meio para resolver o problema Tentam otimizar a solução do problema De qualquer caminho Buscam tão somente uma solução para o problema (um caminho qualquer até a solução) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 12 / 38
  • 58. Busca como Solução de Problemas Passos para uma Solução Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
  • 59. Busca como Solução de Problemas Passos para uma Solução Definição dos possı́veis estados Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
  • 60. Busca como Solução de Problemas Passos para uma Solução Definição dos possı́veis estados Formulação do objetivo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
  • 61. Busca como Solução de Problemas Passos para uma Solução Definição dos possı́veis estados Formulação do objetivo Formulação do problema Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
  • 62. Busca como Solução de Problemas Passos para uma Solução Definição dos possı́veis estados Formulação do objetivo Formulação do problema Estado inicial Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
  • 63. Busca como Solução de Problemas Passos para uma Solução Definição dos possı́veis estados Formulação do objetivo Formulação do problema Estado inicial Ações possı́veis em cada estado Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
  • 64. Busca como Solução de Problemas Passos para uma Solução Definição dos possı́veis estados Formulação do objetivo Formulação do problema Estado inicial Ações possı́veis em cada estado Uma descrição do que cada ação faz (modelo de transição) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
  • 65. Busca como Solução de Problemas Passos para uma Solução Definição dos possı́veis estados Formulação do objetivo Formulação do problema Estado inicial Ações possı́veis em cada estado Uma descrição do que cada ação faz (modelo de transição) Teste do objetivo, para ver se estamos no estado final Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
  • 66. Busca como Solução de Problemas Passos para uma Solução Definição dos possı́veis estados Formulação do objetivo Formulação do problema Estado inicial Ações possı́veis em cada estado Uma descrição do que cada ação faz (modelo de transição) Teste do objetivo, para ver se estamos no estado final Avaliação do custo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
  • 67. Busca como Solução de Problemas Passos para uma Solução Juntos, estado inicial, ações e modelo de transição definem o espaço de estados do problema Definição dos possı́veis estados Formulação do objetivo Formulação do problema Estado inicial Ações possı́veis em cada estado Uma descrição do que cada ação faz (modelo de transição) Teste do objetivo, para ver se estamos no estado final Avaliação do custo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
  • 68. Busca como Solução de Problemas Passos para uma Solução Espaço de estados: conjunto de todos os estados atingı́veis a partir do estado inicial por alguma sequência de ações Definição dos possı́veis estados Formulação do objetivo Formulação do problema Estado inicial Ações possı́veis em cada estado Uma descrição do que cada ação faz (modelo de transição) Teste do objetivo, para ver se estamos no estado final Avaliação do custo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 13 / 38
  • 69. Busca como Solução de Problemas Passos para uma Solução Busca de sequência de atos que solucionem o problema Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 14 / 38
  • 70. Busca como Solução de Problemas Passos para uma Solução Busca de sequência de atos que solucionem o problema Execução das ações Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 14 / 38
  • 71. Passos para uma Solução Definição dos Possı́veis Estados Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
  • 72. Passos para uma Solução Definição dos Possı́veis Estados Estados representam todos os aspectos relevantes do problema Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
  • 73. Passos para uma Solução Definição dos Possı́veis Estados Estados representam todos os aspectos relevantes do problema São descrições do domı́nio em um determinado curso de ação (snapshot) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
  • 74. Passos para uma Solução Definição dos Possı́veis Estados Estados representam todos os aspectos relevantes do problema São descrições do domı́nio em um determinado curso de ação (snapshot) Exemplos: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
  • 75. Passos para uma Solução Definição dos Possı́veis Estados Estados representam todos os aspectos relevantes do problema São descrições do domı́nio em um determinado curso de ação (snapshot) Exemplos: Posição de caixas em uma sala (empilhamento) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
  • 76. Passos para uma Solução Definição dos Possı́veis Estados Estados representam todos os aspectos relevantes do problema São descrições do domı́nio em um determinado curso de ação (snapshot) Exemplos: Posição de caixas em uma sala (empilhamento) Nomes de aeroportos (viagem pelo mundo) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
  • 77. Passos para uma Solução Definição dos Possı́veis Estados Estados representam todos os aspectos relevantes do problema São descrições do domı́nio em um determinado curso de ação (snapshot) Exemplos: Posição de caixas em uma sala (empilhamento) Nomes de aeroportos (viagem pelo mundo) Endereço dos aeroportos (translado do hotel ao aeroporto) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 15 / 38
  • 78. Passos para uma Solução Formulação do Objetivo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 16 / 38
  • 79. Passos para uma Solução Formulação do Objetivo O objetivo é qualquer conjunto de estados desejáveis (não necessariamente um só) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 16 / 38
  • 80. Passos para uma Solução Formulação do Objetivo O objetivo é qualquer conjunto de estados desejáveis (não necessariamente um só) Trata-se de identificar os estados em que se deseja estar Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 16 / 38
  • 81. Passos para uma Solução Formulação do Objetivo O objetivo é qualquer conjunto de estados desejáveis (não necessariamente um só) Trata-se de identificar os estados em que se deseja estar A tarefa será encontrar uma sequência de atos que leve a um ou mais estados objetivos Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 16 / 38
  • 82. Passos para uma Solução Formulação do Problema Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
  • 83. Passos para uma Solução Formulação do Problema Para tal, deve-se definir: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
  • 84. Passos para uma Solução Formulação do Problema Para tal, deve-se definir: Se o ambiente é estático ou dinâmico Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
  • 85. Passos para uma Solução Formulação do Problema Para tal, deve-se definir: Se o ambiente é estático ou dinâmico Se é observável (conhecemos todos os estados) ou não Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
  • 86. Passos para uma Solução Formulação do Problema Para tal, deve-se definir: Se o ambiente é estático ou dinâmico Se é observável (conhecemos todos os estados) ou não Se determinı́stico (soluções são simples sequências de atos) ou não (deve-se lidar com o inesperado) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
  • 87. Passos para uma Solução Formulação do Problema Para tal, deve-se definir: Se o ambiente é estático ou dinâmico Se é observável (conhecemos todos os estados) ou não Se determinı́stico (soluções são simples sequências de atos) ou não (deve-se lidar com o inesperado) O nı́vel dos detalhes envolvidos. Ex: se consideramos “sair do estacionamento” uma ação, ou teremos que descrever cada um de seus passos Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 17 / 38
  • 88. Passos para uma Solução Formulação do Problema: Ações Possı́veis Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
  • 89. Passos para uma Solução Formulação do Problema: Ações Possı́veis Dado um estado particular, quais são as ações permitidas e a que estados nos levam? Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
  • 90. Passos para uma Solução Formulação do Problema: Ações Possı́veis Dado um estado particular, quais são as ações permitidas e a que estados nos levam? Ações devem ser Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
  • 91. Passos para uma Solução Formulação do Problema: Ações Possı́veis Dado um estado particular, quais são as ações permitidas e a que estados nos levam? Ações devem ser Determinı́sticas: sabemos exatamente o estado em que o algoritmo estará após a execução de uma ação Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
  • 92. Passos para uma Solução Formulação do Problema: Ações Possı́veis Dado um estado particular, quais são as ações permitidas e a que estados nos levam? Ações devem ser Determinı́sticas: sabemos exatamente o estado em que o algoritmo estará após a execução de uma ação Discretas: não precisamos representar o que acontece enquanto a ação está sendo executada. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
  • 93. Passos para uma Solução Formulação do Problema: Ações Possı́veis Dado um estado particular, quais são as ações permitidas e a que estados nos levam? Ações devem ser Determinı́sticas: sabemos exatamente o estado em que o algoritmo estará após a execução de uma ação Discretas: não precisamos representar o que acontece enquanto a ação está sendo executada. Ex: assumimos que um voo nos leva ao destino, sem nos importarmos com o que acontece durante ele Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 18 / 38
  • 94. Passos para uma Solução Teste do Objetivo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 19 / 38
  • 95. Passos para uma Solução Teste do Objetivo Determina se um dado estado é um estado-objetivo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 19 / 38
  • 96. Passos para uma Solução Teste do Objetivo Determina se um dado estado é um estado-objetivo Exemplos: Todos os blocos estão empilhados Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 19 / 38
  • 97. Passos para uma Solução Teste do Objetivo Determina se um dado estado é um estado-objetivo Exemplos: Todos os blocos estão empilhados Chegamos ao aeroporto de destino Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 19 / 38
  • 98. Passos para uma Solução Teste do Objetivo Determina se um dado estado é um estado-objetivo Exemplos: Todos os blocos estão empilhados Chegamos ao aeroporto de destino Chegamos ao aeroporto em tempo para o voo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 19 / 38
  • 99. Passos para uma Solução Avaliação do Custo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
  • 100. Passos para uma Solução Avaliação do Custo Atribui um valor numérico a cada solução obtida Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
  • 101. Passos para uma Solução Avaliação do Custo Atribui um valor numérico a cada solução obtida A cada caminho no grafo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
  • 102. Passos para uma Solução Avaliação do Custo Atribui um valor numérico a cada solução obtida A cada caminho no grafo Via de regra, o custo do caminho é a soma dos custos de cada ação dentro dele Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
  • 103. Passos para uma Solução Avaliação do Custo Atribui um valor numérico a cada solução obtida A cada caminho no grafo Via de regra, o custo do caminho é a soma dos custos de cada ação dentro dele Pode haver custos marginais, atrelados a eventos externos, por exemplo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
  • 104. Passos para uma Solução Avaliação do Custo Atribui um valor numérico a cada solução obtida A cada caminho no grafo Via de regra, o custo do caminho é a soma dos custos de cada ação dentro dele Pode haver custos marginais, atrelados a eventos externos, por exemplo Ex: Tempo de viagem Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
  • 105. Passos para uma Solução Avaliação do Custo Atribui um valor numérico a cada solução obtida A cada caminho no grafo Via de regra, o custo do caminho é a soma dos custos de cada ação dentro dele Pode haver custos marginais, atrelados a eventos externos, por exemplo Ex: Tempo de viagem Número de operações Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
  • 106. Passos para uma Solução Avaliação do Custo Atribui um valor numérico a cada solução obtida A cada caminho no grafo Via de regra, o custo do caminho é a soma dos custos de cada ação dentro dele Pode haver custos marginais, atrelados a eventos externos, por exemplo Ex: Tempo de viagem Número de operações Etc. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 20 / 38
  • 107. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Fonte: AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
  • 108. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Fonte: AIMA. Russell & Norvig. Estados: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
  • 109. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Fonte: AIMA. Russell & Norvig. Estados: Cada uma das possı́veis localizações (inteiras) dos números Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
  • 110. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Fonte: AIMA. Russell & Norvig. Estados: Cada uma das possı́veis localizações (inteiras) dos números Ignoro localizações enquanto são movidos Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
  • 111. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Fonte: AIMA. Russell & Norvig. Estados: Cada uma das possı́veis localizações (inteiras) dos números Ignoro localizações enquanto são movidos Objetivo: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
  • 112. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Fonte: AIMA. Russell & Norvig. Estados: Cada uma das possı́veis localizações (inteiras) dos números Ignoro localizações enquanto são movidos Objetivo: Ordenar os números Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
  • 113. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Fonte: AIMA. Russell & Norvig. Estados: Cada uma das possı́veis localizações (inteiras) dos números Ignoro localizações enquanto são movidos Objetivo: Ordenar os números Formulação: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
  • 114. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Fonte: AIMA. Russell & Norvig. Estados: Cada uma das possı́veis localizações (inteiras) dos números Ignoro localizações enquanto são movidos Objetivo: Ordenar os números Formulação: Estado inicial: qualquer um Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
  • 115. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Fonte: AIMA. Russell & Norvig. Estados: Cada uma das possı́veis localizações (inteiras) dos números Ignoro localizações enquanto são movidos Objetivo: Ordenar os números Formulação: Estado inicial: qualquer um. Ex: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 21 / 38
  • 116. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Formulação (cont.): Ações possı́veis: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
  • 117. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Formulação (cont.): Ações possı́veis: Ir à esquerda, direita, para cima ou para baixo, dependendo de onde estiver o número movido Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
  • 118. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Formulação (cont.): Ações possı́veis: Ir à esquerda, direita, para cima ou para baixo, dependendo de onde estiver o número movido Deve ser movido de modo a ocupar posição em branco Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
  • 119. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Formulação (cont.): Ações possı́veis: Ir à esquerda, direita, para cima ou para baixo, dependendo de onde estiver o número movido Deve ser movido de modo a ocupar posição em branco Teste: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
  • 120. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Formulação (cont.): Ações possı́veis: Ir à esquerda, direita, para cima ou para baixo, dependendo de onde estiver o número movido Deve ser movido de modo a ocupar posição em branco Teste: Se o estado atual corresponde ao objetivo = ? Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
  • 121. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Formulação (cont.): Ações possı́veis: Ir à esquerda, direita, para cima ou para baixo, dependendo de onde estiver o número movido Deve ser movido de modo a ocupar posição em branco Teste: Se o estado atual corresponde ao objetivo Custo: = ? Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
  • 122. Busca como Solução de Problemas Exemplo: Quebra-Cabeça Formulação (cont.): Ações possı́veis: Ir à esquerda, direita, para cima ou para baixo, dependendo de onde estiver o número movido Deve ser movido de modo a ocupar posição em branco Teste: Se o estado atual corresponde ao objetivo Custo: O número total de movimentos = ? Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 22 / 38
  • 123. Busca como Solução de Problemas Exemplo: Quebra-Cabeça – Grafo (parcial) Desloque o 2 para baixo Desloque o 2 para cima Desloque o 7 para baixo Desloque o 7 para cima Desloque o 5 para a direita Desloque o 5 para a esquerda Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 23 / 38
  • 124. Busca como Solução de Problemas Exemplo: Robô Fonte: AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
  • 125. Busca como Solução de Problemas Exemplo: Robô Estados: Fonte: AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
  • 126. Busca como Solução de Problemas Exemplo: Robô Estados: Conjunto de coordenadas (ângulos) de cada parte do robô Fonte: AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
  • 127. Busca como Solução de Problemas Exemplo: Robô Estados: Conjunto de coordenadas (ângulos) de cada parte do robô Posição das partes do objeto a ser montado Fonte: AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
  • 128. Busca como Solução de Problemas Exemplo: Robô Estados: Conjunto de coordenadas (ângulos) de cada parte do robô Posição das partes do objeto a ser montado Fonte: AIMA. Russell & Norvig. Objetivo: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
  • 129. Busca como Solução de Problemas Exemplo: Robô Estados: Conjunto de coordenadas (ângulos) de cada parte do robô Posição das partes do objeto a ser montado Fonte: AIMA. Russell & Norvig. Objetivo: Ter o objeto montado Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 24 / 38
  • 130. Busca como Solução de Problemas Exemplo: Robô Formulação: Fonte: AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 25 / 38
  • 131. Busca como Solução de Problemas Exemplo: Robô Formulação: Estado inicial: posição atual do robô Fonte: AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 25 / 38
  • 132. Busca como Solução de Problemas Exemplo: Robô Formulação: Estado inicial: posição atual do robô Ações possı́veis: Movimentos contı́nuos das juntas do robô (ângulos de movimento) Fonte: AIMA. Russell & Norvig. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 25 / 38
  • 133. Busca como Solução de Problemas Exemplo: Robô Formulação: Estado inicial: posição atual do robô Ações possı́veis: Movimentos contı́nuos das juntas do robô (ângulos de movimento) Fonte: AIMA. Russell & Norvig. Teste: Se o objeto está montado (sem levar em conta o robô!) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 25 / 38
  • 134. Busca como Solução de Problemas Exemplo: Robô Formulação: Estado inicial: posição atual do robô Ações possı́veis: Movimentos contı́nuos das juntas do robô (ângulos de movimento) Fonte: AIMA. Russell & Norvig. Teste: Se o objeto está montado (sem levar em conta o robô!) Custo: Tempo de execução Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 25 / 38
  • 135. Busca como Solução de Problemas Exemplo: Missionários e Canibais Definição: 3 missionários e 3 canibais estão em uma margem de um rio. Há uma canoa para apenas 2 pessoas. Deve-se levar todos para o outro lado do rio, cuidando para que o número de canibais nunca ultrapasse o número de missionários. Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 26 / 38
  • 136. Busca como Solução de Problemas Exemplo: Missionários e Canibais Definição: 3 missionários e 3 canibais estão em uma margem de um rio. Há uma canoa para apenas 2 pessoas. Deve-se levar todos para o outro lado do rio, cuidando para que o número de canibais nunca ultrapasse o número de missionários. Estados: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 26 / 38
  • 137. Busca como Solução de Problemas Exemplo: Missionários e Canibais MMC C MC Definição: 3 missionários e 3 canibais estão em uma margem de um rio. Há uma canoa para apenas 2 pessoas. Deve-se levar todos para o outro lado do rio, cuidando para que o número de canibais nunca ultrapasse o número de missionários. Estados: Qualquer combinação de canibais e missionários na margem esquerda, barco e margem direita Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 26 / 38
  • 138. Busca como Solução de Problemas Exemplo: Missionários e Canibais MMC C MC Definição: 3 missionários e 3 canibais estão em uma margem de um rio. Há uma canoa para apenas 2 pessoas. Deve-se levar todos para o outro lado do rio, cuidando para que o número de canibais nunca ultrapasse o número de missionários. Estados: Qualquer combinação de canibais e missionários na margem esquerda, barco e margem direita Não há estado em que o número de canibais ultrapasse o de missionários Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 26 / 38
  • 139. Busca como Solução de Problemas Exemplo: Missionários e Canibais Objetivo: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
  • 140. Busca como Solução de Problemas Exemplo: Missionários e Canibais MMMCCC Objetivo: Todos no lado direito do rio Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
  • 141. Busca como Solução de Problemas Exemplo: Missionários e Canibais MMMCCC Objetivo: Todos no lado direito do rio Formulação: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
  • 142. Busca como Solução de Problemas Exemplo: Missionários e Canibais MMMCCC MMMCCC Objetivo: Todos no lado direito do rio Formulação: Estado inicial: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
  • 143. Busca como Solução de Problemas Exemplo: Missionários e Canibais MMMCCC MMMCCC Objetivo: Todos no lado direito do rio Formulação: Estado inicial: Ações possı́veis: Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
  • 144. Busca como Solução de Problemas Exemplo: Missionários e Canibais MMMCCC MMMCCC Objetivo: Todos no lado direito do rio Formulação: Estado inicial: Ações possı́veis: Transportar ou uma ou duas pessoas (canibais, missionários ou ambos) de um lado a outro do rio Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
  • 145. Busca como Solução de Problemas Exemplo: Missionários e Canibais MMMCCC MMMCCC Objetivo: Todos no lado direito do rio Formulação: Estado inicial: Ações possı́veis: Transportar ou uma ou duas pessoas (canibais, missionários ou ambos) de um lado a outro do rio Ou seja, embarque + desembarque de uma ou duas pessoas Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
  • 146. Busca como Solução de Problemas Exemplo: Missionários e Canibais MMMCCC MMMCCC Objetivo: Todos no lado direito do rio Formulação: Estado inicial: Ações possı́veis: Transportar ou uma ou duas pessoas (canibais, missionários ou ambos) de um lado a outro do rio Ou seja, embarque + desembarque de uma ou duas pessoas Teste: Compara se o estado atual é o estado-objetivo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
  • 147. Busca como Solução de Problemas Exemplo: Missionários e Canibais MMMCCC MMMCCC Objetivo: Todos no lado direito do rio Formulação: Estado inicial: Ações possı́veis: Transportar ou uma ou duas pessoas (canibais, missionários ou ambos) de um lado a outro do rio Ou seja, embarque + desembarque de uma ou duas pessoas Teste: Compara se o estado atual é o estado-objetivo Avaliação do custo: Número de viagens da canoa Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 27 / 38
  • 148. Busca por Soluções Soluciona o problema via uma busca Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 28 / 38
  • 149. Busca por Soluções Soluciona o problema via uma busca Procedimento Básico Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 28 / 38
  • 150. Busca por Soluções Soluciona o problema via uma busca Procedimento Básico Mapeiam-se os estados do problema a um grafo (redução do problema) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 28 / 38
  • 151. Busca por Soluções Soluciona o problema via uma busca Procedimento Básico Mapeiam-se os estados do problema a um grafo (redução do problema) Busca-se um caminho que leve do estado inicial a um final (solução do problema) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 28 / 38
  • 152. Busca por Soluções Soluciona o problema via uma busca Procedimento Básico Mapeiam-se os estados do problema a um grafo (redução do problema) Busca-se um caminho que leve do estado inicial a um final (solução do problema) O caminho representa um plano de ação para solução do problema Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 28 / 38
  • 153. Busca por Soluções Tipos de Busca Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
  • 154. Busca por Soluções Tipos de Busca Não informadas Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
  • 155. Busca por Soluções Tipos de Busca Não informadas Mesmas caracterı́sticas de soluções não-informadas Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
  • 156. Busca por Soluções Tipos de Busca Não informadas Mesmas caracterı́sticas de soluções não-informadas Olham todos os nós em uma ordem especı́fica Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
  • 157. Busca por Soluções Tipos de Busca Não informadas Mesmas caracterı́sticas de soluções não-informadas Olham todos os nós em uma ordem especı́fica São as buscas “clássicas”: largura, profundidade etc Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
  • 158. Busca por Soluções Tipos de Busca Não informadas Mesmas caracterı́sticas de soluções não-informadas Olham todos os nós em uma ordem especı́fica São as buscas “clássicas”: largura, profundidade etc Informadas Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
  • 159. Busca por Soluções Tipos de Busca Não informadas Mesmas caracterı́sticas de soluções não-informadas Olham todos os nós em uma ordem especı́fica São as buscas “clássicas”: largura, profundidade etc Informadas Mesmas caracterı́sticas de soluções informadas Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
  • 160. Busca por Soluções Tipos de Busca Não informadas Mesmas caracterı́sticas de soluções não-informadas Olham todos os nós em uma ordem especı́fica São as buscas “clássicas”: largura, profundidade etc Informadas Mesmas caracterı́sticas de soluções informadas Usam informação especı́fica do problema Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
  • 161. Busca por Soluções Tipos de Busca Não informadas Mesmas caracterı́sticas de soluções não-informadas Olham todos os nós em uma ordem especı́fica São as buscas “clássicas”: largura, profundidade etc Informadas Mesmas caracterı́sticas de soluções informadas Usam informação especı́fica do problema São buscas com heurı́sticas: melhor primeiro, A*, hill climbing etc Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 29 / 38
  • 162. Busca por Soluções Buscas Não Informadas Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 30 / 38
  • 163. Buscas Não Informadas Busca de Custo Uniforme A B C D Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
  • 164. Buscas Não Informadas Busca de Custo Uniforme Extensão à busca em largura A B C D Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
  • 165. Buscas Não Informadas Busca de Custo Uniforme Extensão à busca em largura Os pesos (custos) nas arestas não são iguais A B C D 4 2 3 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
  • 166. Buscas Não Informadas Busca de Custo Uniforme Extensão à busca em largura Os pesos (custos) nas arestas não são iguais Sempre expande o nó n cujo caminho até a raiz g(n) é o menor (menor custo de caminho) A B C D 4 2 3 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
  • 167. Buscas Não Informadas Busca de Custo Uniforme Extensão à busca em largura Os pesos (custos) nas arestas não são iguais Sempre expande o nó n cujo caminho até a raiz g(n) é o menor (menor custo de caminho) Não necessariamente faz a busca em largura A B C D 4 2 3 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
  • 168. Buscas Não Informadas Busca de Custo Uniforme Extensão à busca em largura Os pesos (custos) nas arestas não são iguais Sempre expande o nó n cujo caminho até a raiz g(n) é o menor (menor custo de caminho) Não necessariamente faz a busca em largura Os custos devem ser > 0 A B C D 4 2 3 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
  • 169. Buscas Não Informadas Busca de Custo Uniforme Extensão à busca em largura Os pesos (custos) nas arestas não são iguais Sempre expande o nó n cujo caminho até a raiz g(n) é o menor (menor custo de caminho) Não necessariamente faz a busca em largura Os custos devem ser > 0 Do contrário, pode cair em um laço infinito, caso haja aresta de custo 0 levando ao próprio nó A B C D 4 2 3 0 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
  • 170. Buscas Não Informadas Busca de Custo Uniforme Extensão à busca em largura Os pesos (custos) nas arestas não são iguais Sempre expande o nó n cujo caminho até a raiz g(n) é o menor (menor custo de caminho) Não necessariamente faz a busca em largura Os custos devem ser > 0 Do contrário, pode cair em um laço infinito, caso haja aresta de custo 0 levando ao próprio nó O custo do caminho deve sempre aumentar A B C D 4 2 3 0 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 31 / 38
  • 171. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 172. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo Lista de caminhos (com seu custo) a partir da origem Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 173. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) C: Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 174. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [A] (0) C: Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 175. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [A] (0) C: Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 176. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) C: [A] (0) Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 177. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) C: [A] (0) Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 178. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) C: [A] (0) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 179. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [B,A] (2) C: [A] (0) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 180. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [B,A] (2) C: [A] (0) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 181. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [B,A] (2) [C,A] (5) C: [A] (0) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 182. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [B,A] (2) [C,A] (5) C: [A] (0) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 183. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) C: [B,A] (2) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 184. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) C: [B,A] (2) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 185. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) C: [B,A] (2) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 186. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) [A,B,A] (5) C: [B,A] (2) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 187. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) [A,B,A] (5) C: [B,A] (2) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 188. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) [A,B,A] (5) [E,B,A] (4) C: [B,A] (2) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 189. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) [A,B,A] (5) [E,B,A] (4) C: [B,A] (2) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 190. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) [A,B,A] (5) C: [E,B,A] (4) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 191. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) [A,B,A] (5) C: [E,B,A] (4) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 192. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) [A,B,A] (5) C: [E,B,A] (4) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 193. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) [A,B,A] (5) [D,E,B,A] (7) C: [E,B,A] (4) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 194. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) [A,B,A] (5) [D,E,B,A] (7) C: [E,B,A] (4) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 195. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) [A,B,A] (5) [D,E,B,A] (7) [O,E,B,A] (5) C: [E,B,A] (4) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 196. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [C,A] (5) [A,B,A] (5) [D,E,B,A] (7) [O,E,B,A] (5) C: [E,B,A] (4) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 197. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [A,B,A] (5) [D,E,B,A] (7) [O,E,B,A] (5) C: [C,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 198. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [A,B,A] (5) [D,E,B,A] (7) [O,E,B,A] (5) C: [C,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 199. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [A,B,A] (5) [D,E,B,A] (7) [O,E,B,A] (5) C: [C,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 200. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [A,B,A] (5) [D,E,B,A] (7) [O,E,B,A] (5) [E,C,A] (7) C: [C,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 201. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [A,B,A] (5) [D,E,B,A] (7) [O,E,B,A] (5) [E,C,A] (7) C: [C,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 202. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [A,B,A] (5) [D,E,B,A] (7) [O,E,B,A] (5) [E,C,A] (7) [O,C,A] (10) C: [C,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 203. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [A,B,A] (5) [D,E,B,A] (7) [O,E,B,A] (5) [E,C,A] (7) [O,C,A] (10) C: [C,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 204. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [D,E,B,A] (7) [O,E,B,A] (5) [E,C,A] (7) [O,C,A] (10) C: [A,B,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 205. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [D,E,B,A] (7) [O,E,B,A] (5) [E,C,A] (7) [O,C,A] (10) C: [A,B,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 206. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [D,E,B,A] (7) [O,E,B,A] (5) [E,C,A] (7) [O,C,A] (10) C: [A,B,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 207. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [D,E,B,A] (7) [O,E,B,A] (5) [E,C,A] (7) [O,C,A] (10) [B,A,B,A] (7) C: [A,B,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 208. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [D,E,B,A] (7) [O,E,B,A] (5) [E,C,A] (7) [O,C,A] (10) [B,A,B,A] (7) C: [A,B,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 209. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [D,E,B,A] (7) [O,E,B,A] (5) [E,C,A] (7) [O,C,A] (10) [B,A,B,A] (7) [C,A,B,A] (10) C: [A,B,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 210. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [D,E,B,A] (7) [O,E,B,A] (5) [E,C,A] (7) [O,C,A] (10) [B,A,B,A] (7) [C,A,B,A] (10) C: [A,B,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 211. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [D,E,B,A] (7) [E,C,A] (7) [O,C,A] (10) [B,A,B,A] (7) [C,A,B,A] (10) C: [O,E,B,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 212. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [D,E,B,A] (7) [E,C,A] (7) [O,C,A] (10) [B,A,B,A] (7) [C,A,B,A] (10) C: [O,E,B,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 213. Buscas Não Informadas Busca de Custo Uniforme – Algoritmo A B C E D O 5 5 2 1 3 2 3 2 Q: Caminho (custo) [D,E,B,A] (7) [E,C,A] (7) [O,C,A] (10) [B,A,B,A] (7) [C,A,B,A] (10) C: [O,E,B,A] (5) f Q ← Nó inicial (custo = 0); enquanto Q não estiver vazia faça C ← Retire de Q o caminho com menor custo; se cabeça(C) = objetivo então Retorne C para cada filho f de cabeça(C) faça Adicione [f,C] a Q retorna falha Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 32 / 38
  • 214. Buscas Não Informadas Busca de Custo Uniforme BCU dá o melhor caminho entre 2 vértices A B C E D O 5 5 2 1 3 2 3 2 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 33 / 38
  • 215. Buscas Não Informadas Busca de Custo Uniforme BCU dá o melhor caminho entre 2 vértices E mesmo havendo laços, o algoritmo consegue prosseguir A B C E D O 5 5 2 1 3 2 3 2 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 33 / 38
  • 216. Buscas Não Informadas Busca de Custo Uniforme BCU dá o melhor caminho entre 2 vértices E mesmo havendo laços, o algoritmo consegue prosseguir A B C E D O 5 5 2 1 3 2 3 2 Uma hora o laço cria um caminho grande demais para ser considerado Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 33 / 38
  • 217. Buscas Não Informadas Busca de Custo Uniforme BCU dá o melhor caminho entre 2 vértices E mesmo havendo laços, o algoritmo consegue prosseguir A B C E D O 5 5 2 1 3 2 3 2 Uma hora o laço cria um caminho grande demais para ser considerado Mas isso, claro, somente se os pesos das arestas forem > 0 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 33 / 38
  • 218. Buscas Não Informadas Busca de Custo Uniforme Ainda assim, seguir o laço gasta processamento A B C E D O 5 5 2 1 3 2 3 2 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 34 / 38
  • 219. Buscas Não Informadas Busca de Custo Uniforme Ainda assim, seguir o laço gasta processamento Uma alternativa é marcar os nós já visitados A B C E D O 5 5 2 1 3 2 3 2 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 34 / 38
  • 220. Buscas Não Informadas Busca de Custo Uniforme Ainda assim, seguir o laço gasta processamento Uma alternativa é marcar os nós já visitados E não mais considerá-los em futuros caminhos A B C E D O 5 5 2 1 3 2 3 2 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 34 / 38
  • 221. Buscas Não Informadas Busca de Custo Uniforme Ainda assim, seguir o laço gasta processamento Uma alternativa é marcar os nós já visitados E não mais considerá-los em futuros caminhos A B C E D O 5 5 2 1 3 2 3 2 Mas aı́ o resultado não é mais ótimo Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 34 / 38
  • 222. Buscas Não Informadas Busca de Custo Uniforme Ainda assim, seguir o laço gasta processamento Uma alternativa é marcar os nós já visitados E não mais considerá-los em futuros caminhos A B C E D O 5 5 2 1 3 2 3 2 Mas aı́ o resultado não é mais ótimo Isso porque podemos chegar a um nó já visitado por um caminho menor, que acabará sendo ignorado Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 34 / 38
  • 223. Buscas Não Informadas Busca de Custo Uniforme Para remediar isso, podemos, sempre que chegarmos a um nó já visitado, ver se o caminho até ele é menor do que aquele que está em Q A B C E D O 5 5 2 1 3 2 3 2 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 35 / 38
  • 224. Buscas Não Informadas Busca de Custo Uniforme Para remediar isso, podemos, sempre que chegarmos a um nó já visitado, ver se o caminho até ele é menor do que aquele que está em Q A B C E D O 5 5 2 1 3 2 3 2 Se for menor, substituı́mos o caminho em Q por esse menor Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 35 / 38
  • 225. Buscas Não Informadas Busca de Custo Uniforme Para remediar isso, podemos, sempre que chegarmos a um nó já visitado, ver se o caminho até ele é menor do que aquele que está em Q A B C E D O 5 5 2 1 3 2 3 2 Se for menor, substituı́mos o caminho em Q por esse menor Assim consideraremos sempre o caminho mais curto Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 35 / 38
  • 226. Buscas Não Informadas Busca de Custo Uniforme É uma busca guiada pelo custo dos caminhos, não sua profundidade (número de arestas) A B C E D O 5 5 2 1 3 2 2 3 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 36 / 38
  • 227. Buscas Não Informadas Busca de Custo Uniforme É uma busca guiada pelo custo dos caminhos, não sua profundidade (número de arestas) Pode preferir explorar longos caminhos de passos pequenos antes de explorar caminhos maiores e potencialmente mais úteis A B C E D O 5 5 2 1 3 2 2 3 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 36 / 38
  • 228. Buscas Não Informadas Busca de Custo Uniforme É uma busca guiada pelo custo dos caminhos, não sua profundidade (número de arestas) Pode preferir explorar longos caminhos de passos pequenos antes de explorar caminhos maiores e potencialmente mais úteis A B C E D O 5 5 2 1 3 2 0.1 0.1 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 36 / 38
  • 229. Buscas Não Informadas Busca de Custo Uniforme É uma busca guiada pelo custo dos caminhos, não sua profundidade (número de arestas) Pode preferir explorar longos caminhos de passos pequenos antes de explorar caminhos maiores e potencialmente mais úteis A B C E D O 5 5 2 1 3 2 0.1 0.1 Não muito adequada se a profundidade do caminho importar Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 36 / 38
  • 230. Buscas Não Informadas Busca de Custo Uniforme Quando todos os custos são iguais, a busca é similar à em largura A B C E D O 5 5 2 1 3 2 3 2 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 37 / 38
  • 231. Buscas Não Informadas Busca de Custo Uniforme Quando todos os custos são iguais, a busca é similar à em largura Exceto que ela não para assim que encontra o objetivo, como na busca em largura A B C E D O 5 5 2 1 3 2 3 2 Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 37 / 38
  • 232. Buscas Não Informadas Busca de Custo Uniforme Quando todos os custos são iguais, a busca é similar à em largura Exceto que ela não para assim que encontra o objetivo, como na busca em largura A B C E D O 5 5 2 1 3 2 3 2 Em vez disso, examina todos os nós na profundidade do objetivo para ver se algum tem custo menor Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 37 / 38
  • 233. Buscas Não Informadas Busca de Custo Uniforme Quando todos os custos são iguais, a busca é similar à em largura Exceto que ela não para assim que encontra o objetivo, como na busca em largura A B C E D O 5 5 2 1 3 2 3 2 Em vez disso, examina todos os nós na profundidade do objetivo para ver se algum tem custo menor Gasta mais tempo com um procedimento inútil (pelos pesos serem iguais) Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 37 / 38
  • 234. Referências Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach. Prentice Hall. 3a ed. https://ocw.mit.edu/courses/aeronautics-and- astronautics/16-410-principles-of-autonomy-and- decision-making-fall-2010/lecture-notes/MIT16_ 410F10_lec14.pdf http://ocw.mit.edu/OcwWeb/ Electrical-Engineering-and-Computer-Science/ 6-034Spring-2005/LectureNotes/index.htm Norton Trevisan Roman(norton@usp.br) 21 de fevereiro de 2019 38 / 38