Explore UCD

UCD Home >

EEEN40580

Academic Year 2024/2025

Optimisation Techniques for Engineers (EEEN40580)

Subject:
Electronic & Electrical Eng
College:
Engineering & Architecture
School:
Electrical & Electronic Eng
Level:
4 (Masters)
Credits:
5
Module Coordinator:
Dr Paul Cuffe
Trimester:
Autumn
Mode of Delivery:
On Campus
Internship Module:
No
How will I be graded?
Letter grades

Curricular information is subject to change.

How do we make good decisions in the real world? Engineers often want to push to extremes: we want the cheapest possible set of generators to produce our electricity, or the fastest set of workshop operations to manufacture a part. This is where optimisation become useful: it is a set of numerical techniques for searching for these extreme solutions.

Specifically, mathematical optimization is concerned with finding the best available value of an objective function through appropriately choosing controllable variables within a set of given constraints. A broad variety of problems arising from diverse applications including production optimization in manufacturing, crew scheduling and aircraft assignment for airlines, optimal production and distribution of electricity or portfolio management in finance, can be formulated as mathematical optimization problems. This module presents the mathematical concepts and algorithmic tools for modeling and solving practical optimization problems.

The emphasis will be practical, developing in students the ability to formulate and solve realistic problems (like those they may encounter in their careers) using Python and Pyomo. The theoretical topics that we will discuss to this end will include:

1. Linear programming (the simplex algorithm, manufacturing/workshop models etc)

2. Integer programming (assignment problems, branch & bound etc)

3. Duality (Lagrange dual, weak & strong duality)

4. Convex optimization (convex functions, optimality conditions, duality, quadratic optimization)

5. Non-convex optimization (local vs. global optimization, optimality conditions)

6. Nonlinear optimization algorithms (gradient descent methods, quasi-Newton methods)

About this Module

Learning Outcomes:

1. Be able to formulate real world optimization problems and incorporate uncertainty.

2. Be capable of implementing optimization solvers.

3. Convert problems to their dual formulation.

4. Be able to prove basic results on convex optimization.

Student Effort Hours:
Student Effort Type Hours
Specified Learning Activities

12

Autonomous Student Learning

80

Lectures

24

Online Learning

11

Total

127


Approaches to Teaching and Learning:
1. Lectures first introduce the ideas behind the theory that is going to be developed;
2. The formalisation of the idea leads to the development of the theory;
3. Whenever possible, software is used to develop experiments illustrating the main features of the theory;
4. During each lecture, the links with the lecture before and after are outlined so as to gain the logical links between the topics

Requirements, Exclusions and Recommendations
Learning Recommendations:

A good facility with computer scripting, as well as a solid grasp on numerical methods will ground a student well for this module. A good familiarity with MATLAB or C++ or Python, Julia or GAMS will be very helpful.


Module Requisites and Incompatibles
Not applicable to this module.
 

Assessment Strategy
Description Timing Component Scale Must Pass Component % of Final Grade In Module Component Repeat Offered
Exam (In-person): An invigilated Brightspace quiz to be completed in-person during the timetabled class slot. Week 11 Alternative linear conversion grade scale 40% No
30
No
Exam (In-person): An invigilated Brightspace quiz to be completed in-person during the timetabled class slot. Week 5 Alternative linear conversion grade scale 40% No
30
No
Individual Project: Two Python optimization programming tasks, each worth 20%. Due in week 4 and week 8. Week 4, Week 8 Graded No
40
No

Carry forward of passed components
No
 

Resit In Terminal Exam
Spring No
Please see Student Jargon Buster for more information about remediation types and timing. 

Feedback Strategy/Strategies

• Group/class feedback, post-assessment
• Online automated feedback

How will my Feedback be Delivered?

Not yet recorded.

The coding language in this module will be Python; we will use the Google Colab environment, to minimise any device-specific setup faff. We will be using the Pyomo library for formulating practical optimization problems in this environment.

Some suggested books that support the module content include:

"Convex Optimization" by Stephen Boyd and Lieven Vandenberghe.

"Mathematical Programming and Operations Research: Modeling, Algorithms, and Complexity Examples in Python and Julia" a work-in-progress collaborative textbook edited by Robert Hildebrand

"Practical Optimization: a Gentle Introduction" by John W. Chinneck

"A Gentle Introduction to Optimization" by B. Guenin, J. Konemann & L. Tuncel

"Pyomo - Optimization modeling in Python" Michael L. Bynum et al. . Vol. 67. Berlin: Springer, 2017.

Name Role
Cliodhna Gartland Tutor
Meng Li Tutor

Timetabling information is displayed only for guidance purposes, relates to the current Academic Year only and is subject to change.
Autumn Lecture Offering 1 Week(s) - Autumn: All Weeks Fri 09:00 - 09:50
Autumn Lecture Offering 1 Week(s) - Autumn: All Weeks Wed 09:00 - 09:50