The course is a comprehensive introduction to the models and algorithms of mathematical optimization. The goals of this course are the following: 1. To present students with knowledge of the state-of-the-art of theory and practice of solving optimization problems, with a focus on the problem arising in Finance. 2. To help each student develop his or her own intuition about modeling and solving real-world problems arising in finance applications. 3. To be able to solve in Python a few finance problems (e.g., portfolio optimization and asset allocation).
Prerequisiti
This course is an applied math course dedicated to finance students. The students of this course should have followed and given the exams of a fundamental courses in programming and mathematical analysis. All the content of these fundamental courses are a prerequisite for this course.
Metodi didattici
Lectures and Guided exercise sessions in Computer Labs.
For the lectures, the teachers will use personal slides available on KIRO, the Moodle of Unipv.
For the lab session, all the material will be available on a shared repository, or via KIRO.
The teacher will use principles of "active learning", encouraging as much as possible the active participation of the students during the lectures.
Verifica Apprendimento
The final exam consists of an oral exam. During the exam the students present the results of a home assignment (numerical project) and should demonstrate of having studied of the main properties of the optimization algorithms studied during the course. The final grade will have a maximum score of 30. The lab project will count for 75% of the final grade. During the presentation the student should use a maximum of 15 slides.
Testi
Book Reference (Selected Chapters): 1. Kochenderfer, M.J., 2019. Algorithms for Optimization. The MIT Press Cambridge. 2. Cornuejols, G., Peña, J. and Tütüncü, R., 2018. Optimization methods in finance. Cambridge University Press. 3. Guttag, J.V., 2021. Introduction to computation and programming using Python: with application to computational modeling and understanding data. MIT Press.
Contenuti
Part I: Introduction to Python In the first part of the course, the student will learn the basic of the Python programming language, on the main data structures (string, tuple, list, dictionary) and the main building functions (sorting, map, filter, accumulate). The student will learn to parse data from text files, and to represent solutions with explanatory plots.
Part II: First and second order iterative methods The students will study the fundamental optimization algorithms for smooth functions, that are, gradient descent, Newton’s methods, and quasi-Newtons’ methods. They will implement basic version of the algorithms, and they will analyze the rate of convergence of such algorithms.
Part III: Linear Integer Optimization The student will learn the basic of constrained linear programming and integer programming. They will study the simplex algorithm and the main results on the duality theory of linear programing. The will learn how to model discrete problems using integer variables.
Part IV: Applications in Finance The fourth pillar of the course are the applications of optimization models in the finance domain. The students will have the opportunity to solve examples of portfolio optimization, capital budgeting, asset allocation, and loan scheduling and repayment planning.