"Much of the complex art of engineering is the art of optimization." - American mathematician Richard Hamming

The situation arises often. In fact, as suggested by the quote above, almost every engineering endeavour has the same central theme: to get "the most" out of some process or product usually within the context of various competing interests. We want the most power for the least gas consumption, we want the tallest structure with the least amount of materials, we want the most widgets in the least amount of time. This is the art of optimization, finding the "best" balance. Making a powerful engine is fairly straightforward, but few consumers are interested in filling the tank every 100 km!

A big part of the job as an engineer is working out exactly what we want and how to balance the variables at play in some ideal sense. And this must often be done in the face of very real constraints related to e.g. material properties, scheduling issues, market factors, budgets, government regulations, etc. While this is the reality of engineering work, we will not concern ourselves with such issues or constraints. Mathematically speaking, accounting for them is actually quite tricky. For our work, we will assume that:

In this light, our optimization problems can be discussed purely in mathematical terms.

Simple boundary-value and optimization problems

April 3, 2019
A brief introduction to root-finding, the nitty-gritty of floating point mathematics, and optimization.

The Baywatch problem set

April 8, 2019
With our bisection method (or Muller's method) ready and tested, we need to prep a small code for optimization of a continuous function with a single degree of freedom. Then we will tackle the Baywatch problem set.

Optimization of a continuous function with many degrees of freedom

April 10, 2019
To finish the Baywatch problem set, we need a strategy for dealing with optimization problems involving more than a single continuous variable.

Optimization involving discrete variables

April 16, 2019
We take a page from nature's playbook and look at an algorithm inspired by evolution that is well-suited to solving very difficult discrete optimization problems.

Robby the Robot

April 24, 2019
The objective of this lab is to design an optimal strategy for a room-cleaning robot using a genetic algorithm.