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
2024/2025
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 algumas metaheurísticas. OA4 - Entender, aplicar e adaptar os principais métodos de descida do gradiente.
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. Metaheurísticas 2.1. Arrefecimento Simulado 2.2. Métodos de Pesquisa Tabu 2.3. Algoritmos Evolucionários CP3. Descida do Gradiente e variações 3.1. Descida do Gradiente 3.2. Descida do Gradiente Estocástico 3.3. Momentum 3.4. Adagrad 3.5. Outros
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units 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 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 (OA3) que visa que os alunos a entendam, apliquem e saibam adaptar estas metaheurísticas. Por fim, o último 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 (OA4).
Avaliação / Assessment
As modalidades de avaliação são: - avaliação ao longo do semestre: teste (50%) + trabalhos (50%), ou - 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. Nota: A aprovação em avaliação ao longo do semestre requer uma nota mínima de 9.0 (em 20) valores no teste. 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 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 as metaheuristicas (OA3) e com a descida do gradiente (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 metaheurísticas (OA2) e os principais métodos de descida do gradiente (AO3).
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 J. A. E. Andersson, J. Gillis, G. Horn, J. B. Rawlings and Moritz Diehl, CasADi -- A software framework for nonlinear optimization and optimal control, Mathematical Programming Computation, vol. 11, no. 1, pp. 1--36, 2019. https://doi.org/10.1007/s12532-018-0139-4 https://web.casadi.org/
Data da última atualização / Last Update Date
2024-07-21