Algorithms for optimal project scheduling - Thomas Kyriakidis (2013)