Optimization Course Competencies

Students gain an understanding of the principles and techniques of optimization, including linear and nonlinear programming, decision analysis, and simulation. A focus of the course is to develop and apply optimization models to solve real-world engineering problems. Students analyze and interpret the results of optimization models, including sensitivity analysis and model robustness. Importantly, they communicate the results of optimization models effectively after developing implementation strategies for optimization models in software environments. There is some development and application of optimization models in the context of multi-objective optimization. Meta-heuristic optimization techniques are covered with the basics of evolutionary algorithms and simulated annealing. An additional course covers the basics of artificial intelligence and machine learning techniques. The optimization methods in this course are foundational for machine learning.

Course Objectives

  • Define and use optimization terminology and concepts, including concepts of analysis space and design space.
  • Apply optimization methods to engineering problems, including developing a model, defining an optimization problem, applying optimization methods, exploring the solution and interpreting results.
  • Understand and apply unconstrained optimization theory for continuous problems, including the necessary and sufficient conditions and steepest descent, Newton’s method, conjugate gradient and quasi-Newton methods. Understand basic theorems of quasi-Newton methods.
  • Understand and apply discrete algorithms, including branch and bound, exhaustive search and simulated annealing.
  • Develop and apply Genetic algorithms.
  • Understand and apply constrained optimization theory for continuous problems, including the Kuhn-Tucker conditions and generalized reduced gradient and sequential quadratic programming methods.
  • Apply optimization techniques to determine a robust design.
  • Design optimization algorithms and use modeling languages, solvers, and visualization software to explain optimization solutions.