def testQuestion4_2(): '''On verifie la resolution du probleme''' g = pointsAleatoires(20, 200) gtest = graphe.reseau2(g) tournee = gtest.sommets[0:6] (cout, itineraire) = gtest.voyageurDeCommerceNaif(tournee) gtest.traceItineraire(itineraire) graphique.affiche(gtest, (3., 2.), 200.)
def testQuestion3_2(): ''' On compare les resultats de dijkstra sur deux memes reseaux routiers, l'un ayant le carburant comme cout et l'autre le temps. ''' g_carb = pointsAleatoires(100, 200) graphe.reseau2(g_carb) g_temps = copy.deepcopy(g_carb) for a in g_carb.aretes: a.fixeCarburantCommeCout() g_carb.dijkstra(g_carb.sommets[0]) g_carb.traceArbreDesChemins() graphique.affiche(g_carb, (3., 2.), 100., blocage=False) for a in g_temps.aretes: a.fixeTempsCommeCout() g_temps.dijkstra(g_temps.sommets[0]) g_temps.traceArbreDesChemins() graphique.affiche(g_temps, (3., 2.), 100.)
def testQuestion3_4(): '''On affiche un graphe ou le chemin optimal est colore''' g = pointsAleatoires(100, 100) gtest = graphe.reseau2(g) gtest.fixeCarburantCommeCout() gtest.dijkstra(gtest.sommets[0]) arrivee = gtest.sommets[60] chemin_opti = gtest.cheminOptimal(arrivee) gtest.colorieChemin(chemin_opti, (1., 0., 1.)) graphique.affiche(gtest, (3., 2.), 100.)
def testQuestion4_1(): '''On teste le fonctionnement de matriceCout''' g = pointsAleatoires(100, 100) gtest = graphe.reseau2(g) tournee = [gtest.sommets[int(random.random() * 100)] for i in range(6)] res = gtest.matriceCout(tournee) print(res) afficher = input("Appuyer sur v pour afficher le graphe : " ) #pour afficher la matrice de cout avant le graphe if afficher == "v": graphique.affiche(gtest, (3., 2.), 100.)
def testQuestion4_3(): '''On evalue le temps de calcul en fonction du nombre de villes a visiter.''' g = pointsAleatoires(100, 200) gtest = graphe.reseau2(g) parametres = range(3, 15) def prepare(n): return [ gtest.sommets[int(random.random() * 100)] for i in range(1, n + 1) ] plt.plot( parametres, graphe.chronometre(gtest.voyageurDeCommerceNaif, prepare, parametres), 'b') plt.show()
def prepare(n): return (graphe.reseau2(pointsAleatoires(n, 150)))