Course Title: Nonlinear Optimisation

Part A: Course Overview

Course Title: Nonlinear Optimisation

Credit Points: 12.00


Course Code




Learning Mode

Teaching Period(s)


City Campus


145H Mathematical & Geospatial Sciences


Sem 1 2006,
Sem 1 2007,
Sem 1 2008,
Sem 2 2009,
Sem 2 2016


City Campus


171H School of Science


Sem 2 2018

Course Coordinator: Andrew Eberhard

Course Coordinator Phone: +61 3 9925 2616

Course Coordinator Email:

Course Coordinator Location: 8.9.12

Pre-requisite Courses and Assumed Knowledge and Capabilities

MATH2140Linear Algebra and Vector Calculus

MATH1155 Scientific Computing 


You are assumed to have completed an introductory course in vector calculus, and have some familiarity with computing and the writing of simple programs

Course Description

Optimisation problems arise in many areas of engineering, science, economic modeling, resource modeling and operations research. These problems can arise via the need to find a best approximation or ‘fit’ to a set of data or to use finite resources equitably and efficiently. Indeed many physical laws are governed by the principle of least action. The solution of such problems often requires the use of modern digital computers and algorithms to approximate a solution. This course gives an introduction to the main ideas behind these algorithms and the mathematical theory underpinning their use. We consider what leads to convergence and efficiency for various algorithms. A modern computer programming language will be used to implement algorithms to illustrate these principles. Skills in formulation and the reformulation of optimization problems will be introduced both in the form of problem classes and specific examples. Certain problem classes have associated with them an efficient solver. Since an efficient solver does not exist for all problems we introduce various heuristics to obtain good approximate solutions for difficult problems. Here we will look at some deterministic, probabilistic and evolutionary methods. These later approaches are often based more on global searches and derivative free methodologies.

Objectives/Learning Outcomes/Capability Development

This course contributes to the following Program Learning Outcomes for BP083 Bachelor of Science (Mathematics), BP245 Bachelor of Science (Statistics) and BH119 Bachelor of Analytics (Honours):

Knowledge and Technical Competence:

  • use the appropriate and relevant, fundamental and applied mathematical and statistical knowledge, methodologies and modern computational tools.


  • synthesise and flexibly apply knowledge to characterise, analyse and solve a wide range of problems
  • balance the complexity / accuracy of the mathematical / statistical models used and the timeliness of the delivery of the solution.

On completion of this course you should be able to:

  1. Develop an optimization problem, formulated in appropriate mathematical language, whose solution will provide an answer to a real world problem and develop optimality criteria where appropriate.
  2. Reformulate constrained problems using ideas about duality and interpret the dual and the relationship of the dual solution to the primal solution.
  3. Identify the reasons for poor convergence behaviour of an algorithm and if necessary modify the appropriate code for an optimization algorithm and problem.
  4. Describe the various optimization problem classes and explain which optimization solver is suitable for each class of problem.
  5. Discriminate when it is appropriate to use (local) gradient-based methods as opposed to gradient-free methods such as grid based and derivative-free evolutionary algorithms.
  6. Evaluate the effect on performance of varying each chosen methods control parameters and/or selection strategies. 

Overview of Learning Activities

Hand-written assignments will be used to reinforce conceptual material introduced in lectures. For example you may be asked to solve simple optimization problems using optimality conditions and to work through an iteration of an algorithm by hand so as to become familiar with its logic. You will also test the performance of these algorithms using code provided by the lecturer, written in a modern programming language. Weekly computer laboratory tutorials will be used to help you understand the use of computer programming languages to code algorithms. These tutorials will also help you to understand when it is appropriate to use local gradient-based methods as opposed to gradient-free methods based on function evaluations alone. Activities are designed to encourage decision making processes in regards to what algorithms are relevant to the solution of a particular problem of a given type.

The assessment will be a combination of hand-written work, computer generated output in conjunction with a written interpretation of this output and an end-of-semester exam. 

Overview of Learning Resources

Typeset lecture notes will (where possible) be handed out each week. There is no prescribed text book but a number of recommended references exist in the RMIT central library. A website will be used to distribute assignments and teaching materials. A Library Guide is available at:

Overview of Assessment

Assessment Tasks:


Assessment Task 1: Out of class Written assignments

Tests skills in formulating a problem, developing optimality conditions, dual problems and your understanding of computational steps in an algorithm. Twice a semester, each worth 10%.

Weighting 20%

This assessment task supports CLOs  1,2

Assessment Task 2: Computer lab tutorials

Involves the modification and execution of computer code for optimization algorithms, along with the interpretation of output. These will be held once a week for 10 weeks and will involve exercises to be handed in for assessment

Weighting 30%

This assessment task supports CLOs 3,4,5,6


Assessment 3: Final Exam  

Examine all aspects of the course

Weighting 50% 

This assessment supports CLOs 1, 2, 4, 5