une approche basée agent réactif pour l’optimisation ... · le probleme de routage de vehicule...

82
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 1 er 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

Upload: duongkhanh

Post on 29-Aug-2018

214 views

Category:

Documents


0 download

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 12

Figure 1-3. Le VRP avec multiples dépôts : Le MDVRP

dépôt

dépôt

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

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