
- Avaliação Escrita I
- Avaliação Escrita II
- Implementação de Algoritmo Genético para Escalas Pentatônicas. Base para questão 3 da Avaliação Escrita II
- Para os mais curiosos... Script em Python e patch em Puredata para gerar e reproduzir o AG
TRABALHOS FINAIS
| Título | Equipe | Arquivos |
|---|---|---|
| Solução do problema das N-Rainhas através de Algoritmo Genético | David Garrido Huerta, Reginaldo Matias, Gian Carlo Schroeder | Download |
| Reconhecimento e classificação de arquivos de áudio por estilo musical | Alan Rafael Fachini | Download |
| Automação de postagens inteligentes para blogs | Fábio R. Roman, Gabriel Balestrin | Download |
| Gerenciamento inteligente de trânsito | Fernando Alves Michalak, Gilian Moacir Dal Pra, Raphael Amaro de Almeida | |
| IA para jogos First Person Shooter | Leandro Israel Pinto, Marcos Eduardo Crivellaro, Marina Silva Fouto | |
| Analisador de imagens utilizando o coeficiente de correlação de Pearson | André Furquim Xotta, Heloisa Medeiros, Sérgio Vinícius de Sá Lucena | Download |
| Filtro Bayesiano Anti-Spam | Anderson Resendes, Gustavo Della Giustina, Gustavo Francisco Frizzo | Download |
NOVO HORÁRIO DE MONITORIA!!!
| Horário | Quinta | Sexta |
|---|---|---|
| 15:20 ~ 17:50 | F203 | F203 |
TRABALHO FINAL DISPONÍVEL!
NOTAS DE TODAS AS AVALIAÇÕES ATÉ O MOMENTO (LISTAS 1..6 & PROVA 1)
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ário | Segunda | Terça | Quarta | Quinta | Sexta |
|---|---|---|---|---|---|
| 07:30 ~ 08:20 | IA | ||||
| 08:20 ~ 09:10 | IA | IA | |||
| 09:20 ~ 10:10 | IA | IA |
Monitoria
| Horário | Quinta | Sexta |
|---|---|---|
| 15:20 ~ 17:50 | F203 | F203 |
Email do monitor Oriel Frigo: oriel.frigo <arroba> gmail <ponto> com
Cronograma Previsto
| Data | CH | Conteúdo |
|---|---|---|
| Seg, 22/02 | 2 | Apresentação da Disciplina. Introdução à Python. Lista de Ex. 01. |
| Qua, 24/02 | 3 | Programação Orientada a Objetos em Python. Entrega da Lista de Ex. 01. Lista de Ex. 02. |
| Seg, 01/03 | 2 | Listas. Pilhas. Filas. Árvores. Funções lambda. |
| Qua, 03/03 | 3 | Correção das listas de exercícios 01 e 02. Lista de Ex. 03. |
| Seg, 08/03 | 2 | Não haverá aula! |
| Qua, 10/03 | 3 | Introdução à IA. Entrega da Lista de Ex. 03. |
| Seg, 15/03 | 2 | Introdução à Inteligência Coletiva. |
| Qua, 17/03 | 3 | Introdução à Inteligência Coletiva. Analisando dados online. |
| Seg, 22/03 | 2 | Introdução à Inteligência Coletiva. Filtragem por usuário e filtragem por dados. Lista de Ex. 04. |
| Qua, 24/03 | 3 | Introdução à Inteligência Coletiva. |
| Seg, 29/03 | 2 | Clustering. Aprendizado Supervisionado e Não-Supervisionado. |
| Qua, 31/03 | 3 | Clustering Hierárquico. Clustering K-Meios. Visualização de dados. |
| Seg, 05/04 | 2 | Redes Neurais Artificiais |
| Qua, 07/04 | 3 | Redes Neurais Artificiais. Lista de Ex. 05. |
| Seg, 12/04 | 2 | Redes Neurais Artificiais. Perceptron. Entrega da Lista de Ex. 04. |
| Qua, 14/04 | 3 | Redes Neurais Artificiais. Perceptron. Lista de Ex. 06. |
| Seg, 19/04 | 2 | Redes Neurais Artificiais. Lista de Ex. 06. |
| Qua, 21/04 | Feriano Nacional - Tiradentes | |
| Seg, 26/04 | 2 | Avaliação 01 |
| Qua, 28/04 | 3 | Otimização. Função de Custo. Busca aleatória. |
| Seg, 03/05 | 2 | Otimização. Prática em Laboratório. |
| Qua, 05/05 | 3 | Otimização. Subida de encosta. |
| Seg, 10/05 | 2 | Otimização. Prática em Laboratório. |
| Qua, 12/05 | 3 | Otimziação. Têmpera simulada. |
| Seg, 17/05 | 2 | Otimização. Prática em Laboratório. |
| Qua, 19/05 | 3 | Otimização. Algoritmo Genético. |
| Seg, 24/05 | 2 | Prática em Laboratório. Lista de Exercícios 07. |
| Qua, 26/05 | 3 | Correção da Lista de Exercícios 07. |
| Seg, 31/05 | 2 | Temas para trabalho final. Aplicações exemplo. |
| Qua, 02/06 | 3 | Prática em Laboratório. Preparação de proposta para trabalho final. |
| Seg, 07/06 | 2 | Apresentação das propostas para o trabalho final. |
| Qua, 09/06 | 3 | Prática em Laboratório. Preparação de trabalho final. |
| Seg, 14/06 | 2 | Prática em Laboratório. Preparação de trabalho final. |
| Qua, 16/06 | 3 | Prévia dos trabalhos finais. Apresentação ao professor. |
| Seg, 21/06 | 2 | Prática em Laboratório. Preparação de trabalho final. |
| Qua, 23/06 | 3 | Apresentação e entrega dos trabalhos finais. |
| Seg, 28/06 | 2 | Avaliação 02 |
| Seg, 05/07 | 2 | Exame 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
- Aula 01 - Apresentação da disciplina. Introdução à Python.
- Aula 02 - Programação Orientada a Objetos em Python.
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.
- Aula 03 - Listas. Pilhas. Filas. Árvores. Funções lambda.
- Aula 04 - Correção da lista de ex. 02
- Pacote com soluções dos alunos para a Lista de exercícios 02 Δ (disponível assim que receber dos alunos)
- Implementação da classe Caxeta
- Lista de Exercícios 03
- Aula 05 - Não haverá aula
- Aula 06 - Introdução à Inteligência Artificial
- Aula 07 - Introdução à Inteligência Coletiva
- Aula 08 - Introdução à Inteligência Coletiva
- Aula 09 - Introdução à Inteligência Coletiva
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!
- Aula 10 - Clustering
- Aula 11 - Redes Neurais

- Aula 12 - Redes Neurais
- Aula 13 - Otimização
- Aula 14 - Otimizacao
- Avaliação Escrita I
Arquivos/APIs/Softwares
- Interpretador interativo ***INCRÍVEL*** para Python
- Modo Emacs para editar Python
- Código-fonte dos exemplos do livro Practical Collective Intelligence
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
- Dive Into Python. Disponível Online.
- Aprenda Computação com Python. Disponível Online.
- ASCHER, David; LUTZ, Mark. Aprendendo Python. Bookman, 2007.
- MARTELLI, Alex. Python In A Nutshell. O'Reilly, 2003.
- BEAZLEY, David M. Python Essential Reference. Sams Publishing, 2006.
- Easy AI with Python.
Diversas
- Dicas de Emacs para programar em Python
- Python Brasil
- IDE Komodo (Suporte também a Python)