algorithmique (école d'ingénieur) · Chapitre 7 · Exercice de TD
Réseau de bus : trajet le plus cher, nombre de trajets
Graphes sans circuit et ordonnancement de projets · niveau 2
Énoncé
Sur le réseau de l'exercice 7.4 :
- calculer un trajet de coût maximum de à (une agence de voyages veut le circuit touristique le plus long) ;
- calculer le nombre de trajets différents de à , pour tout . Vérifier la valeur obtenue pour en énumérant les trajets.
Corrigé
- Même récurrence en remplaçant par et par : et . C'est possible parce que le graphe est sans circuit (sinon un trajet pourrait tourner indéfiniment).
Mmax = [0, 5, 10, 20, 30]
0--(5)-->1--(5)-->2--(10)-->3--(10)-->4
Le trajet direct coûte aussi : il y a deux trajets de coût maximum.
- Un trajet vers arrive par un prédécesseur , et deux trajets arrivant par des prédécesseurs différents sont différents :
static long[] nombreTrajets(Liste[] Gp) { int n = Gp.length;
long[] N = new long[n];
N[0] = 1; // le trajet réduit à 0
for (int j = 1; j < n; j++)
for (Liste l = Gp[j]; !vide(l); l = reste(l)) N[j] += N[premier(l)];
return N;
}
N = [1, 1, 1, 2, 5]
Les cinq trajets vers : , , , , .
100 % gratuit
La suite du chapitre est sur Adloun
- 11 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.