A simple heuristic to solve the problem consists in exchanging some precedence order on the critical path and repeating this operation until no improvement can be obtained. A more powerful heuristic can be designed by assigning in turn operation sequences to each machine. In order to assign a particular sequence to the operations on a certain machine we first disregard previously assigned precedences for that machine, then we realise that the longest paths from the source node to each one of these operations correspond to the time which has to elapse before the starting time of the operation. So, they are like release dates for the operations.