Quicklinks
Electrical Engineering 127 — Optimization Models in Engineering (4 Units)
Note: EE127 is now EECS127.
Course Overview
Summary
This course covers linear-algebra-based optimization and convex optimization. The emphasis is on problem formulation and recognizing classes of different optimization problems (e.g. linear programming, semidefinite programming). The course does not emphasize algorithms. Instead, the CVX software package is used extensively in the course to computationally solve problems.
Prerequisites
Linear algebra at the level of EECS 16B or Math 54 is essential for understanding the material. Linear algebra at the level of Math 110 is even better, but not required.
Experience with logic and proofs equivalent to having completed CS70 (any upper division math course is certainly sufficient).
Topics Covered
- Linear algebra relevant for optimization
- Linear equations
- SVD
- Least-squares
- Convex models
- Convex optimization
- Linear programming (LP)
- Quadratic programming (QP)
- Second-order cone programming (SOCP)
- Robust linear programming
- Geometric programming (GP)
- Semidefinite programming (SDP)
- Duality: weak and strong
Workload
Course Work
Readings are recommended. - weekly problem sets - 3 hours of lecture a week - 1 hour of discussion a week - 2 midterms (some semesters 1 midterm) - 1 project (some semesters, and sometimes optional) - 1 final
Time Commitment
3 hours of lecture, 1 hour of discussion, 6-20 hour problem sets each week. Problem sets swing wildly between being filled with boundless algebraic manipulation, challenging proofs, and exercises in Python notebooks.
Choosing the Course
When to take
127 can be taken anytime after you finish EECS 16B and CS70, and is recommended to be taken before CS189. However, its content remains valuable for any undergrad who has not taken Math 170.
What's next?
EE 227B, EE227C, CS189 for applications
Usefulness for Research or Internships
This course can be useful for research or internship positions in machine learning and AI.
Additional Comments/Tips
This course covers a variety of "easy" (i.e. computationally efficient to solve) optimization problems which arise in many fields. Although there isn't an emphasis on algorithms in this course, we do use available software (CVX) to computationally solve convex optimization problems. The idea is that after taking the course, students are able to use existing optimization software packages to solve a variety of optimization problems. Moreover, this course provides a great foundation for those interested in more advanced topics in optimization.
Duality is mind-blowing.
Keep up with the homeworks, especially the highly-algebraic proof-oriented homeworks since exams are of the same flavor.
Last edited: Summer 2020