Listing of courses offered at the graduate level related to optimization
A full listing of courses and more information can be found here. The following courses are often recommended and relevant for energy systems optimization research, and a sample progression is noted with “*”.
*COMP SCI / E C E / I SY E 524: Introduction to Optimization
Introduction to mathematical optimization from a modeling and solution perspective.
*COMP SCI / I SY E/ MATH / STAT 525: Linear Programming Methods
Real linear algebra over polyhedral cones; theorems of the alternative for matrices; formulation of linear programs; duality theory and solvability; the simplex method and related methods for efficient computer solution.
COMP SCI / I SY E 526: Advanced Linear Programming
Polynomial time methods for linear programming; quadratic programs and linear complementarity problems and related solution techniques; solution sets and their continuity properties.
COMP SCI / E C E / M E 532: Matrix Methods in Machine Learning
An introduction to machine learning that focuses on matrix methods and features real-world applications ranging from classification and clustering to denoising and data analysis.
COMP SCI / I SY E 719: Stochastic Programming
Stochastic programming is concerned with decision making in the presence of uncertainty, where the eventual outcome depends on a future random event. Topics include modeling uncertainty in optimization problems, risk measures, stochastic programming algorithms, approximation and sampling methods, and applications.
COMP SCI / I SY E 723: Dynamic Programming and Associated Topics
General and special techniques of dynamic programming are developed by means of examples. Shortest-path algorithms; deterministic equipment replacement models; resource allocation problem; traveling-salesman problem; general stochastic formulations; Markovian decision processes and more
*COMP SCI / I SY E / MATH / STAT 726: Nonlinear Optimization I
This course emphasizes continuous, nonlinear optimization and could be taken with only a background in mathematical analysis.
*COMP SCI / I SY E / MATH 728: Integer Optimization
Introduction to optimization problems over integers and survey of the theory behind the algorithms used in state-of-the-art methods for solving such problems. Special attention is given to the polyhedral formulations of these problems, and to their algebraic and geometric properties.
COMP SCI / I SY E / MATH 730: Nonlinear Optimization II
Theory and algorithms for nonlinearly constrained optimization; relevant geometric concepts, including tangent and normal cones, theorems of the alternative, and separation results.
This Matlab algorithm analytically computes the view factor from polygon A to polygon B, so long as the following conditions are met:
1) polygons are planar (all vertices lie in the same plane)
2) polygons are simple (no self-intersecting polygons)
3) polygons are convex (in theory, concave polygons should work, but this remains untested)
This document provides details on running MatLab scripts on the CHTC server for projects with large computational requirements. The document is hosted on the SEL website.
The Center for High-Throughput Computing (CHTC) is a UW-Madison resource that is free of charge to students and faculty doing research. The CHTC accepts a variety of computing jobs, including those designed using MatLab. This document describes the procedure for submitting and retrieving a MatLab computing job at the CHTC. (Link to document hosted on the SEL website.)
You may need to access your lab computer when working remotely. This procedure outlines the steps to gain access and work directly on your lab computer while off campus or in another campus lab.
Admin rights are managed by the department and by CAE and use should be avoided when possible. Some tasks (like installing lab software or changing environment settings) require admin rights. This procedure outlines the steps to elevate permissions to administrator when completing a task.
The ESOLab shares computing resources with affiliated energy systems labs, including the Solar Energy Lab (SEL). This page provides instructions on (1) joining the SEL computer workgroup, (2) mapping shared drives, (3) and connecting to lab printers.
LaTeX is a document typesetting language used for scientific and mathematical publishing and research writing. It generates clean, well-formatted documents and provides extensive support for references, tables, equations, and other features that can be temperamental in MS Word. This procedure can be used to step through installation and configuration for use with VS Code as the editor.
As an alternative to downloading and installing the LaTeX compiler and development environment on your computer, you can use a web-hosted service such as Overleaf. The video below goes through how to use this tool, but more generally gives pointers on how to write LaTeX documents.
Git Bash is a command line tool for managing Git repositories. This procedure guides the installation and proper configuration of Git Bash on a local workstation for use with ESOLab repositories.
VS Code is a free integrated development environment (IDE) that provides debugging, linting, and other code development tools for a variety of languages. This procedure guides students through setup and installation for use with Python.
This procedure guides new students through the process of installing Python 3 on a local workstation. The procedure uses the 'miniconda' Python distributable.