Eirbot1A-2020
ecocup_pdv.hpp
Aller à la documentation de ce fichier.
1 #ifndef __ECOCUP_PDV_H_
2 #define __ECOCUP_PDV_H_
3 
4 #include <stdlib.h>
5 #include <stdio.h>
6 #include <time.h>
7 #include <math.h>
8 
15 #define C_IMPORTANCE_VISIBILITE_VILLE 0.5
16 
19 #define C_IMPORTANCE_QUANTITE_PHEROMONE 0.5
20 
23 #define C_VITESSE_EVAPORATION_PHEROMONE 0.75
24 
27 #define C_PISTE_PHEROMONE 0.5
28 
31 #define C_QUANTITE_PHEROMONE 100
32 
35 #define C_NB_CYCLE 50
36 
37 
38 
44 typedef struct ville ville;
45 struct ville
46 {
47  int num_ville;
48  struct ville *nxt;
49 };
50 typedef ville* list_ville;
51 
55 void effacerliste(list_ville list);
65 
70 list_ville getvilleNonVisite(int num_fourmi);
71 
78 float calcul_probabilite(int num_fourmi, int ville_actuelle, int ville_non_visite);
79 
82 float getLongueur_cycle_hamiltonien(int num_fourmi);
86 
89 float get_quantite_pheromones_deposes_par_une_fourmi(int num_fourmi,int i,int j);
90 
93 float get_quantite_pheromones_deposes(int i,int j);
94 
97 void ant_system();
98 
102 void initMatriceVille(int taille);
103 
106 void CalculeBest();
107 
111 void ecocup_pdv(int taille);
112 
115 void ecocup_print(int taille);
116 
117 #endif // __ECOCUP_PDV_H_
C_IMPORTANCE_QUANTITE_PHEROMONE
#define C_IMPORTANCE_QUANTITE_PHEROMONE
Importe donnée à la quantité de phéromones déposées.
Definition: ecocup_pdv.hpp:19
ant_system
void ant_system()
Coeur de l'algorithme : algorithme de colonie de fourmi https://fr.wikipedia.org/wiki/Algorithme_de_c...
Definition: ecocup_pdv.cpp:349
C_QUANTITE_PHEROMONE
#define C_QUANTITE_PHEROMONE
Constante utilisée dans le calcul de la quantité de phéromones déposés par les fourmis.
Definition: ecocup_pdv.hpp:31
getvilleNonVisite
list_ville getvilleNonVisite(int num_fourmi)
Permet de savoir les villes non explorées par une fourmi.
Definition: ecocup_pdv.cpp:139
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.
Definition: ecocup_pdv.cpp:186
reinitialiser_ville_fourmis
void reinitialiser_ville_fourmis()
Vide la liste des villes pour toutes les fourmis.
Definition: ecocup_pdv.cpp:237
initQuantitePheromones
void initQuantitePheromones()
Initialise la quantité de Phéromones.
Definition: ecocup_pdv.cpp:62
initPremiereVilleParcourue
void initPremiereVilleParcourue()
Définit la première ville parcourue.
Definition: ecocup_pdv.cpp:38
get_quantite_pheromones_deposes
float get_quantite_pheromones_deposes(int i, int j)
Calcule la quantité de phéromone déposée sur un arc i j.
Definition: ecocup_pdv.cpp:297
ecocup_print
void ecocup_print(int taille)
Permet d'afficher le chemin trouvé
Definition: ecocup_pdv.cpp:540
get_quantite_pheromones_deposes_par_une_fourmi
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.
Definition: ecocup_pdv.cpp:254
getLongueur_cycle_hamiltonien
float getLongueur_cycle_hamiltonien(int num_fourmi)
Renvoie la longueur du cycle hamiltonien d'une fourmi.
Definition: ecocup_pdv.cpp:218
initMatriceVisibilite
void initMatriceVisibilite()
Initialisation la matrice de visibilité
Definition: ecocup_pdv.cpp:97
C_PISTE_PHEROMONE
#define C_PISTE_PHEROMONE
Constante utilisée pour l'initialisation des pistes de phéromones.
Definition: ecocup_pdv.hpp:27
C_IMPORTANCE_VISIBILITE_VILLE
#define C_IMPORTANCE_VISIBILITE_VILLE
Importance donnée à la visibilité des villes.
Definition: ecocup_pdv.hpp:15
ecocup_pdv.hpp
Implémentation (en C) du problème du voyageur avec le système de colonie de fourmis.
CalculeBest
void CalculeBest()
Trouve le meilleur voyage parmis ceux calculés par ant_system.
Definition: ecocup_pdv.cpp:503
ville
permet de faire une liste chainée de ville
Definition: ecocup_pdv.hpp:46
effacerliste
void effacerliste(list_ville list)
Efface la liste des villes.
Definition: ecocup_pdv.cpp:22
initMatriceVille
void initMatriceVille(int taille)
Lit le fichier de ville pour remplir la matrice des villes.
Definition: ecocup_pdv.cpp:441
ecocup_pdv
void ecocup_pdv(int taille)
Fonction récapitulative permettant de faire tout le système (initialisation, ant_system,...
Definition: ecocup_pdv.cpp:531
C_VITESSE_EVAPORATION_PHEROMONE
#define C_VITESSE_EVAPORATION_PHEROMONE
Définit la vitesse d'évaporation des phéromones.
Definition: ecocup_pdv.hpp:23
C_NB_CYCLE
#define C_NB_CYCLE
Nombre d'itérations de l'algorithme.
Definition: ecocup_pdv.hpp:35