Instructors: Karl Ezra Pilario, Ph.D. and Jhud Mikhail Aberilla, Ph.D.
Welcome to the GitHub repository for our course.
ChE 211 is a graduate-level course offered in the Department of Chemical Engineering, University of the Philippines, Diliman, that aims to teach students optimization theory and its applications in our field.
The course covers mathematical programming (LP, MILP, NLP, MINLP) and their solutions using zero-order, first-order, and second-order methods. Students are taught skills in formulating optimization problems and how to code them in solvers such as those in Python (Pyomo, Pyomo DAE, IPOPT) and MATLAB (fminunc, fmincon). The course also includes topics on nature-inspired algorithms, optimization with differential equation constraints, graph theory and graph algorithms, Bayesian Optimization, and surrogate-based optimization.
This repository contains lecture slides, Python codes (Jupyter notebooks and MATLAB scripts), case studies, and datasets used in class.
The repository is organized into folders based on the weekly topics covered in the class, as follows:
- Week 1. Introduction
- Week 2. Linear Programming
- Week 3. Mixed-Integer Linear Programming
- Week 4. NLP - First-order Methods
- Week 5. NLP - Second-order Methods
- Week 6. Optimization with DAEs - Part 1
- Week 7. Optimization with DAEs - Part 2
- Week 8. Zero-order Methods - Part 1
- Week 9. Zero-order Methods - Part 2
- Week 10. Graph Algorithms
If you find any issues or have any suggestions for improvement, feel free to contact Karl Ezra Pilario via kspilario@up.edu.ph. If any codes are not working on your terminal, let us know. :)