Add optimization algorithm