Description

This course provides an overview of modern optimization and machine learning methods for control and decision-making, with a focus on robotics applications. Students first study the foundations of continuous and discrete optimization, learning both how real-world robotics problems can be formulated as optimization problems and the algorithms used to solve them. The course also includes a brief treatment of advanced optimization topics such as sums-of-squares optimization and graphs of convex sets. The course then examines decision-making techniques based on machine learning, which leverage data and/or experience. Theoretical material is complemented by robotics examples and hands-on coding exercises in Python. The course culminates in a final project in which students tackle real research problems using the tools developed throughout the quarter.

Prerequisites

This course has no official prerequisites, but it assumes a basic level of mathematical maturity: students should be comfortable reading and writing mathematical arguments, understanding proofs, and working with abstract concepts. Students should also be familiar with linear algebra and basic analysis, including vectors, matrices, norms, functions, differentiation, integration, etc. Basic coding skills are expected, as the course will include examples and homework assignments in Python. Prior exposure to control theory and/or robotics is a plus, but not required, as all relevant background will be introduced in the course.

Instructor

  • Tobia Marcucci
  • Department of Electrical and Computer Engineering
  • Email: marcucci@ucsb.edu
  • Office: Harold Frank Hall, room 5155

Lectures

  • Monday and Wednesday from 4:00pm to 5:50pm (starting March 30)
  • Room PHELP 1448

Office hours

  • One day a week to be decided
  • Location: 5155 Harold Frank Hall

The instructor will also be available for questions after the end of each lecture.

Lecture notes

The lecture notes are available at this link and will be available on Canvas. We will cover roughly one chapter per week. The notes will be continuously improved, updated, and corrected throughout the quarter. Initially, you will find only a draft of the complete lecture notes on Canvas. Each week, I will upload a separate file corresponding to the chapter to be discussed in the upcoming lectures (and update the main lecture note file accordingly).

You should download the weekly chapters for studying, and can refer to the main lecture note file to see what the class will cover in the future.

Additional textbooks and references for students interested in deeper study will be cited within the lecture notes.

Homework

  • Homework will be released on Canvas approximately every week, and be due the same day of the following week by midnight.
  • If answers are not accompanied by satisfactory explanations (e.g., all intermediate steps or clearly readable handwriting), no credit will be given.
  • Late homework will automatically incur a 10% grade deduction per day of delay, and will not be accepted after 3 days of delay (midnight).
  • Deadlines are strict: a homework submitted at 11:59 pm on the due date is considered on time, while a submission at 12:00 am is considered late, with no exceptions. Please begin your submission early to allow time to resolve any unexpected issues.
  • In the rare case of insurmountable technical problems (e.g., Canvas is unavailable), email your homework solution to me at marcucci@ucsb.edu before the deadline. Any email received after midnight will incur the 10% grade deduction described above.

Final project

The class does not have any exam (no midterm and no final). The final project will be your opportunity to take what you learned in the class and put it towards a project of your choice.

Here are some guidelines:

  • Your project should be well aligned with the material covered in the course. It will be evaluated based on how it demonstrates your understanding of the class material.
  • You are welcome to work on the project in small teams (at most 3 people). If you plan on doing a team project, please make this clear in your proposal. Our expectations for your project will be proportional to the number of people on the team.
  • The quarter is short, so the project scope should be chosen carefully. Come to office hours during the first weeks to brainstorm about potential projects. Developing novel algorithms/methods is fantastic, but implementing or modifying existing techniques is often a safer project.
  • Some of you will be able to work on a project that is closely aligned with your current research. This is acceptable. If you are using part or all of your work for research or as a part of another class, you must state this explicitly in your final report.
  • Your project must clearly acknowledge any use of others’ work to avoid plagiarism. This includes citing all external sources (e.g., papers, books, websites) and giving appropriate credit for any code, data, figures, or ideas that are not your own.
  • The use of AI-enhanced tools (such as ChatGPT) is prohibited.

Evaluation of final project

The final project will be evaluated through:

  • A final report of up to 3 pages.
  • A final video of at most 3 minutes for a team of one person, 4 minutes for a team of two people, and 5 minutes for a team of four people.

About the final report:

  • Please use LaTeX, it is a great tool to know how to use!
  • Use the IEEE LaTeX template for conference proceedings. Also available on Overleaf.
  • Write a summary of what you accomplished during your project. Write it, as much as possible, like a conference paper. You should include: abstract, introduction, literature review, technical approach, results, discussion about strengths and limitations, and potential next steps.
  • For team projects, please add a section that describes the contributions of each team member.
  • For projects that overlap with your research or a project in another class, please clearly denote what parts of the project overlap (or not) with the other efforts.

Project proposal

Halfway through the quarter, on April 22, you will have to submit a project proposal. This is intended to help you start thinking seriously about your final project early in the quarter and to receive feedback before committing significant effort. A well-prepared proposal will make the remainder of the project substantially smoother.

Your proposal should be about one page (not more than two), and use the same template as the final project. It should clearly describe the following elements:

  • Project topic and motivation: What problem do you want to study, and why is it interesting or relevant? Your project should be well aligned with the material covered in the course. Try to be specific about which concepts, methods, or techniques from the class you plan to use.
  • Technical approach: Provide a concrete plan for how you intend to carry out the project. This may include developing a new method, extending an existing one, or implementing and evaluating known techniques on a particular problem. At this stage, clarity and feasibility are more important than ambition.
  • Expected outcomes: What do you hope to demonstrate by the end of the project? For example, do you aim to improve an algorithm, or provide empirical validation through simulations or experiments? The quarter is short, so it is important to choose a project that is appropriately scoped. Indicate what you consider to be the “minimal viable project” and any possible extensions if time permits.
  • Preliminary references: List a few relevant papers, books, or other resources that will inform your work. This will help ensure that your project is grounded in existing literature.
  • Team information (if applicable): If you are working in a team (at most 3 people), list all members and briefly describe how you expect to divide the work. Keep in mind that expectations will scale with the number of team members.
  • Overlap with other work (if applicable): If your project is related to your current research or another class, clearly state this and explain what portion of the work is new for this course.

The goal of the proposal is not to lock you into a rigid plan, but to ensure that you have identified a clear, feasible direction early on. You are strongly encouraged to discuss your ideas in office hours before submitting the proposal.

Grading

Your grade will be assigned roughly according to the following percentages:

  • Homework 25%
  • Project proposal 15%
  • Final project 60%

Please note that these weights are approximate, and we reserve the right to change them later.

Python

The homework will require working knowledge of Python. Help will be provided to the students that are not proficient in Python and do not have access to a Python installation, provided that they contact the instructor in a timely manner.

All the coding examples and exercises are available at https://github.com/TobiaMarcucci/olrc-code.

Collaborations and external resources

You are encouraged to work with other students on your assignments, and to help other students complete their assignments. If you do so, please be sure to clearly write the name(s) of your collaborator(s) in the solutions that you submit. Please also specify if you collaborated on the entire assignment or only on specific problems. Remember that the material you turn in for course credit must be a fair representation of your work, and you are responsible for understanding, being able to explain, and duplicate the work you submit. We suggest that the study groups are composed of at most three students.

In the solution of the homework, you are discouraged to use any material that is not the class textbook or the other textbooks mentioned above. If you decide to use additional material (e.g., Wikipedia or stack/math overflow) please clearly specify that in the solutions that you submit. The use of AI-enhanced tools (such as ChatGPT) is prohibited.

Academic integrity

We adhere to the UCSB Academic Integrity Policy.

Lectures

The lectures will follow the lecture notes. After each lecture, I will list below the sections that were covered in the lecture. Please note that we might skip some of the material in the lecture notes.

  • Lecture 1: March 30
  • Lecture 2: April 1
  • Lecture 3: April 6
  • Lecture 4: April 8
  • Lecture 5: April 13
  • Lecture 6: April 15
  • Lecture 7: April 20
  • Lecture 8: April 22 (project proposal due)
  • Lecture 9: April 27
  • Lecture 10: April 29
  • Lecture 11: May 4
  • Lecture 12: May 6
  • Lecture 13: May 11
  • Lecture 14: May 13
  • Lecture 15: May 18
  • Lecture 16: May 20
  • Lecture 17: May 27
  • Lecture 18: June 1
  • Lecture 19: June 3 (project report and video due)

Tentative homework schedule

  • Homework 1: released on April 1 and due on April 8
  • Homework 2: released on April 8 and due on April 15
  • Homework 3: released on April 22 and due on April 29
  • Homework 4: released on April 29 and due on May 6
  • Homework 5: released on May 6 and due on May 13
  • Homework 6: released on May 13 and due on May 20
  • Homework 7: released on May 20 and due on May 27