A genetic algorithm for multi-objective optimisation in workflow scheduling with hard constraints. (1st January 2013)