Two implementations of algorithms that explore the Pareto frontier of given bi-objective optimization problems, both building on Markowitz' Critical Line Algorithm. These are written in GNU Octave and are MATLAB compatible. Code is released under the MIT License and example usage is included.
The "finance" implementation explores the standard portfolio optimization problem
where
This problem is studied in the context of financial investment where each
An overview of the functions involved can be found in finance/
.
The "genetics" implementation explores a similar optimal contribution selection (OCS) problem
where
OCS problems arise in the context of breeding programme management. The two sum-to-half constraints ensure that half our genetic product is coming from male candidates (sires) and half from female candidates (dams).
While some of the required functions are reused from finance/
, many have differences (but are similar) and others are completely unrelated. An overview of all the functions involved can be found in genetics/
.
This code was written as an integral part of Josh Fogg's thesis, New Frontiers for CLA, submitted to the University of Edinburgh. Each implementation is woven into a didactic for deriving and implementing a CLA-like algorithm for the corresponding problem. To cite the latest version, see the "Cite this repository" button in the GitHub sidebar.
The following works were instrumental when creating this implementation.
- Harry M. Markowitz and G. Peter Todd, "Portfolio Choice: Program Description," in Mean-Variance Analysis in Portfolio Choice and Capital Markets, pp. 302-336, John Wiley & Sons, Feb. 2000.
- Andras Niedermayer and Daniel Niedermayer, "Applying Markowitz’s Critical Line Algorithm," in Handbook of Portfolio Construction, pp. 383-400, Springer, Jan. 2010.
- David Bailey and Marcos López de Prado, "An Open-Source Implementation of the Critical-Line Algorithm for Portfolio Optimization," Algorithms, vol. 6, pp. 169-196, Mar. 2013.