+5 - Bacharelado em Ciência da Computação

Propaganda
Universidade Federal do ABC
Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil
CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166
1. CÓDIGO E NOME DA DISCIPLINA
MC3311 - Inteligência Artificial
2. DISCIPLINA REQUISITO (RECOMENDAÇÃO)
Lógica
3. INDICAÇÃO DE CONJUNTO (BCC)
Obrigatória
4. CURSO
5. CRÉDITOS
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO T-P-I: 3-1-4
6. QUADRIMESTRE IDEAL
7o
7. NÍVEL
Graduação
8. Nº. MÁXIMO DE ALUNOS POR TURMA
TEORIA: 60
LABORATÓRIO: 30
9. OBJETIVOS
Habilitar a aplicação de conceitos e técnicas de Inteligência Artificial (IA) e enfatizar o projeto e a
construção de sistemas de resolução de problemas usando técnicas de IA, aplicados a classes de
tarefas que muitas vezes estão fora do alcance de técnicas computacionais tradicionais.
10. COMPETÊNCIAS
A disciplina deverá permitir que o aluno seja capaz de:
- Compreender o que é Inteligência Artificial;
- Definir um agente e, em particular, um agente inteligente;
- Conhecer e compreender as diversas sub-áreas da Inteligência Artificial;
- Identificar o tipo de problema em que uma técnica de IA deve ser aplicada, ao invés de uma
técnica computacional tradicional, e compreender o motivo desta decisão;
- Compreender qual técnica de IA é mais adequada para cada tipo de problema;
- Implementar técnicas de IA para a resolução de problemas.
11. PROGRAMA RESUMIDO
Introdução à Inteligência Artificial. Agentes inteligentes. Resolução de problemas utilizando técnicas
de busca. Sistemas Baseados no Conhecimento. Representação do conhecimento. Tratamento de
incerteza. Aprendizado.
12. PROGRAMA
1 – Introdução à Inteligência Artificial (IA)
1.1 – Definição de IA
1.2 - IA no dia-a-dia
1.3 – Categorias das definições de IA
1.4 – Histórico de IA
2 - Agentes Inteligentes
2.1 – Agentes racionais
2.2 – Natureza dos ambientes
2.3 – Propriedades dos ambientes
2.4 – Agentes com reflexos simples
2.5 – Agentes baseados em modelo
2.6 – Agentes baseados em objetivo
2.7 - Agentes baseados em utilidade
2.8 – Agentes que aprendem
2.9 – Resolução de exercícios
3 – Técnicas de Busca
3.1 – Etapas da resolução de um problema
3.1.1 – Definir objetivos
3.1.2 – Formular o problema
3.1.3 – Buscar a solução
3.1.4 – Executar a solução
3.2 – Componentes de um problema
3.2.1 – Grafos
3.3 – Como formular um problema
3.4 – Problemas reais
3.5 – Algoritmos
3.6 – Busca por soluções
3.7 – Árvore de busca
3.8 – Desempenho
3.9 – Busca Cega
3.9.1 – Busca em Largura
3.9.2 – Busca de Custo Uniforme
3.9.3 – Busca em Profundidade
3.9.3.1 – Busca em Profundidade Limitada
3.9.3.2 – Busca por Aprofundamento Iterativo
3.9.4 – Busca Bidirecional
3.9.5 – Como evitar estados repetidos
3.10 – Busca Heurística
3.10.1 Busca Gulosa
3.10.2 – Busca A*
3.10.3 – Funções heurísticas
3.10.4 – Busca Local
3.10.4.1 – Busca Subida em Encosta (Hill-climbing)
3.10.4.2 - Recozimento Simulado (Simulated Annealing)
3.10.4.3 – Busca em Feixe Local (Beam Search)
3.10.5 – Algoritmos Genéticos
3.11 – Problemas de satisfação de restrições
3.11.1 – Tipos de variáveis
3.11.2 – Tipos de restrições
3.11.3 – Formulações do problema
3.11.4 – Busca com Retrocesso
3.11.5 – Heurísticas Gerais
3.11.6 – Heurísticas Especiais
3.11.7 – Restrições Especiais
3.11.8 Retrocesso Inteligente
3.12 – Busca Competitiva
3.12.1 – Tipos de jogos
3.12.2 - Formulação do problema
3.12.3 – Decisões ótimas em jogos
3.12.4 – Estratégia MINIMAX
3.12.5 – Poda Alfa-Beta
3.12.6 – Funções de avaliação
3.12.7 – Jogos com acaso
3.12.8 – Programas de última geração
3.13 – Resolução de exercícios
4 – Sistemas Baseados no Conhecimento (SBCs)
4.1 – Natureza do conhecimento humano
4.2 – Sistemas baseados em conhecimento
4.2.1 – Definição
4.2.2 – Capacidades
4.2.3 - Propriedades
4.2.4 – Diferenças entre os sistemas convencionais e os SBCs
4.2.5 - Sistemas Especialistas - Histórico
4.2.6 – Viabilidade de um SBC e quando se deve desenvolvê-lo
4.2.7 – Tipos de aplicações de SBCs
4.2.8 – Estrutura geral de um SBC
4.2.9 – Desenvolvimento de um SBC – fases
4.2.10 – Ferramentas para construção de um SBC
4.2.11 – Verificação e validação de um SBC
4.2.12 – Versões demonstrativas de SBCs na Web
4.3 – Resolução de exercícios
5 – Representação do Conhecimento
5.1 – Características
5.2 - Componentes
5.1 – Regras de Produção
5.1.1 – Encadeamento progressivo (forward chaining)
5.1.2 – Encadeamento regressivo (backward chaining)
5.1.3 – Exemplos
5.1.4 – Vantagens e limitações
5.2 – Redes Semânticas
5.2.1 – Características
5.2.2 – Busca em Redes Semânticas
5.2.3 – Vantagens e limitações
5.3 – Frames
5.3.1 – Características
5.3.2 – Capacidades
5.4 – Scripts
5.4.1 – Características
5.5 – Lógica
5.5.1 – O Mundo de Wumpus
5.5.1.1 – Sintaxe
5.5.1.2 – Semântica
5.5.1.3 – Base de Conhecimento
5.5.1.4 – Inferência
5.6 – Resolução de exercícios
6 - Incerteza
6.1 – Representação de incerteza
6.2 – Modelo probabilista
6.2.1 – Crença x Verdade
6.2.2 – Tipos de probabilidade
6.2.3 – Teoria da Utilidade
6.2.4 – Notação básica de probabilidade
6.2.4.1 – Variável aleatória, conectivos lógicos e eventos atômicos
6.2.5 – Probabilidade a priori
6.2.6 – Probabilidade condicional
6.2.7 – Axiomas da probabilidade
6.2.8 – Inferência probabilística
6.2.9 – Independência
6.3 – Regra de Bayes
6.4 – Redes Bayesianas
6.5 – Lógica Nebulosa (Fuzzy)
6.5.1 – Elementos
6.5.2 – Partição
6.5.3 – Representação: funções de pertinência
6.5.4 – Variáveis lingüísticas
6.5.5 – Operações
6.5.6 – Representação de conjuntos Fuzzy
6.5.7 – Regras Fuzzy
6.5.8 – Etapas do raciocínio Fuzzy
6.6 – Resolução de exercícios
7 – Aprendizado
7.1 – Aprendizado de Máquina
7.1.1 – Objetivos
7.1.2 – Indução
7.1.3 – Modos de aprendizado
7.1.3.1 – Aprendizado supervisionado
7.1.3.2 – Aprendizado não-supervisionado
7.1.3.3 – Aprendizado por reforço
7.1.4 – Paradigmas de aprendizado
7.1.4.1 – Simbólico
7.1.4.2 – Estatístico
7.1.4.3 – Baseado em exemplos
7.1.4.4 – Conexionista
7.1.4.5 – Evolutivo
7.1.5 – Linguagens de descrição do aprendizado
7.1.5.1 – Instâncias ou exemplos
7.1.5.2 – Conceitos aprendidos ou hipóteses
7.1.5.3 – Teoria de domínio ou conhecimento de fundo
7.1.6 – Formas de aprendizado
7.1.6.1 – Incremental
7.1.6.2 – Não-incremental
7.1.7 – Projetando um sistema de aprendizado
7.1.8 – Desempenho de algoritmos
7.1.9 – Árvores de decisão
7.1.9.1 – Características
7.1.9.2 – Construindo uma árvore de decisão
7.1.9.3 – Poda
7.2 – Resolução de exercícios
13. MÉTODOS UTILIZADOS
Os conteúdos serão apresentados em aulas expositivas, com uso de recursos audiovisuais (slides)
e lousa para a resolução de exercícios. Em seguida, eles serão trabalhados em exercícios e em
aulas de laboratório, através da aplicação de cada técnica na resolução de um dado problema. Os
alunos desenvolverão ainda um projeto computacional em grupo, que consistirá na implementação
de uma das técnicas de IA estudadas para a resolução de um dado problema. Os alunos farão uma
apresentação do projeto para o professor e toda a turma.
14. ATIVIDADES DISCENTES
Os alunos resolverão listas de exercícios, realizarão implementações das técnicas de IA estudadas
nas aulas em laboratório em dupla e desenvolverão em grupo um projeto computacional que
consistirá na implementação de uma das técnicas de IA estudadas para a resolução de um dado
problema. Os grupos de alunos apresentarão seus projetos ao professor e à turma, em sala de
aula.
15. CARGA HORÁRIA
AULAS TEÓRICAS: 36 horas
AULAS PRÁTICAS: 12 horas
TOTAL: 48 horas
RECOMENDADO PARA DEDICAÇÃO INDIVIDUAL: 4 horas semanais
16. CRITÉRIOS DE AVALIAÇÃO DE APRENDIZAGEM
Os alunos serão avaliados de três formas: i) realização de duas avaliações escritas (peso de 40%);
ii) desenvolvimento e apresentação de um projeto computacional (peso de 40%) e iii) resoluções de
listas de exercícios (peso de 20%). O aproveitamento do aluno será calculado como a média
ponderada destas três formas de avaliação, de acordo com os pesos descritos anteriormente (entre
0% e 100%).
17. NORMAS DE RECUPERAÇÃO (CRITÉRIOS DE APROVAÇÃO E ÉPOCAS DE REALIZAÇÃO
DAS PROVAS OU TRABALHOS)
As notas serão atribuídas segundo os conceitos estabelecidos pela UFABC. A aprovação se dará
mediante obtenção de conceitos A, B, C, ou D. O aluno fará uma avaliação escrita substitutiva caso
tenha obtido conceito F no cálculo do valor médio de aproveitamento nas avaliações escritas. O
aproveitamento obtido na avaliação substitutiva será inserido no lugar do menor aproveitamento
alcançado nas avaliações escritas.
18. BIBLIOGRAFIA RECOMENDADA
BIBLIOGRAFIA BÁSICA:
1. RUSSELL, Stuart Jonathan; NORVIG, Peter. Inteligência artificial. 2 ed. Rio de Janeiro:
Campus, 2004. 1021 p. Tradução da segunda edição. ISBN 9788535211771.
2. REZENDE, Solange Oliveira. Sistemas inteligentes: fundamentos e aplicações. Barueri:
Manole, 2005. xxxiii, 517 p. (RECOPE-IA - Rede cooperativa de pesquisa em inteligência
Artificial). ISBN 9788520416839.
BIBLIOGRAFIA COMPLEMENTAR:
1. BITTENCOURT, Guilherme. Inteligência artificial: ferramentas e teorias. 3 ed. Florianópolis:
Ed. da UFSC, 2006. 371 p. ISBN 9788532801388.
2. BRACHMAN, Ronald J; LEVESQUE, Hector J. Knowledge representation and reasoning.
San Francisco, CA: Elsevier, 2003. xxix, 381 p. Includes bibliographical references and
index. ISBN 9781558609327.
3. LUGER, George F. Artificial intelligence: structures and strategies for complex problem
solving. 6ª. ed. Boston: Pearson Addison-Wesley, c2009. xxiii, 754 p. ISBN 9780321545893.
4. MITCHELL, Tom m. Machine learning. Boston: WCB McGraw-Hill, c1997. 414 p. (McgrawHill series in computer science). ISBN 9780070428072.
5. MORTARI, Cezar A. Introdução à lógica. São Paulo: Editora da Unesp, 2001. 393 p. ISBN
857139337-0.
6. RUSSELL, Stuart; NORVIG, Peter. Artificial intelligence: a modern aproach. 2 ed. New
Jersey: Prentice Hall; Pearson Education, 2003. 1081 p. (Prentice Hall series in Artificial
Intelligence). ISBN 0137903952.
7. SUTTON, Richard S.; BARTO, Andrew G. Reinforcement learning: an introduction.
Cambridge, Mass: MIT Press, c1998. xviii, 322 p. (Adaptive computation and machine
learning). Includes bibliographical references and index. ISBN 9780262193986.
8. WOOLDRIDGE, Michael. An introduction to multiagent systems. 2 ed. Torquay: Wiley, 2009.
461 p. ISBN 9780470519462.
19. PLANO SUGERIDO PARA AS AULAS (em semanas letivas – duas aulas por semana)
Aula 01: Introdução à Inteligência Artificial (IA)
1.1 – Definição de IA
1.2 - IA no dia-a-dia
1.3 – Categorias das definições de IA
1.4 – Histórico de IA
1.5 – Resolução de exercícios
Aula 02: Agentes Inteligentes
2.1 – Agentes racionais
2.2 – Natureza dos ambientes
2.3 – Propriedades dos ambientes
2.4 – Agentes com reflexos simples
2.5 – Agentes baseados em modelo
2.6 – Agentes baseados em objetivo
2.7 - Agentes baseados em utilidade
2.8 – Agentes que aprendem
2.9 – Resolução de exercícios
Aula 03: Resolução de Problemas por Busca
3.1 – Etapas da resolução de um problema
3.1.1 – Definir objetivos
3.1.2 – Formular o problema
3.1.3 – Buscar a solução
3.1.4 – Executar a solução
3.2 – Componentes de um problema
3.2.1 – Grafos
3.3 – Como formular um problema
3.4 – Problemas reais
3.5 – Algoritmos
3.6 – Busca por soluções
3.7 – Árvore de busca
3.8 – Desempenho
3.9 – Resolução de exercícios
Aula 04: Busca Cega
4.1 – Busca em Largura
4.2 – Busca de Custo Uniforme
4.3 – Busca em Profundidade
4.3.1 – Busca em Profundidade Limitada
4.3.2 – Busca por Aprofundamento Iterativo
4.4 – Busca Bidirecional
4.5 – Como evitar estados repetidos
4.6 – Resolução de exercícios
Aula 05: Busca Cega – Prática
Aula 06: Busca Heurística
6.1 - Busca Gulosa
6.2 – Busca A*
6.3 – Funções heurísticas
6.4 – Busca Local
6.4.1 – Busca Subida em Encosta (Hill-climbing)
6.4.2 Recozimento Simulado (Simulated Annealing)
6.4.3 – Busca em Feixe Local (Beam Search)
6.5 – Algoritmos Genéticos
6.6 – Resolução de exercícios
Aula 07: Busca Heurística – Prática
Aula 08: Problemas de satisfação de restrições
8.1 – Tipos de variáveis
8.2 – Tipos de restrições
8.3 – Formulações do problema
8.4 – Busca com Retrocesso
8.5 – Heurísticas Gerais
8.6 – Heurísticas Especiais
8.7 – Restrições Especiais
8.8 - Retrocesso Inteligente
8.9 – Resolução de exercícios
Aula 09: Busca Competitiva
9.1 – Tipos de jogos
9.2 - Formulação do problema
9.3 – Decisões ótimas em jogos
9.4 – Estratégia MINIMAX
9.5 – Poda Alfa-Beta
9.6 – Funções de avaliação
9.7 – Jogos com acaso
9.8 – Programas de última geração
9.9 – Resolução de exercícios
Aula 10: Busca Competitiva – Aula prática
Aula 11: Sistemas Baseados no Conhecimento (SBCs)
11.1 – Natureza do conhecimento humano
11.2 – Sistemas baseados em conhecimento
11.2.1 – Definição
11.2.2 – Capacidades
11.2.3 - Propriedades
11.2.3 – Diferenças entre os sistemas convencionais e os SBCs
11.2.4 - Sistemas Especialistas - Histórico
11.2.5 – Viabilidade de um SBC e quando se deve desenvolvê-lo
11.2.6 – Tipos de aplicações de SBCs
11.2.7 – Estrutura geral de um SBC
11.2.8 – Desenvolvimento de um SBC – fases
11.2.9 – Ferramentas para construção de um SBC
11.2.10 – Verificação e validação de um SBC
11.2.11 – Versões demonstrativas de SBCs na Web
11.3 – Resolução de exercícios
Aula 12: Representação do Conhecimento
12.1 – Características
12.2 - Componentes
12.3 – Regras de Produção
12.3.1 – Encadeamento progressivo (forward chaining)
12.3.2 – Encadeamento regressivo (backward chaining)
12.3.3 – Exemplos
12.3.4 – Vantagens e limitações
12.4 – Resolução de exercícios
Aula 13: Representação do Conhecimento
13.1 – Redes Semânticas
13.1.1 – Características
13.1.2 – Busca em Redes Semânticas
13.1.3 – Vantagens e limitações
13.2 – Frames
13.2.1 – Características
13.2.2 – Capacidades
13.3 – Scripts
13.3.1 – Características
13.4 – Lógica
13.4.1 – O Mundo de Wumpus
13.4.1.1 – Sintaxe
13.4.1.2 – Semântica
13.4.1.3 – Base de Conhecimento
13.4.1.4 – Inferência
13.5 – Resolução de exercícios
Aula 14: Revisão – resolução das listas de exercícios
Aula 15: Avaliação escrita 1
Aula 16: Incerteza
16.1 – Representação de incerteza
16.2 – Modelo probabilista
16.2.1 – Crença x Verdade
16.2.2 – Tipos de probabilidade
16.2.3 – Teoria da Utilidade
16.2.4 – Notação básica de probabilidade
16.2.4.1 – Variável aleatória, conectivos lógicos e eventos atômicos
16.2.5 – Probabilidade a priori
16.2.6 – Probabilidade condicional
16.2.7 – Axiomas da probabilidade
16.2.8 – Inferência probabilística
16.2.9 – Independência
16.3 – Resolução de exercícios
Aula 17: Incerteza
17.1 – Regra de Bayes
17.2 – Redes Bayesianas
17.3 – Lógica Nebulosa (Fuzzy)
17.3.1 – Elementos
17.3.2 – Partição
17.3.3 – Representação: funções de pertinência
17.3.4 – Variáveis lingüísticas
17.3.5 – Operações
17.3.6 – Representação de conjuntos Fuzzy
17.3.7 – Regras Fuzzy
17.3.8 – Etapas do raciocínio Fuzzy
17.4 – Resolução de exercícios
Aula 18: Aprendizado
18.1 – Aprendizado de Máquina
18.1.1 – Objetivos
18.1.2 – Indução
18.1.3 – Modos de aprendizado
18.1.3.1 – Aprendizado supervisionado
18.1.3.2 – Aprendizado não-supervisionado
18.1.3.3 – Aprendizado por reforço
18.1.4 – Paradigmas de aprendizado
18.1.4.1 – Simbólico
18.1.4.2 – Estatístico
18.1.4.3 – Baseado em exemplos
18.1.4.4 – Conexionista
18.1.4.5 – Evolutivo
18.2 – Resolução de exercícios
Aula 19: Aprendizado
19.1.– Linguagens de descrição do aprendizado
19.1.1 – Instâncias ou exemplos
19.1.2 – Conceitos aprendidos ou hipóteses
19.1.3 – Teoria de domínio ou conhecimento de fundo
19.2 – Formas de aprendizado
19.2.1 – Incremental
19.2.2 – Não-incremental
19.3 – Projetando um sistema de aprendizado
19.4 – Desempenho de algoritmos
19.5 – Árvores de decisão
19.5.1 – Características
19.5.2 – Construindo uma árvore de decisão
19.5.3 – Poda
19.6 – Resolução de exercícios
Aula 20: Apresentação de projetos
Aula 21: Apresentação de projetos
Aula 22: Avaliação escrita 2
Aula 23: Apresentação e resolução das avaliações escritas 1 e 2
Aula 24: Avaliação substitutiva
20. PROFESSOR(A) RESPONSÁVEL
Karla Vittori
Download