SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Resolução de
problemas por
meio de busca
Estratégias de busca às cegas
Agentes Baseados em Objetivo
● Agente de Resolução de Problemas
● Sem informação X Informada
● Sequência fixa de ações
Agente de Resolução de Problemas
● Formulação
○ Objetivo
○ Problema
● Ambiente
○ Observável - Sempre terá conhecimento do estado atual.
○ Discreto - Cada estado terá um número finito de ações para escolher.
○ Conhecido - Conhecimento de quais estados serão alcançados a
partir de cada ação.
○ Determinístico - Cada ação tem um resultado.
● Busca
● Formular, Buscar e Executar
Problemas e seus Componentes
● Estado Inicial
● Ações
● Modelo de Transição
○ Espaços de estados e Grafo
● Teste Objetivo
● Custo de Caminho
○ Custo de Passo
● Solução X Solução Ótima
Características de um Problema
● Abstração
● Problemas no Mundo Simplificado X Problemas no Mundo Real
Em busca de soluções!
Em busca de soluções
● Busca no espaço de estados
● Árvore de busca
● Escolher nó → Testar → Expandir
Medição do desempenho de resolução
● Completeza
● Otimização
● Complexidade de tempo
● Complexidade de espaço
● Complexidade expressa em termos de 3 quantidades:
○ b (fator de ramificação)
○ d (profundidade do nó objetivo menos profundo)
○ m (comprimento máximo de qualquer caminho no espaço de estados)
● Custo de busca
● Custo total = custo de busca + custo de solução
Estratégias de Busca!
Busca em Largura
O nó raiz é expandido e em seguida todos os seus filhos
(sucessores), depois os sucessores desses filhos, e assim
por diante.
● Utiliza um fila (lista FIFO) para a borda.
● Sempre terá o caminho mais raso.
● Sempre terá o menor caminho e será ótima, se o
custo de passo for igual para qualquer ação.
● Ocupa muita memória
○ Sendo b o fator de ramificação e d o nível do
objetivo, o algoritmo tem complexidade de
tempo e espaço O(bd
).
○ Somente instâncias pequenas (Toy Problems).
Busca em Profundidade
O nó raiz é expandido e em seguida o seu primeiro filho
(sucessor), depois o primeiro sucessor desse filho, e
assim por diante, até que chegue a uma folha (nó sem
filhos) ou a um nó já explorado.]
● Utiliza um pilha (lista LIFO) para a borda.
● Falha em espaço de estados infinitos
● Também pode ser implementada com recursividade.
● Se executada em uma árvore de altura m e fator de
ramificação b, possui complexidade temporal O(bm
).
● Vantagem: complexidade espacial.
○ Aplicada à árvores.
● Busca com retrocesso utiliza ainda menos memória
Busca em Profundidade Limitada
● É determinado um limite até onde será expandida a árvore
● Conhecimento Prévio do Problema
● Semelhante a busca em árvore ou em grafos
● Desvantagens
○ l > d logo a complexidade de tempo passaria para O(bl
) e a de espaço
O(bl).
Busca em Aprofundamento Iterativo
● Aumenta gradualmente o limite até o objetivo.
● Ótimo quando o custo de passo for igual para cada ação .
● Seus requisitos de memória são modestos
● Desvantagem
● Complexidade de tempo O(bd
) e complexidade de memória O(bd) .
Busca de Custo Uniforme
Expande o nó com custo de caminho mais baixo
● Extensão da busca em largura
● Ótima para qualquer função de custo de passo
● Utiliza uma fila de prioridades para a borda
● Não importa o número de passos, apenas o custo total
● C*: custo da solução ótima
● k: custo mínimo de toda ação
● Complexidade do pior caso: O(b⌈C*/k⌉
)
Comparações
● Completas
○ Em Largura*
○ Custo Uniforme
○ Aprofundamento Iterativo*
● Ótimas
○ Em Largura*
○ Custo Uniforme
○ Aprofundamento Iterativo*
Por fim...
● Custo de passo diferente → Busca de Custo Uniforme
● Maior probabilidade do objetivo estar nas folhas → Busca em
Profundidade
● Maior probabilidade do objetivo ser raso → Busca em Largura
● Preferida → Busca de Aprofundamento Iterativo
Obrigado!

Mais conteúdo relacionado

Mais procurados

Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraNatanael Simões
 
Arduino - iniciação à linguagem C (entradas e saídas digitais)
Arduino - iniciação à linguagem C (entradas e saídas digitais)Arduino - iniciação à linguagem C (entradas e saídas digitais)
Arduino - iniciação à linguagem C (entradas e saídas digitais)Ana Carneirinho
 
Introdução a linguagem Swift
Introdução a linguagem SwiftIntrodução a linguagem Swift
Introdução a linguagem SwiftGabriel Rodrigues
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticosCentro Paula Souza
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaÁlvaro Farias Pinheiro
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetosNécio de Lima Veras
 
Inteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em GrafosInteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em GrafosRafael Pinto
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobileDaniel Brandão
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...Emmanuel Neri
 
Apresentação sobre Árvores B
Apresentação sobre Árvores BApresentação sobre Árvores B
Apresentação sobre Árvores BThiago Colares
 
Problemas no desenvolvimento do software
Problemas no desenvolvimento do softwareProblemas no desenvolvimento do software
Problemas no desenvolvimento do softwareIvan Ricarte
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de MicroserviçosNorberto Enomoto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQLArley Rodrigues
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentElias Nogueira
 

Mais procurados (20)

Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
 
Arduino - iniciação à linguagem C (entradas e saídas digitais)
Arduino - iniciação à linguagem C (entradas e saídas digitais)Arduino - iniciação à linguagem C (entradas e saídas digitais)
Arduino - iniciação à linguagem C (entradas e saídas digitais)
 
Introdução a linguagem Swift
Introdução a linguagem SwiftIntrodução a linguagem Swift
Introdução a linguagem Swift
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
Inteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em GrafosInteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em Grafos
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobile
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
 
Apresentação sobre Árvores B
Apresentação sobre Árvores BApresentação sobre Árvores B
Apresentação sobre Árvores B
 
Problemas no desenvolvimento do software
Problemas no desenvolvimento do softwareProblemas no desenvolvimento do software
Problemas no desenvolvimento do software
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 
Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
HeapSort
HeapSortHeapSort
HeapSort
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQL
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
Coeficiente da Silhueta
Coeficiente da SilhuetaCoeficiente da Silhueta
Coeficiente da Silhueta
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 

Mais de Marcos Paulo Maia dos Santos

Inclusão Digital - Conceitos básicos de informática
Inclusão Digital - Conceitos básicos de informáticaInclusão Digital - Conceitos básicos de informática
Inclusão Digital - Conceitos básicos de informáticaMarcos Paulo Maia dos Santos
 
Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de ChomskyLinguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de ChomskyMarcos Paulo Maia dos Santos
 
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticos
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticosRegressão simbólica - Resolvendo problemas de planejamento não-determinísticos
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticosMarcos Paulo Maia dos Santos
 
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)Marcos Paulo Maia dos Santos
 
Applied plotting, charting & data representation in Python (pt. 2)
Applied plotting, charting & data representation in Python (pt. 2)Applied plotting, charting & data representation in Python (pt. 2)
Applied plotting, charting & data representation in Python (pt. 2)Marcos Paulo Maia dos Santos
 

Mais de Marcos Paulo Maia dos Santos (11)

Inclusão Digital - Conceitos básicos de informática
Inclusão Digital - Conceitos básicos de informáticaInclusão Digital - Conceitos básicos de informática
Inclusão Digital - Conceitos básicos de informática
 
Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de ChomskyLinguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky
 
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticos
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticosRegressão simbólica - Resolvendo problemas de planejamento não-determinísticos
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticos
 
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
 
Introdução a ciência de dados com Python
Introdução a ciência de dados com PythonIntrodução a ciência de dados com Python
Introdução a ciência de dados com Python
 
Applied plotting, charting & data representation in Python (pt. 2)
Applied plotting, charting & data representation in Python (pt. 2)Applied plotting, charting & data representation in Python (pt. 2)
Applied plotting, charting & data representation in Python (pt. 2)
 
Planejamento em Inteligência Artificial
Planejamento em Inteligência ArtificialPlanejamento em Inteligência Artificial
Planejamento em Inteligência Artificial
 
Planejamento como verificação de modelos
Planejamento como verificação de modelosPlanejamento como verificação de modelos
Planejamento como verificação de modelos
 
Diagramas de decisão binária
Diagramas de decisão bináriaDiagramas de decisão binária
Diagramas de decisão binária
 
Linguagens de programação - Go
Linguagens de programação - GoLinguagens de programação - Go
Linguagens de programação - Go
 
Planejamento em Inteligência Artificial
Planejamento em Inteligência ArtificialPlanejamento em Inteligência Artificial
Planejamento em Inteligência Artificial
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 

Último (6)

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Resolução de problemas por meio de busca

  • 1. Resolução de problemas por meio de busca Estratégias de busca às cegas
  • 2. Agentes Baseados em Objetivo ● Agente de Resolução de Problemas ● Sem informação X Informada ● Sequência fixa de ações
  • 3. Agente de Resolução de Problemas ● Formulação ○ Objetivo ○ Problema ● Ambiente ○ Observável - Sempre terá conhecimento do estado atual. ○ Discreto - Cada estado terá um número finito de ações para escolher. ○ Conhecido - Conhecimento de quais estados serão alcançados a partir de cada ação. ○ Determinístico - Cada ação tem um resultado. ● Busca ● Formular, Buscar e Executar
  • 4. Problemas e seus Componentes ● Estado Inicial ● Ações ● Modelo de Transição ○ Espaços de estados e Grafo ● Teste Objetivo ● Custo de Caminho ○ Custo de Passo ● Solução X Solução Ótima
  • 5. Características de um Problema ● Abstração ● Problemas no Mundo Simplificado X Problemas no Mundo Real
  • 6. Em busca de soluções!
  • 7. Em busca de soluções ● Busca no espaço de estados ● Árvore de busca ● Escolher nó → Testar → Expandir
  • 8.
  • 9.
  • 10.
  • 11. Medição do desempenho de resolução ● Completeza ● Otimização ● Complexidade de tempo ● Complexidade de espaço ● Complexidade expressa em termos de 3 quantidades: ○ b (fator de ramificação) ○ d (profundidade do nó objetivo menos profundo) ○ m (comprimento máximo de qualquer caminho no espaço de estados) ● Custo de busca ● Custo total = custo de busca + custo de solução
  • 13. Busca em Largura O nó raiz é expandido e em seguida todos os seus filhos (sucessores), depois os sucessores desses filhos, e assim por diante. ● Utiliza um fila (lista FIFO) para a borda. ● Sempre terá o caminho mais raso. ● Sempre terá o menor caminho e será ótima, se o custo de passo for igual para qualquer ação. ● Ocupa muita memória ○ Sendo b o fator de ramificação e d o nível do objetivo, o algoritmo tem complexidade de tempo e espaço O(bd ). ○ Somente instâncias pequenas (Toy Problems).
  • 14.
  • 15. Busca em Profundidade O nó raiz é expandido e em seguida o seu primeiro filho (sucessor), depois o primeiro sucessor desse filho, e assim por diante, até que chegue a uma folha (nó sem filhos) ou a um nó já explorado.] ● Utiliza um pilha (lista LIFO) para a borda. ● Falha em espaço de estados infinitos ● Também pode ser implementada com recursividade. ● Se executada em uma árvore de altura m e fator de ramificação b, possui complexidade temporal O(bm ). ● Vantagem: complexidade espacial. ○ Aplicada à árvores. ● Busca com retrocesso utiliza ainda menos memória
  • 16.
  • 17. Busca em Profundidade Limitada ● É determinado um limite até onde será expandida a árvore ● Conhecimento Prévio do Problema ● Semelhante a busca em árvore ou em grafos ● Desvantagens ○ l > d logo a complexidade de tempo passaria para O(bl ) e a de espaço O(bl).
  • 18. Busca em Aprofundamento Iterativo ● Aumenta gradualmente o limite até o objetivo. ● Ótimo quando o custo de passo for igual para cada ação . ● Seus requisitos de memória são modestos ● Desvantagem ● Complexidade de tempo O(bd ) e complexidade de memória O(bd) .
  • 19.
  • 20. Busca de Custo Uniforme Expande o nó com custo de caminho mais baixo ● Extensão da busca em largura ● Ótima para qualquer função de custo de passo ● Utiliza uma fila de prioridades para a borda ● Não importa o número de passos, apenas o custo total ● C*: custo da solução ótima ● k: custo mínimo de toda ação ● Complexidade do pior caso: O(b⌈C*/k⌉ )
  • 21.
  • 22. Comparações ● Completas ○ Em Largura* ○ Custo Uniforme ○ Aprofundamento Iterativo* ● Ótimas ○ Em Largura* ○ Custo Uniforme ○ Aprofundamento Iterativo*
  • 23. Por fim... ● Custo de passo diferente → Busca de Custo Uniforme ● Maior probabilidade do objetivo estar nas folhas → Busca em Profundidade ● Maior probabilidade do objetivo ser raso → Busca em Largura ● Preferida → Busca de Aprofundamento Iterativo