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