|
Eirbot1A-2020
|
Implémentation (en C) du problème du voyageur avec le système de colonie de fourmis. Plus de détails...
#include <stdlib.h>#include <stdio.h>#include <time.h>#include <math.h>

Aller au code source de ce fichier.
Classes | |
| struct | ville |
| permet de faire une liste chainée de ville Plus de détails... | |
Macros | |
| #define | C_IMPORTANCE_VISIBILITE_VILLE 0.5 |
| Importance donnée à la visibilité des villes. | |
| #define | C_IMPORTANCE_QUANTITE_PHEROMONE 0.5 |
| Importe donnée à la quantité de phéromones déposées. | |
| #define | C_VITESSE_EVAPORATION_PHEROMONE 0.75 |
| Définit la vitesse d'évaporation des phéromones. | |
| #define | C_PISTE_PHEROMONE 0.5 |
| Constante utilisée pour l'initialisation des pistes de phéromones. | |
| #define | C_QUANTITE_PHEROMONE 100 |
| Constante utilisée dans le calcul de la quantité de phéromones déposés par les fourmis. | |
| #define | C_NB_CYCLE 50 |
| Nombre d'itérations de l'algorithme. | |
Définitions de type | |
| typedef struct ville | ville |
| typedef ville * | list_ville |
Fonctions | |
| void | effacerliste (list_ville list) |
| Efface la liste des villes. Plus de détails... | |
| void | initPremiereVilleParcourue () |
| Définit la première ville parcourue. | |
| void | initQuantitePheromones () |
| Initialise la quantité de Phéromones. | |
| void | initMatriceVisibilite () |
| Initialisation la matrice de visibilité | |
| list_ville | getvilleNonVisite (int num_fourmi) |
| Permet de savoir les villes non explorées par une fourmi. Plus de détails... | |
| float | calcul_probabilite (int num_fourmi, int ville_actuelle, int ville_non_visite) |
| Calcul la probabilité qu'une fourmi passe sur un arc. Plus de détails... | |
| float | getLongueur_cycle_hamiltonien (int num_fourmi) |
| Renvoie la longueur du cycle hamiltonien d'une fourmi. | |
| void | reinitialiser_ville_fourmis () |
| Vide la liste des villes pour toutes les fourmis. | |
| float | get_quantite_pheromones_deposes_par_une_fourmi (int num_fourmi, int i, int j) |
| Calcule la quantité de phéromone déposée par une formi sur l'arc i j. | |
| float | get_quantite_pheromones_deposes (int i, int j) |
| Calcule la quantité de phéromone déposée sur un arc i j. | |
| void | ant_system () |
| Coeur de l'algorithme : algorithme de colonie de fourmi https://fr.wikipedia.org/wiki/Algorithme_de_colonies_de_fourmis. | |
| void | initMatriceVille (int taille) |
| Lit le fichier de ville pour remplir la matrice des villes. Plus de détails... | |
| void | CalculeBest () |
| Trouve le meilleur voyage parmis ceux calculés par ant_system. | |
| void | ecocup_pdv (int taille) |
| Fonction récapitulative permettant de faire tout le système (initialisation, ant_system, trouver le meilleur) Plus de détails... | |
| void | ecocup_print (int taille) |
| Permet d'afficher le chemin trouvé | |
Implémentation (en C) du problème du voyageur avec le système de colonie de fourmis.
| float calcul_probabilite | ( | int | num_fourmi, |
| int | ville_actuelle, | ||
| int | ville_non_visite | ||
| ) |
Calcul la probabilité qu'une fourmi passe sur un arc.
| num_fourmi | identifiant de la fourmi |
| ville_actuelle | : départ de l'arc |
| ville_non_visite | fin de l'arc |


| void ecocup_pdv | ( | int | taille | ) |
Fonction récapitulative permettant de faire tout le système (initialisation, ant_system, trouver le meilleur)
| taille | nombre de ville à considérer |


| void effacerliste | ( | list_ville | list | ) |
Efface la liste des villes.
| list | la liste de ville |

| list_ville getvilleNonVisite | ( | int | num_fourmi | ) |
Permet de savoir les villes non explorées par une fourmi.
| num_fourmi | identifiant de la fourmi |

| void initMatriceVille | ( | int | taille | ) |
Lit le fichier de ville pour remplir la matrice des villes.
| taille | le nombre de ville à lire |
