Programação em Lógica
- 99.2
Descrição geral desta
(classe de) disciplina, incluindo ementa, avaliação e material
bibliográfico encontram-se em: www.di.ufpe.br/~compint/prolog.html
Informações Gerais
Professor: Jacques
Robin
Monitor: Eloi
Favero
(Esta) Homepage: www.di.ufpe.br/~compint/aulas-IAS/prolog-992/Welcome.html
Newsgroup: depto.cursos.grad.if278
Horários:
-
aulas: 3a 8h-10h e 5a 10h-12h
-
orientação: 2a 12-14h
Local: M3
Turma:
-
Alessandro de Luna Almedia (all)
-
Carlos Eduardo Beserra Galvão
(cebg)
-
Manoel Frederico G. A. Moreira
Junior (mfgamj)
-
Matheus Cabral de Araujo Gois (mcag)
-
Sérgio Ricardo de Melo Queiroz
(srmg)
Calendário:
Aula 1: Apresentação da
disciplina (26/08)
-
Jacques
-
Plano:
-
Objetivo da disciplina
-
Metodologia didática e de avaliação
-
Ementa
-
Material bibliográfico
Aula 2: Programação
em lógica e lógica (31/08)
-
Jacques
-
Leitura devida: pp. 151-153, 157-163,
174 (Horn sentences), 185-201, 270-286, 304-306, 308 do AIMA
-
Plano:
-
Programação em lógica:
visão unificadora de varias áreas da ciência da computação
-
Revisão da Lógica da 1a
ordem:
-
Sintaxe
-
Forma normal
-
Unificação posicional
-
Resolução: A curiosidade
matou o gato
-
Transparências: prolog1.ppt
Aulas 3: Prolog e lógica (02/09)
-
Jacques
-
Leitura devida: pp. 4-26, 38-43 do Bratko
-
Plano:
-
Clausulas de Horn
-
Prolog x Lógica da 1a
ordem
-
Exemplo de engenharia do conhecimento
em Prolog: West e criminoso?
-
Busca e backtracking
-
Sintaxe de Prolog
-
Semântica de Prolog
-
Transparências: prolog2.ppt
Aula 4: Prolog: predicados built-in 1
(09/09)
-
Jacques
-
Leitura devida: pp. 56-63, 68-73, 82-84,
126-141 do Bratko
-
Plano:
-
Igualdade semântica x unificão
-
Listas
-
Cut
-
Negação por falha
-
Transparências: prolog3.ppt
Aula 5: Prolog: predicados built-in 2
(14/09)
-
Jacques
-
Leitura devida: pp. 88-91, 146-149, 156,
159, 162-163, 176-180, 182-184 do Bratko
-
Plano:
-
Aritmética
-
Teste e conversão de tipos
-
Entrada-Saída
-
Manipulação de conjuntos
-
Meta-programação
-
Exercícios dados:
-
A terrível novela em lógica
da 1a ordem
-
A terrível novela em Prolog
-
O banco de dados acadêmico
em Prolog
-
O banco de dados acadêmico
em lógica da 1a ordem
-
A curiosidade matou o gato? em
Prolog
-
Transparências: prolog4.ppt
Aula 6: Prolog x resto do mundo (21/09)
-
Jacques
-
Leitura devida:
-
pp. 297-298, 310-325 do AIMA
-
Plano:
-
Prolog x linguagens de outros paradigmas
de programação
-
Programação imperativa
-
Programação funcional
-
Programação orientada a
objetos
-
Programação por restrições
-
Prolog x outros formalimos de representação
de conhecimento
-
FRCs procedimentais
-
Sistemas de produção
-
FRCs orientados a objetos
-
FRCs híbridos
-
Transparências:
Aula 7: ECLIPSE Prolog: uso pratico nas
estações de trabalho (23/09)
-
Jacques
-
Leitura devida:
-
pp. ?? do ECLIPSE User Manual
-
Plano:
-
consult e reconsult
-
trace e spy
-
^C e help
-
Rodar ECLISPE Prolog dentro de Emacs
-
Transparências:
prolog5.ppt
Aula 8: Programação
multi-paradigma a base lógica e LIFE (28/09)
-
Jacques
-
Leitura devida:
-
Plano:
-
Limitações de Prolog
-
LIFE: integração de 3 outros
paradigmas de programação sobre uma base Prolog
-
Estrutura de dados para representar conhecimento
parcial: termos de atributos (ou termos psi).
-
Hierarquia de tipos
-
Unificação funcional
-
Declaração de classes e
de restrições
-
Transparências: life1.ppt
Aula 9: LIFE: integração
de predicados, funções, classes e restrições
(30/09)
-
Jacques
-
Leitura devida:
-
Plano:
-
LOGIN: predicados e regras com termos
psi e hierarquia de tipos
-
FOOL: funções com termos
psi e hierarquia de tipos
-
LeFun: predicados com funções
-
LIFE: LOGIN + FOOL + LeFun
-
Exemplo de engenharia do conhecimento
com LIFE: A terrível novela
-
LIFE x Prolog
-
LIFE e orientação a objetos
-
Transparências: life2.ppt
Aulas 10: LIFE: predicados e funções
built-in (05/10)
-
Jacques
-
Leitura devida:
-
Plano:
-
Controle (cut, cond, eval, quote)
-
Aritmética
-
Testes de tipo
-
Variáveis globais e atribuição
destrutiva
-
Exercícios a entregar:
-
A terrível novela em lógica
da 1a ordem
-
A terrível novela em Prolog
-
O banco de dados acadêmico
em Prolog
-
O banco de dados acadêmico
em lógica da 1a ordem
-
A curiosidade matou o gato? em
Prolog
-
Exercícios dados:
-
West é criminoso em LIFE
-
O banco de dados acadêmico em LIFE
-
Coloração de mapa em Prolog
-
Coloração de mapa em LIFE
-
Transparências: life3.ppt
Aula 11: Correção da 1a
lista de exercícios de programação (07/10)
-
Jacques
-
Plano:
-
A terrível novela em lógica
da 1a ordem
-
A terrível novela em Prolog
-
O banco de dados acadêmico
em Prolog
-
O banco de dados acadêmico
em lógica da 1a ordem
-
A curiosidade matou o gato? em
Prolog
-
Transparências: exos1.ppt
Aula 12: LIFE: Gramáticas de claúsulas
definidas (14/10)
-
Plano:
-
Acumuladores e pre-processamento
-
Gramática de Cláusulas Definidas
(Definite Clause Gramars - DCG) de Prolog
-
DCG de LIFE
-
Uso das DCG de LIFE para interpretação
e geração de linguagem natural
-
Transparências: dcg.ppt
pp.Aula 13: LIFE:
Uso pratico nas estações de trabalho (19/10)
-
Eloi
-
Leitura devida: pp. 4-7, 55-60 de The
Wild-LIFE handbook
-
Plano:
-
load
-
pretty print
-
Interface LaTeX
-
Arquivo de personalização
-
Rodar LIFE dentro de Emacs
-
Transparências:
Aula 14: Programação em
lógica indutiva (21/10)
-
Jacques
-
Leitura devida:
-
pp. 636-644?? do AIMA
-
pp. 283-306?? do Mitchell
-
pp. ??-?? do Fayyad et al.
-
Inductive Logic Programming: Theory
and Methods??
-
Plano:
-
Modos de raciocínio
-
Aprendizagem de máquina:
-
conceitos gerais
-
dimensões
-
Formação, generalização
e especialização de hipótese
-
IPL x outros métodos de aprendizagem
-
Vários tipos de IPL
-
Operadores de indução
-
Bias declarativo
Aula 15: Apresentação
dos assuntos de projetos (04/11)
-
Jacques
-
Leitura devida:
-
Plano:
-
Wumpus Server / Wumpus Monitor
-
Time de RoboCup: MaracatuFC992 (Manoel
com Borje de IAS)
-
Treinador para RoboCup
-
Jornalista da RoboCup (Carlos e Matheus,
em LIFE)
-
RoboFlora
-
RoboLIFE (Sergio & Alessandro)
-
Extender ECLIPSE com unificação
de termos LIFE (Sergio & Alessandro)
-
Extender XSB com unificação
de termos LIFE
Aula 16: Progol (18/11)
-
Jacques
-
Leitura devida:
-
Plano:
-
Elementos de um programa Progol
-
Consultas e repostas em Progol
-
Operadores de indução e
bias declarativo
-
Passos da aprendizagem
-
Uso da dedução na indução
-
Heurísticas de busca
Aula 17: Progol: Uso pratico nas estações
de trabalho (22/11)
-
Jacques
-
Leitura devida:
-
Plano:
-
Elementos de um programa Progol
-
Consultas e repostas em Progol
-
Operadores de indução e
bias declarativo
-
Passos da aprendizagem
-
Uso da dedução na indução
-
Heurísticas de busca
-
Exercício dado: Medir influência
do tamanho do conhecimento a priori sobre a precisão de regras minerada
da base do CNCT
-
Transparências:
progol2.ppt
Aula 18: Correção da 2a
lista de exercícios (23/11)
-
Jacques
-
Plano:
-
West é criminoso em LIFE
-
O banco de dados acadêmico
em LIFE
-
Coloração de mapa em
Prolog
-
Coloração de mapa em
LIFE
-
Transparências: exos2.ppt
Aula 19: Orientação
de projetos I (25/11)
Aula 20: Programação em
lógica para sistemas multi-agentes e robótica:
(29/11)
-
Jacques
-
Leitura devida:
-
Plano:
-
RoboCup: motivação, divisões
e histórico
-
SoccerServer
-
RoboLog
-
RoboSport991
-
RoboNautico991
-
Demo: RoboSport991 x RoboNautico991
-
Exercícios a entregar:
-
West é criminoso em LIFE
-
O banco de dados acadêmico
em LIFE
-
Coloração de mapa em
Prolog
-
Coloração de mapa em
LIFE
-
Transparências: robocup1.ppt
Aula 21: Estratégias e tecnologias
dos melhores times da RoboCup (Seminário I, 30/11)
-
Carlos
-
Leitura devida:
-
Plano:
Aula 22: Orientação de
projetos II (02/12)
Aula 23: Programação por
restrições com ECLIPSE (Seminário II, 06/12)
-
Matheus
-
Leitura devida: ??
-
Plano:
-
Programação em Lógica
com Restrições
-
Estudo de caso (demonstração
no laboratório)
-
Transparências: clp.ppt
Aula 24: Integrações Prolog/Java
(Seminário III, 07/12)
-
Alessandro
-
Leitura devida: ??
-
Plano:
-
Motivação da integração
Prolog/Java
-
Chamar Prolog a partir de Java com InterProlog
-
Chamar Java a partir de Prolog com InterProlog
-
Outras arquiteturas e sistemas híbirído
Java/Prolog
-
Estudo de caso (demonstração
no laboratório)
-
Transparências: javalog.ppt
Aula 25: Orientação de projetos
III (09/12)
Aula 26: Banco de dados dedutivos e XSB
(Seminário IV, 13/12)
-
Manoël
-
Leitura devida:
-
Plano:
-
Linguagens de consulta de banco de dados
x linguagens de programação
-
Banco de dados dedutivos e programação
em lógica
-
Estudo de caso (demonstração
no laboratório)
-
Transparências: xsb.ppt
Aula 27: Orientação
de projetos IV (14/12)
Aula 28: Banco de
dados dedutivos orientado a objetos e FLORA (Seminário V, 16/12)
-
Sergio
-
Leitura devida:
-
Plano:
-
Banco de dados orientado a objetos
-
DOOD: banco de dados dedutivos orientado
a objetos
-
F-Logic, FLORID e FLORA
-
Exemplo introdutório: O banco de
dados acadêmico em F-Logic
-
Objetos, nomes de objetos, métodos,
atomos-F, moleculas-F e BD extensional
-
Classes, assinaturas, herança e
esquemas de BD
-
Predicados e atomos-P
-
Regras, consultas e BD intencional
-
Negação e restrições
de segurança na conclusão das regras
-
Interação herança-dedução
-
Verificação de tipos e Meta-programação
-
FLORA x SQL
-
FLORA x DataLog
-
FLORA x LIFE
-
Transparências: flora.ppt
Aula 29: Demonstração de
projetos I (20/12)
Aula 30: Demonstração
de projetos II (21/12)