Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Semester Project (Archived --- Spring 2023)

Although homework is helpful for learning concepts, the goal of the class is to prepare you to apply optimization methods in your research or future careers. A project is the best way to accomplish this.

During the semester project, you will develop mastery of a handful of concepts introduced in this class through an application of your choice. In Spring 2023 the semester project was the main evaluation criterion for the semester, in place of a final exam.

Everyone is encouraged to structure their class projects to be aligned with their research. If you reuse any prior work, include a short paragraph in your project proposal and final report explaining the specific extensions you added for this class. (In other words, you should not completely recycle work you have already done; there needs to be something new.) Undergraduate students: please notify Prof. Dowling if you want to convert work from a previous/current class (including undergraduate research credit) into your semester project. Graduate students: please notify Prof. Dowling and other course instructors if you plan to “double count” a project for two current classes. This is likely fine as long as all instructors agree, but each version of the project should be tailored to each class.

Learning Goals

By completing this project, you will:

Scope and Main Deliverable

Please choose from the following options. As a rough guide, your project should require 25 (undergraduate) to 35 (graduate) hours of time investment over the entire semester.

Option 1: Make significant revisions to two class notebooks

Many of our class notebooks would benefit for enhancements such as:

By completing this type of project, you will deep dive on two class topics. In addition to helping future classes, you will practice making educational material. The expectation are:

Below are some specific enhancement requests/ideas:

Integer Programs

Logical Modeling and Generalized Disjunctive Programming

Differential Algebraic Equations

Numeric Integration for DAEs

Dynamic optimization with Pyomo.DAE

Option 2: Create a new notebook for the class website

Algorithms and Theory

Our class website would also benefit from additional content, such as:

This is a great project choice for students that plan to use optimization via other packages, e.g., scikit-learn for machine learning, and do not see themselves developing optimization models or using Pyomo. This project structure allows you to understand what is “under the hood”.

The contributed notebooks should include:

Pyomo Examples

Alternately, you may reproduce a simple optimization problem from literature as an illustrative case study, similar to the Pyomo Mini Project.

The contributed notebooks should include:

Your notebook must go beyond the reference material. For example, if you find Pyomo code already shared online, you must do more than just reproducing the results. For a paper with equations (and perhaps a model in another language, e.g., GAMS, Julia), translating the model to Pyomo and reproducing results is acceptable. Failure to disclose source material you used is considered an honor code violation.

Option 3: Apply optimization to your research problem

This is the most opened ended project format and intended for PhD students that plan to apply optimization to their research. When choosing this type of project, be sure to set clear and achievable goals for the semester; it will take you 3 to 5-times longer than you think. The best projects have a clear path to a promising proof-of-concept result in ~10 hours of work. A poor project requires 20+ hours of model development and coding before you have any indication if it will work. In past semesters, some students have jumped into projects like this without a clear plan, which caused stress and anxiety; the best way to avoid this is spending a few hours developing your project proposal. Think though your ideas and make a timeline. What are interesting research questions you can address quickly with optimization? How can you gradually grow the complexity of the model as the semester progresses?

You are encouraged to use your current or past research for this project. If you plan to reuse code you have previously developed, you need to clearly articulate the extensions you will make as part of this class project (e.g., implement new programming feature, add complexity to the model, perform new analysis). These extensions should require the same amount of work as your peers over the semester.

As a final deliverable, you should turn either a Jupyter notebook or short report (e.g., 4 to 6 page conference paper) with the following information:

Peer Mentor Groups

While this is an individual project, you will collaborate with an assigned group of 3 or 4 students. Throughout the semester, you will give and receive feedback to/from your peer mentor group on project concepts, mathematical model/algorithm details, results, and draft reports.

We are using the peer mentor strategy for several reasons:

Project Proposal

The project proposal should be 1 to 3 pages and includes the following sections.

Introduction (1 paragraph):

  1. Motivate the project and provide context for an interdisciplinary audience.

  2. Option 2 (new Pyomo example) or Option 3: What are you trying to accomplish with optimization?

  3. Option 2 (new algorithm): Why is the algorithm important? What type of problems is it used for?

  4. Option 1: What skills do you anticipate your educational material will help future classes master? Why is this important?

  5. All: What is the final deliverable for this project? What defines “success”?

Details (1/2 to 1 page):

For a new Pyomo example (option 2) or research problem (option 3):

Write down the optimization problem without equations. Identify the decision variables and required input data. For the battery example in Mini Project 1:

Maximize Market revenue over finite time horizon s.t. Battery physics (efficiency, energy balance) Bounds/limitations (power, state-of-charge)

Decision variables: a. Charge/discharge power for each timestep b. Energy in battery at end of each timestep

Input data/parameters: a. Timeseries market prices b. Round trip efficiency c. Initial state-of-charge

Attempt to classify the optimization problem. Are any of the decision variables discrete? Are the constraints (equations) algebraic or (partial) differential equations or a mixture of both? Are the constraints all linear? Is the objective linear or nonlinear? Are any of the model parameters uncertain? Depending on this information, we may reorder some of the later lectures to better prepare for the projects.

Is the complete mathematical model available in literature? If so, please cite. If not, what parts will you need to derive? How can you simplify the model to ask meaningful research questions faster?

Where will the input data come from? If literature, please cite. If from your research lab, please elaborate. Does data need to be collected? What is your backup plan if you cannot find the necessary input data?

For new algorithm page (option 2):

Summarize the main algorithm and identify the key steps (similar to examples in class). Explain the extensions you will explore that are beyond homework/in class activities.

Identify 2-5 references you will consult for the algorithm details.

What problems will you use for testing and benchmarking? How do these problems highlight advantages of the algorithm? [For example, if you consider trust region extensions that deal with the “hard case” for nonconvex problems, you should identify a test problem for which simple trust region algorithms fail. You can find many of these examples in literature.]

For notebook enhancements (option 1):

Identify three notebooks you would like edit rank ordered from greatest to least preference. Prof. Dowling will make the assignments to avoid duplicates.

For each selected notebook, make a list of the planned enhancements.

Describe in 1 paragraph the new content you plan to add to one of the notebooks. Identify this specific notebook. If you will add an example, describe the model (and if from literature, cite) and justify your choice. Explain why the content you plan to add will enhance the notebook.

Timeline (<1/2 page):

  1. Define measurable and specific weekly goals for your project. Estimate the number of hours for each goal. (Consider putting this in a table or Gantt chart.)

  2. Is your project feasible to finish by May?

  3. What parts of the project do you anticipate will be most challenging?

  4. Based on the lecture schedule in the syllabus, will you need to learn material before the rest of the class? If so, factor this into your weekly goals.

  5. Options 2 and 3: How can you structure your project to have the model or algorithm prototype ready by the progress report (~10 hours of technical work)? This will ensure you have enough time to focus on analysis and refinement.

New Technical Expertise (few sentences): Highlight the new technical expertise are you going to learn/refine/master through this project. In this context, new means knowledge or skills related to computational optimization that you were unaware of or had not mastered before the start of the semester.

References: Please choose a reference style consistent with journals in your field of study.

Status Update

About 1 month into the project, you should be about 30% to 40% done with the project. You will prepare a small report with the following sections:

Executive Summary (1 paragraph):

Updated Timeline (<1/2 page):

References

Draft Notebook(s) or Report:

Final Presentation

You will give a 3-minute final presentation (long “elevator pitch”) to the class on your project. For new notebooks or research projects, highlight the i) motivation, ii) problem formulation or algorithm, and iii) a key result. For notebook revisions, i) summarize changes, ii) emphasize the new content you added. During the final presentations, you will be asked to give brief written feedback to most of the presenters.