Professor Adjunto
Departamento de Informática
Universidade Federal do Paraná
Tópicos em Inteligência Artificial com foco em Programação Lógica e Programação por Restrições.
Apresentar o conceito de lógica de predicados e o paradigma de Programação Lógica (Prolog).
Apresentar o paradigma de Programação por Restrições e a plataforma MiniZinc.
Apresentar métodos para a resolução de Problemas de Satisfação de Restrições (CSPs): algoritmos de busca (backtracking com estratégias look-ahead e look-back e busca local) e técnicas de processamento de restrições (consistências locais e propagação de restrições).
Apresentar estratégias de decomposição de problemas.
Apresentar técnicas de processamento de restrições numéricas.
Apresentar tópicos relacionados: satisfatibilidade booleana, metaheurísticas para a resolução de CSPs, outros algoritmos.
Carga horária: 60h.
Natureza: optativa.
Cursos: Ciência da Computação, Informática Biomédica e PPGINF (mestrado e doutorado).
[2024-1] Turma A: Ciência da Computação, Informática Biomédica e PPGINF
Para uma visão geral (resumida em 3 minutos) sobre Programação por Restrições, veja este vídeo.
Estudo teórico-prático dos principais métodos de cálculo numérico utilizados em computação científica, com foco na implementação eficiente destes métodos em computadores seriais e abordando técnicas de otimização de código e resiliência a erros numéricos.
Entender e implementar métodos numéricos para os seguintes problemas matemáticos: resolução de equações não-lineares, resolução de sistemas lineares e não-lineares, resolução de equações diferenciais ordinárias e parciais, interpolação de funções, ajuste de curvas e integração numérica.
Otimizar as implementações dos métodos numéricos utilizando ferramentas de análise de desempenho, considerando características do processador e memória utilizados.
Identificar regiões críticas de cada método em termos de desempenho computacional, bem como avaliar implementações alternativas.
Carga horária: 60h.
Natureza: obrigatória.
Cursos: Ciência da Computação e Informática Biomédica.
[2021-2] Turma A: Ciência da Computação e Informática Biomédica
Problemas de Otimização Numérica restritos e irrestritos. Algoritmos clássicos para Otimização Convexa. Métodos intervalares para Otimização Global. Busca local e métodos heurísticos.
Compreender fundamentos teóricos da Otimização Numérica e conceitos tais como linearidade, convexidade, entre outros. Conhecer exemplos de aplicação, estratégias de solução e suas limitações.
Compreender características específicas de problemas convexos restritos e irretritos. Estudar algoritmos clássicos para Otimização Convexa, compreendendo seus fundamentos teóricos e sua implementação computacional.
Compreender a análise intervalar e sua aplicação no processamento de restrições numéricas. Estudar algoritmos intervalares e sua aplicação na Otimização Global. Compreender a implementação de algoritmos de Branch-and-Bound intervalar.
Conhecer técnicas alternativas de otimização, baseados em busca local e metaheurísticas.
Carga horária: 60h.
Natureza: optativa.
Cursos: PPGINF, Ciência da Computação e Informática Biomédica.
[2021-2] Turma A: PPGINF, Ciência da Computação e Informática Biomédica.
Representação computacional de números reais e estudo teórico-prático dos principais métodos de cálculo numérico.
Compreender a representação de números reais em computadores digitais e o conceito de erro.
Entender métodos numéricos para os seguintes problemas matemáticos: resolução de equações não-lineares, resolução de sistemas lineares, interpolação de funções, ajuste de curvas e integração numérica.
Compreender aspectos teóricos e práticos dos métodos numéricos estudados.
Carga horária: 60h.
Natureza: obrigatória.
Cursos: Eng. Elétrica, Eng. Bioprocessos e Biotecnologia, Estatística, Física, Eng. Cartográfica, Eng. Civil e Eng. Química.
[2021-1] Turma B: Eng. Bioprocessos e Biotecnologia.
Histórico. Elementos de uma linguagem de programação. Tipos de Dados. Estrutura de um programa. Comandos simples e estruturados. Procedimentos e funções. Tipos estruturados. Exemplos de algoritmos clássicos.
Entender o funcionamento básico de um computador.
Entender e implementar programas que obtêm valores numéricos do usuário, realizam algum cálculo aritmético com estes valores e exibem o resultado na tela do computador.
Entender e implementar programas em que determinados cálculos ou operações de leitura e escrita se repetem enquanto um conjunto de condições forem verdadeiras.
Entender e implementar programas pela combinação de subprogramas menores.
Entender e implementar programas em que seja necessário armazenar um conjunto de valores numéricos para então proceder a cálculos com o conjunto de valores lidos.
Carga horária: 60h.
Natureza: obrigatória.
Cursos: Eng. Elétrica, Eng. Bioprocessos e Biotecnologia, Estatística, Física, Eng. Cartográfica, Eng. Civil e Eng. Química.
EmentaNoções de sistemas de computação. Formulação de algoritmos e sua representação. Noções sobre linguagem de programação e programas. Implementação prática de algoritmos em uma linguagem de programação. Descrição de algumas aplicações típicas. Métodos computacionais na área científica e tecnológica. ObjetivosAnalisar problemas e elaborar algoritmos para sua solução de forma clara e precisa usando programação estruturada e implementá-los em uma linguagem de programação. Informações
|
EmentaImplementação de pequenos projetos com programação orientada a objetos. Sistemas de Tipos. Sistemas de Tratamento de Exceções. ObjetivosEntender e desenvolver sistemas utilizando técnicas da programação orientada a objetos e arcabouços básicos de software. Aprender técnicas de reuso de software. Informações
|