une approche basée agent réactif pour l’optimisation ... · le probleme de routage de vehicule...
TRANSCRIPT
N° d’ordre :
N° de série :
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
____________________________
UNIVERSITE ECHAHID HAMMA LAKHDAR- ELOUED
FACULTE DES SCIENCES ET DE TECHNOLOGIE
Mémoire de fin d’étude
Présenté pour l’obtention du diplôme de
MASTER ACADEMIQUE
Domaine : Mathématiques et Informatique
Filière : Informatique
Spécialité : Systèmes Distribués et Intelligence Artificielle
Présenté par les étudiants :
KHALDI Abdelmadjid & KIRAM Younes
Thème
Soutenu le 1er Octobre 2015 devant le jury :
Mr NAKOUDI MoatezBillah : Président
Mlle GUETTAS Chourouk : Examinateur
Mme GUIA Sana Sahar : Encadreur
Année Universitaire : 2014-2015
Une approche basée agent réactif pour
l’optimisation par colonie de fourmi du problème
de routage de véhicules multi-dépôts
Résumé
Page I
Pour résoudre le problème de première classe MDVRP, nous avons utilisé une
technique (Swarm Intelligence) qui est L'optimisation par colonie de fourmis (l’ACO).
Contrairement à la résolution traditionnelle du MDVRP, qui met l'accent sur la réduction de
la distance parcourue par des véhicules à travers les tournées, à base d’algorithmes
séquentiels, cette technique vise à réduire au minimum le coût global en utilisant des
techniques modernes basées sur les agents réactifs. Pour atteindre ce niveau d'optimisation,
nous avons utilisé une technique constituée de deux phases, l’une appelée phase de
planification, l’autre dénommée phase d’optimisation.
Mots clés: ACO, agents réactifs, planification, optimisation, fourmi planificatrice, fourmi optimisatrice
MDVRP-ACO, MDVRP, VRP.
Dédicaces
Page II
Dédicaces de Khaldi Abdelmadjid:
Je dédie ce travail à ma famille (mes défunts parents, mon
épouse, mes fils, ma fille, mes belles filles, mes petits fils, mes petites filles et
surtout le dernier venu Mohammed), qui toute entière m’a soutenu
patiemment.
Et sans oublier mon binôme Kiram Younès qui m’a été un
collègue très intime, et mes compatriotes de la promotion « Master 2015 »
que je salut infiniment et je leur espère tous un avenir prospérant.
Je dédie ce travail à ma région, la wilaya d’El oued, à mon
pays L’Algérie, à mon Maghreb, à ma nation Arabo-islamique, à tous ceux
et celles qui ont donné quelques choses de bien pour l’humanité.
Dédicaces de Kiram Younès:
Je dédie ce travail à ma famille (mes sincères parents, mes
frères et mes sœurs), qui m’a soutenu beaucoup. Je l’e dédie aussi à mes
chers collègues et amis surtout mon collègue binôme Khaldi Abdelmadjid.
Remerciement
Page III
Louange à ALLAH
Nous, le binôme Khaldi Abdelmadjid & Kiram
Younès remercions infiniment tout le staff enseignant et
administratif au département d’Informatiques, et surtout
ceux et celles qui nous a enseignés durant la période
d’études.
Nous remercions surtout notre Professeur
Encadreur Mme Guia Sana Sahar, qui nous a donnés
vraiment des conseils intéressants, et qui nous a bien
guidés tout le long de réalisation de notre Projets sans
oublier nos chers professeurs membres de jury et tous les
enseignants de département de Mathématique et
informatique
Table de matières
RESUME I
DEDICACES I
REMERCIEMENT I
TABLE DE MATIERES I
TABLE DE FIGURES I
LISTE DE TABLEAUX I
INTRODUCTION GENERALE 1
CHAPITRE 1. LES ORIGINES 3
1.1. INTRODUCTION 3
1.2. OPTIMISATION COMBINATOIRE 4
1.2.1. DEFINITION 4
1.2.2. FORMULATION 4
1.3. LE PROBLEME DE VOYAGEUR DE COMMERCE 5
1.3.1. DEFINITION 5
1.3.2. FORMULATION 6
1.4. LE PROBLEME DE ROUTAGE DE VEHICULE SES VARIANTES 7
1.4.1. DEFINITION 7
1.4.2. FORMULATION 9
1.4.3. LES VARIANTES DU VRP 10
1.5. CONCLUSION 13
CHAPITRE 2. APPROCHES 14
2.1. INTRODUCTION 14
2.2. METHODES EXACTES 15
2.2.1. DEFINITION 15
2.2.2. AVANTAGES & INCONVENIENTS 15
2.3. METHODES HEURISTIQUES & META-HEURISTIQUES 16
2.3.1. HEURISTIQUES 16
2.3.2. META-HEURISTIQUES 16
2.3.3. LES CLASSES DE META-HEURISTIQUES 17
2.4. ACO 19
2.4.1. DEFINITION 19
2.4.2. COMMENT FONCTIONNE L’ACO 19
2.4.3. FORMULATIONS 20
2.4.4. DEMARCHES 21
Table de matières
Page V
2.4.5. LA VARIANTE ACO 26
2.5. AGENT & SMA 30
2.5.1. AGENT 30
2.5.2. ARCHITECTURE D’AGENT 31
2.5.3. AGENT REACTIF 32
2.5.4. SYSTEME MULTI AGENTS (SMA) 33
2.6. CONCLUSION 35
CHAPITRE 3. SYNTHESE 36
3.1. INTRODUCTION 36
3.2. VUE GLOBALE 37
3.2.1. PLANIFICATION 37
3.2.2. L’OPTIMISATION 38
3.3. FRACTURES DE BASE 38
3.3.1. PROBLEME 39
3.3.2. FOURMI PLANIFICATRICE 45
3.3.3. FOURMI OPTIMISATRICE 50
3.4. REPRESENTATION DE SOLUTION 52
3.5. TRAVAUX CONNEXES 53
3.6. CONCLUSION 54
CHAPITRE 4. INTEGRATION 55
4.1. INTRODUCTION 55
4.2. PLATEFORMES & BIBLIOTHEQUES 56
4.2.1. GRAPH-STREAM 56
4.2.2. JANUSPROJECT 57
4.3. APPLICATION 59
4.3.1. EXPERIMENTATIONS ET RESULTATS 60
4.4. CONCLUSION 68
Table de figures
Page VI
Figure 1-1. TSP .................................................................................................................... 6
Figure 1-2. VRP .................................................................................................................... 8
Figure 1-3. Le VRP avec multiples dépôts : Le MDVRP ...................................................... 12
Figure 2-1. L'arborescence des méthodes de résolution ................................................... 18
Figure 3-1.Vue globale ...................................................................................................... 37
Figure 3-2. Diagramme de classes. ................................................................................... 39
Figure 3-3. Diagramme de classe de Problème ................................................................ 40
Figure 3-4. Coordination par stigmergie. .......................................................................... 43
Figure 3-5.Diagramme d'activité du Problème. ................................................................ 44
Figure 3-6. Diagramme de classe d'une fourmi planificatrice. ......................................... 45
Figure 3-7. Diagramme d'activité d'une fourmi planificatrice. Les actions (A,B ,C,D,E,F,G /
décrites précédemment) ................................................................................................... 49
Figure 3-8. Diagramme de classe d'une fourmi optimisatrice. ......................................... 50
Figure 3-9. Diagramme d'activité d'une fourmi optimisatrice. ......................................... 52
Figure 4-1. Interface d'application MDVRP_ACO_APP. .................................................... 59
Figure 4-2. Parties d'interface graphique s'application. ................................................... 60
Figure 4-3. Commande ouvrir. .......................................................................................... 62
Figure 4-4. Application après chargement d’une instance de MDVRP. ............................ 62
Figure 4-5. Commande démarrer. ..................................................................................... 64
Figure 4-6. Fenêtre de paramètres de recherche. ............................................................. 64
Figure 4-7. Application dans la première étape d’un essaie de la recherche. .................. 65
Figure 4-8.Application dans une étape avancée d’essai de la recherche. ........................ 66
Figure 4-9.Application dans l'pe finale d'un essaie de rechercher. ................................... 66
Liste de tableaux
Page VII
Tableau 1. Tableau de description des instances MDVRP. ............................................... 61
Tableau 2. Tableau des résultats et comparaisons. .......................................................... 67
Introduction générale
Dans notre ère contemporaine, le transport, c'est-à-dire la livraison ou la
collecte de biens ou produits ou même des personnes (cas de transport universitaire),
occupe une place importante dans la vie moderne. En vue de leurs objectifs économiques
et environnementaux, les sociétés consacrent des efforts énormes à la recherche
scientifique, pour la mise à niveau et à l’amélioration des systèmes de transport. Ceci a
laissé les chercheurs en face de problèmes extrêmement difficile à résoudre, selon les
contraintes spatiales, temporelles et économiques qu’impliquent ces problèmes. Pour
cette raison, plusieurs scientifiques et plusieurs laboratoires de recherche se sont
spécialisés dans la résolution des problèmes de transport.
Ces recherches se sont principalement penchées vers le transport de
personnes, de biens, de marchandises, de produits dangereux et vers les transports
d’urgence, et vers la collecte des déchets ou de l’emballage. Elles s’appuient surtout à la
réalisation de tournées de véhicules (le problème de tournées de véhicules, en anglais:
Vehicle Routing Problem VRP). Le VRP est un problème classique qui consiste à
construire des routes visitant tous les clients, pour la livraison ou pour le ramassage, en
minimisant le coût du transport, en satisfaisant les demandes de ces derniers et en
respectant les différentes capacités de véhicules.
Dans notre mémoire, nous nous intéressons à une importante variante du
VRP qui est le Problème de tournées de véhicules avec multi-dépôts, en anglais : Multi-
Depot Vehicle Routing Problem, MDVRP. Le MDVRP est un cas du VRP où les
véhicules partent de un ou plusieurs dépôts pour arriver aux clients dispersés
géographiquement. Le VRP est à son tour une extension du Problème de Voyageur de
Commerce (Travelling Salesman Problem : TSP). Ce dernier problème consiste à visiter
un ensemble de clients (villes) une seule fois par un seul véhicule partant d’un seul dépôt.
Introduction générale
Page 2
Ces trois problèmes sont des NP-difficiles, ils sont considères comme des
problèmes d’optimisation combinatoire parce qu’il existe peu probablement un
algorithme déterministe qui peut les résoudre en un temps polynomial.
L’optimisation avec la colonie de fourmis en Anglais (Ant Colony
Optimization) a été développée au début des années '90 par Marco Dorigo et ses
collègues. Il est l'un des nouvelles approches méta-heuristiques. Il nous permet
d'imaginer de nouvelles façons de résoudre des problèmes complexes (optimisation
combinatoire, le routage de réseau ...). En utilisant le système multi-agent réactif, nous
pouvons simuler le comportement de la colonie de fourmis quand ils sont à la recherche
de nourriture afin de trouver de bons chemins à travers les graphes, qui représentent une
solution dans le problème de transport.
Pour essayer de trouver une résolution approchée, nous sommes pris par
les méthodes méta heuristiques, et surtout les méthodes évolutives dont l’optimisation
avec la colonie de fourmis en Anglais (Ant Colony Optimazition ACO).
Ainsi nous avons divisé notre mémoire en quatre chapitres :
Le premier chapitre est consacré aux origines des problèmes du MDVRP
(Multi-Depots Vehicle Routing Problem), le problème de tournées de véhicules avec
multi-dépôts, tandis que le deuxième chapitre aborde les approches de résolution de ce
type de problèmes.
Le troisième chapitre est nommé synthèse pour montrer comment est
construite notre approche basée sur l’ACO. Enfin le quatrième chapitre est consacré à la
définition des plateformes et les outils utilisés pour réaliser notre approche.
Enfin le quatrième chapitre : « intégration » est consacrée à la définition
des plateformes et les outils utilisés pour réaliser nôtre approche.
Page 3
Chapitre 1.
Les Origines
1.1. Introduction
Les problèmes de transport, appelés aussi problèmes de routage,
modélisent des problèmes réels liés au transport de marchandises ou de personnes. Dans
ce chapitre nous allons exposer un de ces problèmes de transport (MDVRP) par
introduire ces origines et racines.
Chapitre 1.
Les Origines
Page 4
1.2. Optimisation combinatoire
1.2.1. Définition
L’optimisation combinatoire est une branche de l'optimisation des
problèmes dans lesquels l'ensemble des solutions réalisables est discret, avec le but de
trouver la meilleure solution possible. Pour faire face aux problèmes d'optimisation
combinatoire, l'objectif est de trouver la meilleure solution ou la solution optimale, qui
minimise une fonction de coût donné.
1.2.2. Formulation
Un problème d’optimisation combinatoire, peut être décrit généralement
par la formule suivante:
xCZOptimiserXx
P.
X est un sous-ensemble de l’ensemble S des solutions réalisables du problème de base,
satisfaisant les contraintes supplémentaires spécifiques au problème P
En effet l’optimisation est destinée à la minimisation ou la maximisation
d’un problème en utilisant la relation suivante:
xZxZ maxmin
Généralement dans le domaine d’optimisation combinatoire on parle de la minimisation.
Parmi les problèmes les plus célèbres nous citons le TSP qui représente
l’origine de VRP qui est la racine de notre étude dans ce mémoire (MDVRP).
Chapitre 1.
Les Origines
Page 5
1.3. le Problème de Voyageur de Commerce
1.3.1. Définition
Le problème du voyageur de commerce (PVC) ou en Anglais Travelling
Salesman Problem (TSP), a été étudié au 18eme siècle par un mathématicien irlandais
nommé Sir William Rowam Hamilton et par le mathématicien britannique nommé
Thomas Penyngton Kirkman « une discussion détaillée sur le travail de Hamilton &
Kirkman peut être vu dans le livre intitulé théorie des graphes Biggs et al. 1986 [01]». Il
fait croire que la forme générale de TSP a été tout d’abord étudié par Kalr Menger à
Vienne et à Harvard. Le problème fut plus tard promu par Hassler, Whitney & Merrill à
Princeton. (On trouvera une description détaillée sur la connexion entre Menger &
Whitney et le développement de TSP dans (Schrijver, 1960)[02]). Ce problème est un
problème combinatoire dans lequel un marchand ou commerçant cherche à trouver une
tournée qui permet de visiter un ensemble des villes ou clients (il doit visiter chaque ville
une seule fois sans faire de retour aux villes déjà visitées et faire retourner à la fin de
tournée au ville de départ) avec un minimum de coût (distance traversée).
Chapitre 1.
Les Origines
Page 6
Figure 1-1. TSP
1.3.2. Formulation
Le TSP peut se décrire sous forme de graphe complet G (V, A) :
V : l’ensemble des villes pour visiter.
A : l’ensemble des arcs (rue ou chemin) qui lient les villes.
Une matrice des coûts C décrit le coût de chaque arc aij.
Beaucoup de formulations TSP sont disponibles dans la littérature. Études
récentes (Orman & Williams, 2006 [03], O¨NCan et coll., 2009 [04]). Parmi ceux-ci, la
formulation mathématique de (Dantzig et al. 1954[05]). Une première description du
Concorde qui est reconnue comme l'algorithme exact le plus exécuté, a été publiée sous
le titre « Mise en œuvre de l'algorithme de Dantzig-Fulkerson – Johnson pour des
problèmes de grand voyageur de commerce » (Applegate et coll., 2003 [06]).
V0
V1
V2
V3
V4
V5
Chapitre 1.
Les Origines
Page 7
Cette formulation associe une variable binaire xij à chaque arête (i, j), égal
à 1 si et seulement si le bord apparaît dans la tournée optimale. 𝐶𝑖𝑗 le coût du parcours de
l’arête ),( ji , et S est l’ensemble des arêtes solution
La formulation du TSP est comme suit :
)1(n
i
n
j
ijIJ xCMinimiser
Sous les contraintes :
)2(;1 XjxXi
ij
)3(;1 XixXj
ij
)4(22;;1),(
SXSSSji
Dans cette formulation, les contraintes (2), (3) et (4) sont appelées respectivement les
contraintes de degré, les contraintes d’intégralité et les contraintes d’élimination de sous-
tours,
Avec le temps et l’évolution de l’être humain et l’apparence des véhicules
le model TSP a été motivé vers le multiple TSP (un ensemble des voyageurs de
commerce de même objective qui travaillent ensemble), ce dernier est aujourd’hui noté
sous le nom de VRP.
1.4. Le Problème de routage de véhicule ses variantes
1.4.1. Définition
Le problème de routage véhicule (PRV) en Anglais ( Vehicle Routing
Problem VRP) est une généralisation de TSP. Ce problème, très important dans le
Chapitre 1.
Les Origines
Page 8
domaine de transport, distribution et logistique, vise de trouver une tournée optimale pour
les véhicules d’un dépôt dans l’objectif de délivrer ou faire de la collecte des
marchandises ou certain type de besoins à des clients spécifiés. Ce type de problème a été
proposé par George Dantzig and John Ramser dans 1959 [07].
Le problème de routage de véhicule (VRP) est utilisé pour concevoir un
itinéraire optimal pour une flotte de véhicules pour desservir un ensemble de clients, étant
donné un ensemble de contraintes. Le VRP est utilisé dans la chaîne d'approvisionnement
à la livraison physique des marchandises et services. Il existe plusieurs variantes pour le
VRP. Ceux-ci sont formulés selon la nature des marchandises transportées, la qualité de
service requis et les caractéristiques des clients et les véhicules. Le VRP se classe au type
NP-difficile.
Figure 1-2. VRP
Il a été très largement étudié dans la littérature de l'optimisation. Cela a
commencé avec les papiers séminaux de G. Dantzig and J. Ramser [07] et G. Clarke and
J. R. Wright [08]. Maintenant, le VRP offre une multitude d'approches heuristiques et
méta-heuristiques, qui sont interrogées dans les journaux (G. Laporte [09] et J.-F.
Cordeau, M. Gendreau, A. Hertz, G. Laporte and J. S. Sormany [10]. Le VRP est donc
dépôt
Chapitre 1.
Les Origines
Page 9
largement étudié en raison de son applicabilité large et son importance dans la
détermination de stratégies efficaces pour réduire les coûts d'exploitation de réseaux de
distribution. Aujourd'hui, les méthodes exactes de VRP ont une limite de taille de 50 à
100 ordres selon la variante VRP et les délais de réponse. En conséquence, les actuels de
recherche se concentre sur des algorithmes approximatives qui sont capables de trouver
des solutions de haute qualité en un temps limité, afin d'être applicable aux instances de
problèmes de la vie réelle qui se caractérisent par les véhicules larges flottes et affecte de
façon significative les stratégies logistique et distribution.
Le VRP a été d'abord déclaré par G. Dantzig and J. Ramser [07] qui a été
sur le routage d'une flotte de camions de livraison de carburant entre le terminal Vraquier
et un certain nombre de stations de service fourni par le terminal. La distance entre les
deux emplacements est donnée et une demande pour un produit donné est spécifiée pour
les stations-services. Il peut être défini comme le problème de la conception des routes de
livraison du moindre coût allant d'un dépôt à un ensemble d'emplacements dispersés
géographiquement (clients) soumis à un ensemble de contraintes.
1.4.2. Formulation
La formulation du VRP que nous présentons ici correspond à la
formulation mathématique utilisée en programmation linéaire en nombres entiers.
Nous avons d’abord les données suivantes :
un dépôt D,
un ensemble de commandes C = {c1, . . . , cn},
une flotte de véhicules.
Avec la contrainte :
capacité des véhicules,
le coût de l'arête entre les sommets i et j (distance ou temps de
parcours)
Chaque commande est définie par
Chapitre 1.
Les Origines
Page 10
un client,
un poids.
Dans l’objectif de délivrer toutes les commandes en minimisant les distances parcourues
par les véhicules.
1.4.3. Les Variantes du VRP
Le VRP avec capacité(CVRP) :[11]est la version de base du VRP. Le nom
dérive de la contrainte d'avoir des véhicules avec une capacité limitée. Dans la version
classique de CVRP, les demandes des clients sont déterministes et connus à l'avance. Les
livraisons ne peuvent pas être fractionnées, c'est-à-dire, la demande ne peut être servie à
l'aide de deux véhicules ou plus. Le flux de véhicules est homogène et il n'y a qu'un seul
dépôt.
Le VRP avec fenêtres temporelles (VRPTW) : la capacité limitée détient
toujours et chaque client est associé avec un intervalle de temps appelé la fenêtre de
temps et avec la durée, le temps de service. Les fenêtres de temps peuvent être réglées à
n'importe quelle largeur, de jours de minutes, mais leur largeur est souvent
empiriquement liée à la largeur de l'horizon de planification. La présence de fenêtres de
temps impose une série de préséance lors de visites, qui rendent le problème asymétrique,
même si les matrices de distance et le temps ont été initialement symétriques.
Le VRP avec ramassage et livraison (VRPPD) [12] une flotte de véhicules
doit satisfaire à un ensemble de demandes de transports. Les éléments à transporter ne
sont pas initialement concentrés dans les dépôts, mais ils sont répartis sur les nœuds du
réseau routier. Une demande de transport consiste à transférer la demande depuis le point
de ramassage au lieu de livraison. Ces problèmes incluent toujours les fenêtres de temps
pour la prise en charge et/ou la livraison et également les contraintes qui expriment les
inconvénients de l'utilisateur d'attendre trop longtemps à la prise en charge et imposent
une limite de temps d'équitation.
Le VRP dynamique (DVRP): Quand les demandes de service ne sont pas
totalement connues avant le démarrage du service, mais ils arrivent au cours du processus
Chapitre 1.
Les Origines
Page 11
de distribution [12, 13]. Puisque les nouvelles commandes arrivent dynamiquement, les
routes ont ré-planifier la direction au moment de l'exécution pour les inclure. A chaque
pas de temps, Chaque conducteur n’a aucune connaissance partielle sur le reste de sa
tournée.
Le VRP ouvert (OVRP) : C’est le cas où le véhicule a le choix de
retourner ou pas au dépôt. Si le véhicule choisi le retour il doit prendre le sens inverse de
sa tournée.
Le VRP avec multiple dépôts (MDVRP) : c’est un VRP classique, mais il
se base sur multiple dépôts au lieu d’un seul. Dans le MDVRP chaque véhicule doit
démarrer et terminer au même dépôt après avoir servi des clients. Chaque client doit être
servi par un seul dépôt à l’aide d’un seul véhicule à une seule fois, Nous pouvons
résumer les contraintes du MDVRP dans les trois lignes suivantes :
Chaque véhicule doit commencer et terminer sa tournée au dépôt de
son départ.
Un client est visité une seule fois par véhicule dans chaque groupe.
Le coût total pour parcourir les clients est réduit au minimum.
Chapitre 1.
Les Origines
Page 13
1.5. Conclusion
Donc, la plupart des problèmes d’optimisation combinatoire
appartiennent à la classe NP-Difficile. Leur résolution ne peut se faire que de manière
approchée, car à ce jour, il n’existe aucun algorithme permettant leur résolution en un
temps polynomial. Les approches heuristiques et méta-heuristiques qui seront abordées
dans le chapitre suivant font partie d’une alternative aux problèmes de résolutions.
Page 14
Chapitre 2.
Approches
2.1. Introduction
Nous consacrons ce chapitre aux approches de résolution de problèmes
d’Optimisation Combinatoire de type NP-Difficile. Nous commençons par énumérer des
approches exactes, ensuite, nous passons aux approches heuristiques et aux méta-
heuristiques en détaillant largement l’ACO.
Ensuite nous entamons le concept agent et ses architectures et nous
arrivons en fin de ce chapitre aux systèmes multi-agents.
Chapitre 2.
Approches
Page 15
2.2. Méthodes exactes
2.2.1. Définition
Suite à l’exploration exhaustive par énumération de l’ensemble des
solutions réalisables des problèmes d’optimisation combinatoire, les méthodes exactes,
appelées aussi complètes, garantissent la détermination de solutions optimales pour les
problèmes d’optimisation combinatoire, Pendant les dernières soixante années, une large
gamme de méthodes exactes a été conçue pour la résolution des problèmes d’optimisation
combinatoire en général, en particulier, les problèmes du VRP, qui attirent incessamment
l’attention des chercheurs. Parmi les fins les plus récurrentes nous citons :
Programmation Linéaire
Programmation Dynamique
Approche « Branch and Bound » etc.
2.2.2. Avantages & inconvénients
Avec les méthodes exactes, l’optimalité des solutions qu’elles fournissent,
est garantie. En effet, pour déterminer la solution optimale, il faut faire un parcours
exhaustif du domaine des solutions réalisables du problème.
Pour les problèmes d’optimisation combinatoire, le parcours exhaustif de
ce domaine des solutions réalisables est impossible à partir d’une certaine taille du
problème. Car cette taille croit exponentiellement.
Chapitre 2.
Approches
Page 16
2.3. Méthodes Heuristiques & Meta-Heuristiques
Les méthodes de résolution exactes sont avérées inefficaces, à cause de la
complexité des problèmes d’OC, et vu la fréquence et larécurrence de ces problèmes en
pratique, les chercheurs se sont orientés à développer des méthodes approchées pour
résoudre ces problèmes complexes. En effet, les méthodes approchées donnent des
solutions appréciables, pour des problèmes de complexité importante, en un temps
raisonnable.
2.3.1. Heuristiques
Le mot heuristique vient du verbe grec heuriskein (ευρισκειν) qui
signifie« trouver ». Donc une heuristique permet de trouver une ”bonne” solution, en un
temps raisonnable, mais cette solution n’est pas forcément optimale.
Selon Feignebaum et Feldman [14], une heuristique est une règle
d’estimation, une stratégie, une astuce ou bien une simplification, qui limite la recherche
de bonnes solutions dans l’espace des configurations d’une façon ahurissante.
La performance d’une heuristique se distingue essentiellement, en sa
complexité spatiale et temporelle, et en sa simplicité et sa facilité d’implémentation.
Aussi des critères de performance d’une approche heuristique sont tels quesa flexibilité et
son débit de génération de solutions. Néanmoins, les performances d’une heuristique sont
impossibles de les évaluer théoriquement avec exactitude.
2.3.2. Méta-Heuristiques
Le préfixe Méta signifie ”au-delà”, ”plus que ça”, ou ” à un niveau
supérieur”, et Meta-Heuristique veut dire « trouver au-delà », ou « trouver plus que
ça ».Les Méta-heuristiques, sont appelées plutôt des heuristiques modernes.
À la recherche de la solution approchée de « l’optimale » les Méta-
heuristiques deviennent des stratégies d’exploration du domaine de solutions réalisables.
Ce sont des approches guidées intelligemment par l’usage de simples procédures de
Chapitre 2.
Approches
Page 17
recherche locale et/ou des processus d’apprentissage complexes de sorte à éviter le
bouclage ou les optimums locaux. Elles s’adaptent généralement à tous types de
problèmes, sans perte d’efficacité.
Bien que les chercheurs aient pu démontrer la convergence de certaines
d’entre elles vers l’optimum global, les Méta-Heuristiques, comme les heuristiques,
n’offrent pas de garantie sur l’optimalité. Et pour surmonter l’explosion combinatoire
elles qui sont, non déterministes, incorporent souvent un principe stochastique.
2.3.3. Les classes de Méta-Heuristiques
En général les méta-heuristiques se sont subdivisées en deux grandes
familles: les méta-heuristiques de recherche locale et les méta-heuristiques évolutives.
Les méta-heuristiques de recherche locale :Le principe des méta-heuristiques de
recherche locale est de modifier les résultats d’un ordonnancement admissible en
vue d’améliorer la valeur de la fonction objectif, plutôt que de construire un
ordonnancement à partir des données initiales du problème.
Les méta-heuristiques évolutives :Tandis que le principe des méta-heuristiques
évolutives est de faire évoluer un ensemble de solutions vers l’optimum cherché.
Cette évolution se fait à partir de transformations et de coopérations entre les
individus qui représentent individuellement une solution de l’espace total du
problème. Parmi ces méthodes, nous distinguons les algorithmes génétiques, la
recherche distribuée et les colonies de fourmis.
Chapitre 2.
Approches
Page 18
Figure 2-1. L'arborescence des méthodes de résolution
A ce point nous nous intéressons au système de colonies de fourmis (Ant
System). C’est une méthode de résolution du problème d’optimisation. Les colonies de
fourmis se sont basées sur le comportement réel de communication chez les fourmis qui
consiste en la « trace et l’attrait ». Cette méta-heuristique a été introduite pour la première
fois dans [15], et a été appliquée au problème du voyageur de commerce. Gambardella et
al. l’ont appliquée pour le VRP en 2003 [16].
Donc nous consacrons la suite de ce chapitre à envisager un aperçu sur le
système de colonies de fourmis.
Méthodes
Exactes
Branch and Bound
Branch and Cut
Programmation Dynamique
Approchées
Heuristiques
route en 1er
groupe en 2eme
Groupe en 1er
Route en 2eme
Algorithme de gains
Insertion Sequentielle
Pétale
Metaheuristiques
Recherche Locale
Recuit Simulé
Recherche Tabou
Méthode de Descente
Evolutives
Recherche Distribué
colonies de Fourmis
Algorithmes Généiques
Chapitre 2.
Approches
Page 19
2.4. ACO
2.4.1. Définition
L’Ant Colony Optimization (ACO) est une méta-heuristique, basée sur la
population, qui peut être utilisée pour trouver des solutions approchées aux problèmes
d'optimisation difficiles.
Dans l’ACO, un ensemble d'agents logiciels appelé « fourmis
artificielles » recherche de bonnes solutions à un problème d'optimisation donné. Pour
appliquer l’ACO, le problème d'optimisation se transforme en un problème de trouver le
meilleur chemin sur un graphe pondéré. Les fourmis artificielles (ci-après nous les
appelons les fourmis) incrémentielles construisent des solutions en se déplaçant sur le
graphe. Le processus de construction de la solution est stochastique et est sollicité par
un modèle de phéromone, soit un ensemble de paramètres associés à des composants du
graphe (soit des nœuds ou des routes) dont les valeurs sont modifiées lors de l'exécution
par les fourmis.
2.4.2. Comment fonctionne l’ACO
Pour bien comprendre comment fonctionne l’ACO, nous allons donner
l’exemple du Problème du Voyageur de Commerce. Dans le TSP un ensemble de
locations (par exemple, villes) et les distances entre eux sont données. Le problème
consiste à trouver une tournée fermée de longueur minimale qui visite chaque ville une
fois et une seule.
Pour appliquer l’ACO au TSP, nous considérons le graphe défini en
associant l'ensemble des villes de l'ensemble des sommets du graphe. Ce graphe est
appelé graphe de construction. Etant donné que dans le TSP, il est possible de passer
d'une ville donnée à une autre, le graphe de la construction est entièrement connecté et le
nombre de sommets est égal au nombre de villes. Nous avons mis les longueurs des
arêtes entre les sommets proportionnellement aux distances entre les villes représentées
par ces sommets et nous associons les valeurs des phéromones et les valeurs heuristiques
Chapitre 2.
Approches
Page 20
avec les arêtes du graphe. Les valeurs de phéromones sont modifiées lors de l'exécution
et représentent l'expérience cumulée de la colonie de fourmis, tandis que les valeurs
heuristiques sont des valeurs dépendantes du problème, qui, dans le cas de la TSP, sont
mises à l'inverse de la longueur des routes.
Les fourmis construisent donc les solutions comme suit : Chaque fourmi
commence à partir de la ville choisie au hasard (de sommet du graphe de
construction). Puis, à chaque étape de la construction, elle se déplace sur tout le long des
arêtes du graphe. Chaque fourmi garde une Mémoire de sa trajectoire, et dans les étapes
ultérieures, elle choisit parmi les routes celles qui ne conduisent pas à des sommets qu'il a
déjà visités. Une fourmi a construit une solution une fois qu'il a visité tous les sommets
du graphe. A chaque étape de la construction, une fourmi choisit, avec probabilité la
route à suivre parmi celles qui mènent à des sommets encore non visités. La règle
probabiliste est sollicitée par les valeurs de phéromones et de l'information heuristique:
Plus grande soit la phéromone et la valeur heuristique, associées à une
route, plus grande serait la probabilité de choix d'une fourmi de cette route. Une fois que
toutes les fourmis ont terminé leur tournée, la phéromone sur les routes est mise à
jour. Chacune des valeurs de phéromone est, initialement, diminué d'un certain
pourcentage. Chaque route reçoit ensuite une quantité supplémentaire de phéromones
proportionnelle à la qualité de la solution à laquelle il appartient (il existe une solution
pour une fourmi).
Cette procédure est appliquée de manière répétée jusqu'à ce qu'un critère
d'arrêt soit satisfait.
2.4.3. Formulations
La première étape d'application de l'ACO à un problème d'optimisation
combinatoire (COP) consiste à définir un modèle de la COP comme un
triplé (S, Ω, f), où:
S est un espace de recherche défini sur un ensemble fini de variables de décision discrets;
Chapitre 2.
Approches
Page 21
Ω est un ensemble de contraintes entre les variables;
0: RSf est une fonction objectif à minimiser (comme sur la maximisation f est la
même que de minimiser f . chaque COP peut être décrite comme un problème de
minimisation).
L'espace de recherche S est défini comme suit : Un ensemble de variables
discrètes ,,...,1, niX i avec des valeurs iD
iii
j
i vvDv ,...,1 , est donnée. Les éléments
de S sont des assignements complètes, soit des assignements où chaque variable iX a une
valeur j
iv affecté à partir de son domaine iD . L'ensemble des solutions possibles S est
donnée par les éléments de S qui satisfont toutes les contraintes dans l’ensemble .
Une solution Ss*est appelé un optimum global si et seulement si
]20[]17[*
Sssfsf .
L'ensemble des solutions optimales, à l'échelle globale, est désignée par
SS* Résoudre un COP, il faut trouver au moins un
**
Ss .
2.4.4. Démarches
Dans l’ACO, les fourmis artificielles construisent une solution à un
problème d'optimisation combinatoire, en traversant un graphe de construction
entièrement connecté, défini comme suit:
Tout d'abord, chaque variable de décision instancié j
ii vX que l'on
appelle un composant de la solution et notéijc . L'ensemble de toutes les composantes
possibles de la solution est désignée par C .Puis le graphe de construction EVGC , est
définie en associant les composants C soit avec l'ensemble des sommets V ou avec
l'ensemble des arêtes E .
Chapitre 2.
Approches
Page 22
Une valeur de phéromone ij est associée à chaque composant
ijc . (Notez
que les valeurs de phéromones sont en général en fonction de l’itération d’algorithme
tt ijij : .) Des valeurs de phéromone permettent à la distribution de probabilité des
différents composants de la solution à être modélisée. Les valeurs de phéromone sont
utilisées et mises à jour par l'algorithme d’ACO lors de la recherche.
Les fourmis se déplacent de sommet en sommet à travers le long des
arêtes du graphe de construction en exploitant les informations fournies par les valeurs de
phéromones, et de cette manière, se construit d’une façon incrémentale une solution. En
outre, les fourmis déposent une certaine quantité de phéromones sur les composants, qui
est, soit sur les sommets ou sur les routes qu'ils traversent. Le montant de phéromone
déposée peut dépendre de la qualité de la solution trouvée. Les fourmis suivantes utilisent
l'information de phéromone comme un guide vers les régions les plus prometteuses de
l'espace de recherche.
La méta-heuristique ACO se résume en:
Réglez les paramètres, initialiser les traces de phéromone
SCHEDULE_ACTIVITIES
o ConstructAntSolutions()
o DaemonActions() {optional}
o UpdatePheromones()
END_SCHEDULE_ACTIVITIES
La méta-heuristique se compose d'une étape d'initialisation et de trois
composants algorithmiques dont l'activation est régulée par la construction de
SCHEDULE_ACTIVITIES. Cette construction est répétée jusqu'à ce qu'un critère d'arrêt
soit atteint. Les critères typiques sont un nombre maximal d'itérations ou un temps de
calcul maximal.
La construction de SCHEDULE_ACTIVITIES ne précise pas comment
les trois composantes algorithmiques sont programmées et synchronisées . Dans la
Chapitre 2.
Approches
Page 23
plupart des applications de l'ACO à NP-Difficile, toutefois, les trois composantes
algorithmiques subissent une boucle qui consiste à :
Construire des solutions par les fourmis, (optionnel)
L’amélioration de ces solutions via l'utilisation d'un algorithme de
recherche locale, et
La mise à jour des phéromones.
Ces trois derniers seront expliqués plus en détail en ce qui suit :
2.4.4.1. Construction de solutions
Un ensemble de m fourmis artificielles construisent des solutions à partir
des éléments d'un ensemble fini de composants disponibles de la solution
iij DjnicC ,...,1,,...,1, . Une construction de la solution commence avec une
solution partielle vide ps . Puis, à chaque étape de la construction, la solution partielle
courant ps est prolongée par l'ajout d'une composante possible de la solution à partir de
l'ensemble des voisines réalisables CsN p .Le processus de construction des solutions
peut être considéré comme un chemin sur le graphe de construction EVGC , . Les
chemins autorisés dans CG sont implicitement définis par le mécanisme de construction
de la solution qui définit l'ensemble psN par rapport à une solution partielle ps .
Le choix d'un composant de la solution à partir de psN se fait de façon
probabiliste à chaque étape de la construction. Les règles exactes pour le choix
probabiliste des composants de la solution varient selon les différentes variantes de
l'ACO. La règle la plus connue est le système de fourmi (Ant System AS) [17]:
,,.
.p
ij
sNc ilil
ijp
ij sNcscpp
il
ij
Où ij et
ij sont respectivement la valeur de la phéromone et la valeur
heuristique associé au composantijc . Par ailleurs, et sont des paramètres réels
Chapitre 2.
Approches
Page 24
positifs dont les valeurs sont pour déterminer l'importance relative de phéromone par
rapport aux informations heuristiques.
2.4.4.2. Daemon actions
Une fois que des solutions ont été construites, et avant la mise à jour des
valeurs des phéromones, souvent, des actions spécifiques de problèmes peuvent être
nécessaires. Celles-ci sont souvent appelés actions démon, et peuvent être utilisées pour
implémenter les actions d’un problème spécifique / ou des actions centralisées, qui ne
peuvent pas être exécutées par les fourmis simples. L'action démon le plus utilisée
consiste en l'application de la recherche locale aux solutions construites: les solutions
optimisées localement sont ensuite utilisées pour décider quelles valeurs de phéromones
doivent être mises à jour.
2.4.4.3. Update pheromones
Le but de la mise à jour de phéromones est d'augmenter les valeurs de
phéromones associées à des bonnes solutions, et de diminuer celles qui sont associées à
des mauvaises solutions. Habituellement, ceci est réalisé :
en diminuant les valeurs de phéromones par évaporation phéromone, et
en augmentant les niveaux de phéromones associées à un ensemble de bonnes
solutions choisi upds :
]20[]17[..1
scSs
ijij
ijupd
sFpp ,
Où upds est l'ensemble des solutions qui sont utilisées pour la mise à jour, 1,0p est un
paramètre appelé taux d'évaporation, et 0: RSF est une fonction telle que :
]20[]17[','' SsssFsFsfsf .
.F est appelée communément la fonction de remise en forme (fitness function)
Chapitre 2.
Approches
Page 25
L’évaporation de phéromone implémente une forme utile à l’oubli, en
favorisant l'exploration de nouvelles zones dans l'espace de recherche. Les différents
algorithmes ACO, par exemple le système de colonie de fourmis Ant colony system
(ACS) [18]ou MAX-MIN Ant System (MMAS) [19], se diffèrent dans la manière de
mettre à jour les phéromones.
Les instanciations de la règle de mise à jour indiquée ci-dessus sont
obtenues par des spécifications différentes de upds, qui dans de nombreux cas est un sous-
ensemble de bsiter ss
, où iters est l'ensemble de solutions qui ont été construites dans
l'itération courante, et bss est la meilleure solution jusqu’ici (best-so-far solution), qui est,
la meilleure solution trouvée depuis la première itération de l'algorithme. Un exemple
bien connu est la règle AS-mise à jour, qui est, la règle de mise à jour du système de
fourmi [17]iterupd ss
Un exemple de la règle de mise à jour de phéromone qui est le plus
souvent utilisé dans la pratique est la règle IB-update (où IB Itération Best signifie -
meilleure itération):
]20[]17[maxargiterSs
upd sFs
.
La règle IB-update introduit un biais beaucoup plus fort vers les bonnes
solutions trouvées que la règle AS-update. Bien que cela augmente la vitesse à laquelle se
trouvent les bonnes solutions, il augmente également la probabilité de convergence
prématurée. Une polarisation encore plus forte est introduite par la règle BS-update, où
BS se réfère à l'utilisation de la solution the best so far bss . Dans ce cas, upds est réglé sur
sbs . Dans la pratique, les algorithmes ACO qui utilisent les variations de l'IB-update ou
les règles BS-update et qui comprennent en outre des mécanismes pour éviter la
convergence prématurée, donnent de meilleurs résultats que ceux qui utilisent la règle
AS-update.
Chapitre 2.
Approches
Page 26
2.4.5. La Variante ACO
Plusieurs cas particuliers de la méta-heuristique ACO ont étés proposées
dans la littérature. Ici, nous donnons brièvement un aperçu, sur l'ordre historique dans
lequel ils ont été introduits, les trois les plus efficaces sont: le système de fourmi ( [20],
[21]), le système de colonie de fourmis (ACS) [22], et le MAX-MIN Ant System
(MMAS) [23]. Afin d'illustrer les différences entre ces systèmes clairement, nous
utilisons l'exemple du problème du voyageur de commerce.
2.4.5.1. Ant system (système fourmi)
Ant système (AS) a été le premier algorithme ACO à être proposé dans la
littérature ([20], [21]),). Sa principale caractéristique est que les valeurs de phéromone
sont mises à jour par toutes les fourmis qui ont achevé la tournée. Les composants de la
solution ijc sont les arêtes du graphe, et la mise à jour de la phéromone de ij , qui est, de
la phéromone associée à la route pour rejoindre les villes i et ,j est réalisée comme suit:
[20][17].11
m
k
k
ijijij p
où 1,0p est le taux d'évaporation, m est le nombre de fourmis, et k
ij
est la quantité de phéromone déposée sur le bord ji, par la èmek fourmi.
tournéesadansjirouteutiliséefourmisi
kL
nonsi
kij
//,//1
0
où kL est la longueur de la visite de la èmek fourmi.
Lors de la construction des solutions, les fourmis dans l’AS traversent le
graphe de la construction et prennent une décision probabiliste à chaque sommet. La
probabilité de transition p
kij scp de la èmek fourmi qui se déplaçant de la ville i à la ville
j est donnée par:
Chapitre 2.
Approches
Page 27
]20[]17[
,,.
.
0
pk
sNjsipk
sNilc ilil
ijij
nonsi
pk
sijcp
où
pk
sN est l'ensemble des composants qui ne font pas partie encore de
la solution partielle pk
s de la fourmi k , et et sont des paramètres qui contrôlent
l'importance relative de la phéromone par rapport à l'information heuristique ij
ijd
1
, où ijd est la longueur du composant ijc (par exemple , du bord ( i , j )).
2.4.5.2. Système de colonie de fourmis
La première amélioration majeure du système de fourmi original, qui est
proposée était le système de fourmis de la colonie (Ant Colony System ACS), introduite
par Dorigo et Gambardella (1997). La première différence importante entre ACS et AS
est la forme de la règle de décision utilisée par les fourmis pendant le processus de
construction. Les fourmis dans ACS utilisent la soi-disant règle pseudo proportionnelle :
la probabilité pour qu’une fourmi se déplace de la ville i à la ville j , dépend d'une
variable aléatoire q uniformément répartie sur 1,0 , et un paramètre 0q . 0qqsi , alors,
est choisie, la composante qui maximise le produit
ijij . parmi les composantes
possibles; sinon, la même équation que dans l'AS est utilisé.
Cette règle gourmande, qui favorise l'exploitation de l'information de
phéromone, est contrebalancée par l'introduction d'une composante de diversification:
la mise à jour de la phéromone locale. La mise à jour de la phéromone locale est réalisée
par toutes les fourmis après chaque étape de la construction. Chaque fourmi applique
uniquement à la dernière route traversée:
]18[0..1 ijij ,
Chapitre 2.
Approches
Page 28
où 1,0 est le coefficient de décroissance de la phéromone, et 0 est la
valeur initiale de la phéromone.
L'objectif principal de la mise à jour locale est de diversifier la recherche
effectuée par les fourmis suivantes au cours d'une itération. En fait, la diminution de la
concentration de phéromone sur les bords comme ils sont traversés au cours d'une
itération encourage les fourmis ultérieures à choisir d'autres bords et donc à produire des
solutions différentes. Cela rend moins probable que plusieurs fourmis produisent des
solutions identiques au cours d'une itération. En outre, en raison de la mise à jour de la
phéromone locale dans l’ACS, les valeurs minimales de la phéromone sont limitées.
Comme dans l'AS, également dans l’ACS à la fin du processus de
construction, la mise à jour d'une phéromone, appelée mise à jour déconnecté (offline) de
la phéromone, est effectuée.
Dans l’ACS la mise à jour déconnectée de phéromone est effectuée
seulement par la meilleure fourmi, dont seuls les bords qui ont été visités sont mises à
jour, selon l'équation:
]18[..1bestijpijpij
où best
Lbestij
1 si la meilleure fourmi utilise le bord ji, dans sa tournée,
0bestij , sinon ( best
L peut être égale, soit à la longueur de la meilleure tournée trouvé
dans l'itération courante -itération-mieux , ibL - Ou à la meilleure solution trouvée depuis
le début de l'algorithme - best-so-far , bsL -).
Il convient de noter que la plupart des innovations introduites par l’ACS
ont été introduites d'abord dans Ant-Q, une version préliminaire d'ACS par les mêmes
auteurs.
Chapitre 2.
Approches
Page 29
2.4.5.3. MAX-MIN Ant System (le Système fourmi à Max-Min)
MAX-MIN Ant System (MMAS) est une autre amélioration, proposée par
Stützle et Hoos (2000), sur l'idée originale de système fourmi. MMAS diffère de l’AS en
ce que suit :
Seule la meilleure fourmi ajoute les traces de phéromone, et
les valeurs minimales et maximales de la phéromone sont explicitement
limitées (dans l’AS et l’ACS ces valeurs sont limitées implicitement, la
valeur de la limite est un résultat de l'algorithme en travail plutôt que d'une
valeur définie explicitement par le concepteur de l'algorithme).
L'équation de la mise à jour de la phéromone prend la forme suivante:
]18[.1bestijijpij ,
où best
Lbestij
1 si la meilleure fourmi utilise le bord ji, dans sa
tournée, 0bestij sinon, où best
L est la longueur de la visite de la meilleure
fourmi. Comme dans l’ACS, best
L peut être égale (sous réserve de la décision de
concepteur de l'algorithme) soit à ibL ou à bs
L , ou à une combinaison des deux.
Les valeurs des phéromones sont limités entre min et max , en vérifiant,
après qu'elles ont été mises à jour par les fourmis, que toutes les valeurs de phéromone
sont dans les limites imposées
ij est réglé sur max si max ij et à min si min
ij . Il est important
de noter que la mise à jour de l’équation de MMAS de phéromone est appliquée, comme
dans le cas de l'AS, à tous les bords tandis que dans l’ACS est appliqué seulement aux
bords visités par les meilleurs fourmis.
La valeur minimale min est le plus souvent choisie expérimentalement
(cependant, un peu de théorie sur la façon de définir sa valeur analytique a été développé
en (Stützle & Hoos 2000)). La valeur maximale max peut être calculée analytiquement
Chapitre 2.
Approches
Page 30
pourvu que la longueur optimale de tournée de la fourmi est connu. Dans le cas de la
TSP,
*.1
maxL
, où *L est la longueur de la tournée optimale. Si
*L n’est pas
connue, elle peut être approchée par bsL . Il est également important de noter que la valeur
initiale des pistes est réglé sur max , et que l'algorithme redémarrera lorsque aucune
amélioration ne peut être observée pour un nombre donné d'itérations.
2.5. Agent & SMA
2.5.1. Agent
Un agent est un système informatique, situé dans un environnement, qui
agit d’une façon autonome et flexible pour atteindre les objectifs pour lesquels il a été
conçu.
Il y a trois concepts clés présents dans cette définition :
Situé: signifie que l’agent peut recevoir des entrées sensorielles provenant de
son environnement et qu’il peut effectuer des actions qui sont susceptibles de
changer cet environnement. Le monde réel et l’Internet sont des exemples
d’environnements où les agents peuvent être situés.
Autonome: signifie que l’agent est capable d’agir sans l’intervention directe
d’un humain (ou d’un autre agent) et qu’il a le contrôle de ses actions et de son
état interne.
Flexible: signifie que l’agent est :
o Capable de répondre à temps : il peut percevoir son environnement et
répondre rapidement aux changements qui s’y produisent.
o Proactif : il n’agit pas simplement en réponse à son environnement, il est
également capable d’avoir un comportement opportuniste, dirigé par ses
buts ou sa fonction d’utilité, et prendre des initiatives au moment
approprié.
Chapitre 2.
Approches
Page 31
o Social : il est capable d’interagir avec les autres agents (artificiels ou
humains) afin de compléter ses tâches ou aider les autres à compléter
leurs tâches.
Bien entendu, certains agents auront des caractéristiques additionnelles et,
pour certains types d’applications, certains attributs seront plus importants que d’autres.
Par contre, c’est la présence de tous ces attributs dans une seule entité logicielle qui
procure la force au paradigme agent et qui le distingue des autres paradigmes logiciels
tels que les systèmes orientés objets, les systèmes distribués et les systèmes experts.
2.5.2. Architecture d’agent
Il existe plusieurs manières de concevoir des agents, mais peu importe
l’architecture adoptée, un agent peut toujours être vu comme une fonction liant ses
perceptions à ses actions. Plus précisément, un agent perçoit l’environnement à l’aide de
ses capteurs et il agit sur son environnement à l’aide de ses effecteurs. Ce qui différencie
les différentes architectures d’agents, c’est la manière dont les perceptions sont liées aux
actions.
Les architectures d’agents peuvent être regroupées en agents réactifs et
agents délibératifs comme suit :
les agents délibératifs :
o les agents ayant des buts
o les agents utilisant une fonction d’utilité
o les agents du type BDI «Beliefs-Desires-Intentions»
les agents réactifs :
o les agents à réflexes simples
o les agents conservant une trace du monde
Chapitre 2.
Approches
Page 32
2.5.3. Agent réactif
Là Comme son nom l’indique, un agent réactif ne fait que réagir aux
changements qui surviennent dans l’environnement. Autrement dit, un tel agent ne fait ni
délibération ni planification, il se contente simplement d’acquérir des perceptions et de
réagir à celles-ci en appliquant certaines règles prédéfinies. Étant donné qu’il n’y a
pratiquement pas de raisonnement, ces agents peuvent agir et réagir très rapidement.
Les deux sous-sections suivantes décrivent brièvement deux modèles qui
peuvent servir à la conception d’agents réactifs.
Agent a reflexes simples : Ce type d’agent agit uniquement en se basant sur ses
perceptions courantes. Il utilise un ensemble de règles prédéfinies, du type Si
condition alors action, pour choisir ses actions. En effet, un tel agent ne peut
fonctionner correctement que s’il peut prendre la bonne décision sur la base du
seul percept courant détecté, c’est à dire seulement si l’environnement est
entièrement observable.
Agent conserve une trace du monde : Le type d’agent qui a été décrit
précédemment, ne peut fonctionner que si un tel agent peut choisir ses actions en
se basant uniquement sur sa perception actuelle. Un tel problème survient parce
que les capteurs de l’agent ne fournissent pas une vue complète du monde. Pour
régler ce problème, l’agent doit maintenir des informations internes sur l’état du
monde dans le but d’être capable de distinguer deux situations qui ont des
perceptions identiques, mais qui, en réalité, sont différentes. L’agent doit pouvoir
faire la différence entre un état et un autre.
Chapitre 2.
Approches
Page 33
2.5.4. Système Multi Agents (SMA)
Dans la plupart des situations réelles, toutefois, l’agent n’est pas seul dans
son environnement et il y a bien d’autres agents autour de lui. Il nous faut donc aborder
des systèmes où plusieurs agents doivent interagir entre eux. De tels systèmes sont
appelés «systèmes multi-agents» (SMA) et ils possèdent les caractéristiques principales
suivantes [24]:
Chaque agent a des informations ou des capacités de résolution de problèmes
incomplètes, donc chaque agent a un point de vue limité.
Il n’y a pas d’entité centrale qui assure le contrôle global.
Les données sont distribuées.
Les traitements au niveau des agents sont asynchrones.
Bien que les SMA offrent de nombreux avantages potentiels pour les
applications qui s’y prêtent, ils doivent aussi relever beaucoup de défis.Parmi ces défis, il
convient de noter:
Comment décomposer les tâches et les allouer aux agents ?
Comment faire communiquer efficacement les agents ?
Comment faire agir efficacement les agents ? Comment leur assurer une
coordination profitable ?
Comment reconnaître et réconcilier les conflits entre agents ? Comme les faire
négocier et trouver le meilleur compromis entre eux ?
Comment permettre aux agents de représenter et raisonner sur les actions,
politiques ou stratégies d’autrui ?
Comment maximiser la satisfaction (ou l’utilité) de chacun des agents dans un
environnement compétitif ?
Comment un agent pourrait maximiser sa propre satisfaction tout en contribuant à
la réussite du groupe dans un environnement d’agents coopératifs ?
Chapitre 2.
Approches
Page 34
Dans le passé, plusieurs livres ont été élaborés sur les systèmes multi-
agents. Parmi les livres les plus récents on peut citer, entre autres, les livres de Shoham
[25] et de Vlassis [24].
2.5.4.1. Avantages
Certains domaines sont géographiquement ou fonctionnellement distribués
et par conséquent les systèmes multi-agents constituent la façon adéquate de les
modéliser. C’est le cas, par exemple, des applications distribuées comme la gestion de
plusieurs censeurs, robots, véhicules, frégates, ou bien le contrôle aérien, les bases de
données coopératives distribuées, etc. C’est le cas également des réseaux complexes
comme l’Internet, le commerce électronique, les réseaux d’eau, de transport, de
télécommunication, etc.
2.5.4.2. SMA réactifs
L'école réactive prétend qu'un système globalement intelligent ne
nécessite nullement l'intelligence individuelle de ses agents. C’est un système multi-
agents dont les agents ne disposent pas de mémoire, de représentation globale du
système, de la tâche à effectuer et des autres agents. De simples mécanismes de réaction
aux évènements, ne prenant en compte ni explicitation des buts, ni mécanismes de
planification, Leurs prises de décision sont simples, de type stimulus réponse et se
fondent uniquement sur des perceptions locales. Ces mécanismes peuvent en effet
résoudre des problèmes qualifiés de complexes.
La résolution de la tâche est produite par des couplages des
comportements des agents. Ces couplages peuvent être la conséquence d’interactions
méditées par l’environnement comme dans les approches stigmergiques.
L’environnement est modifié par les actions effectuées par les agents et ces modifications
ont en retour une influence sur les comportements des autres agents. De la même manière
la position d’un agent dans l’environnement peut être perçu par les autres agents et
influencer leurs comportements. L’un des exemples les plus frappants étant celui d'une
fourmilière artificielle.
Chapitre 2.
Approches
Page 35
L’idée clé est que le comportement intelligent peut être généré sans
représentation explicite, sans raisonnement abstrait explicite et que l’intelligence est une
propriété émergente de certains systèmes complexes due aux interactionsc'est-à-dire que
le comportement intelligent de l’agent n’est pas séparé, mais c’est un produit de
l’interaction que l’agent maintient avec son environnement.
2.6. Conclusion
Nous avons vu les origines des MDVRP qui est un problème NP-Difficile
et d’optimisation combinatoire. Ces problèmes ne se résolvent pas avec les méthodes
exactes surtout s’ils sont de grande taille. En étudiant les méthodes heuristiques et méta-
heuristiques et surtout l’ACO, nous avons conclu que cette dernière nous permet de
trouver des meilleures solutions. Ces solutions sont plus performantes en qualité par
rapport à celles extraites des autres méthodes concurrentes dans le domaine (ex : PSO,
AG, SA, …).
Chapitre 3.
Synthèse
3.1. Introduction
Dans ce chapitre nous évoquerons l’idée d’impliquer l’approche ACO, à
base d’agent réactif, qui va nous permettre de résoudre notre MDVRP avec une nouvelle
approche que nous allons présenter dans ce qui suit.
Ainsi nous allons exposer l’aperçu global de l’environnement de notre
approche et nous allons ensuite détailler plus largement les démarches de l’approche.
Chapitre 3.
Synthèse
Page 37
3.2. Vue globale
Notre œuvre comprend deux phases: Une phase de planification et une
autre d’optimisation. Ces deux phases s’exécutent en parallèle et répétitivement mais la
deuxième phase dépend de résultats de la première. La phase de planification consiste à
trouver le plan global faisable, tandis que la phase d’optimisation consiste à optimiser le
plan faisable (voir figure : 3-1).
Figure 3-1.Vue globale
3.2.1. Planification
Bien dit qu’on a un problème de MDVRP, notre approche lance sa phase
principale (planification), cette dernière se base sur l’activité des agents réactifs (fourmis
planificatrices). Cette phase lance une seule fourmi de planification depuis chaque dépôt
pour un essai de recherche. Chaque fourmi cherche une tournée faisable pour son propre
dépôt. A la fin de chaque essai de recherche l’ensemble des tournées construit un plan
global, ensuite la deuxième phase (optimisation) sera lancée. Cette phase de planification
se répète plusieurs fois au but de trouver un autre plan.
On remarque qu’au lieu de faire lancer plusieurs fourmis
planificatrices pour chaque dépôt comme c’est dit en principe pour le VRP ou le
Chapitre 3.
Synthèse
Page 38
MDRP nous avons lancé une seule fourmi pour la planification et les autres
fourmis seront lancées pour la deuxième phase d’optimisation
3.2.2. L’Optimisation
En cours de la recherche d’un plan global, la phase d’optimisation cherche
d’optimiser le dernier plan global déjà trouvé (le meilleur) à l’aide des agents réactifs
(fourmis optimisatrices), dans lequel un certain nombre des fourmis optimisatrices seront
lancées depuis chaque dépôt, de manière parallèle. Ces fourmis optimisent la tournée de
son propre dépôt (l’optimisation des tournées sera en parallèle).
3.3. Fractures de base
Avant la réalisation de notre approche il faudrait que trois éléments de
base soient présents:
Le problème.
Fourmi planificatrice.
Fourmi optimisatrice.
Chapitre 3.
Synthèse
Page 39
Figure 3-2. Diagramme de classes.
Chaque élément de base joue un rôle très important dans le déroulement
de notre approche:
3.3.1. Problème
3.3.1.1. Définition
Le problème c’est l’élément qui contient les informations nécessaires d’un
MDVRP, il représente aussi un centre de communication pour les fourmis : d’un côté
c’est l’environnement du problème MDVRP et de l’autre côté c’est l’ordonnanceur dans
le cas de concurrences. Le problème se représente sous une forme de graphe contenant:
Informations des dépôts (numéro, nombre des véhicules, capacité de
chaque véhicule, coordonnés spatiales).
Informations des clients (numéro, nombre des demandes, coordonnés
spatiales).
Matrice de distances (distance entre chaque dépôt et client, et entre chaque
client et client).
Matrice de phéromone (pour la méta-heuristique ACO).
Chapitre 3.
Synthèse
Page 40
Plan global et son longueur, autrement dit la solution du problème généré
par les fourmis.
Constants de méta-heuristique ACO (α, β, …).
Figure 3-3. Diagramme de classe de Problème
Encore le problème assure quelque fonctionnalité de base :
Lancement de recherche (lancement des fourmis planificatrices).
Joue le rôle d’un ordonnanceur pour la gestion de concurrence entre les
agents.
Comparaison entre les résultats de planification ou optimisations.
Garder le meilleur plan global ou tournées optimisées.
Chapitre 3.
Synthèse
Page 41
3.3.1.2. Fonctionnement
Comme nous avons dit précédemment le problème contient toutes les
informations de base d’un problème MDVRP, il faut alors avant le démarrage de la
recherche pour une solution au problème:
A. Initialiser : le problème initialise toutes informations sur les dépôts, clients,
matrice des distances, les paramètres pour l’ACO (fourmis) : matrice de
phéromone, α (facteur de désirabilité), β (facteur de visibilité), γ (facteur de
serviabilité), facteur d’évaporation de phéromone, Q (taux de phéromone pour
le m-a-j des tracés). Encore il crée et initialise une fourmi planificatrice pour
chaque dépôt. Ensuite le central (problème) passe à l’action de lancement des
fourmis planificatrices.
B. Lancer fourmis : Les fourmis crées précédemment seront lancés de manière
parallèle pour la recherche d’une solution au problème MDVRP décrit,
ensuite l’ordonnanceur (l’environnement) passe à la gestion des trois actions
suivantes (C, D, E) de façon synchrone au but de gérer la concurrence entre
les fourmis.
C. Donner accès: au moment où les fourmis cherchent à résoudre le problème
(cherchent des tournées) elles ont besoin de l’accès à un client (voir 3.3.2.2
action C) et en conséquence de concurrence de ces dernières, cette action
(méthode) garantit la gestion des demandes d’accès dans laquelle elle
fonctionne de manière synchrone et ne serve qu’une demande à la fois et met
les autres en attente, jusqu’à la fin de réponse à la demande en cours de
traitement. L’ordonnanceur dans ce cas donne la réponse au client proposé à
lui accéder:
Si client est déjà visité, alors la réponse sera négative.
Si client est non visité, la réponse sera positive.
Ensuite l’ordonnanceur envoie la réponse à la source de demande (fourmi planificatrice)
et consulte la demande d’accès suivante (s’il y a une demande d’accès en attente).
Chapitre 3.
Synthèse
Page 42
D. Recevoir tournée :lorsque la fourmi termine sa tournée, le central (problème)
reçoit le résultat (sa tournée) et il continue à l’étape suivante.
E. Garder tournée : la tournée reçue est gardé temporairement en l’associant
avec son dépôt et sa longueur est additionnée à une longueur temporaire de
plan. Cette action se continue jusqu’à ce que chaque fourmi planificatrice
déclare ses fins de tournée, alors le central passe à l’évaluation des résultats.
F. Evaluer plan : bien que toutes les fourmis planificatrices avaient terminées
leurs tournées (chaque dépôt a une tournée et tous les clients sont bien servis),
le central maintenant un plan global (solution pour le problème MDVRP), doit
évaluer ce plan dans les conditions suivantes :
S’il n’y a de plan déjà trouvé, alors garder les résultats comme un nouveau
plan global.
Si un plan déjà existe, alors comparer sa longueur avec la somme des
longueurs des tournées « longueur temporaire de plan » :
o Si la longueur temporaire est grande ou équivalente à la longueur de
plan global déjà trouvé, alors ignorer tous les résultats et notifier aux
fourmis planificatrices que le résultat de recherche est négatif (il n’y a
pas de nouveau plan meilleur, on garde le plan meilleur précédent).
o Si la longueur temporaire est mieux (moins) que la longueur de plan
global déjà trouvé, alors notifier aux fourmis planificatrices que le
résultat de recherche est positif.
Ensuite, le problème passe à l’action suivante :
G. Mettre à jour la matrice de phéromone : dans cette action le problème
prendre le rôle de l’environnement dans lequel il modifie la matrice de
phéromone pour assurer le bon fonctionnement de notre approche et pour que
les fourmis fonctionnent de façon correcte (interaction entre elles par principe
de coordination par stigmergie montré dans la figure suivante) :
Chapitre 3.
Synthèse
Page 43
Figure 3-4. Coordination par stigmergie.
La mise à jour de phéromone (tracé de phéromone sur les chemins) est basée
sur la règle suivante :
𝜏𝑖𝑗 = (1 − 𝑝)𝜏𝑖𝑗 + 𝑝 ∙ 𝑥
𝜏𝑖𝑗: c’est le taux de phéromone dans le chemin entre i et j.
𝑝 : le facteur d’évaporation de phéromone.
𝑥: le taux de phéromone ajouté en conséquence de l’utilisation de cheminij :
Si le cheminij n’est pas déjà parcouru dans la création du plan, alors 𝑥 = 0.
Si le cheminij déjà parcouru en cours de la création du plan, alors𝑥 = 𝑄/
𝐿 :
Q : taux de phéromone pour le mise à jour.
L : longueur de plan.
Dès que l’environnement termine cette étape, il ensuite lance les fourmis
planificatrices pour un nouvel essai de recherche (action B) et met le plan à
jour s’il existe un nouveau plan.
H. Mettre à jour le plan :la mise à jour du plan global ne s’effectue que dans les
deux cas suivants :
Si un nouveau plan global est trouvé, alors le central le garde avec sa
longueur comme la meilleure solution trouvée.
Si une tournée optimisée est reçue, alors le central remplace la tournée
ancienne (dans le plan) par la tournée reçue optimisée et recalcule la
nouvelle longueur de plan de nouveau et le garde comme le meilleur.
(Environnement) Modifie les actions futures des agents
(Fourmis) Les actions des agents modifient l’environnement
Chapitre 3.
Synthèse
Page 44
I. Recevoir tournée optimisée : lorsque le central reçoit une tournée optimisée
venant d’une fourmi optimisatrice, il passe aussi à l’action (action H).
La figure suivante résume les démarches montrées sous-dessus :
Figure 3-5.Diagramme d'activité du Problème.
Chapitre 3.
Synthèse
Page 45
3.3.2. Fourmi planificatrice
3.3.2.1. Définition
L’agent fourmi planificatrice est un agent qui joue le rôle d’un véhicule
qui assure le déroulement de la phase de planification dans laquelle elle :
Crée une tournée pour son dépôt à l’aide d’une méta-heuristique ACO.
Déclare la tournée au central.
Lance des fourmis optimisatrices.
Figure 3-6. Diagramme de classe d'une fourmi planificatrice.
Chapitre 3.
Synthèse
Page 46
3.3.2.2. Comportement
Ainsi que la recherche est lancée, une fourmi planificatrice sera initialisée
dans son propre dépôt. Chaque fourmi planificatrice va prendre le rôle d’un véhicule de
son dépôt Pour cela ces fourmis doivent en premier lieu:
A. Charger :chaque fourmi planificatrice initialise sa capacité interne (charge d’un
véhicule) et marque le dépôt comme emplacement actuel et l’ajoute dans la
tournée et elle décrémente le nombre total des véhicules de son dépôt par un (c’est
comme si un véhicule est débarqué). Ensuite elle vise à servir un client et passer à
l’étape suivante.
B. Calculer probabilités: puisque notre approche est basée sur l’ACO, alors il est
nécessaire pour chaque fourmi de calculer les probabilités des clients présents
dans l’environnement (MDVRP) avec la condition de client n’est pas déjà visité
(existe dans la tournée). Ce calcul est bien basé sur la formule suivante :
𝜌𝑥𝑦 = (𝐷 ∗ 𝑉 ∗ 𝑆)/ ∑ 𝜌𝑥𝑘
𝑘
𝑥
𝐷 (facteur de désirabilité) = taux de phéromone 𝜏 dans le chemin entre
l’emplacement actuel x et y élevé à la puissance de constant α :
𝐷 = 𝜏𝑥𝑦𝛼
𝑉 (facteur de visibilité) = 1/distance entre l’emplacement actuel x et
y élevé à la puissance de constant 𝛽 :
𝑉 = (1/𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒𝑥𝑦)𝛽
𝑆 (facteur de serviabilité) = c’est un facteur pour donner la priorité de
service au client par rapport à un autre:
Chapitre 3.
Synthèse
Page 47
Servir le client avec le moins de demandes :
𝑆 = (1 −𝑐ℎ𝑎𝑟𝑔𝑒𝑟𝑒𝑠𝑡é − 𝑛𝐷𝑒𝑚𝑎𝑛𝑑𝑒𝑠𝑦
𝑐ℎ𝑎𝑟𝑔𝑒𝑟𝑒𝑠𝑡é)
𝛾
Servir le client avec le plus de demandes :
𝑆 = (𝑐ℎ𝑎𝑟𝑔𝑒𝑟𝑒𝑠𝑡é
𝑐ℎ𝑎𝑟𝑔𝑒𝑟𝑒𝑠𝑡é − 𝑛𝐷𝑒𝑚𝑎𝑛𝑑𝑒𝑠𝑐𝑙𝑖𝑒𝑛𝑡)
𝛾
Il est possible que l’ensemble des possibilités sera vide (aucune possibilité
de servir n’importe quel client), dans ce cas la fourmi se dirige directement au dépôt
(action E).
Bien que chaque fourmi tienne l’ensemble des probabilités (chaque client
associé avec son probabilité), elle passe au choix de client.
C. Choisir un client : dans cette étape la fourmi choisit le client avec la probabilité la
plus haute pour le servir. Mais à cause que toutes les fourmis planificatrices
fonctionnent de même manière (parallèlement) il est possible que deux fourmis ou
plus tombent dans le cas de choisir le même client en même temps, alors le rôle
de central (problème) vient ici pour juger la concurrence entre elles. Donc chaque
fourmi envoie une demande d’accès au client au central (voir 3.3.1.2 action C) et
attend la réponse :
Si la réponse est négative (refusée) elle choisit de nouveau le client avec la
probabilité plus haute suivante (plus bas que la dernière sélectionnée) et
attend. Cette procédure est répétitive tant que la réponse est négative jusqu’à
ce qu’elle atteigne le cas où il n’y a pas de choix (toute demande possible pour
tout client est refusée, alors elle passe au dépôt (action E).
Si la réponse est positive elle doit maintenant servir le client élu.
Chapitre 3.
Synthèse
Page 48
D. Servir le client : après que la fourmi planificatrice sera à l’emplacement du client
sélectionné, elle lui sert ses demandes, donc elle soustrait le nombre de ses
demandes de sa charge (capacité) à base de la règle suivante :
𝑐ℎ𝑎𝑟𝑔𝑒𝑟𝑒𝑠𝑡é = 𝑐ℎ𝑎𝑟𝑔𝑒𝑟𝑒𝑠𝑡é − 𝑛𝐷𝑒𝑚𝑎𝑛𝑑𝑒𝑠𝑐𝑙𝑖𝑒𝑛𝑡
Ensuite la fourmi ajoute ce client à la tournée et le marque comme
emplacement actuel, additionne la distance traversé de chemin entre le lieu précédent et
le lieu de ce client avec la distance totale de la tournée.
Après que la servitude de ce client est terminée, la fourmi continue les
étapes précédentes (B, C) de manière répétitive.
E. Aller au dépôt : dans les deux cas suivants la fourmi planificatrice passe au dépôt
à cause de l’incapacité de service :
S’il existe au moins un client non servi et il y a de véhicule dans le dépôt
(nombre total de véhicule resté > 0), alors la fourmi passe à l’étape de
chargement (action A).
S’il n’existe pas de client pour le servir ou il n’y a pas de véhicule resté au
dépôt (nombre total de véhicule resté = 0), alors la fourmi arrive à la fin de
tournée et passe à l’action suivante.
F. Déclarer la fin de tournée : la fourmi ferme la tournée par l’ajout du dépôt à la
tournée, et déclare sa tournée avec sa longueur au central. Ensuite la fourmi se
met en état d’attente.
G. Attendre : après la déclaration de fin de tournée la fourmi reste en attente pour
une notification venant du central pour démarrer à un nouvel essai de recherche
(voir 3.3.1.2 action F).Après qu’une notification est reçue la fourmi démarre de
nouveau pour la recherche d’une tournée. Avec la notification le central déclare
qu’il y a un nouveau plan trouvé ou pas, dans ce cas celle la lance un ensemble
des fourmis optimisatrices pour améliorer la tournée de son propre dépôt.
La figure suivante de diagramme d’activité résume les démarches expliquées
précédemment.
Chapitre 3.
Synthèse
Page 49
Figure 3-7. Diagramme d'activité d'une fourmi planificatrice. Les actions
(A,B ,C,D,E,F,G / décrites précédemment)
Chapitre 3.
Synthèse
Page 50
3.3.3. Fourmi optimisatrice
3.3.3.1. Description
L’agent fourmis optimisatrice est un agent qui garantit l’optimisation de
tournée trouvée de son dépôt après qu’un nouveau plan global est trouvé. Ce type d’agent
est lancé par la fourmi planificatrice de même dépôt (chaque fourmi planificatrice lance
un ensemble des fourmis optimisatrices associés à son dépôt).
Figure 3-8. Diagramme de classe d'une fourmi optimisatrice.
Chapitre 3.
Synthèse
Page 51
3.3.3.2. Comportement
Dès qu’un nouveau plan est trouvé le central relance les fourmis
planificatrices, chacune de ces fourmis lance de son côté un ensemble des fourmis
optimisatrices qui sont associées à son dépôt pour optimiser le résultat déjà trouvé et
accepté (tournée). Dans la procédure d’optimisation de tournée chaque ensemble des
fourmis optimisatrices fonctionnent en même temps en cherchant un aspect optimisé de
la tournée de dépôt. Chaque fourmi optimisatrice fonctionne (marche) en parallèle avec
les autres, mais indépendamment. Encore elle a la même façon qu’une fourmi
planificatrice pour extraire une solution mais avec des petites différences qui sont notées
en ce qui suit:
L’espace de recherche d’une optimisatrice est limité sur les clients inclus dans
la tournée de son dépôt qui est marqué comme une partie du plan global (plan
partiel). Tandis que l’espace de recherche pour les fourmis planificatrices
couvrent tous les clients.
Les fourmis optimisatrices de même dépôt ne partage aucune information ou
interaction sauf pour une matrice de phéromone. Cette matrice de phéromone
est consacrée pour les fourmis optimisatrices d’un seul dépôt (chaque
ensemble d’optimisatrices a une seule matrice de phéromone).
Apres que l’optimisatrice calcule les probabilités et sélectionne un client pour
le servir, elle se déplace à lui directement car il n’y a pas de concurrence entre
les fourmis optimisatrices. En revanche les fourmis planificatrices n’accèdent
au clients qu’après réception d’autorisation d’accès venant du problème
Avant la déclaration de nouvelle tournée (optimisée), elle doit valider la
tournée par vérifier que tous les clients les ont visités et en plus elle doit
s’assurer que la longueur de cette tournée est mieux que l’autre de son dépôt.
Une fois qu’elle s’est assurée de la validité (fiabilité) de tournée optimisée elle
la déclare directement au centrale (voir 3.3.1.2 action I).
Que ce soit la tournée générée par la fourmi optimisatrice est valide ou ne l’est
pas, l’action suivante de la fourmi sera de mettre à jour la matrice de
phéromone de l’ensemble de la même manière expliquée dans (voir 3.3.1.2
Chapitre 3.
Synthèse
Page 52
action G) ensuite, la fourmi va se réinitialiser elle-même et va redémarrer pour
la recherche d’une autre tournée optimisée une autre fois.
Figure 3-9. Diagramme d'activité d'une fourmi optimisatrice.
3.4. Représentation de solution
Chaque plan qui apparait par la recherche de notre approche représente
une solution faisable pour le problème MDVRP posé. Le plan se représente sous la forme
suivante:
𝑃𝑙𝑎𝑛 = {𝑡𝑜𝑢𝑟𝑛é𝑒𝐷0, 𝑡𝑜𝑢𝑟𝑛é𝑒𝐷1, … , 𝑡𝑜𝑢𝑟𝑛é𝑒𝐷𝑛}
Puisque le plan se construit d’un ensemble des tournées et que chaque
tournée appartient à un dépôt spécifiée dans le problème. Une tournée d’un dépôt peut
s’écrire comme suit :
Chapitre 3.
Synthèse
Page 53
𝑡𝑜𝑢𝑟𝑛é𝑒𝐷𝑥 =
{𝐷𝑥, 𝐶1, 𝐶14, … , 𝐶5, 𝐷𝑥, 𝐶3, … , 𝐷𝑥} où 𝐶𝑥est un client.
Pour l’extraction de la solution il faut bien lire la tournée. Dans ce qui suit
nous donnons𝑇𝐷1 = {𝐷1, 𝐶10, 𝐶12, 𝐶5, 𝐷1, 𝐶23, 𝐶2, 𝐷1, 𝐶0, 𝐷1}comme un exemple de
tournée. Pour appliquer cette tournée au dépôt qui lui est associé il faut en premier lieu
extraire chaque tour de véhicule. Le tour d’un véhicule est la partie de tournée qui
commence par le dépôt et se termine par le dépôt . Dans 𝑇𝐷1 :
{𝐷1, 𝐶10, 𝐶12, 𝐶5, 𝐷1}est un premier tour de véhicule concerné, dans
lequel le véhicule démarre depuis le dépôt 𝐷1, ensuite se dirige vers client 𝐶10 pour le
servir, ensuite au client 𝐶12, et le client 𝐶5, et finalement retourne au dépôt de départ 𝐷1.
{𝐷1, 𝐶23, 𝐶2, 𝐷1}est le second tour de véhicule.
{𝐷1, 𝐶0, 𝐷1}est le troisième tour de véhicule.
3.5. Travaux connexes
Dans le cadre de résolution du problème MDVRP, nous avons passé revue
à quelques articles qui s’intéressent à résoudre un MDVRP par la méta-heuristique ACO:
A parallel improved ant colony optimization for multi-depot vehicle routing
problem [26].
Ce papier présente une méthode de résolution du problème de routage de
véhicules avec multi dépôts. Un virtuel central est ajouté au MDVRP qui devient un V-
MDVRP, similaire au VRP avec un central. Une optimisation améliorée de colonie de
fourmi avec la stratégie parallèle de « gros grains », et la stratégie de la fourmi-poids et
l’opération de mutation, est présentée pour le V-MDVRP. Les résultats des calculs pour
des problèmes de référence 23 sont signalés et comparés à ceux d'autres optimisations de
Chapitre 3.
Synthèse
Page 54
colonie de fourmis. Journal de la société de recherche opérationnelle (2011) 62, 183-188.
doi:10.1057/Jors.2009.161 a publié en ligne 10 février 2010
Ant colony system for a dynamic vehicle routing problem [39].
Dans cet article on examine un problème de routage dynamique de
véhicule et on propose une stratégie de résolution de problèmes, basée sur le paradigme
de l'Ant Colony System. Quelques nouveaux problèmes de point de repère de domaine
public sont définis, et l'algorithme proposé a été testé sur eux. Enfin, la méthode
présentée est appliquée à une étude de cas réaliste, mise en place dans la ville de Lugano
(Suisse).
Et d’autres articles titrés comme suit:
An ant colony optimization technique for solving min–max Multi-Depot
Vehicle Routing Problem [27].
A New Solution Approach To Multi-Depot Vehicle Routing Problem With
Ant Colony Optimization [28].
An Improved Ant Colony Optimization for Multi-Depot Vehicle Routing
Problem [29].
Solving the Multi-Depot Vehicle Routing Problem using Ant Colony
Optimization and Re-Assignment [30].
3.6. Conclusion
Dans ce chapitre, nous avons évoqué le fonctionnement de notre approche
qui peut résoudre un problème d’optimisation combinatoire et particulièrement le
MDVRP à l’aide d’une méta-heuristique ACO, (les fourmis planificatrices, et les fourmis
optimisatrices) à deux phases : planification & optimisation.
Chapitre 4.
Intégration
4.1. Introduction
Après avoir terminé le travail théorique, nous désirons concrétiser notre
approche en pratique, ainsi à cette fin, nous avons créé une application propre à nous que
nous avons appelée « MDVRP_ACO _APP». Cette application met notre approche au
cœur de réalités et tests pour montrer les étapes vues dans le chapitre précédant (phase de
planification &phase d’optimisation).
Dans ce chapitre nous allons révéler les plateformes qu’on va utiliser dans
la réalisation de notre application (Java, Janus, Graph-Stream) ainsi que les outils.
Ensuite nous parlons de l’application elle-même, puis nous la mettons
sous des expérimentations pour évaluer ses résultats en utilisant des instances de
MDVRP.
Chapitre 4.
Intégration
Page 56
4.2. Plateformes & bibliothèques
Dans l’étape de réalisation de notre application « MDVRP_ACO _APP »
nous avons besoin d’un langage de programmation forte, pour cela nous avons choisi le
langage de programmation Java qui est très populaire, intégré dans beaucoup des
plateformes (PC, mobile, …) et riche en bibliothèques des agents & SMA, même, elle se
caractérise par l’abondance des bibliothèques de manipulation des graphes.
Parmi les bibliothèques les plus célèbres dans la manipulation des graphes
nous citons « Graph-Stream » que nous allons utiliser pour le dessin et manipulation de
graphe.
Janus-Project est une plateforme basée sur Java pour la manipulation des
SMA, cette plateforme sera notre manipulateur des agents réactifs (fourmis) dans notre
application.
4.2.1. Graph-Stream
Graph-Stream est une bibliothèque Java qui gère les graphes en mettant
l'accent sur les aspects dynamiques des graphes. L'objectif de la bibliothèque est de
fournir un moyen de représentation des graphes et de travailler là-dessus. A cet effet,
Graph-Stream propose plusieurs classes de graphes qui permettent de modéliser des
graphes orientés et non orientés, 1-graphe ou p-graphes (alias multi-graphes, qui sont des
graphes qui peuvent avoir plusieurs bords entre deux nœuds). Graph-Stream permet de
stocker tout type d'attribut de données sur les éléments du graphe : nombres, chaînes ou
n'importe quel objet. De plus, en outre, Graph-Stream fournit un moyen de gérer
l'évolution de graphe dans le temps. Cela signifie que la manière de manipuler les ajouts
et les suppressions des bords et des nœuds et des attributs de données, peuvent apparaître,
ou disparaître et ou d'évoluer [31].
Chapitre 4.
Intégration
Page 57
4.2.2. JanusProject
Janus est une plate-forme multi-agents d'open source entièrement
implémentée en Java 1.6. Janus permet aux développeurs de créer rapidement des
applications : entreprise, web et bureautiques à base multi-agents. Elle fournit un
ensemble complet de fonctionnalités pour développer, exécuter, afficher et surveiller des
applications à base multi-agents.
Les applications basées sur Janus peuvent être réparties sur un réseau.
Janus pourrait être utilisé comme une plateforme axée sur l'agent, une plate-forme
d'organisation et/ou une plate-forme holonic (plate-forme agents récursifs). En effet,
Janus est bâti sur le CRIO Méta-modèle organisationnelle dans lequel les notions de rôle
et de l'organisation sont des entités de première classe. Il gère également nativement la
notion d'agents récursifs.
4.2.2.1. Principes clés
Janus a beaucoup des principes clés de fonctionnalités,parmi eux nous
citons :
Abstraction
Concurrence
robustesse
anticipation de changement
systèmes complexes
4.2.2.2. Caractéristiques
Interface de programmation orienté agent.
Communication externe des agents avec les BDDs, GUI, …
Communication agent à agent.
Communication réseaux P2P.
Outils d’observation d’agent.
Services d’architecture orienté agent.
Chapitre 4.
Intégration
Page 58
Les états mentaux d'agents prédéfinis.
Modèle d'exécution de l'agent personnalisable.
Simulation à base multi-agent (MABS).
4.2.2.3. Agent de Janus
L’agent dans Janus est implémenté comme entité de première classe à
l'aide d'une classe java, il parait en deux genres (lourd, léger) :
Agent lourd (heavy) : chaque agent lourd a son propre thread pour gérer
son exécution. Un agent lourd est donc entièrement autonome sur le plan
des ressources informatiques.
Agent léger (light) : un agent léger partage son thread avec d'autres agents.
Si l'accès aux ressources partagées est géré par un planificateur qui est un
agent lourd. Janus fournit un planificateur par défaut pour gérer
l'exécution des agents légers. Ce dernier correspond à la holon de noyau
de Janus. Toutefois, le développeur peut aussi développer son propre
planificateur.
En plus le cycle de vie d'un agent est composé de trois activités
fondamentales, chacune est gérée par une méthode spécifique :
o Méthode activate() : elle correspond à la phase d'initialisation de
l'agent. Elle est appelée automatiquement par le noyau de Janus,
lorsqu'un agent est en train d’être lancé. Généralement, cette méthode
est le bon moment pour demander les premiers rôles joués par l'agent
considéré.
o Méthode live() : elle correspond à la partie principale du cycle de vie
de l'agent. Elle est appelée selon le comportement de l'agent. Chaque
appel à cette méthode doit exécuter une étape du comportement de
l'agent. ATTENTION : Si vous utiliser la boucle infinie dans la
méthode live() d'un agent, surtout si cet agent lancé est de type léger.
Chapitre 4.
Intégration
Page 59
Une telle pratique peut bloquer l'exécution de l'agent. Le planificateur
de l'agent va entrer dans la méthode live() et jamais sortir.
o Méthode end() : C'est l'activité de la résiliation. Toutes les ressources
utilisées par l'agent peuvent être libres dans cette méthode. Janus
fournit déjà une valeur par défaut, les implémentations de cette
méthode qui vise à libérer les divers rôles joués par l'agent. [32]
4.3. Application
Comme c’était dit précédemment que notre application est programmée
entièrement avec le langage de programmation java, à l’aide de l’IDE netbeans qui est
spécialisé pour Java et son éditeur de Swing, nous avons créé une interface graphique
pour notre d’application, qui est montré dans la figure suivante :
Figure 4-1. Interface d'application MDVRP_ACO_APP.
Chapitre 4.
Intégration
Page 60
Cette interface graphique se compose de trois parties principales :
Figure 4-2. Parties d'interface graphique s'application.
1. Partie des commandes : cette partie est la partie de contrôle de notre application, il
contient 3 commandes principaux : Fichier, Recherche et Affichage dans lesquels
on trouve :
o Ouvrir instance : (sous Fichier) à partir de cette commande l’utilisateur
peut charger un fichier d’instance MDVRP dans l’application pour
appliquer la recherche selon cette instance.
o Démarrer : (sous Recherche) cette commande lance la recherche sur un
MDVRP déjà chargé dans l’application.
o Pauser : (sous Recherche) cette commande donne la main à l’utilisateur
pour arrêter et reprendre la recherche dans n’importe quel instant.
o Les autres commandes sous la commande Affichage sont des commandes
pour manipuler l’affichage de graphe : afficher ou masquer les nœuds
(clients / dépôts) et les arcs (les chemins) et ou leurs étiquètes (noms).
2. Partie de visualisation de graphe (problème) et le plan généré par les fourmis.
3. Partie de visualisation des résultats numériques et les évènements de la recherche.
4.3.1. Expérimentations et résultats
Pour évaluer et tester notre application (approche) nous avons besoin d’un
exemple de problème MDVRP connue (célèbre), à cette cause nous avons trouvé 23
instances des MDVRP de Christofides and Eilon [33], Gillett and Johnson [34] et Chao et
Chapitre 4.
Intégration
Page 61
al [35]. Les instances sont stockées dans le site de NEO (Network and Emerging
Optimization) [36], nous pouvons les télécharger depuis [37].
4.3.1.1. Description des instances
Les 23 instances sont des fichiers qui décrivent les informations d’un
MADVRP en format numérique, le tableau suivant résume les caractéristiques de chaque
instance :
Numéro
instance
Nombre de dépôts Nombre de clients Nombre de
véhicules par
dépôt
Capacité de
chaque
véhicule
1 4 50 4 80
2 4 50 2 160
3 5 75 3 140
4 2 100 8 100
5 2 100 5 200
6 3 100 6 100
7 4 100 4 100
8 2 249 14 500
9 3 249 12 500
10 4 249 8 500
11 5 249 6 500
12 2 80 5 60
13 2 80 5 60
14 2 80 5 60
15 4 160 5 60
16 4 160 5 60
17 4 160 5 60
18 6 240 5 60
19 6 240 5 60
20 6 240 5 60
21 9 360 5 60
22 9 360 5 60
23 9 360 5 60
Tableau 1. Tableau de description des instances MDVRP.
Chapitre 4.
Intégration
Page 62
4.3.1.2. Expérimentation
Apres le lancement de notre application et l’apparition de l’interface
graphique, à partir de menu (partie de commande) dans la commande Fichier exactement
dans la commande Ouvrir instance (figure 4.3) nous ouvrons un fichier d’instance de
MDVRP, ensuite l’application charge les informations inclues dans ce fichier. Ensuite le
graphe qui représente l’instance MDVRP décrié dans fichier apparait dans la partie 2 de
l’application et les informations sur le problème s’affiche dans la partie 3 (voir figure
4.4).
Figure 4-3. Commande ouvrir.
Figure 4-4. Application après chargement d’une instance de MDVRP.
Chapitre 4.
Intégration
Page 63
Dans la partie 2 (le graphe) nous distinguons :
Un dépôt : point rond avec un couleur aléatoire plus une étiquette rouge écrié
sur elle le nom de dépôt « Dépôt_(numéro de dépôt) ».
Un client : diamant blanche entouré par un ligne bleu plus une étiquette jaune
sur laquelle est écrit le nom du client « Client_(numéro de client) ».
Un chemin : une ligne noire étiqueté par son nom « Chemin_(point A, point
B) ».
Dans la partie 3 nous trouvons les informations détaillées sur le problème chargé :
Informations générales (nombre de dépots, clients, nombre de véhicule par
dépôt, …).
Information détaillées de tous les clients (numéro, nombre de demandes,
coordonnées géographique (x,y)).
Information détaillées de tous les dépôts (numéro, coordonnées géographique
(x,y), capacité de chaque véhicule).
Chapitre 4.
Intégration
Page 64
Pour le lancement de recherche nous sélectionnons la commande
Démarrer dans la commande Recherche (figure 4.5).
Figure 4-5. Commande démarrer.
Une fenêtre nommée « Paramètre de recherche » apparait :
Figure 4-6. Fenêtre de paramètres de recherche.
Dans Cette fenêtre, il faut introduire les paramètres nécessaires pour la recherche :
Alpha, Beta, Gama, Ph init (taux de phéromone initial), Evaporation, Q : sont des
paramètres pour le méta-heuristique ACO dans notre approche.
Nombre fourmis Op : nombre de fourmis optimisatrices utilisés pour la réalisation
de phase d’optimisation.
Méthode de service : la stratégie au quelle se base la serviabilité (voir chapitre 03.
3.3.2.2 action B).
Chapitre 4.
Intégration
Page 65
Simulation : si cette valeur est activée, la recherche démarre en mode simulation
(l’utilisateur peut observer les démarches et les détails de la recherche une par
une), la valeur en revanche représente la vitesse de déroulement de simulation (0
= très lent, 10 = très rapide).
Une fois tous les paramètres sont introduits, un clic sur le bouton Démarrer et la
recherche se commence.
La première chose que nous remarquons que les chemins dans graphe sont
disparus et dans la partie 2. D’autres lignes dans la partie 3 indiquent que des fourmis
planificatrices sont créées et (voir la figure suivante).
Figure 4-7. Application dans la première étape d’un essaie de la
recherche.
Un instant après, nous pouvons observer que des traces entre les dépôts et des clients sont
apparues, ces derniers indiquent que chaque fourmi s’est déplacé de sa propre dépôt vers
un client qui elle lui est sélectionné. Si on met les yeux sur le champ d’informations
(partie 3) nous pouvons lire les actions des fourmis (calculer probabilité, demande
d’access, ….).
Chapitre 4.
Intégration
Page 66
Figure 4-8.Application dans une étape avancée d’essai de la recherche.
De cette façon, la recherche continue dans l’application, jusqu’à nous pouvons remarquer
que tous les clients sont liés (visités) :
Figure 4-9.Application dans l'pe finale d'un essaie de rechercher.
Chapitre 4.
Intégration
Page 67
Apres que tous les clients client sont liés (servis), nous pouvons remarquer un ensemble
d’informations sur le plan généré dans la partie 3 (tournée de chaque dépôt et sa
longueur, et longueur total).
Ensuite l’application répète les mêmes actions précédentes, sauf si les informations d’un
meilleur plan sont affichées.
4.3.1.3. Résultats
Apres de longs testes sur notre application à l’aide des instances
téléchargées, nous venons de montrer nos meilleurs résultats en les comparant avec ceux
introduits dans le site de NEO [38]. Les résultats et les comparaisons sont résumés dans
le tableau suivant :
La moyenne du meilleur connu des instances est :
Instance Meilleur connu Notre meilleur
p1 576.87 657.64
p2 473.53 561.93
p3 641.19 765.34
p4 1001.59 1248.64
p5 750.03 942.74
p6 876.5 1126.21
p7 885.8 1163.37
p8 4437.68 6154.74
p9 3900.22 5664.07
p10 3663.02 5386.62
p11 3554.18 5099.36
p12 1318.95 1669.6
p13 1318.95 1638.1
p14 1360.12 1647.93
p15 2505.42 3604.91
p16 2572.23 3640.94
p17 2709.09 3615.2
p18 3702.85 5335.45
p19 3827.06 5561.29
p20 4058.07 5546.3
p21 5474.84 8371.95
p22 5702.16 8415.9
p23 6095.46 8185.06
Tableau 2. Tableau des résultats et comparaisons.
Chapitre 4.
Intégration
Page 68
4.4. Conclusion
Apres la réalisation de notre application MDVRP_ACO_APP et la validation de
l’instance y est associée, et en comparant nos résultats de recherche de notre approche
avec ceux de l’instance, nous pouvons dire que notre approche donne des résultats
admissibles et acceptables.
Conclusion & Perspectives
Page 69
Voilà que cette littérature arrive à sa fin. Nous souhaitons que vous la trouviez
bénéfique. Vous remarquez qu’en fin de compte on arrive à trouver des plans qui approchent
de plus en plus au plan optimal. Nous constatons que les méthodes évolutives et surtout
l’ACO peuvent aboutir, plus efficacement et en moins de temps, à de tels résultats. Et
encore, notre approche a contribué extrêmement à arriver à ces objectifs.
Mais seulement il reste beaucoup à faire, en terme d’efficacité, surtout que le
problème de transport en général pourrait rencontrer de contraintes majeures qui sont en
évolution eux aussi, et qu’on ne peut pas les envisager dès maintenant.
Alors il faudrait intensifier les recherches et les approfondir. Ainsi nous espérons
continuer ces recherches en utilisant une autre approche qui est axée elle aussi sur l’ACO.
Ainsi nous envisageons en perspective une recherche qui vise à maitriser de plus en plus les
contraintes du dynamisme dans le MDVRP.
Comme exemples : dans les situations d’urgence où les demandes de nécessité
extrême des services varient d’un instant à l’autre, la même chose dans le domaine productif
et commercial. Ces variations instantanées des besoins (et surtout infrastructurels) exigent
des mises à jours à tout moment selon ces variations. Le MDVRP devient ainsi un problème
très dynamique, ce qui nécessite des recherches intensifs pour des solutions admissibles.
Glossaire
Terme Description
Anglais Français Anglais Français
ACO OCF Ant Colony Optimization Optimisation par Colonie de Fourmi
ACS SCF Ant Colony System Système de Colonie de Fourmi
AS SF Ant System Système Fourmi
COP POC Combinatorial Optimization Problem Problème d'Optimisation Combinatoire
CVRP PRVC Capacitated Vehicle Routing Problem Problème de Routage Véhicule avec
Capacité
DVRP PRVD Dynamic Vehicle Routing Problem Problème de Routage Véhicule Dynamique
GA AG Genetic Algorithm Algorithme Génétique
MAS SMA Multi Agent System Système Multi Agent
MDVRP PRVMD Multi-Depots Vehicle Routing Problem Problème de Routage Véhicule avec
Multiple Dépôts
MMAS SFMM Max-Min Ant System Système Fourmi Max-Min
OVRP PRVO Open Vehicle Routing Problem Problème de Routage Véhicule Ouvert
PSO OEP Particle Swarm Optimization Optimisation par Essaim de Particules
SA RS Simulated Annealing Recuit Simulé
TSP PVC Travelling Sales-man Problem Problème de Voyageur de Commerce
VRP PRV Vehicle Routing Problem Problème de Routage Véhicule
VRPPD PRVRL Vehicle Routing Problem with Pickup
and Delivery
Problème de Routage Véhicule avec
Ramassage et Livraison
VRPTW PRVFT Vehicle Routing Problem with Time
Window
Problème de Routage Véhicule avec
Fenêtre du Temps
Bibliographies
[01] Biggs N. L.; Lloyd E. Keith & Wilson Robin J. (1986). Graph Theory 1736-1936,
Clarendon Press, Oxford, ISBN 978-0-19-853916-2.
[02] Schrijver, A. (1960). On the history of combinatorioal optimization.
[03] Orman, A.J. & Williams, H.P. (2006). A survey of different integer programming
formulations of the travelling salesman problem. In: Kontoghiorghes E. & Gatu C. (eds).
Optimisation, Econometric and Financial Analysis Advances in Computational
Management Science. Springer: Berlin, Heidelberg, pp. 91–104.
[04] O¨ncan, T.; Altınel, I.K. & Laporte, G. (2009). A comparative analysis of several
asymmetric traveling salesman problem formulations. Computers & Operations
Research, Vol. 36, pp. 637–654.
[05] Dantzig, G.B.; Fulkerson, D.R. & Johnson, S.M. (1954). Solution of a large-scale
traveling salesman problem. Operations Research, Vol. 2, pp.393–410.
[06] Applegate, D.L., Bixby, R.E., Chvatal, V. & Cook, W.J. (2003). Implementing the
Dantzig–Fulkerson–Johnson algorithm for large scale traveling salesman problems. Math
Program Ser B Vol. 97, pp. 91–153.
[07] G. Dantzig and J. Ramser, “The Truck Dispatching Problem,” Management Science,
Vol. 6, No. 1, 1959, pp. 80-91. doi:10.1287/mnsc.6.1.80
[08] G. Clarke and J. R. Wright, “Scheduling of Vehicle Routing Problem from a Central
Number of Delivery Points,” Operations Research, Vol 12, No 4, 1964, pp. 568-581.
doi:10.1287/opre.12.4.568
Bibliographies
[09] G. Laporte, “The Vehicle Routing Problem: An Overview of Exact and Approximate
Algorithms,” European Journal of Operational Research, Vol. 59, No. 3, 1992, pp. 345-
358. doi:10.1016/0377-2217(92)90192-C
[10] J.-F. Cordeau, M. Gendreau, A. Hertz, G. Laporte and J. S. Sormany, “New
Heuristics for the Vehicle Routing Problem,” In: A. Langevi and D. Riopel, Eds.,
Logistics Systems: Design and Optimization, Springer, New York, 2005, pp. 279-297.
doi:10.1007/0-387-24977-X_9
[11] Tan, W.F., “Ant Colony Optimization for Capacitated Vehicle Routing Problem”
Journal of Computer Science 8 (6): 846-852, 2012 ISSN 1549-3636.
[12] NajmeZehraNaqvi et.al. “Review Of Ant Colony Optimization Algorithms
OnVehicle Routing Problems And Introduction ToEstimation-Based ACO” 2011
International Conference on Environment Science and Engineering IPCBEE vol.8 (2011)
© (2011) IACSIT Press, Singapore.
[13] Bell, J.E. and P.R. McMullen, 2004. Ant colony optimization techniques for the
vehicle routing problem. Adv. Eng. Inform., 18: 41-48. DOI: 10.1016/j.aei.2004.07.001
[14] AI, Needs archivist work, orig_578, Simulation of Cognitive Processes, translations,
WJC_PUBL_2 1963
[15] M. Dorigo, Optimization, Learning and Natural Algorithms, PhD thesis, Politecnico
di Milano, Italy, 1992.
[16]Gamberdella et al. 2003 L.M. Gamberdella, AE Rizzolli, F. Oliveriob, N.
Casagrande, A.V. Donati,R. Montemanni, and E. Lucibello.”Ant Colony Optimization
for vehicle routing in advanced logistics systems”IDSIA, Galleria 2, 6928 Manno,
Switzerland and AntOptima,via Fusion 4, 6900 Lugano, Switzerland,2003.
Bibliographies
[17] Ant System: Optimization by a colony of cooperating agents - Dorigo, Maniezzo, et
al. - 1996
[18] M. Dorigo and L. M. Gambardella. Ant Colony System: A cooperative learning
approach to the traveling salesman problem. IEEE Transactions on Evolutionary
Computation, 1(1):53–66, 1997.
[19] T. Stützle and H. H. Hoos. MAX–MIN Ant System. Future Generation Computer
Systems, 16(8):889–914, 2000.
[20] M. Dorigo, Optimization, Learning and Natural Algorithms, PhD thesis, Politecnico
di Milano, Italy, 1992.
[21] Dorigo et al
1991,1996. “http://www.scholarpedia.org/article/Ant_colony_optimization”.
[22]Dorigo et
Gambardella1997,“http://fr.wikipedia.org/wiki/Algorithme_de_colonies_de_fourmis”.
[23]Stützle & Hoos 2000
“http://www.scholarpedia.org/article/Ant_colony_optimization”.
[24] N. Vlassis: A Concise introduction to multiagent systems and distributed artificial
intelligence. Synthesis Lectures on Artificial Intelligence and Machine Learning, 1(1):1–
71, 2007.
[25] Y. Shoham, K. Leyton-Brown ET K. Leyton-Brown:MultiagentSystems:
Algorithmic, Game-Theoretic, and Logical Foundations. Cambridge University Press,
2008.
[26] B Yu1, Z-Z Yang1 and J-X XIE:B Yu1, Z-Z Yang1 and J-X Xie
“http://www.palgrave-journals.com/jors/journal/v62/n1/full/jors2009161a.html“.
[27] Koushik Venkata Narasimha, Elad Kivelevitch, Balaji Sharma, Manish Kumar
: Swarm and Evolutionary Computation, Volume 13, December 2013, Pages 63-73
“http://www.sciencedirect.com/science/article/pii/S2210650213000436”.
Bibliographies
7
4
[28] Tufan Demirel, Şule Yılmaz : Journal of multiple-valued logic and soft
computing (Impact Factor: 0.67). 05/2012; 18(3-4):421-439.
http://www.researchgate.net/publication/225274079_A_New_Solution_Approach_
To_Multi-Depot_Vehicle_Routing_Problem_With_Ant_Colony_Optimization
[29] Tang Yalian : International Journal of Engineering and Technology 05/2016;
8(5):385-388. DOI:
10.7763/IJET.2016.V8.918.http://www.researchgate.net/publication/277965113_An
_Improved_Ant_Colony_Optimization_for_Multi-
Depot_Vehicle_Routing_Problem.
[30] Mengchun Xie, Takeshi Miyawaki, Kenneth De Jong : 08/2012; DOI:
10.2316/P.2012.777-007.
"http://www.researchgate.net/publication/266629911_Solving_the_Multi-
Depot_Vehicle_Routing_Problem_using_Ant_Colony_Optimization_and_Re-
Assignment".
[31] http://graphstream-project.org/
[32] http://www.janus-project.org/Home
[33] Christofides N and Eilon S (1969). An algorithm for the vehicle-dispatching
problem. Opl Res Q 20: 309–318.
[34] Gillett BE and Johnson JG (1976). Multi-terminal vehicle-dispatch
algorithm.Omega 4: 711–718.
[35] Chao MI, Golden BL and Wasil EA (1993). A new heuristic for the multi-depot
vehicle routing problem that improves upon best-known solutions. Am J Math Mngt
Sci 13: 371–406.
[36] http://neo.lcc.uma.es/vrp/.
[37] http://neo.lcc.uma.es/vrp/wp-content/data/instances/cordeau/C-mdvrp.zip.
[38]http://neo.lcc.uma.es/vrp/wp-content/data/instances/cordeau/C-mdvrp-sol.zip.
[39] R. Montemanni¤, L.M. Gambardella,A.E. Rizzoli, A.V. Donati