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
2026/2027
Pré-requisitos / Pre-Requisites
Álgebra linear, Cálculo diferencial a várias variáveis
Objetivos Gerais / Objectives
A unidade curricular tem como objetivo proporcionar uma abordagem sólida à otimização matemática, com enfoque em aplicações económicas e financeiras. Os estudantes irão formular e interpretar problemas de otimização, selecionando e analisando métodos numéricos adequados. O curso abordará técnicas clássicas e modernas, destacando os métodos de descida de gradiente e suas variantes avançadas. Serão mencionadas alternativas para problemas onde métodos baseados em gradientes são ineficazes. A componente computacional terá um papel essencial, promovendo a implementação de algoritmos de otimização em Python. Pretende-se que os alunos adquiram conhecimento teórico sólido, aliado a competências práticas para resolver problemas em economia, finanças, machine learning e análise de dados.
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, cada estudante deverá ser capaz de: OA1: Resolver analiticamente problemas de otimização com e sem restrições. OA2: Compreender os fundamentos teóricos dos métodos de descida de gradiente e suas variantes, avaliando sua aplicabilidade e limitações em diferentes contextos de otimização. Reconhecer a existência de alternativas quando os métodos baseados em gradientes são ineficazes. OA3: Implementar algoritmos de descida de gradiente em Python para obter soluções aproximadas de problemas de otimização, analisando criticamente os resultados do ponto de vista matemático, computacional e de aplicabilidade.
Conteúdos Programáticos / Syllabus
CP1 - Otimização a uma variável (a) Condições necessárias e suficientes para a existência de extremos (b) Algoritmos de otimização unidimensional (c) Exemplos práticos CP2 - Otimização a mais do que uma variável sem restrições (a) Condições necessárias e suficientes para a existência de extremos (b) Métodos númericos: descida do gradiente e variações, métodos de Newton e quasi-Newton (c) Implementação de métodos numéricos em Python (d) Aplicações em economia e finanças CP3 - Otimização a mais do que uma variável com restrições (a) Restrições de igualdade: condições necessárias e suficientes para a existência de extremos (b) Restrições de desigualdade: Condições KKT (c) Métodos numéricos para problemas com restrições (d) Implementação em Python com exemplos práticos CP4 - Limitações e abordagens alternativas (a) Limitações dos métodos baseados em gradientes (b) Introdução breve à optimização não diferenciável (c) Introdução breve às metaheuristicas.
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
O OA1 é abordado nos CP1, CP2 e CP3, que abrangem a otimização a uma e mais variáveis, com e sem restrições. Os estudantes desenvolvem a capacidade de resolver problemas analiticamente, aplicando condições de otimalidade e métodos de descida de gradiente. O OA2 está refletido nos CP2, CP3 e CP4. No CP2, são apresentados os fundamentos teóricos dos métodos de descida de gradiente e a sua aplicabilidade. No CP3, são estudadas as condições de otimalidade em problemas com restrições, aprofundando a importância dos métodos numéricos. No CP4, explora-se a aplicabilidade e as limitações dos métodos baseados em gradientes, mencionando-se alternativas para problemas onde são ineficazes. O OA3 é trabalhado transversalmente nos CP2, CP3 e CP4, onde se implementam métodos de descida de gradiente em Python. Além disso, os estudantes desenvolvem a capacidade de analisar criticamente os resultados, avaliando a sua validade matemática, computacional e aplicacional.
Avaliação / Assessment
A avaliação contempla duas modalidades. - Avaliação ao longo do semestre: baseada num projeto em Python (valendo 30% da nota final), realizado em grupos de 2 ou 3 alunos (com apresentação e discussão final), e um teste individual escrito com nota mínima de 8.5 valores (valendo 70% da nota final). - Alternativamente, avaliação por exame: baseada numa prova escrita individual valendo 100%. Os docentes reservam-se o direito de, após a correção do teste, realizar uma conversa com o aluno para confirmar que este detém os conhecimentos demonstrados na prova. São ainda aplicáveis, sempre que pertinente, as disposições do Código de Conduta Académica.
Metodologias de Ensino / Teaching methodologies
A abordagem pedagógica da unidade curricular combina exposição teórica, prática computacional e trabalho autónomo, assegurando que os estudantes desenvolvem tanto o conhecimento teórico como as competências aplicadas. MEA1: Exposição e discussão teórica As aulas teóricas são dedicadas à apresentação e discussão dos principais conceitos e técnicas de otimização. Os conteúdos são introduzidos de forma progressiva, garantindo que os estudantes compreendem os fundamentos antes de avançar para tópicos mais complexos, como métodos numéricos e implementação computacional. Durante estas sessões, promove-se a participação ativa dos estudantes, incentivando a reflexão crítica sobre os métodos abordados e as suas aplicações. MEA2: Implementação computacional e resolução de exercícios A componente prática assume um papel essencial na aprendizagem, sendo realizada através da implementação computacional em Python. Durante as aulas práticas, os estudantes resolvem problemas de otimização aplicados, utilizando algoritmos como os métodos de descida de gradiente e suas variantes. A implementação é complementada por trabalhos individuais ou em grupo, reforçando a autonomia dos estudantes no desenvolvimento de soluções computacionais. MEA3: Desenvolvimento autónomo e aplicação prática O trabalho autónomo desempenha um papel fundamental na consolidação dos conhecimentos adquiridos. Os estudantes são incentivados a dedicar tempo à resolução de exercícios adicionais, leitura de bibliografia recomendada e realização de experiências computacionais. Estas atividades permitem aprofundar a compreensão dos conteúdos e desenvolver a capacidade de aplicar os métodos estudados em diferentes contextos. A articulação entre estas metodologias assegura que os estudantes não apenas compreendem os fundamentos teóricos da otimização, mas também desenvolvem competências técnicas e analíticas para resolver problemas reais. A utilização de Python como ferramenta computacional permite uma abordagem prática e alinhada com aplicações em economia, finanças, machine learning e análise de dados. Além disso, a ênfase na aprendizagem autónoma prepara os estudantes para enfrentar desafios mais avançados na disciplina.
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
As metodologias de ensino-aprendizagem (MEA) desta unidade curricular foram estruturadas para garantir que os estudantes desenvolvem as competências previstas nos objetivos de aprendizagem (OA). MEA1 (Exposição e discussão teórica) contribui diretamente para os OA1 e OA2, permitindo que os estudantes compreendam os fundamentos teóricos da otimização. Durante as aulas teóricas, os conceitos fundamentais são apresentados de forma progressiva e discutidos de maneira interativa, promovendo um entendimento sólido das condições de otimalidade e das abordagens numéricas em problemas com e sem restrições. A participação ativa dos estudantes nas discussões facilita a clarificação de dúvidas e a assimilação dos conceitos-chave. MEA2 (Resolução de exercícios) e MEA3 (Trabalho autónomo) complementam a exposição teórica, garantindo que os estudantes não apenas compreendem os métodos abordados, mas também são capazes de aplicá-los a problemas concretos. Os alunos resolvem exercícios orientados, aplicando os conhecimentos adquiridos para resolver problemas alinhados com os OA1 e OA2. Além disso, a programação em Python é integrada no processo de aprendizagem, permitindo a experimentação prática de algoritmos de otimização e reforçando a ligação entre teoria e implementação computacional.
Observações / Observations
--
Bibliografia Principal / Main Bibliography
Chiang, A. e Wainwright, K. "Matemática para Economistas" Editora Campus (2006)
Izmailov, A. e Solodov, M., Otimização – vol.1 – Condições de otimalidade, elementos de análise convexa e de dualidade, 4ª edição, IMPA (2020). Izmailov, A. e Solodov, M., Otimização - vol. 2. Métodos computacionais, 3ª edição, IMPA (2018). Bonnans, J.F et al, "Numerical Optimization: Theoretical and Practical Aspects" Springer Verlag (2006) Nocedal, J. and Wright, St. "Numerical optimization", Springer Verlag (1999) Sra, Suvrit et al, "Optimization for Machine Learning", MIT Press (2011)
Bibliografia Secundária / Secondary Bibliography
Data da última atualização / Last Update Date
2025-11-21