Gaia

Optimizaziorako teknika

Gaiari buruzko datu orokorrak

Modalitatea
Ikasgelakoa
Hizkuntza
Ingelesa

Irakasgaiaren azalpena eta testuingurua

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.

Irakasleak

IzenaErakundeaKategoriaDoktoreaIrakaskuntza-profilaArloaHelbide elektronikoa
SANTANA HERMIDA, ROBERTOEuskal Herriko UnibertsitateaDoktore IkertzaileakDoktoreaElebakarraKonputazio Zientzia eta Adimen Artifizialaroberto.santana@ehu.eus

Gaitasunak

IzenaPisua
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%

Irakaskuntza motak

MotaIkasgelako orduakIkasgelaz kanpoko orduakOrduak guztira
Magistrala152237
Mintegia7.51219.5
Ordenagailuko p.7.51118.5

Irakaskuntza motak

IzenaOrduakIkasgelako orduen ehunekoa
Aplikazio-tailerrak10.0100%
Azalpenezko eskolak10.0100%
Bideokonferentziak0.0100%
Ikasketa sistematizatua20.00%
Interakzioa irakaslearekin ingurune birtualetan0.030%
Irakaskuntza-taldeak plataforma birtualaren bidez proposatutako jarduerak0.00%
Irakurketa eta analisi praktikoak20.050%
Plataformaren bidez harreman birtualean emandako orduak (foroetan parte hartzea, etab.)0.0100%
Txostenak eta azalpenak lantzea15.030%

Ebaluazio-sistemak

IzenaGutxieneko ponderazioaGehieneko ponderazioa
Bertaratzea eta Parte-hartzea15.0% 25.0%
Azalpenak30.0% 40.0%
Beste batzuk0.0% 10.0%
Foroetan parte hartzea15.0% 25.0%
Lan praktikoak30.0% 40.0%
Urrutiko ebaluazio-probak75.0% 85.0%

Ohiko deialdia: orientazioak eta uko egitea

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

Ezohiko deialdia: orientazioak eta uko egitea

A: Final written examination, -> 5/10

B: Individual final project -> 5/10

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

Irakasgai-zerrenda

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.

Bibliografia

Oinarrizko bibliografia

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.

Gehiago sakontzeko bibliografia

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.

Aldizkariak

Operation Research Journal

Journal of Machine Learning Research

Estekak

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/

Iradokizunak eta eskaerak