Adloun

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

Exercice suivant et tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →