# Course Title: Optimisation

## Part A: Course Overview

Course Title: Optimisation

Credit Points: 12.00

Course Coordinator: Andrew Eberhard

Course Coordinator Phone: +61 3 9925 2616

Course Coordinator Email: andy.eberhard@rmit.edu.au

Course Coordinator Location: 8.9.12

Course Coordinator Availability: By appointment, by email

Pre-requisite Courses and Assumed Knowledge and Capabilities

You are assumed to have completed an introductory course in vector calculus, and have some familiarity with computing and the writing of simple programs: Math2311 – Applied Linear Algebra Math2109 – Mathematical Computing and Algorithms   (+ see structure attached)

Course Description

Optimisation problems arise in many areas of engineering, science, economic modelling, resource modelling 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 and we will practise calling standard solvers for these problems and interpreting the output. Since an efficient solver does not exist for all problems we introduce various heuristics to obtain good approximate solutions for difficult problems.  Examples of problems will be sort form statistics and mathematical modelling.

Objectives/Learning Outcomes/Capability Development

This course contributes to the following Program Learning Outcomes for BP083 Bachelor of Applied Mathematics and Statistics and BH119 Bachelor of Analytics (Honours):   PLO2. Knowledge and Technical Competence: • use the appropriate and relevant, fundamental and applied mathematical and statistical knowledge, methodologies and modern computational tools.   PLO3. Problem-solving: • 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 optimisation 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 optimisation algorithm and problem. 4. Describe the various optimisation problem classes and explain which optimisation solver is suitable for each class of problem. Call these solvers to solve problems and interpreting the output. 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.

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 and how to call standard solvers and interpret the output.

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 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 optimisation 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

Assessment 3: Final Exam

Examine all aspects of the course

Weighting 50%

This assessment supports CLOs 1, 2, 4, 5