Surrogate Methods
AAE59000
Credit Hours:
3Learning Objective:
On completing this course, the student will:
- Have gained basic knowledge of surrogate methods and algorithms
- Have gained an understanding of the computational challenges of surrogate methods
- Be able to implement basic algorithms of surrogate methods in Python
- Be able to use surrogate algorithms to solve basic engineering modeling and design optimization problems
Description:
This course introduces students to the use of surrogate methods for engineering modeling and design optimization. In particular, this course introduces the fundamentals of building, selecting, validating, searching, and refining a surrogate model. Students will learn the theory behind the surrogate methods as well as how to implement and apply them to simple and practical modeling and design optimization problems. Implementations of the methods will be done using Python programming and Jupyter Notebooks. Course work includes workbook assignments, homework assignments, and tests. The course is intended for graduate students as well as senior undergraduate students.
Topics Covered:
- Local and global optimization methods
- Sampling plans
- Surrogate model construction, including Gaussian process regression and neural networks
- Exploring and exploiting a surrogate
- Constraints
- Exploiting gradient information
- Multifidelity analysis
- Uncertainty analysis
- Design optimization with surrogate models
Prerequisites:
The prerequisites for this course are a working knowledge of linear algebra, numerical methods, multivariate calculus, probability theory and statistics for engineers, as well as basic Python knowledge. Implementations of the methods of introduced in this course will be performed through Python programming and Jupyter Notebooks. Some of the codes used in the course are here:
https://computationaldesignlab.github.io/surrogate-methods/index.html
Applied / Theory:
50/50
Web Address:
https://purdue.brightspace.com
Homework:
There will be 10 workbook assignments. There will be at least three homework assignments.
Projects:
None
Exams:
There will be three tests. There will be no final exam. The test will be in-class. Online students will need to have a proctor.
Textbooks:
There is no required textbook in this course. Copies of papers and textbooks (which are all available freely through the Purdue Library web page or on the internet) will be posted on the course Brightspace web page for reading.
Computer Requirements:
Computing in this class will be done entirely using the Python programming language and Jupyter Notebooks. Please note that the course work is very Python programming heavy. We will provide resources to refresh your Python programming knowledge, if needed. We will not teach basic Python programming in this class during lectures or office hours (although, we will give a short inrtroduction of the basics during the first week of classes). You will have to learn it on your own. You should not take this course if you do not have sufficient knowledge or skills in Python programming.