Exemple #1
0
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()
Exemple #2
0
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()
Exemple #3
0
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()
Exemple #4
0
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()
Exemple #5
0
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()
Exemple #6
0
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()
Exemple #7
0
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()
Exemple #8
0
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()
Exemple #10
0
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()
Exemple #11
0
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()
Exemple #12
0
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()
Exemple #13
0
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()
Exemple #14
0
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()
Exemple #16
0
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()
Exemple #17
0
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()
Exemple #18
0
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()
Exemple #19
0
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()
Exemple #20
0
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()
Exemple #22
0
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()