**Class time and place:**11:00 - 12:20 TR in ECEB 3081.**Instructor:**Prof. V. V. Veeravalli. 315 CSL, vvv at illinois dot edu, 333-0144

Instructor Office Hours (online only): Wednesdays 5PM - 6PM. Zoom Coordinates.**Teaching Assistants:**Adarsh Subramaniam, adarshm2 at illinois dot edu, and Aditya Deshmukh, ad11 at illinois dot edu

TA Office hours: Mondays 5PM - 7PM.**In person**in ECEB 3036, and also synchronously on Zoom. Zoom Coordinates.- Please add yourself to the Piazza discussion site for the course. The access code is here .
- The Gradescope entry code is here .

- There will be no class on Thursday, April 13.
- For students taking the course for 4 credit hours, please form teams of up to 3 students to work on your paper review project (you may also choose to do the project on your own). The deadline for forming teams is
**April 3, 2023,**by which time you need to send Prof. Veeravalli an email listing your team members. For the topic of your project, choose one (or if needed more than one) paper that discusses an optimization problem that arises in the area of your research. Describe the problem and solution approaches in your own words in the report, which is to be written in standard IEEE two-column conference paper format, not exceeding 5 pages in length. The report is to be submitted via Gradescope on**Tuesday, May 9,**by 5:00 PM. Only one person from the team needs to submit the report. - There will be no class on Thursday, March 9.
- Exam 1 will be held
**in person**on Monday, March 6 from 7-8:50 PM in ECEB 1013. You will be allowed one sheet of handwritten notes (8.5''x11'', both sides) for the exam. Otherwise the exam is closed book. The exam will cover the material tested in Homeworks 1-3, i.e., Lectures 1-11. - Exam 2 will be held
**in person**on Monday, May 1 from 7-8:50 PM in ECEB 1013. You will be allowed two sheets of handwritten notes (8.5''x11'', both sides) for the exam. Otherwise the exam is closed book. The exam will cover all the material from class, with an emphasis on material covered since Midterm 1.

**Note:** Please submit your homework assignments on Gradescope. Scan your handwritten solutions into a pdf file to submit. At the time of submission please don't forget indicate which page/s contain the answers to each of the questions.

- Homework Assignment 1: Due Tuesday Jan 31, 11 AM on Gradescope. Solutions.
- Homework Assignment 2: Due Tuesday Feb 14, 11 AM on Gradescope. Solutions.
- Homework Assignment 3: Due Tuesday Feb 28, 11 AM on Gradescope. Solutions.
- Fall 2021, Midterm 1 (practice exam) and its solutions.
- Midterm 1 and its solutions.
- Homework Assignment 4: Due Thursday March 30, 11 AM on Gradescope. Solutions.
- Homework Assignment 5: Due Tuesday April 11, 11 AM on Gradescope. Solutions
- Homework Assignment 6: Due Thursday April 27, 11 AM on Gradescope. Solutions
- Fall 2021, Midterm 2 (practice exam) and its solutions.
- Midterm 2 and its solutions.

**Note:** Computer assignments are to be done in assigned groups. Each student in a group will be awarded the same points after the assignment is graded. The code should be uploaded by a single member of the group on Gradescope (you can add your group members) before the due date, 5:00 PM. In case you have multiple files, upload a zipped folder. One student from each group must meet with the assigned TA during the TA office hours on the due date to demonstrate their code in-person and get the assignment graded -- the other members can be present in-person to answer questions. Each group will be assigned a time slot for this purpose in the period from 5:00 PM -- 7:00 PM on the due date.

Check the assigned groups and time slots here.

- Computer Assignment 1: Due Monday, February 20, 5 PM on Gradescope.
- Computer Assignment 2: Due Wednesday, March 22, 5 PM on Gradescope. The programming files can be found here. The updated group list and time slots can be found here.
- Computer Assignment 3: Due Monday, April 17, 5 PM on Gradescope.

- Lecture 1 (pre), Lecture 1 (post).
- Lecture 2 (pre), Lecture 2 (post).
- Lecture 3 (pre), Lecture 3 (post).
- Lecture 4 (pre), Lecture 4 (post).
- Lecture 5 (pre), Lecture 5 (post).
- Lecture 6 (pre), Lecture 6 (post).
- Lecture 7 (pre), Lecture 7 (post).
- Lecture 8 (pre), Lecture 8 (post).
- Lecture 9 (pre), Lecture 9 (post).
- Lecture 10 (pre), Lecture 10 (post).
- Lecture 11 (pre), Lecture 11 (post).
- Lecture 12 (pre), Lecture 12 (post).
- Lecture 13 (pre), Lecture 13 (post).
- Lecture 14 (pre), Lecture 14 (post).
- Lecture 15 (pre), Lecture 15 (post).
- Lecture 16 (pre), Lecture 16 (post).
- Lecture 17 (pre), Lecture 17 (post).
- Lecture 18 (pre), Lecture 18 (post).
- Lecture 19 (pre), Lecture 19 (post).
- Lecture 20 (pre), Lecture 20 (post).
- Lecture 21 (pre), Lecture 21 (post).
- Lecture 22 (pre), Lecture 22 (post).
- Lecture 23 (pre), Lecture 23 (post).
- Lecture 24 (pre), Lecture 24 (post).
- Lecture 25 (pre), Lecture 25 (post).

**Syllabus:**This is a senior/first year graduate-level course on optimization. Topics include necessary and sufficient conditions for local optima; characterization of convex sets and functions; unconstrained optimization, gradient descent and it variants; constrained optimization and the gradient projection method; optimization with equality and inequality constraints, Lagrange multipliers, KKT conditions; penalty and barrier function methods; weak and strong duality and Slater conditions; augmented Lagrangian methods; sub-gradient methods; proximal gradient descent; applications.

Prerequisites: Linear algebra at the level of Math 415, programming skills at the level of ECE 220.**Textbook:**D. Bertsekas. Nonlinear Programming, Athena Scientific, 2016.**Other References:**

S. Boyd and L. Vandenberghe, Convex Optimization, Cambridge University Press, 2004.

D. Luenberger and Y. Ye. Linear and Nonlinear Programming, Springer, 2008.**Exams, homework, grading, etc.:**- Homework (H) problems will be assigned on a (approx.) fortnightly basis and be submitted via Gradescope . Collaboration on the homework is permitted, however each student must write and submit independent solutions. No late homework will be accepted (unless an extension is granted in advance by the instructor).
- There will be three programming assignments (P), which will be done in Python. The assignments will be done collaboratively in teams.
- There will be two mid-term exams. The first midterm exam (M1) will be held on March 6, and the second midterm exam (M2) will be held on May 1. Both will be evening exams from 7-8:50 pm in ECEB 1013.
- Students taking the course for 4 credit hours will be required to do a paper review project (R). Details will be provided later in the semester.
- Grading will be done separately for the 4 credit hour and 3 credit hour students. For 4 credit hour students the course grade will be determined by your performance in the H, M1, M2, P and R according to the formula:

Score = .2H + .2P + .2R + max{.25M1 + .15M2, .15M1 + .25M2}.

For 3 credit hour students, the course grade will be determined by the formula:

Score = .25H + .25P + max{.3M1 + .2M2, .2M1 + .3M2}.

Here H, M1, M2, P and R are normalized to 100.