Source: https://miashs-www.u-ga.fr/~adamj/documents/Algo29-AlgorithmesPlusCourtChemin.pdf