BeautifulAlgorithms.jl icon indicating copy to clipboard operation
BeautifulAlgorithms.jl copied to clipboard

Concise and beautiful algorithms written in Julia

BeautifulAlgorithms.jl

Build Status codecov

Concise algorithms written in Julia and formatted with Carbon.

Algorithms for machine learning, optimization, reinforcement learning, online planning, decision making under uncertainty, and sorting. All implementations are working and self-contained; refer to the test cases.

Note, these are primarily for academic purposes and are not designed for real-world usage. There are many other Julia packages that implement more sound versons of these algorithms.

] add http://github.com/mossr/BeautifulAlgorithms.jl
  • Gradient descent
  • Stochastic gradient descent
  • Two-layer neural network
    • Two-layer neural network (one-liner)
  • Multi-layer neural network
  • Loss functions
  • Distance functions
  • Nearest neighbor
  • K-nearest neighbors
  • K-means clustering
  • The EM algorithm
  • Linear regression
    • Linear regression (one-liner)
  • Ridge regression
  • Basis regression
  • Radial basis regression
  • Logistic regression
  • Cross-entropy method
  • Finite difference methods
  • Simulated annealing
  • Twiddle
  • Newton's method
  • Gaussian process
    • Gaussian process kernels
  • Thompson sampling
  • Particle filter
  • Value iteration
  • Branch and bound
  • Monte Carlo tree search
  • Huffman coding
  • Hailstone sequence (Collatz conjecture)
  • Bubble sort
  • Merge sort
  • Insertion sort
  • Bogo sort
    • Bogo sort (one-liner)
  • Quine

Note: Algorithms are modified from their original sources.

Gradient descent

Percy Liang and Dorsa Sadigh, Artificial Intelligence: Principles and Techniques, Stanford University, 2019.

Stochastic gradient descent

Percy Liang and Dorsa Sadigh, Artificial Intelligence: Principles and Techniques, Stanford University, 2019.

Two-layer neural network

Two-layer neural network (one-liner)

Multi-layer neural network

Loss functions

Distance functions

Nearest neighbor

K-nearest neighbors

K-means clustering

Percy Liang and Dorsa Sadigh, Artificial Intelligence: Principles and Techniques, Stanford University, 2019.

The EM algorithm

Andrew Ng, Mixtures of Gaussians and the EM algorithm, Stanford University, 2020.1

Linear regression

Mykel J. Kochenderfer and Tim A. Wheeler, Algorithms for Optimization, MIT Press, 2019. (Credit @HenriDeh for use of ones)

Linear regression (one-liner)

Ridge regression

Basis regression

Mykel J. Kochenderfer and Tim A. Wheeler, Algorithms for Optimization, MIT Press, 2019.

Radial basis regression

Mykel J. Kochenderfer and Tim A. Wheeler, Algorithms for Optimization, MIT Press, 2019.

Logistic regression

Cross-entropy method

Mykel J. Kochenderfer and Tim A. Wheeler, Algorithms for Optimization, MIT Press, 2019.

Finite difference methods

Mykel J. Kochenderfer and Tim A. Wheeler, Algorithms for Optimization, MIT Press, 2019.

Simulated annealing

Mykel J. Kochenderfer and Tim A. Wheeler, Algorithms for Optimization, MIT Press, 2019.

Twiddle

Sebatian Thrun, Artificial Intelligence for Robotics, Udacity, 2012.

Newton's method

John Wallis, A Treatise of Algebra both Historical and Practical, 1685.

Gaussian process

Mykel J. Kochenderfer and Tim A. Wheeler, Algorithms for Optimization, MIT Press, 2019.

Gaussian process kernels

Thompson sampling

Daniel J. Russo, Benjamin Van Roy, Abbas Kazerouni, Ian Osband, and Zheng Wen, A Tutorial on Thompson Sampling, arXiv:1707.02038, 2020.

Particle filter

Mykel J. Kochenderfer, Tim A. Wheeler, and Kyle H. Wray, Algorithms for Decision Making, Preprint.

Value iteration

Mykel J. Kochenderfer, Tim A. Wheeler, and Kyle H. Wray, Algorithms for Decision Making, Preprint.

Branch and bound

Mykel J. Kochenderfer, Tim A. Wheeler, and Kyle H. Wray, Algorithms for Decision Making, Preprint.

Monte Carlo tree search

Mykel J. Kochenderfer, Tim A. Wheeler, and Kyle H. Wray, Algorithms for Decision Making, Preprint.

Huffman coding

David A. Huffman, A Method for the Construction of Minimum-Redundancy Codes, IEEE, 1952.

Hailstone sequence (Collatz conjecture)

Bubble sort

Karey Shi, Design and Analysis of Algorithms, Stanford University, 2020.

Merge sort

Karey Shi, Design and Analysis of Algorithms, Stanford University, 2020.

Insertion sort

Karey Shi, Design and Analysis of Algorithms, Stanford University, 2020.

Bogo sort

Bogo sort (one-liner)

Quine

Nathan Daly, Julia Discord, 2019.2


Written by Robert Moss.