Inteligência Artificial
Terceiro trimestre de 2008
Horário alfa: 3a (8-10), 5a (14-16)
Sala: S 501
Email do professor: jeronimo.pellegrini ufabc edu br
Novidades:
19/12 -- Pendências resolvidas; conceitos definitivos na página
18/12 -- Conceitos finais disponíveis (com uma pendência)
16/12 -- Notas da prova já publicadas
09/12 -- Prova exemplo disponível
09/12 -- Lista de exercícios 9 (IA) disponível
26/11 -- Lista de exercícios 8 (Processos de Decisão de markov) disponível
17/11 -- Cronograma atualizado
04/11 -- Notas da primeira prova disponíveis (no link de exercícios entregues)
18/10 -- Tabela com exercícios entregues disponível (com notas!)
14/10 -- Mais uma sugestão de trabalho disponível (inferência em redes Bayesianas)
10/10 -- Descrição dos trabalhos está disponível
04/10 -- Lista de exercícios 7 (Representação do Conecimento, II) disponível
03/10 -- Lista de exercícios 6 (Representação do Conhecimento, I) disponível
03/10 -- Leitura recomendada para dias 7/10 e 9/10 modificada
03/10 -- Lista de exercícios 5 (Busca em Espaço de Estados) disponível
30/09 -- Lista de exercícios 4 (Lógica) disponível
30/09 -- Lista de exercícios 3 (Probabilidade e Estatística) disponível
30/09 -- Lista de exercícios 2 (Programação Dinâmica) disponível
30/09 -- Lista de pré-requisitos de Probabilidade e Estatística atualizada
25/09 -- Primeira lista de exercícios disponível
23/09 -- Não houve aula (blackout no Campus)
Ementa
Introdução. Técnicas de busca. Jogos adversariais. Representação do conhecimento. Sistemas baseados em conhecimento. Tratamento de incerteza.
Dinâmica do curso
A primeira aula começa com questões administrativas e segue com um apanhado geral
da história e diferentes conceituações da IA
Nas outras aulas, recomendo fortemente que o aluno leia os textos previamente indicados.
- Leia os textos com calma! Não adianta "ler em diagonal".
- Programe-se! Se um texto está marcado para o dia 16/06, por exemplo, isto significa que você já deverá
tê-lo lido no dia 16. Você deve prestar atenção ao conteúdo e tamanho de cada leitura recomendada para
se preparar para as aulas.
- How to Study, de William Rapaport (interessante, pode ajudar muito).
Avaliação
A avaliação tem quatro componentes:
- Um trabalho
- Exercícios
- Duas provas
Os detalhes da avaliação estão nos slides da aula 1 (link abaixo).
Cópias em provas ou trabalhos resultam em conceito F na disciplina.
Exercícios / mini-trabalhos
Entreguem os textos em PDF! O formato vocês decidem, mas eu sugiro usar o
LaTeX (também na Wikipedia), para
produzir algo que se pareça com um artigo. Isto os preparará para escrever artigos no futuro.
No entanto, o LaTeX é um sistema de editoração, diferente de um ``editor de textos''. Você precisa se acostumar
com algumas idéias diferentes.
Exercícios entregues
Veja a tabela com exercícios entregues.
Programa
Antenção: este é um cronograma aproximado! O ritmo pode mudar e aulas podem mudar de ordem durante
o curso. As colunas "Referências" mostram a leitura recomendada para cada aula. As siglas podem ser encontradas
na seção de bibliografia, abaixo.
Algumas leituras recomendadas não estão definidas ainda; outras estão "mais ou menos" definidas (sem o capítulo e
seção). Estas informações serão refinadas durante o curso.
Veja os slides da aula 1.
Os seguintes tópicos serão usados durante o curso. Se você não conhece um deles,
procure aprender. Aqui estão listados capítulos de livros e exercícios sugeridos.
- Lógica Tanto em representação do conhecimento como em planejamento,
usaremos um pouco de lógica. É importante conhecer bem lógica de proposicional
e de predicados, e compreender o que o que é um modelo e o que significa
satisfatibilidade. Ambos os livros estão disponíveis na biblioteca.
- Cezar Mortari. Introdução à Lógica.
- Herbert Enderton. A Mathematical Inrtoduction to Logic.
- Programação Dinâmica: importante nas aulas sobre Processos de Decisão de Markov,
Modelos Ocultos de Markov (aplicados inclusive em Processamento de Língua Natural).
Os dois livros a seguir tem capítulos
sobre o assunto. O primeiro está disponível na biblioteca; o segundo
pode ser encontrado na Internet (os autores o disponibilizaram em formato
eletrônico).
- Cormen et al. "Algoritmos"
- Dasgupta, Papadimitriou, Vazirani. "Algorithms"
- Probabilidade e Estatística. A probabilidade é uma das maneiras de representar incerteza
em Inteligência Artificial; métodos estatísticos são usados em aprendizado.
De Probabilidade, é importante conhecer probabilidade condicional, distribuição conjunta, algumas
distribuições bem conhecidas (como a normal, por exemplo).
Em Estatística, é necessário saber o que é um estimador (em particular, um estimador de
máxima verossimilhança).
- DeGroot. Probability and Statistics. Tem na biblioteca.
- Grinstead, C. & Snell, J. Introduction to Probability.
Disponível na Internet.
Trabalhos
O texto que acompanha o trabalho deve ser entregue no estilo usual de artigos de Inteligência
Artificial (procure exemplos), em PDF
Bibliografia
As siglas em negrito são as usadas como leitura recomendada no programa da disciplina.
- AIMA Russel & Norvig Inteligência Artificial. Há 3 cópias na biblioteca.
- Luger Luger, G. Inteligência Artificial
- KRR Brachman, Ronald J., & Levesque, Hector J. Knowledge Representation and Reasoning. Se puder escolher só um livro sobre representação do conhecimento, que seja este.
- RL Sutton & Barto Reinforcement Learning Disponível livremente na Internet.
- ML Mitchell, T. Machine Learning Há uma cópia na biblioteca.
- PW Pellegrini & Wainer Processos de Decisão de Markov: um tutorial
- AP Ghalab, Nau & Traverso. Automated Planning: theory and practice
- FNN Fausett, L. Fundamentals of Neural Networks Este livro é muito bem escrito, embora não seja tão detalhado como o do Haykin.
Vale a pena como uma introdução ao assunto.
- SLP Jurafsky, D. & Martin, J. Speech and Language Processing.
- EC de Jong, K. Evolutionary Computation: a unified approach.
- GT Webb, James N. Game Theory: decisions, interaction and evolution
- IL Cezar Mortari Introdução à Lógica
Além destes, distribuirei mais material ao longo do curso.
Outras sugestões
Há também livros que não existem na biblioteca, mas que merecem ser mencionados, e alguns textos que
poderão ser usados no trabalho prático.
Sobre aprendizado estatístico:
- Alpaydin, E. Introduction to Machine Learning
- ESL Hastie, T; Tibshirani, R; Friedman, J The Elements of Statistical Learning: Data Mining, Inference, and Prediction.
Teoria da Utilidade
- Bertsekas, D. Dynamic Programming and Optimal Control Há um apêndice sobre Teoria da Utilidade (apêndice G).
Hidden Markov Models (HMMs)
Processos de Decisão de Markov:
- Puterman, M. Markov Decision Processes.
- Bertsekas, D. Dynamic Programming and Optimal Control.
Sobre planejamento:
Sistemas Multiagentes
- Vidal, J. Fundamentals of Multiagent Systems with NetLogo Examples. Disponível (mas incompleto -- ele não fez o
último capítulo ainda)
- Hahn, C. A Domain Specific Modeling Language for Multiagent Systems. É bem simples, dá pra ler em 10 minutos. Só para ver algo que foi publicado no AAMAS.
- Marcolino, L. & Chaimowicz, L. A Coordination Mechanism for Swarm Navigation: Experiments and Analysis. Também, só um exemplo de artigo do AAMAS.
- Chalkiadakis, G. & Boutilier, C. Sequential Decision Making in Repeated Coalition Formation under Uncertainty. Também do AAMAS, sobre tomada sequencial de decisões. Aprenda sobre Processos de Decisão de Markov e iteração de valores antes.
- Gerhard Weiss. Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence
- Michael Wooldridge. Introduction to MultiAgent Systems
Redes Neurais:
- Haykin, S. Redes Neurais O estilo e a organização
deixam a desejar, mas é um livro importante e razoavelmente
completo.
Representação do Conhecimento
- Shapiro, S. Knowledge Representation. consta da Encyclopedia of Cognitive Science; está disponível aqui,
na página do autor
- Sowa, J. Knowledge Representation: Logical, Philosophical, and Computational Foundations. Um livro razoavelmente novo.
- Baral, C. Knowledge Representation, Reasoning and Declarative Problem Solving.
- Haak, S. Filosofia das Lógicas. Só sobre a parte de Lógica, mas excelente neste aspecto.
- Davis, R.; Shrobe, H. & Szolovits, P. What Is a Knowledge Representation?
AI Magazine 14(1): Spring 1993, 17-33. Disponível aqui,
com mais informação sobre representação do conhecimento.
- Levesque, H. et al. Golog: a logic programming language for dynamic domains. Pegue no CiteSeer
Computação Evolutiva, otimização com colônias de formigas e otimização:
- ACO Dorigo, M. Ant Colony Optimization.
- Linden, R. Algoritmos Genéticos: uma importante ferramenta da Inteligência Computacional.
- Maniezzo, V & Carbonaro, A. Ant Colony Optimization: an overview.
- DS Dorigo, M. & Socha, K. An Introduction to Ant Colony Optimization.Displnível no
site do Marco Dorigo, na seção "publications"
- DBS Dorigo, M. Birattari, M & Stützle, T. Ant Colony Optimization, também na página do Dorigo.
- Whitley, D. A Genetic Algorithm Tutorial, no Citeseer.
Linguística Computacional:
- Manning, C. D. & Schütze, H. Foundations of Statistical Natural Language Processing.
A introdução pode ser baixada livremente do site do livro na MIT Press,
e livro pode ser lido on-line. Este é um excelente livro!
- Pereira, F. & Shieber, S. Prolog and Natural Language Analysis. O livro está
disponível livremente.
Assuntos relacionados e visões diferentes:
- Minsky, M. The Society of Mind.
- von Neumann, J. O Computador e o Cérebro.
- Wilson, R; Keil, F. The MIT Encyclopedia of the Cognitive Sciences.
- Pessis-Pasternak, G. Do Caos à Inteligência Artificial.
- Teixeira, J. F. Filosofia da Mente e Inteligência Artificial.
- McDermott, D. Mind and Mechanism.
- Brooks, R. A. Cambrian Intelligence.