Étant donné un graphique acyclique dirigé non pondéré, j'essaie d'adapter l'algorithme de Floyd-Warshall pour compter le nombre de chemins entre 2 sommets. Mon code ressemble actuellement à ceci:Utilisation de l'algorithme de Floyd-Warshall pour compter le nombre de chemins entre 2 sommets
pour tout k en 1 à n pour tout i en 1 à n pour tous j en 1 à n = Aij Aij + (Aik * Akij).
Par conséquent, au lieu de vérifier et de remplacer la distance min, je fais ce qui suit:
Nombre de chemins entre (i
, j
) sans k
+ (Nombre de chemins i
-k
* Nombre de chemins de k
* j
)
Mon tableau final doit avoir le nombre de chemins entre 2 sommets.
Je ne suis pas en mesure de prouver que cela ne me donne pas le nombre de chemins simples entre 2 sommets, mais il n'y a pas de suggestions pour utiliser cette approche ailleurs.
Quelqu'un peut-il fournir un exemple de compteur où cela échoue? PS: Ce n'est pas mon devoir, mais juste un exercice de programmation que j'ai choisi.
'Je ne suis pas en mesure de prouver que cela ne me donne pas le nombre de chemins simples entre 2 vertices' qui ne signifie rien - afin de savoir avec certitude si c'est correct ou non - vous devriez soit prouver que cela fonctionne, ou trouvez un exemple de compteur qui montre que ce n'est pas le cas. – amit