UNIBRATEC
Desenvolvimento de Sistemas Inteligentes (DSI): 80h
email: unibratec@fredbf.com
1. COMPETÊNCIAS |
|
- C1 - Compreender conceitos básicos da computação inteligente
- C2 - Desenvolver sistemas com comportamento inteligente
- C3 - Utilizar ferramentas para construção de sistemas inteligentes
|
2. ANDAMENTO DA DISCIPLINA |
|
2.1 - Aulas Presenciais
|
|
Apresentação da disciplina e discussão sobre Inteligência X Inteligência Artificial
(1) O que é IA? - artigo em inglês de John McCarthy, em formato de perguntas e respostas, que discute sobre Inteligência Artificial (em DOC)
(2) Jogo dos sapos - documento excel com jogo de raciocínio lógico. Contribua com o site e envie links de jogos de raciocínio ao professor (unibratec@fredbf.com)
(3) Leitura: Capítulo 1 do AIMA (Artificial Intelligente: a Modern Approach) |
|
|
Introdução
(1) Conteúdo: História, Sistemas Inteligentes, Correntes de IA |
|
|
Agentes Inteligentes
(1) Conteúdo: definição, agente racional e modelagem usando agentes |
|
Aula 4
16/02 |
Vídeos sobre agentes e robótica
(1) Obs: veremos nessa aula, agentes inteligentes, pois na aula passada, assistimos aos vídeos |
|
Aula 5
18/02 |
Atividade 1 - Discussão sobre Inteligência Artificial
(1) Definição: artigo “What s AI?” de John McCarthy, em formato de perguntas e respostas, que discute sobre Inteligência Artificial |
|
|
Busca sem Informação (Busca Cega)
(1) Conteúdo: Busca sem Informação, Busca em Largura, Busca por Custo Uniforme, Busca em Profundidade |
|
Aula 7
25/02 |
Busca sem Informação (continuação)
(1) Conteúdo: Busca com Profundidade Limitada, Busca com Profundidade Interativa, Busca Bidirecional, Comparação entre essas estratégias e Estudos de Caso |
|
|
Busca com Informação (Busca Informada)
(1) Conteúdo: Busca com Informação, Busca Gulosa, Busca A* e Heurística
(2) Primeira lista de exercícios: ListaExercicios1.pdf |
|
Aula 9
03/03 |
Criação de Heurísticas e Heurística do Jogo da Velha
(1) Conteúdo: estudando mais sobre heurísticas e implementando heurísticas para o jogo da velha (jogoDaVelha.zip)
(2) Passo a passo para criação da sua heurística (Ativ2.txt) |
|
Aula 10
04/03 |
Copa do Mundo da Heurística do Jogo da Velha
(1) Conteúdo: demonstração das heurísticas implementadas pelos alunos
(2) Problemas de otimização: motivação inicial |
|
Aula 11
10/03 |
Avaliação 1
(1) Conteúdo: Agentes (Cap2) + Busca sem Informação (Cap3) + Busca com Informação (Cap4) |
|
|
Algoritmos de Busca por Otimização
(1) Conteúdo: Subida da Encosta (Hill Climbing),
Simulated Anneling (Têmpera Simulada) e
Algoritmos Genéticos |
|
Aula 13
17/03 |
Atividade 2 – Implementação para heurística do jogo da velha
(1) Definição: implementar uma heurística do jogo da velha
(2) Deadline: 15/09 |
|
|
Algoritmos Genéticos (AG)
(1) Conteúdo: Motivação Inicial |
|
Aula 15
24/03 |
Algoritmos Genéticos (AG)
(1) Conteúdo: Definição e Fases de um AG
(2) Estudo da implementação do problema das 8 Rainhas (8RainhasAGMelhorado.zip) |
|
Aula 16
25/03 |
Exercício de laboratório sobre AG
(1) Conteúdo: modelagem e implementação do problema de coloração de mapas (ColoracaoComAG.zip) |
|
|
Exercício de laboratório sobre AG
(1) Conteúdo: modelagem do problema de alocação de disciplinas |
|
Aula 18
01/04 |
Atividade 3 – Implementação de um Algoritmo Genético para o problema de alocação de disciplinas
(1) Definição: implementar uma solução para a modelagem apresentada na aula anterior |
|
Aula 19
07/04 |
Avaliação 2
(1) Algoritmos Genéticos |
|
Aula 20
08/04 |
Redes Neurais: Motivação
(1) Conteúdo: introdução à redes neurais artificiais, neurônio biológico, resolvendo um problema simples usando uma Rede Neural Artificial simples (Perceptron)
(2) Applet de um Perceptron, que resolve um problemas da tabela verdade, usando várias funções de ativação: clique aqui
(3) Código de implementação de um perceptron, usando função de ativação sigmóide, que reconhece um T e um H: projeto completo no Delphi (Perceptron.zip) e apenas executável (Perceptron.exe)
(4) Leitura: capítulo 3 do livro de Redes Neurais Artificiais |
|
|
Redes Neurais: Introdução
(1) Conteúdo: Introdução, Histórico, Redes e Neurônios Biológicos, Neurônios Artificiais |
|
Aula 22
15/04 |
Redes Neurais: Introdução (continuação)
(1) Conteúdo: Funções de Ativação e Principais Arquiteturas Modelo de Linsker, Regra de Oja, Perceptron e Adaline |
|
|
Redes Neurais: Aprendizagem e Perceptron
(1) Conteúdo: Aprendizado, Aprendizado Supervisionado, Aprendizado por Reforço, Aprendizado não Supervisionado, Aprendizado Competitivo, Aprendizado Hebbiano, Modelo de Linsker, Regra de Oja, Perceptron e Adaline
(2) Estudo de caso: realizando treinamento e teste do problema OR
(3) Lista de Exercícios sobre RNA (ListaExerciciosSobreRNA.pdf) e fazer o refinamento do Perceptron (Caracteres.xls)
OBS: ver seção 2.2 do site para maiores explicações sobre a Atividade 4 |
|
|
Redes MLP e WEKA
(1) Conteúdo: realizando treinamento e teste de um problema da previsão do tempo para jogar tênis usando o WEKA |
|
Aula 25
28/04 |
Redes MLP e WEKA
(1) Conteúdo: realizando treinamento e teste dos problemas OR e Análise de Crédito usando o WEKA |
|
Aula 26
29/04 |
Atividade 4 – Implementação de um um reconhecedor de caracteres
(1) Definição: implementar um reconhecedor de caracteres
|
|
Aula 27
05/05 |
Avaliação 3
(1) Conteúdo: cap1, cap2 e cap3 do Livro de Redes Neurais
(2) Essa avaliação deveria ter sido realizada no dia 29/10, porém os alunos pediram o adiamento de um dia |
|
Aula 28
06/05 |
Agentes Baseados em Conhecimento (BC)
(1) Conteúdo: Conhecimento e Raciocínio, Agentes BC, Arquitetura, Ciclo de Vida, Engenharia de Conhecimento, Linguagens de Representação do Conhecimento e Sistemas BC
|
|
|
Raciocínio e Representação do Conhecimento: introdução
(1) Conteúdo: Definição de Raciocínio e de Representação do Conhecimento, Resolução do problema das 8-rainhas usando o JEOPS
(2) JEOPS (The Java Embedded Object Production System)- site oficial, aula em português sobre a ferramenta (clique aqui), download do JEOPS (clique aqui)
(3) Código-fonte para resolução do problema das 8 rainhas: OitoRainhas.rules, Rainha.java e TesteRainhas.java. Procedimento: (a) crie um projeto no Eclipse; (b) crie uma pasta de nome 'aula'; (c) copie os 3 arquivos-fonte para essa pasta; (d) copie e descompacte o JEOPS (download no tópico 4 abaixo) para essa mesma pasta; (e) adicione os dois JAR no seu projeto; (f) compile o arquivo de regras com o comando "jeops.compiler.Main aula/OitoRainhas.rules"; e finamente (g) execute o arquivo TestaRainhas.
(4) Errata no JEOPS: a partir da versão JDK 1.4.1 em diante, o JEOPS troca o método assert() por tell(), para não gerar erro de sintaxe. Portanto, faça o donwload da versão corrigida (JEOPS_TELL.zip), e em seguida modifique o arquivo TesteRainhas.java
(5) Ler: capítulo 7 do AIMA |
|
|
JEOPS: resolvendo o problema da coloração de mapas
(1) Conteúdo: aqui estão os 3 arquivos (Bloco.java, RegrasBlocos.rules e TestaBlocos.java) que devem ser criados dentro do pacote "alocacao", a partir da raiz. Já estou trabalhando com JEOPS_TELL aqui. |
|
|
JEOPS: resolvendo o problema de alocação de disciplinas
(1) Problema a ser resolvido: alocação de disciplinas
(2) Solução: SisAloc.rules, Disciplina.java, Horario.java, Professor.java e SisAlocTeste.java que devem ser criados dentro do pacote "sisaloc", a partir da raiz. Já estou trabalhando com JEOPS_TELL aqui. |
|
Aula 32
20/05 |
JEOPS: trabalhando com mais de uma regra e regras encadeadas
(1) Problema a ser resolvido: classificação de meios de transporte segundo Bigus & Bigus, "Constructing Intelligent Agents with Java". Pegue as regras aqui.
(2) Usar o comando modified() do JEOPS, quando modificar um objeto dentro da base de conhecimento. Em outras palavras, quando você modificar o conteúdo do objeto t, use o método modified(t), para que outras regras-encadeadas possam ser disparadas. Ex:
rule Automovel {
declarations
Transporte t;
conditions
t.getNumeroRodas() == 4;
t.getMotor();
actions
t.setTipoTransporte("automovel");
modified(t);
}
(3) Pegue os arquivos Transporte.java e Tamanho.java, abra um projeto qualquer, e salve-os dentro do pacote "aulas". Codifique o arquivo de regras, com nome ClassificacaoTransportesBase.rules, e com a regra base (ruleBase) de mesmo nome .
(4) Execute o exemplo, para testar o tipo e modelo do transporte, no arquivo Exemplo1.java. Por que o arquivo entra num laço infinito? Clique aqui para resposta
(5) Importe a classe jeops.conflict.OneShotConflictSet, e use a política de executar apenas uma vez, cada regra, new OneShotConflictSet(), na hora de criar sua base de dados Exemplo1_modificado.java
(6) Dia 12 não teve aula (professor faltou) e dia 13 faltou luz na UNIBRATEC |
|
Aula 33
26/05 |
JEOPS: construindo um agente inteligente
(1) Conhecendo o Mundo do Wumpus através de applets: Exemplo1 e Exemplo2
(2) Projeto completo de um agente para o Mundo do Wumpus, usando o JEOPS: wumpus.zip
(3) Construa regras para o problema acima, de modo a embutir o máximo de conhecimento ao agente
(4) Ações interessantes:
(a) pegar pepita, se ela estiver disponível;
(b) voltar pra casa, se tem pepita e está no início;
(c) andar na direção contrária, caso perceba um buraco;
(d) atirar flecha precisa usar o método setFireMode(), para preparar o arco, e setFireDir(DIRECAO)
(e) atirar uma flecha, caso perceba o Wumpus;
(f) construa mais regras...
(5) Essa é atividade 5, e quanto mais inteligente seu agente for, maior será o conceito que você irá receber nessa atividade |
|
Aula 34
27/05 |
JEOPS: trabalhando exemplo com estouro de memória
(1) Problema a ser resolvido: criptaritmética
(2) Definição do problema: atribua um valor (de 0 a 9) a cada letra, de forma que a soma de SEND e MORE dê igual a MONEY, seguindo uma soma normal. Lembrando que letras iguais devem ter valores iguais.
(3) Para ver a Implementação em prolog, clique aqui
(4) Código-fonte para resolução do problema: criptoRegras.rules, Letra.java e criptoTeste.java. |
|
Aula 35
02/06 |
Avaliação 4
(1) Conteúdo: Sistemas Baseados em Conhecimento
(2) Prova Prática, para resolução de problemas usando JEOPS |
|
Aula 36
03/06 |
Acompanhamento dos seminários e projetos
(1) Definição: aula reservada para tirar dúvidas finais sobre o projeto e o seminário |
|
Aula 37
09/06 |
Apresentação dos seminários e projetos
|
|
Aula 38
10/06 |
Apresentação dos seminários e projetos |
|
Aula 39
16/06 |
Apresentação dos seminários e projetos |
|
Aula 40
17/06 |
Avaliação FINAL |
2.2 - Atividades à Distância
|
Ativ 1 |
Discussão e tarefa do Artigo "What is AI?"
(1) Data limite: ?? |
|
Ativ 2 |
Implementação para heurística do jogo da velha
(1) Data limite: ??
(2) Definição: implementar uma heurística do jogo da velha |
|
Ativ 3 |
Implementação de um Algoritmo Genético para o problema de alocação de disciplinas
(1) Data limite:??
(1) Definição: implementar uma solução para a modelagem apresentada na aula anterior |
|
Ativ 4 |
Refinando o Perceptron para Reconhecimento de Caracteres
(1) Data limite: ??
(2) Aumentar o número de pixels para representação de um caractere. Abrir o arquivo Caracteres.xls para criação de suas letras correspondentes (procure seu nome nesse arquivo).
(3) Abrir o projeto em delphi (Perceptron.zip), e estender um caractere para ser representado por uma matriz de 8x8 elementos. O roteiro passo-a-passo do que deve ser feito encontra-se no arquivo Caracteres.xls (acima). |
|
Ativ 5 |
Implementação de um agente no Mundo do Wumpus usando o JEOPS
(1) Data limite: ??
(2) Definição: implementar um agente no mundo do Wumpus, que seja capaz de pegar uma pepita de ouro e voltar pro início |
|
Ativ 6 |
Artigo sobre o assunto do seminário
(1) Data limite: ??
(2) Nº de páginas: mínimo de 2, máximo de 4
(3) Estrutura sugerida: resumo, palavras-chave, abstract, introdução, estado da arte/trabalhos relacionados, metodologia, resultados e conclusão |
|
Ativ 7 |
Seminário
(1) Data limite: ??
(2) Critérios:
(a) trabalho individual;
(b) duração: 30min;
(c) explicação clara e objetiva do assunto abordado: slides ou quadro branco;
(d) demonstração de uso da ferramenta usada;
(e) demonstração de um protótipo executando |
|
Ativ 8 |
Protótipo simples sobre o assunto do seminário
(1) Data limite: ??
(2) Definição: Código fonte comentado
|
|
|
3. PROJETO |
|
- Utilização de alguma ferramenta de IA para resolver um problema real
- Usar alguma técnica estudada em sala para embutir comportamento inteligente em algum código já existente
- Desenvolver uma aplicação inteligente para um problema real
- Projeto Integrado para o 4º período?
- Implementar um jogo em interface gráfica (dominó, forca, etc), permitindo que os usuários possam criar heurísticas facilmente
|
4. FERRAMENTAS |
|
- JEOPS - http://www.di.ufpe.br/~jeops/
- WEKA - http://www.cs.waikato.ac.nz/ml/weka/
- EXPERT SINTA - http://www.lia.ufc.br/~bezerra/exsinta/
|
6. BIBLIOGRAFIA |
|
- Russell, S, Norvig, P., Inteligência Artificial, Editora Campus, 2004.
- Braga, A. de P., Ludermir, T. B., Carvalho, A. C. P. de L., Redes Neurais Artificiais – Teoria e Aplicações – Editora LTC, 2000
- Linden, Ricardo, Algoritmos Genéticos – Uma Importante Ferramenta da Inteligência Computacional, Editora Brasport, 2006
|
7. AVALIAÇÕES |
|
LEGENDA:
|
|
= |
Bom rendimento, continue assim |
|
|
= |
Rendimento satisfatório |
|
|
= |
Precisa melhorar |
|
? |
= |
Entregue, mas não corrigido |
|
- |
= |
Não realizado ou não entregue |
|
Competência C1 |
Alunos |
Av 1
|
Av 2 |
Av 3 |
Ativ 6 |
Ativ 7 |
Média Parcial |
Av Final |
Média Final |
Conc. |
Rep. |
Conc. |
Rep. |
Conc. |
Rep. |
Conc. |
Atraso |
Conc. |
Atraso |
Conc. |
Conc. |
Conc. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Competência C2 |
Alunos |
Ativ 2 |
Ativ 3
|
Ativ 8 |
Média Parcial |
Av Final |
Média Final |
Conc. |
Atraso |
Conc. |
Atraso |
Conc. |
Atraso |
Conc. |
Conc. |
Conc. |
|
|
|
|
|
|
|
|
|
|
|
Competência C3 |
Alunos |
Av 4 |
Ativ 4
|
Ativ 5 |
Média Parcial |
Av Final |
Média Final |
Conc. |
Rep. |
Conc. |
Atraso |
Conc. |
Atraso |
Conc. |
Conc. |
Conc. |
|
|
|
|
|
|
|
|
|
|
|
|