Example #1
0
def recup_stats_fichier_taille(fichier):
    """
    Calcule les statistiques de temps d'exécution du fichier en fonction de la taille des grilles
    :param fichier: chemin du fichier où récupérer les instances
    :type fichier: str
    """
    grilles = get_grilles(fichier)
    # On crée un dictionnaire qui aura pour clé la taille de la grille et pour valeur une liste de 2 éléments :
    #   - une liste des temps de création du graphe des grilles de cette taille
    #   - une liste des temps de calcul du chemin le plus rapide pour les grilles de cette taille
    donnees = {}

    # Récupération des données des grilles
    for grille in grilles:
        taille = grille[0][0]
        if taille not in donnees.keys():
            donnees[taille] = [[], []]
        creat, calc = lancement_depuis_grille(grille)
        donnees[taille][0].append(creat)
        donnees[taille][1].append(calc)

    # calcul des moyennes et stockage dans des tableaux pour affichage
    tailles = []
    tps_creation = []
    tps_calcul = []
    for i, j in sorted(donnees.items(), key=lambda colonnes: colonnes[0]):
        tailles.append(i)
        tps_creation.append(np.mean(j[0]))
        tps_calcul.append(np.mean(j[1]))
    return np.array(tailles), np.array(tps_creation), np.array(tps_calcul)
Example #2
0
def temps_execution(nb_lignes, nb_obstacles):
    """
    Génère plusieurs instances de grilles carrées de côté nb_lignes, avec nb_obstacles
    puis calcule le temps moyen d'exécution (création du graphe et calcul du chemin séparément) de l'algorithme
    avant de le retourner
    :param nb_lignes: nombre de lignes et de colonnes des grilles à créer
    :param nb_obstacles: nombre d'obstacles dans les grilles à créer
    :type nb_lignes: int
    :type nb_obstacles: int
    :return: temps moyen de création des graphes et temps moyen de calcul du chemin le plus rapide
    """
    temps_creation = []
    temps_calcul = []
    for i in range(50):
        grille = generer_grille(nb_lignes, nb_lignes, nb_obstacles)  # génération des grilles
        tps1, tps2 = lancement_depuis_grille(grille)  # Récupération du temps d'exécution
        temps_creation += tps1
        temps_calcul += tps2
    return np.mean(temps_creation), np.mean(temps_calcul)