Inteligência Artificial
Segundo trimestre de 2008
Horário alfa: 2a (8-10), 4a (10-12)
Sala: S 501 (bloco B)
Email do professor: jeronimo.pellegrini ufabc edu br
Novidades:
03/09 -- Conceitos finais disponíveis
28/08 -- Notas parciais disponíveis
11/08 -- Ordem das avaliações modificada (como acordado em sala)
10/08 -- Exercícios 13 e 14 (Processamento de Língua Natural) disponíveis ***
07/08 -- Prazo do exercício 12 adiado
26/07 -- *** Exercício 12 (Aprendizado Estatístico) disponível ***
21/07 -- Nova indicação de livro (aprendizado estatístico, Alpaydin)
21/07 -- *** Exercício 11 (Planejamento) disponível ***
11/07 -- * Prazo para o exercício 9 *
09/07 -- * Prazo para o exercicio 8 *
05/07 -- * Exercício 10, não obrigatório disponível *
01/07 -- *** Exercício 9 (Aprendizado por Reforço) disponível ***
01/07 -- Dica para o exercício 7
27/06 -- *** Exercício 8 (Tomada de Decisões em Sequência) disponível ***
26/06 -- *** Exercício 7 (Teoria da Utilidade) disponível ***
26/06 -- Prova adiada
23/06 -- Exercício 3 (jogos) teve o prazo adiado
23/06 -- Um texto recomendado sobre Teoria da Utilidade
22/06 -- Artigo recomendado sobre HMMs (Hidden Markov Models)
19/06 -- Lista de exercícios entregues
19/06 -- Dica para exercício de jogos
19/06 -- Exercícios: quando fizerem o texto, entreguem em PDF
18/06 -- Nova indicação de livro (planejamento, LaValle)
15/06 -- *** Exercícios 5 e 6 (Redes Bayesianas, Algoritmos Genéticos) disponíveis ***
15/06 -- Mais um livro recomendado para Linguística Computacional
12/06 -- *** Exercício 4 (Ontologias) disponível ***
12/06 -- Ordem dos tópicos alterada ("Planejamento" foi p/a frente)
11/06 -- Lista inicial de temas para trabalho
08/06 -- Leitura recomendada para 11/06 modificada
08/06 -- Dois artigos sobre representação do conhecimento
08/06 -- Livro recomendado sobre sistemas multiagentes
07/06 -- Link para ferramenta: Protégé
06/06 -- Livros e artigo recomendados sobre representação do conhecimento
06/06 -- *** Exercício 3 (jogos) disponível  ***
06/06 -- Aula sobre sistemas multi-agentes mudou para o final do curso
06/06 -- Nova indicação de livro (sistemas multiagentes, Vidal)
05/06 -- Exercício 1 teve prazo adiado (o livro não está disponível na biblioteca)
04/06 -- A aula de 04/06 será só sobre Computação Evolutiva
04/06 -- Nova indicação de livro (computação evolutiva, Linden (RL))
03/06 -- Nova indicação de livro (probabilidades, DeGroot)
03/06 -- Listas de exercícios disponíveis
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:
-  Uma prova
-  Um trabalho
-  Exercícios
-  Participação em uma discussão (marcada inicialmente para o último dia letivo)
Cópias em provas ou trabalhos resultam em conceito F na disciplina.
Exercícios / mini-trabalhos
Entreguem os textos em PDF!
Dicas:
-  No exercício 3, pode ser necessário evitar a explosão combinatória. Vimos algumas dessas técnicas em aula (estão também no livro)
-  No exercício 7, procure literatura de Microeconomia e de Filosofia da Ciência
Exercícios entregues
Veja a tabela com noas e exercícios entregues. ESTA NOTA NÃO É DEFINITIVA! Ainda á possível entregar trabalhos,
e ainda há notas de exercícios a enrtar no cômputo!
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.
Como há apenas quatro trabalhos, faremos as apresentações em um único dia. Isto provavelmente nos permitirá adiar
a data da prova (se todos concordarem -- isto deve ser confirmado ainda).
 Veja os slides que haviam sido peparados para a aula 1.
 Slides da aula sobre busca com informação.
Importante: precisaremos de um pouco de Teoria de Probabilidades a partir da aula sobre Incerteza até
o final do curso. Leiam (ou re-leiam) textos de introdução à Probabilidade, variáveis aleatórias discretas e distribuições "famosas" (normal,
exponencial, etc), e façam exercícios. É particularmente importante entender: conceitos básicos de
análise combinatória, probabilidade condicional, Teorema de Bayes.
Ferramentas
Embora não haja um grande trabalho de implementação a ser feito, alguns exercícios poderão
envolver programação ou uso de feramentas. Darei instruções específicas com cada trabalho.
Os links abaixo não são necessariamente algo a ser usado nos trabalhos; são exemplos de ferramentas
que podem ser usadas em IA.
Trabalhos
Bibliografia
As siglas em negrito são as usadas como leitura recomendada no programa da disciplina.
O Russel & Norvig é o livro-texto; será usado na maioria das aulas.
-  AIMA Russel & Norvig Inteligência Artificial. Há 3 cópias na biblioteca.
Usaremos outros para assuntos específicos:
-  RL Sutton & Barto Reinforcement Learning Disponível livremente na Internet.
-  ML Mitchell, T. Machine Learning Há uma cópia na biblioteca.
-  VL Vieira, R. Lima, V. L. S. Lingüística computacional: princípios e aplicações. Jornada de Atualização em Inteligência Artificial (JAIA) 2001.
-  PW Pellegrini & Wainer Processos de Decisão de Markov: um tutorial Fornecerei uma cópia.
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 por duplas no trabalho prático.
Sobre probabilidades:
-  DeGroot. Probability and Statistics. Tem na biblioteca. 
-  Grinstead, C. & Snell, J. Introduction to Probability. Disponível na Internet.
-  O livro de Manning, C. D. & Schütze, H. (veja a seção de Linguística Computacional, abaixo) tem uma introdução à Probabilidade, com exercícios.
- Knuth & outros. Matemática Concreta.
Incluirei mais recomendações em breve.
Sobre aprendizado estatístico:
- ML Mitchell, T. Machine Learning Há uma cópia na biblioteca.
- 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:
-  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.
- 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
-  Brachman, Ronald J., &  Levesque, Hector J. Knowledge Representation and Reasoning. Se puder escolher só um livro sobre representação do conhecimento, que seja este.
-  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.
-  Noy, N & McGuinness, D. Ontology  Development 101: A Guide to Creating Your First Ontology. Disponível no site do Protégé
-  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:
-  EC de Jong, K. Evolutionary Computation: a unified approach.
-  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.
-  Jurafsky, D. & Martin, J. Speech and Language Processing.
Assuntos relacionados e visões diferentes:
- Carolyn Sobel The Cognitive Sciences.
- 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.