Algorithm for project planning. More precisely, list scheduling with support for machines running at different speeds, optional preemption, optional splitting of jobs across machines, release dates, and delivery times.