Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Área científica / Scientific area
Matemática
Departamento / Department
Departamento de Matemática
Ano letivo / Execution Year
2025/2026
Pré-requisitos / Pre-Requisites
Conhecimentos de álgebra linear e cálculo diferencial.
Objetivos Gerais / Objectives
Aprender algumas técnicas e conceitos fundamentais de otimização no contexto de inteligência artificial. Neste sentido pretende-se que os alunos implementem alguns algoritmos de otimização utilizados e conheçam as suas propriedades em detalhe. Os alunos devem também ser capazes de identificar o melhor tipo de algoritmo a utilizar para um dado problema de otimização em IA.
Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes
No final da UC o aluno deverá ser capaz de: OA1 - Usar métodos de Otimização linear e quadrática. OA2 - Aplicar métodos numéricos de otimização clássica. OA3 - Entender, aplicar e adaptar os principais métodos de descida do gradiente. OA4 - Entender, aplicar e adaptar algumas metaheurísticas.
Conteúdos Programáticos / Syllabus
CP1. Introdução e Revisão 1.1. Introdução 1.2. Programação Linear e Quadrática 1.3. Cálculo Diferencial, Otimização livre e condicionada 1.4. Métodos numéricos CP2. Descida do Gradiente e variações 2.1. Descida do Gradiente 2.2. Descida do Gradiente Estocástico 2.3. Momentum 2.4. Adagrad 2.5. Outros CP3. Metaheurísticas 3.1. Arrefecimento Simulado 3.2. Métodos de Pesquisa Tabu 3.3. Algoritmos Evolucionários
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular unit's content dovetails with the specified learning outcomes
CP1 - OA1, OA2. CP2 - OA3 CP3 - OA4 O conteúdo do primeiro capítulo do programa visa capacitar os alunos a usar métodos de otimização linear e quadrática (OA1) e em aplicar métodos numéricos clássicos de otimização (OA2). O segundo capítulo que abrange a Descida do Gradiente e suas variações pretende que os alunos sejam capazes de entender, aplicar e adaptar os principais métodos de descida do gradiente (OA3). Por fim, o último capítulo do programa que abrange tópicos como Arrefecimento Simulado, Métodos de Pesquisa Tabu e Algoritmos Evolucionários, está diretamente relacionado ao objetivo de aprendizagem (OA4) que visa que os alunos a entendam, apliquem e saibam adaptar estas metaheurísticas.
Avaliação / Assessment
As modalidades de avaliação são: 1) Avaliação ao longo do semestre: - 1 mini-teste (15%) realizado individualmente durante o período letivo; - 1 trabalho de investigação (45%) sobre um ou mais temas da UC, realizado por grupos com 2 ou 3 elementos (incluindo um relatório, código e apresentação oral, durante o período letivo); - 1 teste escrito individual (40%) - a realizar na 1ª época ou na 2ª do período de avaliação. Aprovação em avaliação ao longo do semestre requer uma nota mínima de 8.0 (em 20) em todas as componentes. 2) Avaliação por Exame: realização de uma prova escrita (com um peso de 100%), na 1ª época ou na 2ª época do período de avaliação. Considera-se que o aluno teve aprovação à disciplina se tiver nota superior ou igual a 9.50 (em 20) valores.
Metodologias de Ensino / Teaching methodologies
As aulas dividem-se em teórico-práticas e de laboratórios em Python. O modelo de ensino-aprendizagem tem 3 componentes essenciais, exposição e discussão com os alunos do problema, seguido da apresentação principais abordagens teóricas utilizadas (MEA1). Resolução em aula de alguns exemplos ilustrativos do problema apresentado (MEA2). Trabalho autónomo do aluno através da resolução de exemplos mais complexos ligados ao problema em foco (MEA3).
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes
OA1 - MEA1-MEA3 OA2 - MEA1-MEA3 OA3 - MEA1-MEA3 OA4 - MEA1-MEA3 As aulas são estruturadas em dois formatos: teórico-práticas e aulas de laboratório onde os alunos implementam em Python os conceitos chaves ou resolvem casos ilustrativos dos problemas em estudo. A Exposição e discussão (MEA1), consiste no passo inicial de apresentação dum problema e na introdução cuidada das abordagens teóricas para o resolver. O objetivo é que os alunos compreendam os fundamentos e propriedades dos métodos. É uma abordagem mais teórica, onde os conceitos-chave relacionados aos métodos de otimização linear e quadrática (AO1) e aos métodos numéricos clássicos de otimização (AO2) serão delineados. De igual modo se fará com com a descida do gradiente (OA3) e as metaheuristicas (OA4), proporcionando aos alunos uma visão abrangente de suas propriedades e aplicabilidade. A resolução em aula de exemplos ilustrativos (MEA2), proporciona aos alunos a oportunidade de aplicar os conceitos aprendidos durante a exposição e discussão. No contexto dos laboratórios em Python, os alunos têm a oportunidade de aplicar diretamente os conceitos teóricos aprendidos, implementando algoritmos e técnicas de otimização. Essas sessões práticas permitem que os alunos adquiram proficiência na implementação das metodologias discutidas e ganhem familiaridade com as ferramentas utilizadas na resolução de problemas de otimização. A terceira componente, trabalho autónomo do aluno (MEA3), é crucial para a consolidação dos objetivos de aprendizagem. Os alunos são desafiados a realizar trabalhos de forma independente, enfrentando exemplos mais complexos relacionados ao problema em foco. Essa abordagem permite que os alunos aprofundem ainda mais seu conhecimento e habilidades na área de otimização, incentivando-os a entender, aplicar e adaptar os principais métodos de descida do gradiente (OA3) e metaheurísticas (OA4).
Observações / Observations
--
Bibliografia Principal / Main Bibliography
Sra, Suvrit, Sebastian Nowozin, and Stephen J. Wright, eds., Optimization for machine learning, Mit Press, 2012. Dréo, Johann, et al., Metaheuristics for hard optimization: methods and case studies, Springer Science \& Business Media, 2006.
Bibliografia Secundária / Secondary Bibliography
Dive into DeepLearning, Chapter 11, Optimization algorithms, https://d2l.ai/chapter_optimization/ Postek, Krzysztof and Zocca, Alessandro and Gromicho, Joaquim and Kantor, Jeffrey, Hands-On Mathematical Optimization with AMPL in Python, 2024. https://ampl.com/mo-book
Data da última atualização / Last Update Date
2025-07-16