Giter Site home page Giter Site logo

brunocampos01 / inteligencia-artificial Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 1.0 176.31 MB

Aulas e exercícios da matéria: Sistemas inteligentes (INE5633).

License: MIT License

Python 94.83% Prolog 1.76% Shell 3.41%
ufsc n-queens-problem ontology ine5633 sistemas-inteligentes inteligencia-artificial artificial-intelligence search-algorithm breadth-first-search depth-first-search

inteligencia-artificial's Introduction

Inteligência Artificial

License inteligencia_artificial

Conteúdos


Busca

  • Os métodos de busca são úteis para simplificar soluções.
  • São representados por grafos [ nodos (estados) + arestas (ações)]
  • O resultado de uma busca retorna um conjunto de ações (como montar e como percorrer)
  • Devido a otimização de recursos sempre é feito a montagem e percorrimento simultaneamente.

Características

  • Computável
    • solução encontrada em um tempo finito
  • Otimizada
    • Sempre encontra a melhor solução
  • Recursos limitados
    • Deve utilizar o mínimo de recursos necessários

Métodos de Busca

  • Amplitude (Breadth-first)
    • queue
  • Profundidade (Depth-first)
    • stack





Algoritmo de Resolução

Comece com

  • 2 listas
  • solução a ser encontrada
  • vértices (nodos)
solucao = 'n'

estado_inicial = 'a'
estado_atual = None

lista_nodos_visitados = []
fila = [] # lista_nodos_abertos
  1. Pegue o nodo estado_inicial
solucao = 'n'

estado_inicial = 'a'
estado_atual = 'a'

fila = ['a']
  1. Verifique se é solução, se não for então remova da fila e adicione na lista_nodos_visitados
estado_atual = 'a'

lista_nodos_visitados = []
fila = ['a']


if estado_atual is solucao:
    return True
else:
    fila.pop(estado_atual)
    lista_nodos_visitados.append(estado_atual)

    # estado_atual = 'a'
    # lista_nodos_visitados = ['a']
    # fila = []
  1. Verifique se o estado_atual tem filhos, se tiver adicione na fila
estado_atual = 'a'

lista_nodos_visitados = ['a']
fila = []


if len(node.estado_atual) > 0:
    fila.append('b')
    fila.append('c')

    # estado_atual = 'a'
    # lista_nodos_visitados = ['a']
    # fila = ['b', 'c']
  1. Pegue um novo nodo
estado_atual = 'b'

NOTA: até aqui é tudo igual para os métodos de busca em largura e profundidade.

  1. Verifique se é solução, se não for então remova da fila e adicione na lista_nodos_visitados
estado_atual = 'b'

lista_nodos_visitados = ['a']
fila = ['b', 'c']

if estado_atual is solucao:
    return True
else:
    fila.pop(estado_atual)
    lista_nodos_visitados.append(estado_atual)
  1. Verifique se o estado_atual tem filhos, se tiver adicione na fila
estado_atual = 'b'

lista_nodos_visitados = ['a', 'b']
fila = []


if len(node.estado_atual) > 0:
    # largura FIFO
    fila.insert(index=-1, 'd')
    fila.insert(index=-1, 'e')
    # estado_atual = 'b'
    # lista_nodos_visitados = ['a', 'b']
    # fila = ['c', "d", "e"] 


    # profundidade LIFO
    pilha.insert(index=0, 'd')
    pilha.insert(index=0, 'e')
    # estado_atual = 'b'
    # lista_nodos_visitados = ['a', 'b']
    # pilha = ["d", "e", 'c'] 

Largura




Profundidade


Referências



Creative Commons License

inteligencia-artificial's People

Contributors

brunocampos01 avatar codacy-badger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

oscarochoat

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.