Ficha Unidade Curricular (FUC)

Informação Geral / General Information


Código :
04662
Acrónimo :
OC
Ciclo :
2.º ciclo
Línguas de Ensino :
Português (pt)
Língua(s) amigável(eis) :
Inglês

Carga Horária / Course Load


Semestre :
1
Créditos ECTS :
6.0
Aula Teórica (T) :
0.0h/sem
Aula Teórico-Prática (TP) :
30.0h/sem
Aula Prática e Laboratorial (PL) :
0.0h/sem
Trabalho de Campo (TC) :
0.0h/sem
Seminario (S) :
0.0h/sem
Estágio (E) :
0.0h/sem
Orientação Tutorial (OT) :
1.0h/sem
Outras (O) :
0.0h/sem
Horas de Contacto :
31.0h/sem
Trabalho Autónomo :
119.0
Horas de Trabalho Total :
150.0h/sem

Á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