Teaching

Nonlinear and Stochastic Optimization
CBE 60499 (graduate elective)
Fall 2018

Description: This course will provide a practical introduction to algorithms, formulations, and modern software for large-scale numerical optimization. Topics include (nonconvex) nonlinear programming, deterministic global optimization, integer programming, dynamic optimization, and stochastic programming. Multi-objective optimization and mathematical programs with complementarity constraints may be covered based on time and student interests. The target audience for is graduate students from engineering, science, and mathematics who wish to incorporate optimization methods into their research. The course will begin with a concise introduction to optimization theory and algorithms. Problem formulation and use of state-of-the-art solvers and modeling environments will be emphasized throughout the course. A background in linear algebra and numerical methods will be helpful but is not necessary. Students should be comfortable programming in Julia, Python, MATLAB, C, or a similar language. EE 60551: Mathematical Programming is not a prerequisite for this course.

Main Texts:

  • Nonlinear Programming: Concepts, Algorithms, and Applications to Chemical Processes (Biegler, 2010) [link]
  • Pyomo — Optimization Modeling in Python (Hart et al, 2017) [link]

Statistical and Numerical Analysis
CBE 20258
Spring 2018 (co-taught), Spring 2019

Separation Process Principles
CBE 40443/60443 (UG senior, required)
Fall 2017