Saltar para:
Logótipo
Você está em: Início > M.IA032

Programação em Lógica com Restrições

Código: M.IA032     Sigla: PLR

Áreas Científicas
Classificação Área Científica
OFICIAL Ciência de Computadores
OFICIAL Engenharia Informática

Ocorrência: 2024/2025 - 2S Ícone do Moodle

Ativa? Sim
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado em Inteligência Artificial

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
M.IA 0 Plano de estudos oficial 1 - 6 39 162

Docência - Horas

Teórico-Práticas: 3,00

Língua de trabalho

Inglês

Objetivos

Esta Unidade Curricular (UC) aborda os paradigmas da Programação em Lógica (PL) e Programação com Restrições (PR), especificamente na Programação em Lógica com Restrições (PLR).

O paradigma da PL apresenta uma abordagem declarativa à programação, baseada em processos formais de raciocínio, mais apropriada para a resolução de alguns tipos de problemas.

PLR permite abordar problemas de satisfação de restrições e de otimização de forma eficiente, modelizando-os de uma forma direta e elegante.

Resultados de aprendizagem e competências

No final da UC, os estudantes deverão:

- Estar familiarizados com os paradigmas da programação declarativa, nomeadamente PL e PLR.

- Identificar as categorias de problemas em que a PL e PLR são particularmente adequadas.

- Possuir capacidades de raciocínio abstrato e de resolução de problemas de forma declarativa.

- Ser capazes de aplicar adequadamente técnicas de PL e PLR.

- Ser capazes de construir aplicações completas usando Prolog com ou sem restrições.

Modo de trabalho

Presencial

Programa


  1. Programação em Lógica (PL)

    • Lógica proposicional e de predicados. Cláusulas de Horn. Unificação. Resolução. 

    • Cláusulas. Predicados. Factos. Perguntas. Regras. Variáveis lógicas. Instanciação.

    • PL e bases de dados. Recursividade. Listas. Árvores. Expressões simbólicas.

    • Execução. Unificação. Interpretador abstrato. Traçado. Árvore de pesquisa. Negação.



  2. Prolog

    • Elementos da Linguagem.

    • Modelo de execução. Backtracking. Terminação.

    • Aritmética. Iteração. Manipulação de termos. Operadores.

    • Predicados meta- e extra-lógicos.

    • Programação não determinística. Estruturas incompletas. Meta-interpretadores.

    • Técnicas de pesquisa.



  3. Programação com Restrições

    • Problemas cominatórios. Programação matemática, linear e inteira.

    • Restrições. Satisfação. Propagação. Consistência.

    • Restrições em domínios booleanos, finitos e reais.

    • Otimização. Métodos de pesquisa de soluções. 

    • Linguagens.



  4. Programação em Lógica com Restrições (PLR)

    • Modelização de problemas.

    • PLR no SICStus Prolog



Bibliografia Obrigatória

RISE Research Institutes of Sweden AB; SICStus Prolog User’s Manual, 2019
Apt, K.; Principles of Constraint Programming., Cambridge University Press, 2003
Sterling, L. and Shapiro, E. ; The Art of Prolog: Advanced Programming Techniques, MIT Press, 1994

Métodos de ensino e atividades de aprendizagem

As aulas são usadas tanto para exposição formal da matéria, acompanhada da apresentação de exemplos, como para resolução de exercícios de programação propostos, e acompanhamento do desenvolvimento dos trabalhos práticos.

Software

SICStus Prolog - http://www.sics.se/sicstus/
Google OR-Tools
IBM ILOG CP Optimizer

Palavras Chave

Ciências Tecnológicas > Engenharia > Engenharia do conhecimento
Ciências Físicas > Ciência de computadores > Programação
Ciências Físicas > Matemática > Lógica matemática
Ciências Físicas > Ciência de computadores > Cibernética > Inteligência artificial

Tipo de avaliação

Avaliação distribuída sem exame final

Componentes de Avaliação

Designação Peso (%)
Teste 50,00
Trabalho laboratorial 50,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 60,00
Frequência das aulas 42,00
Trabalho laboratorial 60,00
Total: 162,00

Obtenção de frequência

Um aluno inscrito obtém frequência se cumprir a assiduidade às aulas teórico-práticas (máximo de faltas permitido corresponde a 25% das aulas previstas).

Fórmula de cálculo da classificação final

Nota Final = 50% * TP + 50% * T

 


TP = 50% * TP1 + 50% * TP2
T = 50% * T1 + 50% * T2

 


TP: Nota global dos Trabalhos Práticos
TP1: Nota da Avaliação do Trabalho 1 (Relatório, código e demonstração) (min. 7 valores)
TP2: Nota da Avaliação do Trabalho 2 (Relatório, código e demonstração) (min. 7 valores)

 


T: Nota global dos dois Testes.
T1: Nota obtida no Teste 1 (min. 7 valores)
T2: Nota obtida no Teste 2 (min. 7 valores)

 

Avaliação especial (TE, DA, ...)

Todos os componentes de avaliação são exigidos a todos os alunos, independentemente do regime de inscrição e da necessidade de obter avaliação de frequência. Os alunos inscritos ao abrigo de regimes especiais sem frequência de aulas práticas devem acordar com os docentes sessões de acompanhamento e avaliação prática. Devem igualmente comparecer nas datas previstas para as avaliações.

Melhoria de classificação

A melhoria da classificação só pode ser obtida na edição seguinte da Unidade Curricular.

Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-10-19 às 12:06:05 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias