A summer research project at Imperial College London. The whole project is found here as a very long jupyter notebook. This most important aspect of this project is that during 6 weeks my partner and I managed to write our own genetic algorithm which turned out to work very well.
Layperson Summary
This project concerns ultra-fast laser pulses. Such pulses are important because they can be used to study matter at the smallest scale, even enabling us to the equivalent of a video of individual electrons orbiting atoms.
When people can generate these kind of pulses, a very interesting possibility is to try to combine them to the create new and arbitrary shapes. However, it is very dificult to tune these pulses so that they combine to a particular shape that we might have in mind. Each pulse is controlled by a number of parameters (e.g. it's width, amplitude, and frequency) and they all have to be tuned.
The process of finding these parameters for multiple pulses so that when they combine they return a specific shape belongs to the class of optimisation problems. In this project, we solve this problem using a genetic algorithm.
Scientific Summary
This is more lengthy - you can find it at the top of the jupyer notebook.