An Introduction to Optimization Algorithms

by Thomas Weise

The book An Introduction to Optimization Algorithms by Thomas Weise is available in the following formats:

This book has been compiled using the bookbuildeR package on 2020-05-31.


Tools and Sources

All sources, diagrams, data, algorithm implementations, and tools used to generate this book are provided as open source online.

Java Implementations of Optimization Algorithms

All algorithms discussed in the book have been implemented in Java and are provided as package aitoa-code. The source code contains an experiment execution facility, which can log data in easy-to-interpret text files and also has some basic statistic result evaluation capability. While originally designed for teaching purposes, these implementations are versatile and the software architecture is such that they can be used for other projects and scientific experiments. You can find all source codes here on GitHub. Here is a quick guide how you can use the aitoa-code as a library for your own projects (via Maven).
License: MIT License

Results from Experiments

In the book, we investigate how these algorithms perform with experiments. We also discuss common phenomena in optimization based on the results. In the experiments, we use the algorithm implementations discussed above. The log files with all the experimental data are here provided as project aitoa-data.
License: CC BY‑NC‑SA 4.0

R-Code for Generating Diagrams

Most of the diagrams and charts in the book have been generated automatically using the R-package aitoaEvaluate. This package can read, evaluate, and visualize the results generated by our aitoa-code implementation, even if the stem from different experiments. If you apply it to the data from aitoa-data, you would get exactly the diagrams used in the book. You can find this R-package here.
License: MIT License

Book Sources

The complete sources of the book, including all figures and tables, are provided in the aitoa project online on GitHub. If you find any error or have suggestions for improvements, you can open an issue and let me know here.
License: CC BY‑NC‑SA 4.0

Build the Book

The book is written in markdown format and processed via pandoc and several tools. The build process is implemented as R package bookbuildeR. You could use this package for automating the build process (using free CI-services) of your own book projects! You can find it here on GitHub.
License: GPL 3

Docker Container with bookbuildeR and All Requirements

Since the bookbuildeR package requires quite a lot of other software tools, I packaged it together with all of them into a docker container. Thus, apart from docker, you would need no additional software installation to use the bookbuildeR. You can find it here at Docker Hub and its sources are here on GitHub.
License: GPL 3