def mesure_nbreNoeuds_ameliorationBranchement_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) yBA = [] yBAP = [] yBAPP = [] for i in range(nbInstances): #p = (i+1)*1/(nbInstances) p = 1 / math.sqrt(n) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) sol, cptBA = branchementAmelioreBornesGlouton(G) sol, cptBAP = branchementAmeliorePlusBornesGlouton(G) sol, cptBAPP = branchementAmeliorePlusPlusBornesGlouton(G) yBA.append(cptBA) yBAP.append(cptBAP) yBAPP.append(cptBAPP) plt.title( 'Nombre de noeuds visités en fonction de la taille n de chaque instance' ) plt.xlabel('Probabilité p') plt.ylabel('Nombre de noeuds visités') plt.scatter(x, yBA, c='green', label='branchement amélioré') plt.scatter(x, yBAP, c='blue', label='branchement amélioré plus') plt.scatter(x, yBAPP, c='red', label='branchement amélioré plus plus') plt.legend() plt.show()
def mesure_temps_bornes_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) yB = [] yC = [] yG = [] for i in range(nbInstances): #p = (i+1)*1/(nbInstances) p = 1 / math.sqrt(n) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) start_time = time.time() branchement(G) yB.append(time.time() - start_time) start_time = time.time() bornesCouplage(G) yC.append(time.time() - start_time) start_time = time.time() bornesGlouton(G) yG.append(time.time() - start_time) plt.title( 'Temps de calcul moyen tn en fonction de la probabilité p de chaque instance' ) plt.xlabel('Probabilité p') plt.ylabel('Temps de calcul moyen tn en secondes') plt.scatter(x, yB, c='green', label='branchement') plt.scatter(x, yC, c='blue', label='couplage') plt.scatter(x, yG, c='red', label='glouton') plt.legend() plt.show()
def mesure_temps_bornesAmeliore_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) yG = [] yGA = [] for i in range(nbInstances): #p = (i+1)*1/(nbInstances) p = 1 / math.sqrt(n) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) start_time = time.time() bornesGlouton(G) yG.append(time.time() - start_time) start_time = time.time() branchementAmelioreBornesGlouton(G) yGA.append(time.time() - start_time) plt.title( 'Temps de calcul moyen tn en fonction de la taille n de chaque instance' ) plt.xlabel('Taille n') plt.ylabel('Temps de calcul moyen tn en secondes') plt.scatter(x, yGA, c='blue', label='gloutonAmeliore') plt.scatter(x, yG, c='red', label='glouton') plt.legend() plt.show()
def mesure_temps_ameliorationBranchement_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) yBA = [] yBAP = [] yBAPP = [] for i in range(nbInstances): #p = (i+1)*1/(nbInstances) p = 1 / math.sqrt(n) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) start_time = time.time() branchementAmelioreBornesGlouton(G) yBA.append(time.time() - start_time) start_time = time.time() branchementAmeliorePlusBornesGlouton(G) yBAP.append(time.time() - start_time) start_time = time.time() branchementAmeliorePlusPlusBornesGlouton(G) yBAPP.append(time.time() - start_time) plt.title( 'Temps de calcul moyen tn en fonction de la taille n de chaque instance' ) plt.xlabel('Taille n') plt.ylabel('Temps de calcul moyen tn en secondes') plt.scatter(x, yBA, c='green', label='branchement amélioré') plt.scatter(x, yBAP, c='blue', label='branchement amélioré plus') plt.scatter(x, yBAPP, c='red', label='branchement amélioré plus plus') plt.legend() plt.show()
def mesure_temps_bornes_n(Nmax, p, nbInstances): x = np.linspace(1, Nmax, nbInstances) yB = [] yC = [] yG = [] for i in range(nbInstances): n = int((i + 1) * Nmax / nbInstances) G = gr.grapheAlea(n, p) start_time = time.time() branchement(G) yB.append(time.time() - start_time) start_time = time.time() bornesCouplage(G) yC.append(time.time() - start_time) start_time = time.time() bornesGlouton(G) yG.append(time.time() - start_time) plt.title( 'Temps de calcul moyen tn en fonction de la taille n de chaque instance' ) plt.xlabel('Taille n') plt.ylabel('Temps de calcul moyen tn en secondes') plt.scatter(x, yB, c='green', label='branchement') plt.scatter(x, yC, c='blue', label='couplage') plt.scatter(x, yG, c='red', label='glouton') plt.legend() plt.show()
def mesure_nbreNoeuds_bornes_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) yB = [] yC = [] yG = [] for i in range(nbInstances): #p = (i+1)*1/(nbInstances) p = 1 / math.sqrt(n) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) sol, cptB = branchement(G) sol, cptC = bornesCouplage(G) sol, cptG = bornesGlouton(G) yB.append(cptB) yC.append(cptC) yG.append(cptG) plt.title( 'Nombre de noeuds visités en fonction de la taille n de chaque instance' ) plt.xlabel('Probabilité p') plt.ylabel('Nombre de noeuds visités') plt.scatter(x, yB, c='green', label='branchement') plt.scatter(x, yC, c='blue', label='couplage') plt.scatter(x, yG, c='red', label='glouton') plt.legend() plt.show()
def mesure_nbreNoeuds_branchement_n(Nmax, p, nbInstances): x = np.linspace(1, Nmax, nbInstances) y = [] for i in range(nbInstances): n = int((i + 1) * Nmax / nbInstances) G = gr.grapheAlea(n, p) sol, cpt = branchement(G) y.append(cpt) plt.title( 'Nombre de noeuds visités en fonction de la taille n de chaque instance' ) plt.xlabel('Taille n') plt.ylabel('Nombre de noeuds visités') plt.scatter(x, y) plt.show()
def mesure_temps_branchement_n(Nmax, p, nbInstances): x = np.linspace(1, Nmax, nbInstances) y = [] for i in range(nbInstances): n = int((i + 1) * Nmax / nbInstances) G = gr.grapheAlea(n, p) start_time = time.time() branchement(G) y.append(time.time() - start_time) plt.title( 'Temps de calcul moyen tn en fonction de la taille n de chaque instance' ) plt.xlabel('Taille n') plt.ylabel('Temps de calcul moyen tn en secondes') plt.scatter(x, y) plt.show()
def mesure_qualite_algoCouverture_n(Nmax, p, nbInstances): x = np.linspace(1, Nmax, nbInstances) yC = [] yG = [] for i in range(nbInstances): n = int((i + 1) * Nmax / nbInstances) G = gr.grapheAlea(n, p) yC.append(len(algo_couplage(G))) yG.append(len(algo_glouton(G))) plt.title( 'Qualité de la solution retournée en fonction de la taille n de chaque instance' ) plt.xlabel('Taille n') plt.ylabel('Nombre de sommets de la solution retournée') plt.scatter(x, yC, c='blue', label='algo_couplage') plt.scatter(x, yG, c='red', label='algo_glouton') plt.legend() plt.show()
def mesure_nbreNoeuds_branchement_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) y = [] for i in range(nbInstances): #p = (i+1)*1/(nbInstances) p = 1 / math.sqrt(n) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) sol, cpt = branchement(G) y.append(cpt) plt.title( 'Nombre de noeuds visités en fonction de la taille n de chaque instance' ) plt.xlabel('Probabilité p') plt.ylabel('Nombre de noeuds visités') plt.scatter(x, y) plt.show()
def mesure_qualite_lasVegas_n(Nmax, p, nbInstances): x = np.linspace(1, Nmax, nbInstances) yB = [] yLV = [] for i in range(nbInstances): n = int((i + 1) * Nmax / nbInstances) G = gr.grapheAlea(n, p) yB.append(len(lasVegas(G))) yLV.append(len(branchementAmeliorePlusPlusBornesGlouton(G))) plt.title( 'Qualité de la solution retournée en fonction de la taille n de chaque instance' ) plt.xlabel('Taille n') plt.ylabel('Nombre de sommets de la solution retournée') plt.scatter(x, yB, c='blue', label='avec Las Vegas') plt.scatter(x, yLV, c='red', label='sans Las Vegas') plt.legend() plt.show()
def rapportApproximation(p, Nmax, nbInstances): x = np.linspace(1, Nmax, nbInstances) yC = [] yG = [] for i in range(nbInstances): n = int((i + 1) * Nmax / nbInstances) g = gr.grapheAlea(n, p) sol, cpt = branchementAmeliorePlusPlusBornesGlouton(g) solC = ma.algo_couplage(g) solG = ma.algo_glouton(g) yC.append(len(solC) / len(sol)) yG.append(len(solG) / len(sol)) plt.title("Rapport d'approximation") plt.xlabel("Taille n") plt.ylabel("r-approché") plt.plot(x, yC, c='blue', label='algo_couplage') plt.plot(x, yG, c='red', label='algo_glouton') plt.legend() plt.show()
def mesure_temps_branchement_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) y = [] for i in range(nbInstances): #p = (i+1)*1/(nbInstances) p = 1 / math.sqrt(n) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) start_time = time.time() branchement(G) y.append(time.time() - start_time) plt.title( 'Temps de calcul moyen tn en fonction de la probabilité p de chaque instance' ) plt.xlabel('Probabilité p') plt.ylabel('Temps de calcul moyen tn en secondes') plt.scatter(x, y) plt.show()
def mesure_nbreNoeuds_bornesAmeliore_n(Nmax, p, nbInstances): x = np.linspace(1, Nmax, nbInstances) yG = [] yGA = [] for i in range(nbInstances): n = int((i + 1) * Nmax / nbInstances) G = gr.grapheAlea(n, p) sol, cptG = bornesGlouton(G) sol, cptGA = branchementAmelioreBornesGlouton(G) yG.append(cptG) yGA.append(cptGA) plt.title( 'Nombre de noeuds visités en fonction de la taille n de chaque instance' ) plt.xlabel('Taille n') plt.ylabel('Nombre de noeuds visités') plt.scatter(x, yGA, c='blue', label='gloutonAmeliore') plt.scatter(x, yG, c='red', label='glouton') plt.legend() plt.show()
def mesure_qualite_algoCouverture_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) yC = [] yG = [] for i in range(nbInstances): p = (i + 1) * 1 / (nbInstances) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) yC.append(len(algo_couplage(G))) yG.append(len(algo_glouton(G))) plt.title( 'Qualité de la solution retournée en fonction de la probabilité p de chaque instance' ) plt.xlabel('Probabilité p') plt.ylabel('Nombre de sommets de la solution retournée') plt.scatter(x, yC, c='blue', label='algo_couplage') plt.scatter(x, yG, c='red', label='algo_glouton') plt.legend() plt.show()
def mesure_qualite_lasVegas_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) yB = [] yLV = [] for i in range(nbInstances): p = (i + 1) * 1 / (nbInstances) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) yB.append(len(lasVegas(G))) yLV.append(len(branchementAmeliorePlusPlusBornesGlouton(G))) plt.title( 'Qualité de la solution retournée en fonction de la probabilité p de chaque instance' ) plt.xlabel('Probabilité p') plt.ylabel('Nombre de sommets de la solution retournée') plt.scatter(x, yB, c='blue', label='avec Las Vegas') plt.scatter(x, yLV, c='red', label='sans Las Vegas') plt.legend() plt.show()
def mesure_temps_lasVegas_n(Nmax, p, nbInstances): x = np.linspace(1, Nmax, nbInstances) yB = [] yLV = [] for i in range(nbInstances): n = int((i + 1) * Nmax / nbInstances) G = gr.grapheAlea(n, p) start_time = time.time() lasVegas(G) yLV.append(time.time() - start_time) start_time = time.time() branchementAmeliorePlusPlusBornesGlouton(G) yB.append(time.time() - start_time) plt.title( 'Temps de calcul moyen tn en fonction de la taille n de chaque instance' ) plt.xlabel('Taille n') plt.ylabel('Temps de calcul moyen tn en secondes') plt.scatter(x, yB, c='blue', label='avec Las Vegas') plt.scatter(x, yLV, c='red', label='sans Las Vegas') plt.legend() plt.show()
def mesure_nbreNoeuds_bornesAmeliore_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) yG = [] yGA = [] for i in range(nbInstances): #p = (i+1)*1/(nbInstances) p = 1 / math.sqrt(n) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) sol, cptG = bornesGlouton(G) sol, cptGA = branchementAmelioreBornesGlouton(G) yG.append(cptG) yGA.append(cptGA) plt.title( 'Nombre de noeuds visités en fonction de la taille n de chaque instance' ) plt.xlabel('Probabilité p') plt.ylabel('Nombre de noeuds visités') plt.scatter(x, yGA, c='blue', label='gloutonAmeliore') plt.scatter(x, yG, c='red', label='glouton') plt.legend() plt.show()
def mesure_nbreNoeuds_bornes3_n(Nmax, p, nbInstances): x = np.linspace(1, Nmax, nbInstances) yB = [] yC = [] yG = [] yI = [] yCT = [] yGT = [] for i in range(nbInstances): n = int((i + 1) * Nmax / nbInstances) G = gr.grapheAlea(n, p) sol, cptB = branchement(G) sol, cptC = bornesCouplage(G) sol, cptG = bornesGlouton(G) sol, cptI = bornesInf(G) sol, cptCT = bornesCouplageTriviale(G) sol, cptGT = bornesGloutonTriviale(G) yB.append(cptB) yC.append(cptC) yG.append(cptG) yI.append(cptI) yCT.append(cptCT) yGT.append(cptGT) plt.title( 'Nombre de noeuds visités en fonction de la taille n de chaque instance' ) plt.xlabel('Taille n') plt.ylabel('Nombre de noeuds visités') plt.scatter(x, yB, c='green', label='branchement') plt.scatter(x, yC, c='blue', label='couplage') plt.scatter(x, yG, c='red', label='glouton') plt.scatter(x, yI, c='black', label='bornesInf') plt.scatter(x, yCT, c='cyan', label='couplage-trivial') plt.scatter(x, yGT, c='magenta', label='glouton-trivial') plt.legend() plt.show()
def mesure_temps_lasVegas_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) yB = [] yLV = [] for i in range(nbInstances): p = (i + 1) * 1 / (nbInstances) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) start_time = time.time() lasVegas(G) yLV.append(time.time() - start_time) start_time = time.time() branchementAmeliorePlusPlusBornesGlouton(G) yB.append(time.time() - start_time) plt.title( 'Temps de calcul moyen tn en fonction de la probabilité p de chaque instance' ) plt.xlabel('Probabilité p') plt.ylabel('Temps de calcul moyen tn en secondes') plt.scatter(x, yB, c='blue', label='avec Las Vegas') plt.scatter(x, yLV, c='red', label='sans Las Vegas') plt.legend() plt.show()
def mesure_temps_algoCouverture_p(n, nbInstances): x = np.linspace(0.1, 1, nbInstances) yC = [] yG = [] for i in range(nbInstances): p = (i + 1) * 1 / (nbInstances) if p == 1: p = 0.99 G = gr.grapheAlea(n, p) start_time = time.time() algo_couplage(G) yC.append(time.time() - start_time) start_time = time.time() algo_glouton(G) yG.append(time.time() - start_time) plt.title( 'Temps de calcul moyen tn en fonction de la probabilité p de chaque instance' ) plt.xlabel('Probabilité p') plt.ylabel('Temps de calcul moyen tn en secondes') plt.scatter(x, yC, c='blue', label='algo_couplage') plt.scatter(x, yG, c='red', label='algo_glouton') plt.legend() plt.show()
def mesure_nbreNoeuds_ameliorationBranchement_n(Nmax, p, nbInstances): x = np.linspace(1, Nmax, nbInstances) yBA = [] yBAP = [] yBAPP = [] for i in range(nbInstances): n = int((i + 1) * Nmax / nbInstances) G = gr.grapheAlea(n, p) sol, cptBA = branchementAmelioreBornesGlouton(G) sol, cptBAP = branchementAmeliorePlusBornesGlouton(G) sol, cptBAPP = branchementAmeliorePlusPlusBornesGlouton(G) yBA.append(cptBA) yBAP.append(cptBAP) yBAPP.append(cptBAPP) plt.title( 'Nombre de noeuds visités en fonction de la taille n de chaque instance' ) plt.xlabel('Taille n') plt.ylabel('Nombre de noeuds visités') plt.scatter(x, yBA, c='green', label='branchement amélioré') plt.scatter(x, yBAP, c='blue', label='branchement amélioré plus') plt.scatter(x, yBAPP, c='red', label='branchement amélioré plus plus') plt.legend() plt.show()