Eirbot1A-2020
Référence du fichier ecocup_pdv.hpp

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>
Graphe des dépendances par inclusion de ecocup_pdv.hpp:
Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

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 villelist_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é
 

Description détaillée

Implémentation (en C) du problème du voyageur avec le système de colonie de fourmis.

Documentation des fonctions

◆ calcul_probabilite()

float calcul_probabilite ( int  num_fourmi,
int  ville_actuelle,
int  ville_non_visite 
)

Calcul la probabilité qu'une fourmi passe sur un arc.

Paramètres
num_fourmiidentifiant de la fourmi
ville_actuelle: départ de l'arc
ville_non_visitefin de l'arc
Renvoie
La probabilité
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ ecocup_pdv()

void ecocup_pdv ( int  taille)

Fonction récapitulative permettant de faire tout le système (initialisation, ant_system, trouver le meilleur)

Paramètres
taillenombre de ville à considérer
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ effacerliste()

void effacerliste ( list_ville  list)

Efface la liste des villes.

Paramètres
listla liste de ville
Voici le graphe des appelants de cette fonction :

◆ getvilleNonVisite()

list_ville getvilleNonVisite ( int  num_fourmi)

Permet de savoir les villes non explorées par une fourmi.

Paramètres
num_fourmiidentifiant de la fourmi
Renvoie
une liste chainée de ville
Voici le graphe des appelants de cette fonction :

◆ initMatriceVille()

void initMatriceVille ( int  taille)

Lit le fichier de ville pour remplir la matrice des villes.

Paramètres
taillele nombre de ville à lire
Voici le graphe des appelants de cette fonction :