Notes - MIECT
Inteligência Artificial
Notes - MIECT
Inteligência Artificial
  • Inteligência Artificial
  • Tópicos de Inteligência Artificial
    • Definição de “Inteligência”
    • História até à “Inteligência Artificial”
  • Agentes
    • Definição de “Agente”
    • Teste de Turing
    • A "Sala Chinesa" de Searle
    • Agentes Reactivos
    • Agentes Deliberativos
    • Arquiteturas
  • Representação do Conhecimento
    • Redes Semântica
      • GOLOG
      • UML / Diagramas de Classes
      • Indução versus Dedução
      • Em Python
    • Resolução e Refutação na Lógica de Primeira Ordem
    • Lógica Proposicional e Lógica de Primeira Ordem
      • Interpretações em Lógica Proposicional
      • Interpretações em Lógica de Primeira Ordem
      • Lógica - Regras de Substituição
      • CNF e Forma Clausal
      • Consequências Lógicas, Provas
      • Correcção, Completude
      • Metateoremas
      • Resolução não é Completa
      • Refutação por Resolução
      • Substituições, Unificação
      • Resolução com Claúsulas de Horn
    • Linguagem KIF
    • Engenharia do Conhecimento
    • Ontologias
    • Redes de Bayes
  • Técnicas de Resolução de Problemas
    • Resolução de problemas em IA
    • Formulação de problemas e pesquisa de soluções
    • Estratégias de pesquisa
      • Avaliação das estratégias de pesquisa
      • Pesquisa A*
        • Avaliação da Pesquisa em Árvore
      • IDA*
      • RBFS
      • SMA*
      • Pesquisa com propagação de restrições
      • Pesquisa por melhorias sucessivas
      • Planeamento
        • Aprendizagem
      • Árvores de decisão
      • Avaliação de algoritmos de aprendizagem supervisionada
  • Bayesian Networks
    • Ways to deal with Uncertainty
    • Discrete Random Variables
    • Probabilities
    • Conditional Probability
    • More General Forms of Bayes Rule
    • The Joint Distribution
    • Independence
    • Computing a Joint Entry
    • Exercises
Powered by GitBook
On this page
  • Árvore – algoritmo genérico
  • Percursos na árvore de pesquisa
  • Implementação baseada numa fila
  • Pesquisa em largura
  • Pesquisa em profundidade
  • Python
  • Pesquisa em profundidade - variantes
  • Pesquisa informada (“melhor primeiro”)
  1. Técnicas de Resolução de Problemas

Estratégias de pesquisa

PreviousFormulação de problemas e pesquisa de soluçõesNextAvaliação das estratégias de pesquisa

Last updated 2 years ago

Árvore – algoritmo genérico

Percursos na árvore de pesquisa

Implementação baseada numa fila

Pesquisa em largura

Pesquisa em profundidade

Python

Vamos criar um conjunto de classes para suporte à resolução de problemas por pesquisa em árvore.

  • Classe SearchDomain() – classe abstracta que formata a estrutura de um domínio de aplicação.

  • Classe SearchProblem(domain,initial,goal) – classe para especificação de problemas concretos a resolver.

  • Classe SearchNode(state,parent) – classe dos nós da árvore de pesquisa.

  • Classe SearchTree(problem) – classe das árvores de pesquisa, contendo métodos para a geração de uma árvore para um dado problema.

Pesquisa em profundidade - variantes

Pesquisa em profundidade sem repetição de estados – para evitar ciclos infinitos, convém garantir que estados já visitados no caminho que liga o nó actual à raiz da árvore de pesquisa não são novamente gerados.

Pesquisa em profundidade com limite – não são considerados para expansão os nós da árvore de pesquisa cuja profundidade é igual a um dado limite.

Pesquisa em profundidade com limite crescente – consiste no seguinte procedimento:

  1. Tenta-se resolver o problema por pesquisa em profundidade com um dado limite N.

  2. Se foi encontrada uma solução, retornar.

  3. Incrementar N.

  4. Voltar ao passo 1.

Pesquisa informada (“melhor primeiro”)

Pesquisa em largura
Pesquisa em profundidade