TRABALHOS FINAIS

TítuloEquipeArquivos
Solução do problema das N-Rainhas através de Algoritmo GenéticoDavid Garrido Huerta, Reginaldo Matias, Gian Carlo SchroederDownload
Reconhecimento e classificação de arquivos de áudio por estilo musicalAlan Rafael FachiniDownload
Automação de postagens inteligentes para blogsFábio R. Roman, Gabriel BalestrinDownload
Gerenciamento inteligente de trânsitoFernando Alves Michalak, Gilian Moacir Dal Pra, Raphael Amaro de Almeida 
IA para jogos First Person ShooterLeandro Israel Pinto, Marcos Eduardo Crivellaro, Marina Silva Fouto 
Analisador de imagens utilizando o coeficiente de correlação de PearsonAndré Furquim Xotta, Heloisa Medeiros, Sérgio Vinícius de Sá LucenaDownload
Filtro Bayesiano Anti-SpamAnderson Resendes, Gustavo Della Giustina, Gustavo Francisco FrizzoDownload

NOVO HORÁRIO DE MONITORIA!!!

HorárioQuintaSexta
15:20 ~ 17:50F203F203

TRABALHO FINAL DISPONÍVEL!

NOTAS DE TODAS AS AVALIAÇÕES ATÉ O MOMENTO (LISTAS 1..6 & PROVA 1)

NOTAS DA AVALIAÇÃO ESCRITA 01

NOTAS DAS LISTAS 1...4 DISPONÍVEL CORRIGIDAS!

Página da disciplina de Inteligência Artificial, Turma de 2010/01.

Ementa Original

Técnicas de inteligência artificial aplicadas à resolução de problemas. Representação de conhecimento. Sistemas baseados em conhecimento. Aprendizagem de máquina. Arquiteturas de sistemas de Inteligência Artificial.

Programa Proposto

  • Introdução a linguagem Python
    • O que é Python e como apresenta-se um programa em Python. Variáveis, expressões e comandos. Funções. Condicionais e Recursividade. Iteração. Strings. Listas. Tuplas. Dicionários. Classes e objetos. Classes e funções. Classes e métodos. Listas encadeadas. Pilhas. Filas. Árvores. Funções lambda.
    • Prática: exercícios em laboratório e com data de entrega.
    • OBJETIVO: INTRODUZIR O ALUNO À UMA LINGUAGEM DE PROGRAMAÇÃO, RELEMBRANDO CONCEITOS APRENDIDOS EM LPG{1, 2, 3}.
  • Introdução e histórico da IA
    • OBJETIVO: APRESENTAR A IA COMO UM TODO, VISLUMBRANDO AS PARTES ESPECÍFICAS QUE SERÃO ESTUDADAS DURANTE O SEMESTRE.
  • Introdução a Inteligência Coletiva
    • O que é Inteligência Coletiva (IC). Aprendizado de máquina. Limites. Exemplos reais. Usos alternativos para algoritmos com aprendizado. Caso de exemplo: filtragem colaborativa. Apresentar a dinâmica da disciplina durante o semestre.
    • Prática: aplicação de recomendação de links extraídos do serviço del.icio.us.
    • OBJETIVO: ESCLARECER O QUE É IC, SUAS ÁREAS PRINCIPAIS. MOTIVAR ATRAVÉS DE APLICAÇÃO REAL.
  • Clusterização (Agrupamento) e Aprendizado de Máquina
    • Aprendizado supervisionado e não-supervisionado. Vetores de palavras. Clusterização hierárquica. Dendogramas. Clusterização por colunas. Clusterização K-Means. Métricas de distâncias. Visualização de resultados. Outras coisas para agrupar.
    • Prática: agrupamento de blogs e pessoas a partir de seus interesses.
    • OBJETIVO: INTRODUZIR O CONCEITO DE CLUSTERIZAÇÃO DE DADOS (AGRUPAMENTO). MÉTODOS PARA DESCOBRIR E VISUALIZAR GRUPOS DE DADOS, PESSOAS, COISAS QUE ESTÃO INTIMAMENTE RELACIONADOS.
  • Busca e Classificação
    • Máquinas de busca. Crawling. Indexação em BD. Ranking baseado em conteúdo. O algoritmo Google PageRank. Redes neurais. Treinamento e teste de RN.
    • Prática: buscas em bases textuais.
    • OBJETIVO: APRESENTAR ALGORITMOS DE BUSCA EM BASES TEXTUAIS E COMO APRESENTAR TAIS RESULTADOS EM UM RANKING.
  • Otimização
    • Representação de soluções. Função de custo. Busca aleatória. Hill climbing. Simulated annealing. Algoritmos genéticos. Visualização de redes.
    • Prática: buscas em bases de dados de vôos.
    • OBJETIVO: COMO RESOLVER PROBLEMAS DE COLABORAÇÃO COM OTIMIZAÇÃO ESTOCÁSTICA. PROBLEMAS COM MÚLTIPLAS VARIÁVEIS.
  • Filtragem de Documentos
    • Filtrando Spam. Documentos e palavras. Treinando o classificador. Classificador Naïve. Introdução ao Teorema de Bayes. O método de Fischer. Filtrando feeds de blogs.
    • OBJETIVO: COMO CLASSIFICAR DOCUMENTOS BASEANDO-SE EM SEUS CONTEÚDOS.
  • Modelagem com Árvores de Decisão
    • Árvores de decisão. Treinando árvores. Construção recursiva de árvores. Visualização de árvores. Classificação de novas observações.
    • Prática: aplicações que modelem temas "quentes" (preços, cidades, esportes, ...)
    • OBJETIVO: CONFRONTAR OS CLASSIFICADORES APRESENTADOS ATÉ ENTÃO (RN, BAYES, ...) COM OS BASEADOS EM ÁRVORES DE DECISÃO
  • Criando modelos de preços
    • K-Vizinhos. Função Gaussiana. Cross-validation.
  • Classificação Avançada
    • Métodos Kernel. Support-Vector Machines.
  • Identificação de Características Independentes
  • Programação Genética

Horários

HorárioSegundaTerçaQuartaQuintaSexta
07:30 ~ 08:20  IA  
08:20 ~ 09:10IA IA  
09:20 ~ 10:10IA IA  

Monitoria

HorárioQuintaSexta
15:20 ~ 17:50F203F203

Email do monitor Oriel Frigo: oriel.frigo <arroba> gmail <ponto> com

Cronograma Previsto

DataCHConteúdo
Seg, 22/022Apresentação da Disciplina. Introdução à Python. Lista de Ex. 01.
Qua, 24/023Programação Orientada a Objetos em Python. Entrega da Lista de Ex. 01. Lista de Ex. 02.
Seg, 01/032Listas. Pilhas. Filas. Árvores. Funções lambda.
Qua, 03/033Correção das listas de exercícios 01 e 02. Lista de Ex. 03.
Seg, 08/032Não haverá aula!
Qua, 10/033Introdução à IA. Entrega da Lista de Ex. 03.
Seg, 15/032Introdução à Inteligência Coletiva.
Qua, 17/033Introdução à Inteligência Coletiva. Analisando dados online.
Seg, 22/032Introdução à Inteligência Coletiva. Filtragem por usuário e filtragem por dados. Lista de Ex. 04.
Qua, 24/033Introdução à Inteligência Coletiva.
Seg, 29/032Clustering. Aprendizado Supervisionado e Não-Supervisionado.
Qua, 31/033Clustering Hierárquico. Clustering K-Meios. Visualização de dados.
Seg, 05/042Redes Neurais Artificiais
Qua, 07/043Redes Neurais Artificiais. Lista de Ex. 05.
Seg, 12/042Redes Neurais Artificiais. Perceptron. Entrega da Lista de Ex. 04.
Qua, 14/043Redes Neurais Artificiais. Perceptron. Lista de Ex. 06.
Seg, 19/042Redes Neurais Artificiais. Lista de Ex. 06.
Qua, 21/04 Feriano Nacional - Tiradentes
Seg, 26/042Avaliação 01
Qua, 28/043Otimização. Função de Custo. Busca aleatória.
Seg, 03/052Otimização. Prática em Laboratório.
Qua, 05/053Otimização. Subida de encosta.
Seg, 10/052Otimização. Prática em Laboratório.
Qua, 12/053Otimziação. Têmpera simulada.
Seg, 17/052Otimização. Prática em Laboratório.
Qua, 19/053Otimização. Algoritmo Genético.
Seg, 24/052Prática em Laboratório. Lista de Exercícios 07.
Qua, 26/053Correção da Lista de Exercícios 07.
Seg, 31/052Temas para trabalho final. Aplicações exemplo.
Qua, 02/063Prática em Laboratório. Preparação de proposta para trabalho final.
Seg, 07/062Apresentação das propostas para o trabalho final.
Qua, 09/063Prática em Laboratório. Preparação de trabalho final.
Seg, 14/062Prática em Laboratório. Preparação de trabalho final.
Qua, 16/063Prévia dos trabalhos finais. Apresentação ao professor.
Seg, 21/062Prática em Laboratório. Preparação de trabalho final.
Qua, 23/063Apresentação e entrega dos trabalhos finais.
Seg, 28/062Avaliação 02
Seg, 05/072Exame Final

Observações...

  • Carga horária total de 75 horas
  • Término do semestre letivo em 10 de Julho
  • Prazo para divulgação de notas em 12 de Julho

Aulas

     Para simular o jogo do mico, execute o interpretador Python e entre com os comandos:

     >>> from jogocartas import *
     >>> jogo = Mico()
     >>> jogadores = ['Pedro', 'Paulo', 'Ana']
     >>> jogo.jogar(jogadores)
     ...

     É desta mesma forma que deverá ser com a simulação do jogo de caxeta.
     Para instalar a API pydelicious:

     1. Faça o download da API em http://pydelicious.googlecode.com/files/pydelicious-0.5.0.zip
     2. Descompacte o arquivo, entre no diretório e instale a biblioteca pydelicious:

          unzip pydelicious-0.5.0.zip
          cd pydelicious-0.5.0
          sudo python setup.py install

     3. Para utilizá-lo, basta importar o módulo pydelicious em seu programa Python:

          import pydelicious
          pydelicious.get_popular(tag='programming)

     4. Consulte a documentação da API para conhecer outras funções.

     OU... utilizando easy_install em sistemas derivados de Debian GNU/Linux:

     1. Instale as ferramentas de setup de Python:

          sudo aptitude install python-setuptools

     2. Use easy_install para instalar o pydelicious:

          sudo easy_install pydelicious

     3. Pronto, basta importá-lo!

Arquivos/APIs/Softwares

APIs

Todas as APIs dependem da instalação do pacote python-setuptools em Debian GNU/Linux. Portanto, antes de utilizar o easy_install, instale-o:

     sudo aptitude install python-setuptools

Também é recomendada a instalação de iPython:

     sudo aptitude install ipython

feedparser

Instalando...

     sudo easy_install feedparser

     ou...

     sudo aptitude install python-feedparser

Testando...

     ipython
     >>> import feedparser
     >>> feedparser.parse('http://automata.cc/index.php/feed/')

pydelicious

Instalando...

     sudo easy_install pydelicious

Testando...

     ipython
     >>> import pydelicious
     >>> pydelicious.get_popular(tag='lisp')

pil

Instalando...

     sudo easy_install pil

matplotlib

Instalando...

     sudo aptitude install python-matplotlib

Usando...

     ipython
     >>> from pylab import *

Referências

IA

  • SEGARAN, Toby. Programming Collective Intelligence. O'Reilly, 2007.
  • RUSSEL, Stuart; NORVIG, Peter. Inteligência Artificial. Campus, São Paulo, 2004.
  • NORVIG, Peter. Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp. Morgan Kaufmann, 1992.
  • WINSTON, Patrick Henry. Artificial Intelligence. 3rd. Edition. Addison-Wesley. Reading, 1992.

Python

Diversas


Page last modified on July 29, 2010, at 01:38 AM