Adloun

L'assertion qui sauve — poids négatifs

Exercice · informatique (tronc commun des prépas scientifiques), chapitre 14 — Plus courts chemins : Dijkstra et au-delà

Énoncé

Proposer un exemple de graphe comportant un poids négatif pour lequel Dijkstra renvoie un résultat erroné, et montrer l'utilité d'une assertion.

Corrigé

Soit le graphe .

def dijkstra_secu(R: dict, source):
    assert all(R[u][v] >= 0 for u in R for v in R[u]), "Poids négatifs interdits !"
    return dijkstra(R, source)

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.