Materia

Contenido de XSL

Técnicas de optimización

Datos generales de la materia

Modalidad
Presencial
Idioma
Inglés

Descripción y contextualización de la asignatura



The objective of the course "Classical Optimization Techniques" is to enable the student to understand, formulate, and implement models and algorithms to solve optimization problems. The students will learn some of the most used paradigms for solving deterministic and probabilistic optimization problems. In particular, Mathematical Programming, Dynamic Programming, Markov chains, and Markov processes will be taught as part of the course. Other optimization methods extensively applied in machine learning approaches will also be covered in the course. The student will be taught how to recognize real-world optimization problems where classical optimization can be applied, identify the corresponding appropriate class of optimization algorithm, and use and/or extend the implementations available to solve the problem. While the course will cover the necessary theoretical knowledge, it will devote a significant portion of the time to practical classes with the goal of implementing, using the Python language and Jupyter notebooks, optimization and modeling approaches that solve real-world problems.

Profesorado

NombreInstituciónCategoríaDoctor/aPerfil docenteÁreaEmail
SANTANA HERMIDA, ROBERTOUniversidad del País Vasco/Euskal Herriko UnibertsitateaPersonal Doctor InvestigadorDoctorNo bilingüeCiencia de la Computación e Inteligencia Artificialroberto.santana@ehu.eus

Competencias

DenominaciónPeso
Aprender los fundamentos matemáticos de los principales algoritmos de optimización.25.0 %
Adquirir conocimientos para la modelización de problemas de optimización en diversos campos de aplicación de la ciencia y la ingeniería.25.0 %
Aprender a seleccionar métodos y algoritmos clásicos de optimización más adecuados para cada problema, y desarrollar la capacidad de interpretar las soluciones.25.0 %
Aprender a usar el software matemático para la optimización de diversos problemas prácticos en ciencia e ingeniería.25.0 %

Tipos de docencia

TipoHoras presencialesHoras no presencialesHoras totales
Magistral152237
Seminario7.51219.5
P. Ordenador7.51118.5

Actividades formativas

DenominaciónHorasPorcentaje de presencialidad
Actividades propuestas por el equipo docente a través de la plataforma virtual0.00 %
Clases expositivas10.0100 %
Elaboración de informes y exposiciones15.030 %
Estudio sistematizado20.00 %
Horas de contacto virtual a través de la plataforma (participación en foros, consulta de dudas, etc)0.0100 %
Interacción con el docente en entornos virtuales0.030 %
Lectura y análisis prácticos20.050 %
Talleres de aplicación10.0100 %
Videoconferencias0.0100 %

Sistemas de evaluación

DenominaciónPonderación mínimaPonderación máxima
Asistencia y Participación15.0 % 25.0 %
Exposiciones30.0 % 40.0 %
OTROS0.0 % 10.0 %
Participación en los foros15.0 % 25.0 %
Pruebas de evaluación a distancia75.0 % 85.0 %
Trabajos Prácticos30.0 % 40.0 %

Convocatoria ordinaria: orientaciones y renuncia

A: Exercises and problem discussion in the laboratory, -> 1/10

B: Individual projects and/or notebook exercises (3) -> 6/10

C: Team work (problem solution, project design and implementation), -> 1/10

D: Oral presentation of works and related papers -> 1/10

E: Written examination, -> 1/10

Convocatoria extraordinaria: orientaciones y renuncia

A: Final written examination, -> 5/10

B: Individual final project -> 5/10

Final marks, A+B with A>2 and B>=2

Temario



Topic 1: Introduction to classical optimization techniques

- Optimization problems in the real-world

- Optimization algorithms

- Application of optimization methods to Machine Learning





Topic 2: Mathematical programming methods

- Linear programming

- Integer programming

- Binary programming

- Python software for mathematical programming

- Solving real-world problems with mathematical programming





Topic 3: Dynamic programming

- Deterministic and probabilistic dynamic programming approaches

- Steps in the solution of optimization problems using dynamic programming

- Implementation of dynamic programming approaches in Python

- Solving real-world problems with dynamic programming



Topic 4: Markov chains and Markov processes

- Modeling problems under uncertainty using Markov chains

- Markov chain states, transition probabilities and Markov chain characterizations

- Markov processes

- Methods of iterations of policies

- Modeling problems with dynamic programming using Python



Topic 5: Optimization methods for machine learning

- Optimization problems in supervised and unsupervised learning

- Convex machine learning problems

- Gradient descent methods for deep learning

- Optimization for machine learning problems using Python



Topic 6: Hybrid optimization approaches and application of optimization algorithms

- Combination of different optimization approaches

- Applications in Engineering

- Applications in Bioinformatics and Medicine

- Applications in Economy and Finance





The course will comprise lectures and practical classes, the latter will consist in solving exercises using the Python-based Jupyter notebook framework. In the laboratories, students will work in teams and individually to find appropriate solutions to practical problems using optimization algorithms. As part of the evaluation, students will use available Python software (e.g., numpy, pyomo, pulp, mdptoolbox, tensorflow, etc ), to solve practical problems and present them as projects.



The course will have a virtual space in Egela where links to useful software, bibliography, and problem repositories will be available. The slides of the course lecture will be also available from the virtual class in Egela. Students could use the forum in the virtual space to discuss the problems. Students are also advised to create and use github accounts for the completion of the individual and team projects.



Bibliografía

Bibliografía básica

E. Castillo, A. J. Conejo, P. Pedregal, R. Garcı́a, and N. Alguacil, 2002. Building and Solving Mathematical Programming Models in Engineering and Science, Pure and Applied Mathematics Series, Wiley, New York.

R. L. Rardin. Optimization in operations research. Upper Saddle River, NJ: Prentice Hall; 1998.

W. Winston. 1991. Operations Research. Applications and Algorithms. PWS-Kent Publishing Company

A. Lew and H. Mauch. Dynamic programming: A computational tool. Vol. 38. Springer, 2006.

N. C. Jones and P. A. Pvzner. An introduction to bioinformatics algorithms. MIT 2004.

Henk C. Tijms. A First Course in Stochastic Models. Wiley, 2003.

K. P. Bennett and E. Parrado-Hernández. The interplay of optimization and machine learning research.

Bibliografía de profundización

S. Boyd and L. Vandenberghe, 2004. Convex optimization. Cambridge university press.



L. Bottou and O. Bousquet, 2008. The tradeoffs of large scale learning. In Advances in neural information processing systems (pp. 161-168).



L. Bottou, 2010. Large-scale machine learning with stochastic gradient descent. In Proceedings of COMPSTAT'2010 (pp. 177-186). Physica-Verlag HD.



Revistas

Operation Research Journal



Journal of Machine Learning Research



Enlaces

Convex optimization



https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf







An overview of gradient descent optimization algorithms



http://ruder.io/optimizing-gradient-descent/index.html







Optimization in Python cookbook: bowl, plate and valley functions



https://medium.com/@alexrachnog/optimization-cookbook-1-262aa5555b61







Jupyter notebooks



http://jupyter.org/







Optimization with PuLP



https://pythonhosted.org/PuLP/







Optimization with Pyomo



http://www.pyomo.org/



Contenido de XSL

Sugerencias y solicitudes