SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
République Tunisienne
Ministère De L’enseignement Supérieur, De La Recherche
Scientifique Et De La Technologie
Université De Tunis
Faculté des Sciences de Tunis
Département des Sciences de l’Informatique
RAPPORT
De Projet de Fin d’Etudes
présenté en vue de l’obtention du
Diplôme de Licence Fondamentale en Informatique
par
Mohamed Ali Hamzaoui
Mise en place d’une solution
MapReduce pour les algorithmes de
surclassement
Soutenu le 28 juin 2016
Président
Sadok BEN YAHIA, Professeur, Faculté de Tunis El Manar - Tunisie
Rapporteur
Manel ZEKRI, Assistante, Faculté de Tunis El Manar - Tunisie
Encadrants
Anissa FRINI, Professeur, Unité départementale des sciences de la gestion Lévis UQAR,
campus de Lévis - Canada
Samir ELLOUMI, Maître assistant, Faculté de Tunis El Manar - Tunisie
Dhouha GRISSA, Chercheur Post-Doc, INRA - France
2015-2016
Remerciements
C’est avec un grand plaisir que je réserve cette page en signe de gratitude et de
profonde reconnaissance à tous ceux qui m’ont aidé à la réalisation de ce travail.
Je remercie tout d’abord, mon Directeur de projet de fin d’étude Pr. Sadok
BENYAHIA. C’est grâce à son grand soutien scientifique et moral que ce
travail a pu voir le jour.
Je tiens à remercier mes encadrants Mr. Samir ELLOUMI, Mme. Anissa
FRINI et Mme. Dhouha GRISSA pour l’intérêt qu’ils ont apporté à mon
travail et leur supervision efficace.
Par la même occasion, je remercie l’ensemble du personnel et des enseignants
de la Faculté des Sciences de Tunis pour leur implication pendant ces 3 années
de formation.
J’adresse mes sincères remerciements aux membres de jury pour l’honneur qu’ils
me font d’accepter de juger mon travail.
Table des matières
Table des figures iv
Liste des tables v
Liste des algorithmes vi
Introduction générale 1
Problmatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1 Contexte général 4
1.1 Big data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Aide multicritère à la décision . . . . . . . . . . . . . . . . . . . . 6
1.3 MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.2 Spark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.3 Hadoop et Spark . . . . . . . . . . . . . . . . . . . . . . . 11
2 Outils d’aide à la décision multicritère 14
2.1 Les étapes d’aide à la décision multicritère . . . . . . . . . . . . . 14
2.2 Méthodes d’aide à la décision multicritère . . . . . . . . . . . . . 16
2.2.1 AHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.2 TOPSIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.3 Electre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.4 SkyRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Étude comparative . . . . . . . . . . . . . . . . . . . . . . . . . . 18
i
TABLE DES MATIÈRES
3 Implementation MapReduce des algorithmes d’aide à la décision
multicritère 21
3.1 Motivation de notre approche . . . . . . . . . . . . . . . . . . . . 22
3.2 STOPSIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 SELECTRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 SSKYRULE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4 Évaluation et expérimentation 36
4.1 Outils utilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.1 Netbeans . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.2 Java 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.3 API JavaFX . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Exprimentation et évaluation . . . . . . . . . . . . . . . . . . . . 37
4.3 Les maquettes d’interfaces graphiques . . . . . . . . . . . . . . . . 41
ii
Table des figures
1.1 Architecture du système décisionnel . . . . . . . . . . . . . . . . . 5
1.2 Fonctionnement de Mapreduce . . . . . . . . . . . . . . . . . . . 7
1.3 Hadoop et son écosystème . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Spark et son écosystème . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Hadoop ne travaille qu’en mode lots avec MapReduce alors que
Spark fait du temps réel en memoire . . . . . . . . . . . . . . . . 12
1.6 Comparaison entre Spark et Hadoop . . . . . . . . . . . . . . . . 13
2.1 Les méthodes d’aide à la décision multicritère les plus connus . . . 16
2.2 Les méthodes d’aide à la décision multicritère et ses contributions 18
2.3 Les méthodes d’aide à la décision multicritère les plus utilisés . . . 20
3.1 Matrice normalisée par critère . . . . . . . . . . . . . . . . . . . . 26
3.2 matrice normalisée et pondérée . . . . . . . . . . . . . . . . . . . 26
3.3 Solution idéal positive (A∗
i ) et idéales négatif (A−
i ) . . . . . . . . . 27
3.4 Mesure de séparation de la solutuon idéal positive (S∗
i ) et la solu-
tions idéales négatif (S−
i ) . . . . . . . . . . . . . . . . . . . . . . . 27
3.5 Coefficient de mesure de rapprochement au profil idéal C∗
i . . . . 28
3.6 Candidats ordonnés . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.7 Calcul de la matrice de Concordance, C et Discordance, C et D . 31
3.8 Surclassement des candidats . . . . . . . . . . . . . . . . . . . . . 31
3.9 Calcul de le ragle fictive . . . . . . . . . . . . . . . . . . . . . . . 33
3.10 Calcul du degré de similarité des candidats par apport à la règle
fictive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
iii
TABLE DES FIGURES
3.11 Classement des candidats par ordre décroissant des degrés de si-
milarité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1 Comparaison entre TOPSIS et STOPSIS . . . . . . . . . . . . . 38
4.2 Comparaison entre SELECTRE et ELECTRE . . . . . . . . . . 39
4.3 Comparaison entre SSKYRULE et SKYRULE . . . . . . . . . . 40
4.4 Interface d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5 Interface principale . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.6 Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.7 Menu pour remplir l’importance des critères . . . . . . . . . . . . 44
4.8 Classement des candidats . . . . . . . . . . . . . . . . . . . . . . 45
iv
Liste des tableaux
2.1 Matrice d’évaluation Alternatives/Critères . . . . . . . . . . . . . 15
v
LISTE DES ALGORITHMES
Liste des algorithmes
1 STOPSIS ALGORITHM . . . . . . . . . . . . . . . . . . . . . . . 23
2 SELECTRE ALGORITHM . . . . . . . . . . . . . . . . . . . . . . 29
3 SSKYRULE ALGORITHM . . . . . . . . . . . . . . . . . . . . . . 32
vi
Introduction générale
Chaque seconde, 29 000 gigaoctets (Go) d’informations sont publiées dans le
monde, soit 2,5 exaoctets par jour, soit 912,5 exaoctets par an. Un volume de
données qui croît à une vitesse vertigineuse et donne naissance à de nouveaux
types de statistiques. De 2013 à 2020, la masse de données de l’univers digital va
doubler tous les deux ans ! Ces données sont souvent utilisées comme support au
processus d’aide à la décision. Cependant, le nombre important des données em-
pêche l’opérateur humain d’avoir une vision globale de l’information disponible.
De ce constat, ce n’est plus le manque d’informations qui pose un problème mais
c’est de pouvoir retrouver, organiser et visualiser l’information pertinente dans
un contexte spécifique.
La multiplication croissante des données produites et le développement d’outils
informatiques permettant de les analyser offrent d’innombrables possibilités tant
pour l’État que pour les entreprises. Sans aucun doute, le traitement de ces masses
de données, ou big data, joue déjà un rôle primordial dans notre société. Plusieurs
applications issues de l’analyse de big data sont déjà une réalité dans de nombreux
domaines, tels que les sciences, le marketing, les services client, le développement
durable, les transports, la santé, ou encore l’éducation. Les analyses de données
massives peuvent accroître la transparence administrative, faciliter l’évaluation
des services et assister à la prise de décision.
De nos jours, il est évident que les experts du domaine ont besoin de l’aide des
analystes dans la prise de décision associée à un problème bien déterminé. Le
processus d’aide à la décision fait référence à un ensemble varié d’outils informa-
tiques supportant directement ou indirectement la décision voir le travail général
1
Introduction générale
du gestionnaire.
Problématique
Une très grande partie des problèmes de décision se caractérise par la diversité
des points de vue qui sont souvent contradictoires et qui mesurent des choses
de nature différente. La résolution de ce type de problème doit tenir compte
simultanément de tous les points de vue jugés pertinents par le décideur. Les
recherches concernant l’aide multicritère à la décision visent à développer des
modèles plus ou moins formalisés dans la perspective d’améliorer, de faciliter et
d’accompagner le gestionnaire dans le déroulement du processus décisionnel.
Les méthodes multicritères d’aide à la décision ont révolutionné la prise de
décision, des décisions plus précises et plus objectives mais au fil du temps on a
accumulé une masse de données importante. Un problème majeur se pose alors
quant au stockage et à l’analyse des données qui consiste dans l’augmentation
à la fois de la capacité de stockage des disques durs et du temps de lecture. Il
devient alors nécessaire de paralléliser les traitements en stockant sur plusieurs
unités de disques durs et/ou en mémoire afin d’obtenir des résultats à faible
coût. Dans le présent rapport, nous nous intéressons à cette problématique par
la proposition de solutions avancées pour le traitement de données volumineuses
tout en se basant sur les notions d’aide à la décision.
Motivation
En quelques années, l’intérêt pour le Big Data s’est imposé. Si cette notion plu-
tôt floue a peiné pour trouver sa place au sein des entreprises, elle a su peu à peu
convaincre de son utilité et a fait évoluer les pratiques marketing. Ces nouvelles
sources d’information ont considérablement amélioré les prises de décisions stra-
tégiques dans les entreprises. Les différentes formes d’interprétations ont ouvert
d’autres perspectives, donnant naissance à des produits ou services innovants.
Dans le futur, ça ne sera plus l’accès aux données qui sera discriminant, car les
fournisseurs de données seront de plus en plus aptes à fournir des connecteurs
et des API 1
. Ce qui va changer la donnée, est la capacité de poser les bonnes
1. Application programming interface.
2
Introduction générale
questions autrement dit c’est le fameux processus de décision.
Pour manipuler ces mégas données, une nouvelle approche basée sur des al-
gorithmes d’aide multicritère à la décision est proposée. L’originalité de notre
approche réside dans le fait de paralléliser les algorithmes utilisés afin d’optimi-
ser leur temps d’exécution et la mémoire utilisée.
3
Chapitre 1
Contexte général
Introduction
La notion de Big Data permet de bâtir des modèles bien plus complets qu’au-
paravant. Elle améliore sensiblement la connaissance des thèmes habituellement
prospectés et ouvre de nouveaux champs d’études. Bien utilisée, cette peut amé-
liorer la connaissance des décideurs. Sur le plan technologique, elle permet de
répondre aux besoins d’analyse ultra-rapide et de très grandes quantités de don-
nées afin de vérifier plus rapidement les hypothèses et de bâtir de Spark 1
, Hadoop 2
ses successeurs.
Dans ce chapitre, nous allons commencer par définir le Big data, après, nous
allons aborder l’importance des méthodes multicritères d’aide à la décision et
expliquer comment elles sont très utilisées dans divers domaines. Ensuite, nous
allons aborder le paradigme Map reduce, la plate-forme Spark et Hadoop qui
sont des outils très utilisés dans le domaine du traitement de grandes masses de
données.
1.1 Big data
Le Big Data est un terme issu de l’anglais qui sert à désigner des ensembles
de données tellement importants qu’il est difficile de les traiter avec les moyens
habituels. La volumétrie de ces données oblige à concevoir des outils de stockage
1. http ://spark.apache.org.
2. https ://hadoop.apache.org.
4
Chapitre 1 : Contexte général
et de manipulation spécifiques. Le développement de ces outils suscite un intérêt
grandissant auprès des acteurs scientifiques et économiques en leur offrant la
possibilité d’extraire de nouvelles informations à partir de la masse de données
que peuvent stocker les systèmes d’information des entreprises. Rentrer dans le
monde du Big Data, c’est s’occuper de la corrélation entre quatre notions qu’on
regroupe généralement sous l’acronyme "concept des 4V", à savoir :
• La notion de Volume qui décrit le phénomène selon lequel les quantités de
données stockées dans les entreprises sont en train de passer de l’ordre des
tera-octets vers l’ordre des peta-octets ;
• La notion de Variété qui décrit un monde de l’entreprise ouvert dans le-
quel les sources d’information sont multiples, hétérogènes et souvent non
structurées ;
• La notion de Vitesse qui imposent aux entreprises actuelles de traiter les
données rapidement pour faire le lien avec les outils de reporting (Business
Intelligence) indispensables à la prise de décision dans l’entreprise ;
• La notion de Véracité qui traduit le changement des formats des sources de
données qui impose aux entreprises de disposer d’un système d’Information
en perpétuelle évolution.
Figure 1.1 – Architecture du système décisionnel
Le traitement de ce type de données permet d’atteindre plusieurs objectifs :
5
Chapitre 1 : Contexte général
comme par exemple l’évaluation d’une situation donnée lorsqu’on est en présence
d’informations structurées et sériées, ou encore l’élaboration de tableaux de bord
qui facilitent au quotidien la prise de décision des responsables.
1.2 Aide multicritère à la décision
La détermination de la “meilleure” action (optimale, de meilleur compromis,
etc.) constitue un défi intellectuel perpétuel en sciences et en génie. Le déve-
loppement de disciplines telles que la recherche opérationnelle, les sciences de
la gestion, l’intelligence artificielle et les systèmes d’information, supportés par
de puissants outils informatiques, constitue des aides pour prendre de “bonnes”
décisions.
Néanmoins, de nos jours, tout problème décisionnel complexe fait intervenir
souvent plusieurs points de vue. Les approches classiques (utilité, théorie des
jeux, analyse coût-bénéfices, programmation mathématique, etc.) se limitent à
optimiser un seul objectif à la fois. L’aide multicritère à la décision s’est alors
développée pour offrir à la fois une démarche et des outils de solutions à des
problèmes décisionnels complexes. L’aide multicritère à la décision est une dis-
cipline bien ancrée dans son temps. Elle est considérée aujourd’hui comme l’une
des branches les plus importantes de la recherche opérationnelle et des théories
de la décision qui continue à attirer plusieurs chercheurs et praticiens.
L’aide multicritère à la décision est développée pour traiter plusieurs classes de
problèmes de décision (choix, tri, classification, rangement, etc.) tout en considé-
rant plusieurs critères (attributs) qui sont souvent conflictuels et non commen-
surables, dans le but de modéliser au mieux les préférences et les valeurs du/des
décideur(s). Ses applications sont diverses et variées à savoir, l’ingénierie (e.g
industriel, civil, électrique, chimique, minier, énergétique, forestier et urbain),
l’environnement (e.g aménagement et gestion intégrée), les finances (e.g investis-
sement, composition de portefeuille et cotation de crédit), les gestions de projet,
la fiabilité des systèmes, etc.
6
Chapitre 1 : Contexte général
1.3 MapReduce
MapReduce permet de manipuler de grandes quantités de données en les distri-
buant dans un cluster de machines pour être traitées. Ce modèle connaît un vif
succès auprès de sociétés, telles Amazon.com ou Facebook, qui possèdent d’im-
portants centres de traitement de données. Il commence aussi à être utilisé par
le Cloud computing.
MapReduce est un modèle de programmation conçu spécifiquement pour lire,
traiter et écrire des volumes de données très importants. Les programmes adop-
tant ce modèle sont automatiquement parallélisés et exécutés sur des clusters
(grappes) d’ordinateurs. Le modèle de programmation fournit un cadre à un dé-
veloppeur afin d’écrire une fonction de Map et de Reduce. Tout l’intérêt de ce
modèle de programmation est de simplifier la vie du développeur. Ainsi, ce der-
nier n’a plus à se soucier du problème de parallélisation et de distribution du
travail, ou encore de la récupération des données sur HDFS, des développements
spécifiques à la couche réseaux pour la communication entre les noeuds, ainsi que
du problème d’adaptation de son développement en fonction de l’évolution de
la montée en charge (e.g scalabilité horizontale). Le modèle de programmation
permet ainsi au développeur de ne s’intéresser qu’à la partie algorithmique (?).
MapReduce se compose de deux fonctions map() et reduce() :
« map » est le nom d’une fonction de haut niveau qui applique une fonction
donnée à chacun des éléments d’une liste et retourne une liste. Par exemple :
(mapcar ’round ‘(1.3 2.7 3.4 4.5)) => (1 3 3 4)
« reduce » est le nom d’une fonction de haut niveau qui applique une fonction
donnée à tous les éléments d’une liste et retourne une liste unique. Par exemple :
(reduce ’+ ‘(1 2 3 4)) => 10
Figure 1.2 – Fonctionnement de Mapreduce
7
Chapitre 1 : Contexte général
MapReduce implémente les fonctionnalités suivantes :
1. Parallélisation automatique des programmes Hadoop, où HDFS se charge
de :
• La répartition et la réplication des données ;
• La division du travail en jobs parallèles et leur répartition par le maître ;
• Le collecte des résultats et la gestion des pannes des noeuds par le
maître.
2. Gestion transparente du mode distribué.
3. Tolérance aux pannes.
Tout l’intérêt de ce modèle de programmation est de simplifier la vie du
développeur Hadoop, en lui masquant le fonctionnement interne de Hadoop (pa-
rallélisation, tolérance aux pannes,etc). Ainsi, le modèle de programmation per-
met au développeur de ne s’intéresser qu’à la partie algorithmique. Il transmet
alors son programme MapReduce développé dans un langage de programmation
au framework Hadoop pour l’exécution.
De nombreux framework ont vu le jour afin d’implémenter le MapReduce
comme Spark et Hadoop. Le plus connu est Hadoop qui a été programmé par
Apache Software Foundation. Mais, ce framework possède des inconvénients qui
réduisent considérablement ses performances notamment en milieu hétérogène.
Il existe des frameworks qui commencent à voir le jour, permettant d’améliorer
les performances de Hadoop ou les performances globales du MapReduce, tant en
termes de vitesse de traitement qu’en consommation électrique.
1.3.1 Hadoop
Hadoop est un framework 100% open source, écrit en Java et géré par
la fondation Apache 3
. Il a été conçu pour répondre aux besoins du Big Data,
tant au plan technique qu’au plan économique. Hadoop est capable de stocker
et traiter de manière efficace un grand nombre de données, en reliant plusieurs
serveurs banalisés entre eux pour travailler en parallèle (?). Hadoop offre une
grande flexibilité. En effet, ses performances évoluent de manière quasi linéaire
en fonction du nombre de machines constituant le cluster. Plus le nombre de
nœuds est élevé, moins le temps d’exécution des jobs est court.
3. http ://www.apache.org.
8
Chapitre 1 : Contexte général
Hadoop fonctionne sur le principe des grilles de calcul consistant à répartir
l’exécution d’un traitement intensif de données sur plusieurs noeuds ou grappes
de serveurs.
Hadoop est principalement constitué de deux composants :
1. Le système de gestion de fichiers distribué, HDFS 4
.
2. Le framework MapReduce (version 1 de Hadoop)/YARN 5
(version 2 de
Hadoop).
Figure 1.3 – Hadoop et son écosystème
Plus concrètement, l’écosystème Hadoop comprend de nombreux autres outils
couvrant le stockage et la répartition des données, les traitements distribués,
l’entrepôt de données, le workflow, la programmation, sans oublier la coordination
de l’ensemble des composants. On parle des outils comme Hive 6
, Pig 7
, Hbase 8
,
Flume 9
, etc.
4. Hadoop Distributed File System.
5. Yet Another Resource Negotiator.
6. https ://hive.apache.org.
7. https ://pig.apache.org.
8. https ://hbase.apache.org.
9. https ://flume.apache.org.
9
Chapitre 1 : Contexte général
1.3.2 Spark
Apache Spark est un framework de traitement Big Data open source construit
pour effectuer des analyses sophistiquées et conçu pour la rapidité et la facilité
d’utilisation. Celui-ci a originellement été développé par AMPLab 10
, de l’univer-
sité UC Berkeley, en 2009 et passé en open source sous forme de projet Apache
en 2010.
Spark présente plusieurs avantages par rapport aux autres technologies Big
Data et MapReduce. D’abord, Spark propose un framework complet et unifié
pour répondre aux besoins de traitements Big Data pour des jeux de données,
divers par leurs natures (texte, graphe, etc.), aussi bien que par le type de source
(batch ou flux temps-réel) (?). Ensuite, Spark permet à des applications sur
clusters Hadoop d’être exécutées jusqu’à 100 fois plus vite en mémoire, 10 fois
plus vite sur disque. Il vous permet d’écrire rapidement des applications en Java,
Scala ou Python et inclut un jeu de plus de 80 opérateurs haut-niveau. De plus,
il est possible de l’utiliser de façon interactive pour requêter les données depuis
un shell.
Enfin, en plus des opérations de Map et Reduce, Spark supporte les requêtes
SQL et le streaming de données et propose des fonctionnalités de machine learning
et de traitements orientés graphe. Les développeurs peuvent utiliser ces possibili-
tés en stand-alone ou en les combinant en une chaîne de traitement complexe(?).
Figure 1.4 – Spark et son écosystème
10. https ://amplab.cs.berkeley.edu.
10
Chapitre 1 : Contexte général
1.3.3 Hadoop et Spark
Hadoop est positionné en tant que technologie de traitement de données
depuis 10 ans et a prouvé être la solution de choix pour le traitement de gros
volumes de données. MapReduce est une très bonne solution pour les traitements
à passe unique mais n’est pas la plus efficace pour les cas d’utilisation nécessitant
des traitements et algorithmes à plusieurs passes. Chaque étape d’un workflow de
traitement étant constituée d’une phase de Map et d’une phase de Reduce, il est
nécessaire d’exprimer tous les cas d’utilisation sous forme de patterns MapReduce
pour tirer profit de cette solution. Les données en sortie de l’exécution de chaque
étape doivent être stockées sur système de fichier distribué avant que l’étape
suivante commence. Cette approche a tendance à être peu rapide à cause de la
réplication et du stockage sur disque.
De plus, les solutions Hadoop s’appuient généralement sur des clusters, qui
sont difficiles à mettre en place et à administrer. Elles nécessitent aussi l’inté-
gration de plusieurs outils pour les différents cas d’utilisation Big Data (comme
Mahout 11
pour le Machine Learning et Storm 12
pour le traitement par flux).
Si nous souhaitons mettre en place quelque chose de plus complexe, il faut
enchaîner une série de jobs MapReduce et les exécuter séquentiellement. Chacun
de ces jobs présente une latence élevée, mais aucun ne peut commencer avant que
le précédent n’ait tout-à-fait terminé.
Spark permet de développer, à plusieurs étapes, des pipelines de traitement de
données complexes en s’appuyant sur des graphes orientés acycliques (DAG 13
).
Spark permet de partager les données en mémoire entre les graphes, de façon
à ce que plusieurs jobs puissent travailler sur le même jeu de données. Il s’exé-
cute sur des infrastructures Hadoop Distributed File System (HDFS) et propose
des fonctionnalités supplémentaires. Il est possible de déployer des applications
Spark sur un cluster Hadoop v1 existant avec SIMR 14
, sur un cluster Hadoop v2
YARN ou même sur Apache Mesos 15
. Plutôt que de voir en Spark un rempla-
çant d’Hadoop, il est plus correct de le voir comme une alternative au MapReduce
d’Hadoop. Spark n’a pas été prévu pour remplacer Hadoop mais pour mettre
11. http ://mahout.apache.org
12. http ://storm.apache.org
13. Directed acyclic graph.
14. Inside-MapReduce
15. mesos.apache.org
11
Chapitre 1 : Contexte général
à disposition une solution complète et unifiée permettant de prendre en charge
différents cas d’utilisation et besoins dans le cadre des traitements Big data.
Figure 1.5 – Hadoop ne travaille qu’en mode lots avec MapReduce alors que
Spark fait du temps réel en memoire
Spark est beaucoup plus rapide que Hadoop. En effet, la méthode uti-
lisée par Spark pour traiter les données fait qu’il est beaucoup plus rapide que
MapReduce. Alors que MapReduce fonctionne en étapes, Spark peut travailler sur
la totalité des données en une seule fois. « La séquence de travail de MapReduce
ressemble à ceci : il lit les données au niveau du cluster, il exécute une opération,
il écrit les résultats au niveau du cluster, il lit à nouveau les données mises à jour
au niveau du cluster, il exécute l’opération suivante, il écrit les nouveaux résultats
au niveau du cluster, etc. », explique Kirk Borne, spécialiste des données chez
Booz Allen Hamilton, un conseiller en gestion basé en Virginie. Au contraire,
Spark exécute la totalité des opérations d’analyse de données en mémoire et en
temps quasi réel : « Spark lit les données au niveau du cluster, effectue toutes les
opérations d’analyses nécessaires, écrit les résultats au niveau du cluster, et c’est
tout », Spark est jusqu’à 10 fois plus rapide que MapReduce pour le traitement en
lots et jusqu’à 100 fois plus rapide pour effectuer l’analyse en mémoire », (Kirk
Borne).
12
Chapitre 1 : Contexte général
Figure 1.6 – Comparaison entre Spark et Hadoop
Conclusion
Dans ce chapitre nous avons commencé par définir la notion de Big data. En-
suite, nous avons expliqué l’aide à la décision multicritère et son rôle majeur dans
la vie quotidienne ainsi que la vie professionnel. Par la suite, nous avons mis en
exergue le paradigme MapReduce et son utilité dans le traitement des grandes
quantités de données. Nous avons enchaîné par la définition des plate-formes Ha-
doop et Spark en terminant avec une petite comparaison entre les deux. Cette
comparaison a démontré que les performances de Spark sont nettement supé-
rieures.
13
Chapitre 2
Outils d’aide à la décision multicritère
Introduction
L’analyse multicritère est souvent utilisée dans la prise de décision. Ces
outils d’aide à la décision ont été développés depuis les années 1960. Lorsque le
décideur se trouve face à plusieurs scénarios possibles, il définit un ensemble de
critères pour juger ces scénarios
Dans ce chapitre, nous allons commencer par présenter les étapes d’aide à la
décision multicritère. Par la suite, nous allons définir les différents algorithmes
que nous adaptons après au paradigme map reduce. Enfin, nous allons réaliser
une étude comparative de ces algorithmes.
2.1 Les étapes d’aide à la décision multicritère
Nous proposons une démarche en trois étapes. Dans un premier temps, les alter-
natives potentielles sont identifiées. Dans un deuxième temps, les préférences du
décideur sont modélisées, ce qui permettra de différencier les actions potentielles.
Pour finir, un processus d’investigation mathématique se lance. Autrement dit,
une procédure d’agrégation, est définie ou choisie afin de fournir des éléments de
réponse au problème de décision.
1. Identification des alternatives potentielles :
L’identification des alternatives potentielles consiste à définir l’ensemble des
alternatives qui doivent être examinées. Cet ensemble d’alternatives n’est
pas toujours définitivement délimité. Il peut être soumis à des révisions.
14
Chapitre 2 : Outils d’aide à la décision multicritère
Des alternatives peuvent apparaître ou disparaître.
2. Modélisation des préférences du décideur :
La comparaison des alternatives à partir de leurs conséquences est souvent
rendue difficile à cause de l’imprécision, de l’incertitude et de la mauvaise
détermination de ces conséquences. C’est pourquoi la notion de critère est
introduite. Les critères permettent de comparer les alternatives entre elles.
Un critère est une fonction C à valeurs réelles définie sur l’ensemble des
alternatives potentielles. Cette fonction est définie de telle sorte que deux
alternatives a1 et a2 puissent être comparées en se basant sur les nombres
C(a1) et C(a2). Les préférences du décideur peuvent ainsi être représentées
par un ensemble de critères. Un poids peut aussi être associé à chaque
critère, selon l’importance du critère par rapport aux autres. Pour garantir
une bonne représentation de ces préférences, l’ensemble des critères doit
répondre à des exigences d’exhaustivité, de cohésion et de non redondance.
Lorsque ces exigences sont vérifiées, la famille de critères est dite cohérente.
L’évaluation des alternatives se fait sur la famille des critères. Un tableau
de performances qui présente les résultats de cette évaluation sur chaque
critère donne une vue de l’ensemble des alternatives. Les critères sont sur
les colonnes et les alternatives sont sur les lignes. La case Cj(ai) donne la
performance de l’alternative ai selon le critère Cj.
Table 2.1 – Matrice d’évaluation Alternatives/Critères
3. La procédure d’agrégation :
Une procédure d’agrégation multicritère doit être définie afin de répondre
15
Chapitre 2 : Outils d’aide à la décision multicritère
à la problématique de décision posée en s’appuyant sur le tableau des per-
formances qui caractérise les alternatives potentielles à évaluer.
2.2 Méthodes d’aide à la décision multicritère
Une très grande partie des problèmes de décision se caractérise par la diversité
des points de vue qui sont souvent contradictoires et qui mesurent des choses
de nature différente. La résolution de ce type de problèmes doit tenir compte
simultanément de tous les points de vue jugés pertinents par le décideur. Les
recherches concernant l’aide multicritère à la décision visent à développer des
modèles plus ou moins formalisés dans la perspective d’améliorer, de faciliter et
d’accompagner le gestionnaire dans le déroulement du processus décisionnel.
Figure 2.1 – Les méthodes d’aide à la décision multicritère les plus connus
2.2.1 AHP
AHP 1
est une méthode de hiérarchie analytique. Cette méthode est à la fois
puissante et souple de mise en oeuvre et d’allocation des ressources en matière de
gestion de portefeuille de produits. Elle a été développée par Thomas Saaty en
1970 (?) et permet de décomposer un problème complexe en un système hiérar-
chique, dans lequel sont établies des combinaisons binaires à chacun des niveaux
de la hiérarchie. Cette méthode est très pratique pour déterminer les poids relatifs
à des critères. En classant hiérarchiquement les situations que rencontre l’entre-
prise, le décideur peut en déduire des priorités relatives, en faire une synthèse
1. Analytic hierarchy process.
16
Chapitre 2 : Outils d’aide à la décision multicritère
plus facile à appréhender et s’en servir pour allouer efficacement ses ressources
et/ou définir les objectifs prioritaires dans une meilleure cohérence (?). Le clas-
sement s’effectue selon trois niveaux, à savoir, l’environnement, les objectifs de
l’entreprise et les cours des activités auxquels sont associés différents critères.
Ainsi, il est possible de déterminer l’alternative la plus pertinente, en fonction de
la priorité accordée à chacun des critères pris en considération (?).
2.2.2 TOPSIS
TOPSIS 2
est une méthode dont le but est de pouvoir classer par ordre de
choix un certain nombre d’alternatives sur la base d’un ensemble de critères fa-
vorables ou défavorables. Cette méthode s’inscrit dans les techniques utilisées
dans le domaine d’aide à la décision multicritères MCDM 3
. Elle a été développée
par Hwang et Yoon en 1981 (?). Son principe consiste à déterminer pour chaque
alternative un coefficient compris entre 0 et 1 sur la base des distances (eucli-
diennes) entre chaque alternative d’une part et les solutions idéales favorable et
défavorable. Nous allons voir ci-dessous en détail les étapes à suivre pas à pas.
Une alternative est dite ’idéale favorable’ si elle est la plus éloignée de la pire
alternative et la plus proche de la meilleure alternative. Une alternative est dite
’idéale défavorable’ si elle est la plus proche de la pire alternative et la plus loin
de la meilleure alternative (?).
2.2.3 Electre
Electre 4
est une famille de méthodes d’analyse multicritères développée en Eu-
rope. Sa méthode ELECTRE I a été élaborée par Bernard Roy en 1968 (?),
avec l’aide de P. BERTIER. Cette méthode vise à obtenir un sous-ensemble N
d’actions tel que toute action externe à N soit surclassée par au moins une ac-
tion de N et que les actions appartenant à N soient incomparables entre elles.
Ce sous-ensemble est souvent comparé au noyau d’un graphe de surclassement
possédant les actions comme sommets, ces derniers étant reliés entre eux par une
flèche partant de l’action surclassant et arrivant vers l’action surclassée (?). On
peut, à partir de cette première description, comprendre la philosophie générale
2. Technique for Order of Preference by Similarity to Ideal Solution.
3. Multiple Criteria Decision Making
4. Elimination Et Choix Traduisant la Realité
17
Chapitre 2 : Outils d’aide à la décision multicritère
des méthodes de surclassement. N n’est sans doute pas l’ensemble des bonnes
actions mais l’ensemble dans lequel se trouve certainement le meilleur compromis
(?).
2.2.4 SkyRule
Skyrule est une méthode dont le but est d’extraire les règles non dominées
à partir d’une table relationnelle. Cette méthode s’inscrit dans les techniques
utilisées dans le domaine d’aide à la décision multicritères. Elle a été développée
par Slim Bouker en 2015. Une règle r est dite dominée par une autre règle r’, si
pour toutes les mesures, r est moins pertinente que r’.
Figure 2.2 – Les méthodes d’aide à la décision multicritère et ses contributions
2.3 Étude comparative
La plupart des méthodes d’aide à la décision multicritère appartiennent à
l’une des deux approches opérationnelles suivantes (Roy, 1985) :
1. L’approche du critère unique de synthèse, évacuant toute incomparabilité ;
2. L’approche du surclassement de synthèse, acceptant l’incomparabilité ;
Il y a une différence fondamentale entre ces procédures d’agrégation, tou-
tefois dans les méthodes appartenant à ces deux approches les préférences sont
introduites a priori.
18
Chapitre 2 : Outils d’aide à la décision multicritère
Dans la première approche : inspirée américaine, les préférences locales (au
niveau de chaque attribut) sont agrégées en une fonction (de valeur, d’utilité)
unique qu’il s’agit ensuite d’optimiser. Les travaux relatifs aux méthodes mul-
ticritères appartenant à cette approche étudient les conditions d’agrégation, les
formes particulières de la fonction agrégeante et les méthodes de construction de
ces fonctions (aussi bien au niveau local que global). Les principales méthodes
appartenant à cette approche sont : MAUT, SMART, UTA, TOPSIS, AHP et
G.P.
La deuxième approche : inspirée française, elle vise dans un premier temps
à construire des relations binaires, appelées relations de surclassement, pour re-
présenter les préférences du décideurs, compte tenu de l’information disponible.
Dans certaines des méthodes multicritères s’inscrivant dans cette voie, avant de
construire ces relations de surclassement, nous introduisons des seuils de discri-
mination (indifférence, préférence) et même de veto, au niveau de chacun des
critères, pour modéliser localement les préférences du décideur. Ces relations ne
sont, en général, ni transitives, ni complètes. Dans un deuxième temps, ces rela-
tions sont exploitées en vue d’aider à formuler une recommandation qui puisse
apporter une réponse au problème de décision. La formulation est formulée en
tenant compte de la problématique décisionnelle retenue. En effet, aider à déci-
der n’est pas nécessairement ou uniquement résoudre le problème du choix de la
meilleure solution. L’aide à la décision peut concerner d’autres problématiques
que celle du choix (Bana e Costa, 1996) (?). Cette approche renferme des mé-
thodes qui n’ont peut-être pas une très bonne base axiomatique mais qui sont
empreintes d’un bon réaliste pragmatique compte tenu des contextes décision-
nels fréquemment rencontrés. Les principales méthodes ou familles de méthodes
appartenant à cette approche sont : ELECTRE, PROMETHÉE, ORESTE, QUA-
LIFLEX, certaines de ces méthodes étant purement ordinales.
19
Chapitre 2 : Outils d’aide à la décision multicritère
Figure 2.3 – Les méthodes d’aide à la décision multicritère les plus utilisés
Conclusion
Le but de l’analyse multicritère est de fournir au décideur des outils lui
permettant de progresser dans la résolution de problèmes décisionnels faisant
intervenir plusieurs points de vue généralement contradictoires. Il n’est dès lors
plus question de découvrir des solutions optimales, des décisions les meilleures
selon chacun des points de vue, mais d’aider le décideur à dégager une ou plusieurs
solutions de compromis, en accord avec son propre système de valeurs.
Dans ce chapitre, nous avons présenté les different étapes d’aide à la décision
multicritère. Ensuite, nous avons défini les méthodes que nous allons implémenter,
des méthodes qui sont trop utilisées dans plusieurs domaines et qui appartiennent
à des approches différentes.
20
Chapitre 3
Implementation MapReduce des
algorithmes d’aide à la décision
multicritère
Introduction
Le modèle de programmation MapReduce fournit un cadre à un dévelop-
peur afin d’écrire une fonction de Map et de Reduce. Tout l’intérêt de ce modèle
de programmation est de simplifier la vie du développeur. Ainsi, ce développeur
n’a pas à se soucier du travail de parallélisation et de distribution du travail, de
récupération des données sur HDFS, de développements spécifiques à la couche
réseaux pour la communication entre les nœuds, ou d’adaptation de son dévelop-
pement en fonction de l’évolution de la montée en charge (scalabilité horizontale,
par exemple). Ainsi, le modèle de programmation permet au développeur de ne
s’intéresser qu’à la partie algorithmique. Il transmet alors son programme Ma-
pReduce développé dans un langage de programmation au framework Spark pour
l’exécution.
Dans ce chapitre nous allons utiliser ce modèle pour implémenter les algorithmes
TOPSIS, ELECTRE et SKYRULES afin de pouvoir gérer de grandes masses de
données.
21
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
3.1 Motivation de notre approche
L’IDC 1
estime l’univers digital à une taille de près de 4.4 Zettabytes (cor-
respondant à un peu plus de l’espace de stockage de 1000 milliards du DVD)
en 2013 et prédit une évolution à 44 Zettabytes en 2020. C’est ainsi qu’est né
le Big Data pour répondre à un besoin matériel mais aussi à un besoin en ma-
tière de business. Le terme Big Data se réfère aux technologies qui permettent
aux entreprises d’analyser rapidement un volume de données très important et
d’obtenir une vue synoptique. Ainsi, Big Data désigne un ensemble d’outils ap-
propriés pour le stockage, l’analyse et le traitement de données à grande échelle
de façon moins couteuse, plus rapide et de manière distribuée Si les données sont
là, justes sous notre nez, il nous faut encore la volonté et la capacité de les dé-
chiffrer, trier, et catégoriser pour en tirer de l’information et au final prendre une
décision. Aujourd’hui, cette masse de données est bien souvent inexploitable.
les algorithmes d’aide à la décision multicritère, définis au troisième chapitre,
permettent d’offrir aux utilisateurs des solutions objectif et optimals au problème
rencontrer, mais, quand les données aient une masse importante, ces algorithmes
perdent en matière d’agilité et de performance. Quand les données en entrées
deviennent de taille gigantesque, les algorithmes soient ils échouent de fournire
de bon résultat soient le temps d’exécution devient considérable, de ce fait, l’uti-
lisation d’une nouvelle approche s’impose.
Sur le plan technologique, pour répondre aux besoins d’analyse ultra-rapide de
très grandes quantités de données afin de vérifier plus rapidement les hypothèses
et de bâtir de spark et le paradigme map reduissait d’où vient la necessite de
notre solution. L’approche proposée consiste à tirer les avantages de pargardime
map reduce et de la plate-forme spark afin de paralléliser les algorithmes utilisés
dont le but est d’optimiser leur temps d’exécution et la mémoire utilisée.
3.2 STOPSIS
L’algorithme STOPSIS est une version amiliorée de l’algorithme initial TOP-
SIS. En effet, nous l’avons implémenté sous la plateforme Spark.
1. International Data Corporation.
22
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
Algorithme 1 : STOPSIS ALGORITHM
Data : Matrice : X , Vecteur = W , Vecteur : I
Results : Top n candidats
R ← NormalisationEuclidienne(X)
V ←MatricePondéréeNormalisée(R)
ProfitsIdéalAnti-Idéal (A∗
, A−
, I )
CalculerLaDistanceEuclidienne(V, A∗
, A−
, S∗
, S−
)
C∗
← CalculerCoefficientMesure(S∗
, S−
)
Return { Ordonner (C∗
)}.
L’algorithme précédent commence par le calcule des préférences normalisées, R.
Le processus dans cette étape est la conversion des valeurs des différents critères
dans l’intervalle [0,1], dans l’unité (normalisée) est destiné à offrir de meilleures
possibilités de comparaisons entre les critères de reconnaissance. La matrice de
décision est créée, en utilisant la formule de normalisation Eucleudienne.
ri,j =
xi,j
m
k=1
x2
i,j
i ← 1 to n j ← 1 to m
Ensuite, il Calcul des préférences normalisées avec des poids associés aux critères,
V. Le mécanisme du processus dans cette étape est de multiplier les valeurs des
différents critères de les matrices normalisées par les poids associés à ces critères
(wj). Généralement la somme de poids est définie de la façon suivante :
n
j=1
wj = 1.
Par conséquence, 0 ≤ wj ≤1.
Vi,j = Ri,j ∗ Wj i ← 1 to n j ← 1 to m
Après , il détermine la solution idéale positive et négative A∗
(PIS) et A−
(NIS),
respectivement.
À ce stade, à partir de la matrice V, nous allons produire deux différents en-
sembles de solutions, une solution idéale positive et une solution idéale négative
en fonction des valeurs normales pondérées. Les critères d’évaluation de chaque
colonne de la solution idéale sont égaux à la plus grande (la meilleure) valeur de
la matrice V et la solution idéale négative est constituée de la valeur la plus faible
23
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
(pire) si ce critère est à maximiser. Si les critères d’évaluation sont à minimiser,
dans ce cas, la solution idéale est composée de la plus petite valeur de la matrice
V et la solution idéale de la valeur maximale.
A∗
= v+
1 , ...v+
j , ..., v+
n = (max Vi,j|j ∈ J1
), (minVi,j|j ∈ J2
)
A−
= v+
1 , ...v+
j , ..., v+
n = (max Vi,j|j ∈ J2
), (minVi,j|j ∈ J1
)
où
J1
est un ensemble de critères à maximiser ;
J2
est un ensemble de critères à minimiser ;
J1
J2
= ∅
Après avoir calculer la solution idéale positive et négative A∗
(PIS) et A∗
(NIS),
l’algorithme calcule la distance Euclidienne par rapport à A∗
et A−
.
Pour chaque candidat, nous calculons sa mesure de séparation de la solution
idéale positive (S∗
i ) et la solution idéale négatif (S−
i ). À ce stade, le calcul des
mesures de séparation de chaque candidat du PIS et NIS est calculée par la
formule de distance euclidienne suivante :
S∗
i =
n
j=1
(Vi,j − A∗
j )2 i ← 1 to m
S−
i =
n
j=1
(Vi,j − A−
j )2 i ← 1 to m
S∗
i : représente la distance du i éme alternatif à partir de la solution idéale.
S−
i : représente la distance du i éme alternatif à partir de la solution idéale
négative.
Après avoir calculer S∗
i et S−
i , l’algorithme calcule un coefficient de mesure
de rapprochement au profil idéal. Dans cette étape, la proximité relative d’une
alternative au simulateur idéale, C∗
i , peut être exprimé sous la forme :
C∗
i =
S−
i
S−
i + S∗
i
i ← 1 to m 0 ≤ C∗
i ≤ 1
Enfin, l’algorithme se termine par ordonner les préférences. Dans cette étape,
24
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
un ensemble d’alternatives peut maintenant être classé selon l’ordre décroissant
de la valeur C∗
i .
Nous allons présenter maintenant un exemple illustratif de la méthode TOPSIS.
Le contexte de l’exemple consiste à déterminer un classement des modèles de
voiture suivants :
• RENAULT SCENIC ;
• VOLKSWAGEN GOLF ;
• FORD FOCUS ;
• PEUGEOT 407 ;
• CITROEN C3 PICASSO.
Sur la base des critères suivants :
• Style ;
• Fiabilité ;
• Consommation ;
• Coût.
Data R (matrice)=



6 5 4 5
6 7 5 6
7 7 4 6
7 7 3 7
5 5 6 5



W (poid) = 0.45 0.25 0.20 0.1
I (importance) = 1 1 1 0
25
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
Figure 3.1 – Matrice normalisée par critère
Figure 3.2 – matrice normalisée et pondérée
26
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
Figure 3.3 – Solution idéal positive (A∗
i ) et idéales négatif (A−
i )
Figure 3.4 – Mesure de séparation de la solutuon idéal positive (S∗
i ) et la solu-
tions idéales négatif (S−
i )
27
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
Figure 3.5 – Coefficient de mesure de rapprochement au profil idéal C∗
i
Figure 3.6 – Candidats ordonnés
En conclusion de cette partie, le classement en ordre décroissant des 4 modèles
de voiture sur la base des scores et pondérations fournis est le suivant :
1. FORD ;
2. VOLKSWAGEN GOLF ;
3. PEUGEOT 407 ;
4. CITROEN C3 PICASSO ;
28
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
5. RENAULT SCENIC .
3.3 SELECTRE
L’algorithme SELECTRE est une version plus avancée que l’algorithme ELECTRE.
En effet, nous l’avons implémenté sous la plateforme spark.
Algorithme 2 : SELECTRE ALGORITHM
Data : Matrice : G , Vecteur = K , entier : c∗
, entier : d∗
Results : Top n candidats
C ← CalculeDeConcordance(G , K)
D ← CalculeDeDiscordance(G,K)
S ← CalculeDeSurclassement(C,D,c∗
,d∗
)
Return { (S )}.
L’algorithme précédent commence par le calcul de la matrice de Concordance,
C. On définit pour chaque critère une fonction d’évaluation gj (où j=1 à n, n est
le nombre de critères), pour chaque critère, on évalue un poids kj qui augmente
avec l’importance du critère. L’indice de concordance pour deux actions a et b
est noté par C (a, b), compris entre 1 et 0, il mesure la pertinence de l’assertion
« a surclasse b », comme suit :
C (a, b) = (
∀j : g(a) ≥ g(b)
kj
K
) avec K =
n
j=1
kj
Après, il calcule la matrice de Discordance, D. L’indice de discordance D (a, b)
est défini par :
D (a, b) =



0 si ∀j, g(a) ≥ g(b)
Sinon
1
σ
maxj gj(b) − gja



σ est la différence maximale entre le même critère pour deux actions donnée.
Enfin, la relation de sur-classement pour Electre I est construite par la com-
paraison des indices de concordance et de discordance à des seuils limites de
29
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
concordance c∗
et de discordance d∗
. Ainsi, a surclasse b, si :
aSb ⇐⇒ C (a, b) ≥ c∗
et D (a, b) ≤ d∗
Nous allons présenter maintenant un exemple illustratif de la méthode SELECTRE.
L’exemple traite le choix d’un projet, parmi 6 projets concurrents, pour la réa-
lisation d’une raffinerie. Chaque projet est évalué sur la base de 5 critères envi-
ronnementaux :
• Nuisance sonore
• Séparation du territoire
• Pollution de l’air
• Impact sur l‘aménagement du territoire
• Impact sur les activités récréatives
Chaque projet est évalué en fonction des critères retenus à l’aide d’une échelle
qualitative et des scores. Plus le score est élevé, plus les impacts du projet sur
l’environnement sont moindres.
G (matrice)=



10 20 5 10 16
0 5 5 16 10
0 10 0 16 7
20 5 10 10 13
20 10 15 10 13
20 10 20 13 13



W (poid) = 0.3 0.2 0.3 0.1 0.1
c∗
= 0.9 , d∗
= 0.2
30
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
Figure 3.7 – Calcul de la matrice de Concordance, C et Discordance, C et D
Figure 3.8 – Surclassement des candidats
31
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
L’intérêt de la méthode Electre I est d’isoler un sous ensemble de solutions. En
projetant cela sur notre cas, nous nous intéressons à identifier les projets avec le
minimum d’impacts sur l’environnement. En effet, P1 et P6 sont incomparables,
par contre le projet P6 suivant surclasse l’ensemble des projets P2, P3, P4 et P5.
3.4 SSKYRULE
L’algorithme SSKYRULE est une version distribué de l’algorithme SKYRULE.
Ainsi, nous l’avons conçu sous la plateforme spark en déployant le paradigme
MapReduce.
Algorithme 3 : SSKYRULE ALGORITHM
Data : Matrice : G
Results : Top n candidats
r∗
← RègleDassociationFictive(G)
S ← DegréSimilarité(G, r∗
)
Return { Ordonner (S )}.
L’algorithme précédent commence par le calcule de la règle fictive, r∗
. Une règle
référence r∗
est une règle fictive qui domine toutes les règles de G selon l’ensemble
de mesures. Formellement : ∀ r ∈ G, r∗
≥ r. Par exemple, la règle référence r∗
peut
être une règle telle que pour chaque mesure m ∈ M, r∗
[m] doit être la meilleure
valeur parmi les valeurs correspondantes aux différentes règles. Par conséquent,
il n’existe aucune règle dans G qui domine r∗
.
r∗
= g+
1 , ...g+
j , ..., G+
n = (max G(i,j))
Après, il calcule le degré de similarité entre tous les candidats et la règle fictive ;
DegSim (r, r∗
) =
k
i=1
| ri, − r∗
i |
k
avec k égal au nombre de mesures dans G.
32
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
Enfin, l’agorithme se termine par ordonner les candidats. Dans cette étape, un
ensemble d’alternatives peut maintenant être classé selon l’ordre croissant de la
valeur S.
Nous allons présenter maintenant un exemple illustratif de la méthode SS-
KYRULE. L’objectif de cet exemple est de sélectionner le meilleur candidat d’un
champ de cinq autres candidats. Les facteurs à considérer sont l’expérience, l’édu-
cation et le charisme.
G (matrice)=



10 20 5
5 16 10
10 16 7
10 10 13
15 10 13



Figure 3.9 – Calcul de le ragle fictive
33
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
Figure 3.10 – Calcul du degré de similarité des candidats par apport à la règle
fictive
Figure 3.11 – Classement des candidats par ordre décroissant des degrés de
similarité
34
Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision
multicritère
En conclusion, le classement en ordre croissant des 5 candidats sur la base de
degré de similarité est le suivant :
1. Candidat numéro 5 ;
2. Candidat numéro 1 ;
3. Candidat numéro 3 ;
4. Candidat numéro 4 ;
5. Candidat numéro 2.
u
Conclusion
Le projet spark, qui est désormais géré par l’Apache Software Fondation, af-
fiche le plus grand nombre de contributions que tout autre projet logiciel Apache.
Dans ce chapitre, nous avons présenté la motivation de notre projet, les consé-
quences issues de l’augmentation considérable des données en entrées sur les al-
gorithmes d’aide à la décision multicritère. Ensuite, nous avons definit STOPSIS,
SELECTRE puis SSKYRULE et intégré leurs implémentation en spark qui a
été accompagnée d’une explication des différentes étapes tout en proposant un
exemple tiré de la vie réelle.
35
Chapitre 4
Évaluation et expérimentation
Introduction
Ce chapitre présente l’évaluation expérimentale de l’approche proposée. Les
évaluations ont été menées dans le but d’étudier la performance de l’approche
utilisée.
Tout d’abord, nous allons commencer par citer les différents outils utilisées ainsi
les caractéristiques matériels et logiciels. Ensuite, nous allons comparer les dif-
ferentes implémentations des algorithmes (séquentiel et pareille) pour distinguer
à la fin la valeur ajouter de la parallelisation des algorithmes dans certains cas.
Enfin, nous présenterons quelques maquettes de l’interface développée.
4.1 Outils utilisée
L’ensemble des tests ont été effectués sur un MacBook Pro sous un système
d’exploitation Mac os x el capitaine version 10.11.4. Il est doté d’une horloge
avec une fréquence de 2,5 GHz et 8 Go de mémoire centrale dont 1 Go a été
alloué à la JVM 1
lors dû l’exécution des algorithmes.
4.1.1 Netbeans
Nous avons utilisé Netbeans pour programmer notre algorithme. NetBeans est
un EDI 2
. Il comprend toutes les caractéristiques d’un EDI moderne (éditeur
1. Java virtual Machine.
2. environnement de développement intégré.
36
Chapitre 4 : Évaluation et expérimentation
en couleur, projets multi-langage, refactoring, éditeur graphique d’interfaces et
de pages Web). Conçu en Java, NetBeans est disponible sous Windows, Linux,
Solaris (sur x86 et SPARC), Mac OS X ou sous une version indépendante des sys-
tèmes d’exploitation (requérant une machine virtuelle Java). Un environnement
JDK 3
est requis pour les développements en Java.
4.1.2 Java 8
Si les versions 6 et 7 de Java étaient des évolutions douces, Java 8 est d’un tout
autre ordre. Plus de 56 nouvelles fonctionnalités ont été ajoutées. Les arrivées des
lambdas, des méthodes par défaut, des interfaces fonctionnelles et de Stream vont
modifier en profondeur le langage et donc l’écosystème Java tout entier. Nous
pouvons aussi citer l’incorporation d’une nouvelle API pour gérer les dates, de
nouvelles annotations et d’un nouveau moteur d’exécution JavaScript.
4.1.3 API JavaFX
Avec l’apparition de Java 8 en mars 2014, JavaFX devient l’outil de créa-
tion d’interface graphique (’GUI 4
toolkit’) officiel de Java, pour toutes les sortes
d’application (applications mobiles, applications sur poste d 000e travail, appli-
cations Web...). JavaFX est une pure API Java. JavaFX contient des outils très
divers, notamment pour les médias audio et vidéo, le graphisme 2D et 3D, la
programmation Web, la programmation parallèle.
4.2 Exprimentation et évaluation
Dans le cadre de l’étude expérimentale menée, nous avons eu recours à quelques
tests sous forme de graphe où nous allons faire une comparaison entre les algo-
rithmes utilisés dans ce projet en different approche (sequetionelle, parallèle)
dont le but est de demontrer la puissance de l’approche parallèle indépendam-
ment du matériel utilisé. Pour y arriver, nous avons pris comme donnée en entrée
une matrice avec un nombre de colonnes, qui égale à 5, fixe, et un nombre de
lignes variabes afin de confirmer la puissance de l’approche en parallèle pour le
traitement de grande masse de données.
3. Java Development Kit
4. Graphical User Interface
37
Chapitre 4 : Évaluation et expérimentation
Nous allons commencer par une étude comparatif entre les deux algorithmes
TOPSIS et STOPSIS :
103488 206976 413952
0
100
200
300
400
500
600
700
800
3.0 5.0 13.025.0
169.0
814.0
Nombre des lignes
tempsd’exécution(seconde)
STOPSIS ET TOPSIS
impementation parallèle implémentation séquentielle
Figure 4.1 – Comparaison entre TOPSIS et STOPSIS
Comme le montre la figure 4.1, nous constatons une croissance importante de
l’implementation séquentielle dès que le nombre de lignes augmente, par exemple
lorsque le nombre de lignes égale à 103 488 le temps d’exécution égale à 25
secondes avec l’implementation séquentielle contraint à 3 secondes en utilisant
l’implementation en parallèle. En prennant un autre exemple de notre graphe où
38
Chapitre 4 : Évaluation et expérimentation
le nombre de lignes égale à 206 976 le temps d’exécution égale à 169 secondes avec
l’implementation séquentielle contraint à 5 secondes en utilisant l’implementation
en parallèle.
Dans cette étude, nous allons comparer les deux algorithmes SELECTRE et
ELECTRE l’une implémention parallèle et d’une autre séquentielle :
5584 6926 8702
0
100
200
300
400
500
600
700
800
7.0 9.0 15.0
120.0
255.0
743.0
Nombre des lignes
tempsd’exécution(seconde)
impementation séquentielle implémentation parallèle
Figure 4.2 – Comparaison entre SELECTRE et ELECTRE
Nous pouvons déduire de la figure 4.2 une croissance importante de l’imple-
mentation séquentielle contrairement à l’implementation parallèle dont l’évolu-
tion reste négligeable par rapport a l’autre. Pour confirmer notre déduction, nous
39
Chapitre 4 : Évaluation et expérimentation
prenons un exemple tirer du graphe. Pour 5584 lignes le temps d’exécution de
l’implémentation séquentiontielle est de 120 secondes pendant que l’implementa-
tion en parallèle dure seulement 7 secondes.
Nous allons comparer maintenant à l’aide du graphe les deux algorithmes SS-
kyrule et Skyrule, l’un avec une implemention séquentielle et l’autre avec une
implementation paralléle :
493926 660638 736040
0
50
100
150
200
250
300
5.0 6.0 7.0
125.0
182.0
290.0
Nombre des lignes
tempsd’exécution(seconde)
impementation séquentielle implémentation parallèle
Figure 4.3 – Comparaison entre SSKYRULE et SKYRULE
Nous constatons à partir de la figure 4.3 que l’implémentation séquentielle a un
temps d’exécution très important par rapport à l’implementation en parallèle sur-
tout en augmentant les données en entrées. Nous prenons un exemple du graphe
40
Chapitre 4 : Évaluation et expérimentation
avec le nombre de lignes égale à 493926, le temps d’exécution de l’implémenta-
tion séquentielle est de 35 secondes contrairement à l’implementation parallèle
qui prend seulement 4 secondes. Un autre exemple tiré du graphe avec le nombre
de lignes égale à 660 638, ou l’implémentation séquentielle prend 57 secondes
contrairement à l’implementation paralléle qui prend seulement 5 secondes.
4.3 Les maquettes d’interfaces graphiques
Nous présentons dans cette section quelques interfaces principales de notre
réalisation qui Illustrent les différents cas d’utilisation. Au démarrage de notre
application une interface d’accueil démarre comme le montre la figure 4.4. l’uti-
lisateur peut accéder à l’application sans inscription. Chaque utilisateur, pourra
avoir la possibilité de manipuler l’application directement
Figure 4.4 – Interface d’accueil
A partir de cette interface, l’utilisateur peut soit obtenir des informations sur
l’application, soit consulter les différentes tâches qui lui sont offertes.
41
Chapitre 4 : Évaluation et expérimentation
Figure 4.5 – Interface principale
L’interface précédente permet de donner aux utilisateurs, un ensemble de menus
pour utiliser les différentes fonctionnalités de l’application, à savoir :
• Le chargement de fichier qui contient le problème en forme de matrice.
• La sélection et la préparation de l’algorithme à utiliser parmi les trois im-
plementers dans ce projet.
• Consulter la console.
• Voir le contenu du fichier chargé.
42
Chapitre 4 : Évaluation et expérimentation
Figure 4.6 – Console
À l’aide de la console, l’utilisateur peut visualiser toutes les actions qu’il a fait
en temps réel. Cette information l’aide à bien comprendre le comportement du
programme, ainsi, il peut enregistrer tout ce qu’il a fait pour garder une trace
des matrices qu’il a déjà traitées.
43
Chapitre 4 : Évaluation et expérimentation
Figure 4.7 – Menu pour remplir l’importance des critères
Grâce à l’interface de la figure 4.7, l’utilisateur peut remplir soit les valeurs de
l’importances des critères du problème ou simplement utiliser l’algorithme AHP
pour le faire. Il peut également mentionner quels sont les critères à maximiser et
les critères à minimiser.
44
Chapitre 4 : Évaluation et expérimentation
Figure 4.8 – Classement des candidats
L’interface précédente permet de visualiser les résultats donnés par les diffé-
rents algorithmes. Elle permet de visualiser le classement des candidats proposés
par l’application des différentes solutions proposées. Grâce à cette interface, l’uti-
lisateur peut garder une trace des résultats en l’enregistrant dans un fichier.
45
Chapitre 4 : Évaluation et expérimentation
Conclusion
Cette partie démonstrative du travail offre une présentation des différentes fonc-
tionnalités de notre application. En fait, nous avons vu dans ce chapitre les en-
vironnements logiciels et matériels sur lesquels s’est basé ce travail. Nous avons
montré ensuite les avantages de notre aproche et comment elle peut fournir de
bon résultat dans un temps minimal ainsi que quelques captures d’écrans qui
illustre la démarche de notre approche.
46
Conclusion générale et perspective
Spark et MapReduce forment l’ossature logicielle d’une infrastructure Big
Data, en commençant par son architecture en cluster avec des noeuds, jusqu’à sa
capacité de traitement au service de l’analyse.
Au-delà de la consolidation du stockage de gros volumes de données, qui peuvent
être à la fois structurées et non structurées, ou dispersées, le Big Data propose
de mettre en exergue la valeur de l’information stockée, et ce en apportant une
couche supplémentaire de traitement. Néanmoins, les outils d’analyse doivent
intégrer cette couche de traitement des données. Des données qui peuvent être
éventuellement stockées par les entreprises ou encore accessibles sur les réseaux
sociaux, etc.
Pour cela, les solutions de Big Data intègrent une couche de support d’applica-
tion, ce que nous appelons un framework, qui fait lien entre la couche de stockage
et le traitement de la donnée. En ce domaine, une solution émerge. Elle porte
le nom spark. C’est un framework Open Source d’architecture distribuée, dont
les développements sont hébergés par la Fondation apache et qui est dédié au
support des applications destinées au Big Data, en particulier l’analytique. Au fil
des quelques années qui ont rythmé le développement du Big Data, le framework
Spark s’est imposé en piliers de cette technique.
Nous avons utilisé dans ce projet ces deux outils pour faciliter et profiter du
vrai pouvoir de la prise de décision multicritère. Nous avons, grâce au chapitre 3,
prouver que notre solution offre de bons résultats face au problème de données
volumineuses. Dans le chapitre 4, l’étude expérimentale et les statistiques propo-
sées nous ont permis de prouver la robustesse de notre solution. La comparaison
du temps d’exécution des algorithmes développés avec les implémentations sé-
47
Conclusion générale et perspective
quentielles a montré l’inifficacité de ces algorithmes en augmentant la masse de
données par rapport à leurs implémentations paralléles.
Perspectives
Bien que les résultats obtenus soient encourageants, plusieurs perspectives
et améliorations peuvent être envisagées dans notre projet. Ces perspectives se
résument comme suit :
- Améliorer et faciliter l’usage de notre plateforme , comme par exemple
les données en entrées seront directement ajoutées depuis la base de don-
nées. Il suffira donc à l’utilisateur de donner seulement le nom de la base
ainsi que la table souhaitée et notre plateforme se chargera du reste.
- Aider notre utilisateur à mieux sauvegarder ses données en écrivant
un script qui permet de les stocker dans une base de données NOSQL 5
où
il peut les réutiliser à tout moment.
- Enrichir la plate-forme avec d’autres algorithmes d’aide à la décision
multicritère comme PROMETHEE et GREY THEORY pour avoir encore
plus de choix dans la résolution des problèmes proposés.
5. Not Only SQL.
48

Contenu connexe

Tendances

Rapport stage pfe
Rapport stage  pfe Rapport stage  pfe
Rapport stage pfe rimeh moussi
 
Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEOussama Djerba
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidBadrElattaoui
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.pptMohamed Ben Bouzid
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaNazih Heni
 
Gestion des Chercheurs d’Emploi
Gestion des Chercheurs d’EmploiGestion des Chercheurs d’Emploi
Gestion des Chercheurs d’EmploiAzzeddine Elouadi
 
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti MohammedMohammed JAITI
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATSiwar GUEMRI
 
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...Hajer Dahech
 
Présentation (Mémoire fin étude )
Présentation (Mémoire  fin étude )Présentation (Mémoire  fin étude )
Présentation (Mémoire fin étude )Ramzi Noumairi
 
Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Ayoub Mkharbach
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSFaissoilMkavavo
 
Mise en-place-d-une-gestion-electronique-de-document
Mise en-place-d-une-gestion-electronique-de-documentMise en-place-d-une-gestion-electronique-de-document
Mise en-place-d-une-gestion-electronique-de-documentCyrille Roméo Bakagna
 
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
Projet de fin étude  ( LFIG : Conception et Développement d'une application W...Projet de fin étude  ( LFIG : Conception et Développement d'une application W...
Projet de fin étude ( LFIG : Conception et Développement d'une application W...Ramzi Noumairi
 
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux fehmi arbi
 
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesHosni Mansour
 
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineRapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineMohamed Amine Mahmoudi
 

Tendances (20)

Rapport stage pfe
Rapport stage  pfe Rapport stage  pfe
Rapport stage pfe
 
Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEE
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application Android
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.ppt
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
Gestion des Chercheurs d’Emploi
Gestion des Chercheurs d’EmploiGestion des Chercheurs d’Emploi
Gestion des Chercheurs d’Emploi
 
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
 
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
 
Presentation PFE
Presentation PFEPresentation PFE
Presentation PFE
 
Présentation (Mémoire fin étude )
Présentation (Mémoire  fin étude )Présentation (Mémoire  fin étude )
Présentation (Mémoire fin étude )
 
Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
 
Mise en-place-d-une-gestion-electronique-de-document
Mise en-place-d-une-gestion-electronique-de-documentMise en-place-d-une-gestion-electronique-de-document
Mise en-place-d-une-gestion-electronique-de-document
 
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
Projet de fin étude  ( LFIG : Conception et Développement d'une application W...Projet de fin étude  ( LFIG : Conception et Développement d'une application W...
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
 
Rapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFERapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFE
 
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux Rapport pfe 2017 Système de gestion des rendez-vous médicaux
Rapport pfe 2017 Système de gestion des rendez-vous médicaux
 
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'Etudes
 
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineRapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
 

Similaire à Rapport

Cours gratuit.com--id-2614
Cours gratuit.com--id-2614Cours gratuit.com--id-2614
Cours gratuit.com--id-2614SergeCowouvi1
 
Evaluation de la quantité de travail (in)utile dans l’exécution des programmes
Evaluation de la quantité de travail (in)utile dans l’exécution des programmesEvaluation de la quantité de travail (in)utile dans l’exécution des programmes
Evaluation de la quantité de travail (in)utile dans l’exécution des programmesBenjamin Vidal
 
Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...Adem Amen Allah Thabti
 
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Hadjer BENHADJ DJILALI
 
Rapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueYosra ADDALI
 
rapport_stage_issame
rapport_stage_issamerapport_stage_issame
rapport_stage_issameAMAL Issame
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
 
Projet de conception et de développement
Projet de conception et de développementProjet de conception et de développement
Projet de conception et de développementGlei Hadji
 
pfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdfpfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdfnesrine haloui
 
Implémentation et mise en place d’un système décisionnel pour la solution Meg...
Implémentation et mise en place d’un système décisionnel pour la solution Meg...Implémentation et mise en place d’un système décisionnel pour la solution Meg...
Implémentation et mise en place d’un système décisionnel pour la solution Meg...Houssem Eddine Jebri
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Mohamed Aziz Chetoui
 
Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...Mohamed Boubaya
 
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...younes elmorabit
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...Mohamed Amine Mahmoudi
 

Similaire à Rapport (20)

Cours gratuit.com--id-2614
Cours gratuit.com--id-2614Cours gratuit.com--id-2614
Cours gratuit.com--id-2614
 
thesis
thesisthesis
thesis
 
Evaluation de la quantité de travail (in)utile dans l’exécution des programmes
Evaluation de la quantité de travail (in)utile dans l’exécution des programmesEvaluation de la quantité de travail (in)utile dans l’exécution des programmes
Evaluation de la quantité de travail (in)utile dans l’exécution des programmes
 
Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...
 
Poly
PolyPoly
Poly
 
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
 
Rapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data Analytique
 
rapport_stage_TBLB.pdf
rapport_stage_TBLB.pdfrapport_stage_TBLB.pdf
rapport_stage_TBLB.pdf
 
rapport_stage_issame
rapport_stage_issamerapport_stage_issame
rapport_stage_issame
 
Belwafi bilel
Belwafi bilelBelwafi bilel
Belwafi bilel
 
Belwafi bilel
Belwafi bilelBelwafi bilel
Belwafi bilel
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Projet de conception et de développement
Projet de conception et de développementProjet de conception et de développement
Projet de conception et de développement
 
pfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdfpfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdf
 
Implémentation et mise en place d’un système décisionnel pour la solution Meg...
Implémentation et mise en place d’un système décisionnel pour la solution Meg...Implémentation et mise en place d’un système décisionnel pour la solution Meg...
Implémentation et mise en place d’un système décisionnel pour la solution Meg...
 
Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...Conception et développement d'une application de gestion de production et de ...
Conception et développement d'une application de gestion de production et de ...
 
Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...
 
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
 
Fourth year internship report
Fourth year internship reportFourth year internship report
Fourth year internship report
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
 

Dernier

Les Français, l'Europe et Emmanuel Macron
Les Français, l'Europe et Emmanuel MacronLes Français, l'Europe et Emmanuel Macron
Les Français, l'Europe et Emmanuel Macroncontact Elabe
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...France Travail
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentationbahija babzine
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformersbahija babzine
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023France Travail
 
Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxbahija babzine
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attalcontact Elabe
 

Dernier (7)

Les Français, l'Europe et Emmanuel Macron
Les Français, l'Europe et Emmanuel MacronLes Français, l'Europe et Emmanuel Macron
Les Français, l'Europe et Emmanuel Macron
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentation
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformers
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023
 
Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptx
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
 

Rapport

  • 1. République Tunisienne Ministère De L’enseignement Supérieur, De La Recherche Scientifique Et De La Technologie Université De Tunis Faculté des Sciences de Tunis Département des Sciences de l’Informatique RAPPORT De Projet de Fin d’Etudes présenté en vue de l’obtention du Diplôme de Licence Fondamentale en Informatique par Mohamed Ali Hamzaoui Mise en place d’une solution MapReduce pour les algorithmes de surclassement Soutenu le 28 juin 2016 Président Sadok BEN YAHIA, Professeur, Faculté de Tunis El Manar - Tunisie Rapporteur Manel ZEKRI, Assistante, Faculté de Tunis El Manar - Tunisie Encadrants Anissa FRINI, Professeur, Unité départementale des sciences de la gestion Lévis UQAR, campus de Lévis - Canada Samir ELLOUMI, Maître assistant, Faculté de Tunis El Manar - Tunisie Dhouha GRISSA, Chercheur Post-Doc, INRA - France 2015-2016
  • 2. Remerciements C’est avec un grand plaisir que je réserve cette page en signe de gratitude et de profonde reconnaissance à tous ceux qui m’ont aidé à la réalisation de ce travail. Je remercie tout d’abord, mon Directeur de projet de fin d’étude Pr. Sadok BENYAHIA. C’est grâce à son grand soutien scientifique et moral que ce travail a pu voir le jour. Je tiens à remercier mes encadrants Mr. Samir ELLOUMI, Mme. Anissa FRINI et Mme. Dhouha GRISSA pour l’intérêt qu’ils ont apporté à mon travail et leur supervision efficace. Par la même occasion, je remercie l’ensemble du personnel et des enseignants de la Faculté des Sciences de Tunis pour leur implication pendant ces 3 années de formation. J’adresse mes sincères remerciements aux membres de jury pour l’honneur qu’ils me font d’accepter de juger mon travail.
  • 3. Table des matières Table des figures iv Liste des tables v Liste des algorithmes vi Introduction générale 1 Problmatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 Contexte général 4 1.1 Big data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Aide multicritère à la décision . . . . . . . . . . . . . . . . . . . . 6 1.3 MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.1 Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3.2 Spark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3.3 Hadoop et Spark . . . . . . . . . . . . . . . . . . . . . . . 11 2 Outils d’aide à la décision multicritère 14 2.1 Les étapes d’aide à la décision multicritère . . . . . . . . . . . . . 14 2.2 Méthodes d’aide à la décision multicritère . . . . . . . . . . . . . 16 2.2.1 AHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.2 TOPSIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.3 Electre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.4 SkyRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Étude comparative . . . . . . . . . . . . . . . . . . . . . . . . . . 18 i
  • 4. TABLE DES MATIÈRES 3 Implementation MapReduce des algorithmes d’aide à la décision multicritère 21 3.1 Motivation de notre approche . . . . . . . . . . . . . . . . . . . . 22 3.2 STOPSIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3 SELECTRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.4 SSKYRULE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4 Évaluation et expérimentation 36 4.1 Outils utilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.1.1 Netbeans . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.1.2 Java 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.3 API JavaFX . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2 Exprimentation et évaluation . . . . . . . . . . . . . . . . . . . . 37 4.3 Les maquettes d’interfaces graphiques . . . . . . . . . . . . . . . . 41 ii
  • 5. Table des figures 1.1 Architecture du système décisionnel . . . . . . . . . . . . . . . . . 5 1.2 Fonctionnement de Mapreduce . . . . . . . . . . . . . . . . . . . 7 1.3 Hadoop et son écosystème . . . . . . . . . . . . . . . . . . . . . . 9 1.4 Spark et son écosystème . . . . . . . . . . . . . . . . . . . . . . . 10 1.5 Hadoop ne travaille qu’en mode lots avec MapReduce alors que Spark fait du temps réel en memoire . . . . . . . . . . . . . . . . 12 1.6 Comparaison entre Spark et Hadoop . . . . . . . . . . . . . . . . 13 2.1 Les méthodes d’aide à la décision multicritère les plus connus . . . 16 2.2 Les méthodes d’aide à la décision multicritère et ses contributions 18 2.3 Les méthodes d’aide à la décision multicritère les plus utilisés . . . 20 3.1 Matrice normalisée par critère . . . . . . . . . . . . . . . . . . . . 26 3.2 matrice normalisée et pondérée . . . . . . . . . . . . . . . . . . . 26 3.3 Solution idéal positive (A∗ i ) et idéales négatif (A− i ) . . . . . . . . . 27 3.4 Mesure de séparation de la solutuon idéal positive (S∗ i ) et la solu- tions idéales négatif (S− i ) . . . . . . . . . . . . . . . . . . . . . . . 27 3.5 Coefficient de mesure de rapprochement au profil idéal C∗ i . . . . 28 3.6 Candidats ordonnés . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.7 Calcul de la matrice de Concordance, C et Discordance, C et D . 31 3.8 Surclassement des candidats . . . . . . . . . . . . . . . . . . . . . 31 3.9 Calcul de le ragle fictive . . . . . . . . . . . . . . . . . . . . . . . 33 3.10 Calcul du degré de similarité des candidats par apport à la règle fictive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 iii
  • 6. TABLE DES FIGURES 3.11 Classement des candidats par ordre décroissant des degrés de si- milarité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1 Comparaison entre TOPSIS et STOPSIS . . . . . . . . . . . . . 38 4.2 Comparaison entre SELECTRE et ELECTRE . . . . . . . . . . 39 4.3 Comparaison entre SSKYRULE et SKYRULE . . . . . . . . . . 40 4.4 Interface d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.5 Interface principale . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.6 Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.7 Menu pour remplir l’importance des critères . . . . . . . . . . . . 44 4.8 Classement des candidats . . . . . . . . . . . . . . . . . . . . . . 45 iv
  • 7. Liste des tableaux 2.1 Matrice d’évaluation Alternatives/Critères . . . . . . . . . . . . . 15 v
  • 8. LISTE DES ALGORITHMES Liste des algorithmes 1 STOPSIS ALGORITHM . . . . . . . . . . . . . . . . . . . . . . . 23 2 SELECTRE ALGORITHM . . . . . . . . . . . . . . . . . . . . . . 29 3 SSKYRULE ALGORITHM . . . . . . . . . . . . . . . . . . . . . . 32 vi
  • 9. Introduction générale Chaque seconde, 29 000 gigaoctets (Go) d’informations sont publiées dans le monde, soit 2,5 exaoctets par jour, soit 912,5 exaoctets par an. Un volume de données qui croît à une vitesse vertigineuse et donne naissance à de nouveaux types de statistiques. De 2013 à 2020, la masse de données de l’univers digital va doubler tous les deux ans ! Ces données sont souvent utilisées comme support au processus d’aide à la décision. Cependant, le nombre important des données em- pêche l’opérateur humain d’avoir une vision globale de l’information disponible. De ce constat, ce n’est plus le manque d’informations qui pose un problème mais c’est de pouvoir retrouver, organiser et visualiser l’information pertinente dans un contexte spécifique. La multiplication croissante des données produites et le développement d’outils informatiques permettant de les analyser offrent d’innombrables possibilités tant pour l’État que pour les entreprises. Sans aucun doute, le traitement de ces masses de données, ou big data, joue déjà un rôle primordial dans notre société. Plusieurs applications issues de l’analyse de big data sont déjà une réalité dans de nombreux domaines, tels que les sciences, le marketing, les services client, le développement durable, les transports, la santé, ou encore l’éducation. Les analyses de données massives peuvent accroître la transparence administrative, faciliter l’évaluation des services et assister à la prise de décision. De nos jours, il est évident que les experts du domaine ont besoin de l’aide des analystes dans la prise de décision associée à un problème bien déterminé. Le processus d’aide à la décision fait référence à un ensemble varié d’outils informa- tiques supportant directement ou indirectement la décision voir le travail général 1
  • 10. Introduction générale du gestionnaire. Problématique Une très grande partie des problèmes de décision se caractérise par la diversité des points de vue qui sont souvent contradictoires et qui mesurent des choses de nature différente. La résolution de ce type de problème doit tenir compte simultanément de tous les points de vue jugés pertinents par le décideur. Les recherches concernant l’aide multicritère à la décision visent à développer des modèles plus ou moins formalisés dans la perspective d’améliorer, de faciliter et d’accompagner le gestionnaire dans le déroulement du processus décisionnel. Les méthodes multicritères d’aide à la décision ont révolutionné la prise de décision, des décisions plus précises et plus objectives mais au fil du temps on a accumulé une masse de données importante. Un problème majeur se pose alors quant au stockage et à l’analyse des données qui consiste dans l’augmentation à la fois de la capacité de stockage des disques durs et du temps de lecture. Il devient alors nécessaire de paralléliser les traitements en stockant sur plusieurs unités de disques durs et/ou en mémoire afin d’obtenir des résultats à faible coût. Dans le présent rapport, nous nous intéressons à cette problématique par la proposition de solutions avancées pour le traitement de données volumineuses tout en se basant sur les notions d’aide à la décision. Motivation En quelques années, l’intérêt pour le Big Data s’est imposé. Si cette notion plu- tôt floue a peiné pour trouver sa place au sein des entreprises, elle a su peu à peu convaincre de son utilité et a fait évoluer les pratiques marketing. Ces nouvelles sources d’information ont considérablement amélioré les prises de décisions stra- tégiques dans les entreprises. Les différentes formes d’interprétations ont ouvert d’autres perspectives, donnant naissance à des produits ou services innovants. Dans le futur, ça ne sera plus l’accès aux données qui sera discriminant, car les fournisseurs de données seront de plus en plus aptes à fournir des connecteurs et des API 1 . Ce qui va changer la donnée, est la capacité de poser les bonnes 1. Application programming interface. 2
  • 11. Introduction générale questions autrement dit c’est le fameux processus de décision. Pour manipuler ces mégas données, une nouvelle approche basée sur des al- gorithmes d’aide multicritère à la décision est proposée. L’originalité de notre approche réside dans le fait de paralléliser les algorithmes utilisés afin d’optimi- ser leur temps d’exécution et la mémoire utilisée. 3
  • 12. Chapitre 1 Contexte général Introduction La notion de Big Data permet de bâtir des modèles bien plus complets qu’au- paravant. Elle améliore sensiblement la connaissance des thèmes habituellement prospectés et ouvre de nouveaux champs d’études. Bien utilisée, cette peut amé- liorer la connaissance des décideurs. Sur le plan technologique, elle permet de répondre aux besoins d’analyse ultra-rapide et de très grandes quantités de don- nées afin de vérifier plus rapidement les hypothèses et de bâtir de Spark 1 , Hadoop 2 ses successeurs. Dans ce chapitre, nous allons commencer par définir le Big data, après, nous allons aborder l’importance des méthodes multicritères d’aide à la décision et expliquer comment elles sont très utilisées dans divers domaines. Ensuite, nous allons aborder le paradigme Map reduce, la plate-forme Spark et Hadoop qui sont des outils très utilisés dans le domaine du traitement de grandes masses de données. 1.1 Big data Le Big Data est un terme issu de l’anglais qui sert à désigner des ensembles de données tellement importants qu’il est difficile de les traiter avec les moyens habituels. La volumétrie de ces données oblige à concevoir des outils de stockage 1. http ://spark.apache.org. 2. https ://hadoop.apache.org. 4
  • 13. Chapitre 1 : Contexte général et de manipulation spécifiques. Le développement de ces outils suscite un intérêt grandissant auprès des acteurs scientifiques et économiques en leur offrant la possibilité d’extraire de nouvelles informations à partir de la masse de données que peuvent stocker les systèmes d’information des entreprises. Rentrer dans le monde du Big Data, c’est s’occuper de la corrélation entre quatre notions qu’on regroupe généralement sous l’acronyme "concept des 4V", à savoir : • La notion de Volume qui décrit le phénomène selon lequel les quantités de données stockées dans les entreprises sont en train de passer de l’ordre des tera-octets vers l’ordre des peta-octets ; • La notion de Variété qui décrit un monde de l’entreprise ouvert dans le- quel les sources d’information sont multiples, hétérogènes et souvent non structurées ; • La notion de Vitesse qui imposent aux entreprises actuelles de traiter les données rapidement pour faire le lien avec les outils de reporting (Business Intelligence) indispensables à la prise de décision dans l’entreprise ; • La notion de Véracité qui traduit le changement des formats des sources de données qui impose aux entreprises de disposer d’un système d’Information en perpétuelle évolution. Figure 1.1 – Architecture du système décisionnel Le traitement de ce type de données permet d’atteindre plusieurs objectifs : 5
  • 14. Chapitre 1 : Contexte général comme par exemple l’évaluation d’une situation donnée lorsqu’on est en présence d’informations structurées et sériées, ou encore l’élaboration de tableaux de bord qui facilitent au quotidien la prise de décision des responsables. 1.2 Aide multicritère à la décision La détermination de la “meilleure” action (optimale, de meilleur compromis, etc.) constitue un défi intellectuel perpétuel en sciences et en génie. Le déve- loppement de disciplines telles que la recherche opérationnelle, les sciences de la gestion, l’intelligence artificielle et les systèmes d’information, supportés par de puissants outils informatiques, constitue des aides pour prendre de “bonnes” décisions. Néanmoins, de nos jours, tout problème décisionnel complexe fait intervenir souvent plusieurs points de vue. Les approches classiques (utilité, théorie des jeux, analyse coût-bénéfices, programmation mathématique, etc.) se limitent à optimiser un seul objectif à la fois. L’aide multicritère à la décision s’est alors développée pour offrir à la fois une démarche et des outils de solutions à des problèmes décisionnels complexes. L’aide multicritère à la décision est une dis- cipline bien ancrée dans son temps. Elle est considérée aujourd’hui comme l’une des branches les plus importantes de la recherche opérationnelle et des théories de la décision qui continue à attirer plusieurs chercheurs et praticiens. L’aide multicritère à la décision est développée pour traiter plusieurs classes de problèmes de décision (choix, tri, classification, rangement, etc.) tout en considé- rant plusieurs critères (attributs) qui sont souvent conflictuels et non commen- surables, dans le but de modéliser au mieux les préférences et les valeurs du/des décideur(s). Ses applications sont diverses et variées à savoir, l’ingénierie (e.g industriel, civil, électrique, chimique, minier, énergétique, forestier et urbain), l’environnement (e.g aménagement et gestion intégrée), les finances (e.g investis- sement, composition de portefeuille et cotation de crédit), les gestions de projet, la fiabilité des systèmes, etc. 6
  • 15. Chapitre 1 : Contexte général 1.3 MapReduce MapReduce permet de manipuler de grandes quantités de données en les distri- buant dans un cluster de machines pour être traitées. Ce modèle connaît un vif succès auprès de sociétés, telles Amazon.com ou Facebook, qui possèdent d’im- portants centres de traitement de données. Il commence aussi à être utilisé par le Cloud computing. MapReduce est un modèle de programmation conçu spécifiquement pour lire, traiter et écrire des volumes de données très importants. Les programmes adop- tant ce modèle sont automatiquement parallélisés et exécutés sur des clusters (grappes) d’ordinateurs. Le modèle de programmation fournit un cadre à un dé- veloppeur afin d’écrire une fonction de Map et de Reduce. Tout l’intérêt de ce modèle de programmation est de simplifier la vie du développeur. Ainsi, ce der- nier n’a plus à se soucier du problème de parallélisation et de distribution du travail, ou encore de la récupération des données sur HDFS, des développements spécifiques à la couche réseaux pour la communication entre les noeuds, ainsi que du problème d’adaptation de son développement en fonction de l’évolution de la montée en charge (e.g scalabilité horizontale). Le modèle de programmation permet ainsi au développeur de ne s’intéresser qu’à la partie algorithmique (?). MapReduce se compose de deux fonctions map() et reduce() : « map » est le nom d’une fonction de haut niveau qui applique une fonction donnée à chacun des éléments d’une liste et retourne une liste. Par exemple : (mapcar ’round ‘(1.3 2.7 3.4 4.5)) => (1 3 3 4) « reduce » est le nom d’une fonction de haut niveau qui applique une fonction donnée à tous les éléments d’une liste et retourne une liste unique. Par exemple : (reduce ’+ ‘(1 2 3 4)) => 10 Figure 1.2 – Fonctionnement de Mapreduce 7
  • 16. Chapitre 1 : Contexte général MapReduce implémente les fonctionnalités suivantes : 1. Parallélisation automatique des programmes Hadoop, où HDFS se charge de : • La répartition et la réplication des données ; • La division du travail en jobs parallèles et leur répartition par le maître ; • Le collecte des résultats et la gestion des pannes des noeuds par le maître. 2. Gestion transparente du mode distribué. 3. Tolérance aux pannes. Tout l’intérêt de ce modèle de programmation est de simplifier la vie du développeur Hadoop, en lui masquant le fonctionnement interne de Hadoop (pa- rallélisation, tolérance aux pannes,etc). Ainsi, le modèle de programmation per- met au développeur de ne s’intéresser qu’à la partie algorithmique. Il transmet alors son programme MapReduce développé dans un langage de programmation au framework Hadoop pour l’exécution. De nombreux framework ont vu le jour afin d’implémenter le MapReduce comme Spark et Hadoop. Le plus connu est Hadoop qui a été programmé par Apache Software Foundation. Mais, ce framework possède des inconvénients qui réduisent considérablement ses performances notamment en milieu hétérogène. Il existe des frameworks qui commencent à voir le jour, permettant d’améliorer les performances de Hadoop ou les performances globales du MapReduce, tant en termes de vitesse de traitement qu’en consommation électrique. 1.3.1 Hadoop Hadoop est un framework 100% open source, écrit en Java et géré par la fondation Apache 3 . Il a été conçu pour répondre aux besoins du Big Data, tant au plan technique qu’au plan économique. Hadoop est capable de stocker et traiter de manière efficace un grand nombre de données, en reliant plusieurs serveurs banalisés entre eux pour travailler en parallèle (?). Hadoop offre une grande flexibilité. En effet, ses performances évoluent de manière quasi linéaire en fonction du nombre de machines constituant le cluster. Plus le nombre de nœuds est élevé, moins le temps d’exécution des jobs est court. 3. http ://www.apache.org. 8
  • 17. Chapitre 1 : Contexte général Hadoop fonctionne sur le principe des grilles de calcul consistant à répartir l’exécution d’un traitement intensif de données sur plusieurs noeuds ou grappes de serveurs. Hadoop est principalement constitué de deux composants : 1. Le système de gestion de fichiers distribué, HDFS 4 . 2. Le framework MapReduce (version 1 de Hadoop)/YARN 5 (version 2 de Hadoop). Figure 1.3 – Hadoop et son écosystème Plus concrètement, l’écosystème Hadoop comprend de nombreux autres outils couvrant le stockage et la répartition des données, les traitements distribués, l’entrepôt de données, le workflow, la programmation, sans oublier la coordination de l’ensemble des composants. On parle des outils comme Hive 6 , Pig 7 , Hbase 8 , Flume 9 , etc. 4. Hadoop Distributed File System. 5. Yet Another Resource Negotiator. 6. https ://hive.apache.org. 7. https ://pig.apache.org. 8. https ://hbase.apache.org. 9. https ://flume.apache.org. 9
  • 18. Chapitre 1 : Contexte général 1.3.2 Spark Apache Spark est un framework de traitement Big Data open source construit pour effectuer des analyses sophistiquées et conçu pour la rapidité et la facilité d’utilisation. Celui-ci a originellement été développé par AMPLab 10 , de l’univer- sité UC Berkeley, en 2009 et passé en open source sous forme de projet Apache en 2010. Spark présente plusieurs avantages par rapport aux autres technologies Big Data et MapReduce. D’abord, Spark propose un framework complet et unifié pour répondre aux besoins de traitements Big Data pour des jeux de données, divers par leurs natures (texte, graphe, etc.), aussi bien que par le type de source (batch ou flux temps-réel) (?). Ensuite, Spark permet à des applications sur clusters Hadoop d’être exécutées jusqu’à 100 fois plus vite en mémoire, 10 fois plus vite sur disque. Il vous permet d’écrire rapidement des applications en Java, Scala ou Python et inclut un jeu de plus de 80 opérateurs haut-niveau. De plus, il est possible de l’utiliser de façon interactive pour requêter les données depuis un shell. Enfin, en plus des opérations de Map et Reduce, Spark supporte les requêtes SQL et le streaming de données et propose des fonctionnalités de machine learning et de traitements orientés graphe. Les développeurs peuvent utiliser ces possibili- tés en stand-alone ou en les combinant en une chaîne de traitement complexe(?). Figure 1.4 – Spark et son écosystème 10. https ://amplab.cs.berkeley.edu. 10
  • 19. Chapitre 1 : Contexte général 1.3.3 Hadoop et Spark Hadoop est positionné en tant que technologie de traitement de données depuis 10 ans et a prouvé être la solution de choix pour le traitement de gros volumes de données. MapReduce est une très bonne solution pour les traitements à passe unique mais n’est pas la plus efficace pour les cas d’utilisation nécessitant des traitements et algorithmes à plusieurs passes. Chaque étape d’un workflow de traitement étant constituée d’une phase de Map et d’une phase de Reduce, il est nécessaire d’exprimer tous les cas d’utilisation sous forme de patterns MapReduce pour tirer profit de cette solution. Les données en sortie de l’exécution de chaque étape doivent être stockées sur système de fichier distribué avant que l’étape suivante commence. Cette approche a tendance à être peu rapide à cause de la réplication et du stockage sur disque. De plus, les solutions Hadoop s’appuient généralement sur des clusters, qui sont difficiles à mettre en place et à administrer. Elles nécessitent aussi l’inté- gration de plusieurs outils pour les différents cas d’utilisation Big Data (comme Mahout 11 pour le Machine Learning et Storm 12 pour le traitement par flux). Si nous souhaitons mettre en place quelque chose de plus complexe, il faut enchaîner une série de jobs MapReduce et les exécuter séquentiellement. Chacun de ces jobs présente une latence élevée, mais aucun ne peut commencer avant que le précédent n’ait tout-à-fait terminé. Spark permet de développer, à plusieurs étapes, des pipelines de traitement de données complexes en s’appuyant sur des graphes orientés acycliques (DAG 13 ). Spark permet de partager les données en mémoire entre les graphes, de façon à ce que plusieurs jobs puissent travailler sur le même jeu de données. Il s’exé- cute sur des infrastructures Hadoop Distributed File System (HDFS) et propose des fonctionnalités supplémentaires. Il est possible de déployer des applications Spark sur un cluster Hadoop v1 existant avec SIMR 14 , sur un cluster Hadoop v2 YARN ou même sur Apache Mesos 15 . Plutôt que de voir en Spark un rempla- çant d’Hadoop, il est plus correct de le voir comme une alternative au MapReduce d’Hadoop. Spark n’a pas été prévu pour remplacer Hadoop mais pour mettre 11. http ://mahout.apache.org 12. http ://storm.apache.org 13. Directed acyclic graph. 14. Inside-MapReduce 15. mesos.apache.org 11
  • 20. Chapitre 1 : Contexte général à disposition une solution complète et unifiée permettant de prendre en charge différents cas d’utilisation et besoins dans le cadre des traitements Big data. Figure 1.5 – Hadoop ne travaille qu’en mode lots avec MapReduce alors que Spark fait du temps réel en memoire Spark est beaucoup plus rapide que Hadoop. En effet, la méthode uti- lisée par Spark pour traiter les données fait qu’il est beaucoup plus rapide que MapReduce. Alors que MapReduce fonctionne en étapes, Spark peut travailler sur la totalité des données en une seule fois. « La séquence de travail de MapReduce ressemble à ceci : il lit les données au niveau du cluster, il exécute une opération, il écrit les résultats au niveau du cluster, il lit à nouveau les données mises à jour au niveau du cluster, il exécute l’opération suivante, il écrit les nouveaux résultats au niveau du cluster, etc. », explique Kirk Borne, spécialiste des données chez Booz Allen Hamilton, un conseiller en gestion basé en Virginie. Au contraire, Spark exécute la totalité des opérations d’analyse de données en mémoire et en temps quasi réel : « Spark lit les données au niveau du cluster, effectue toutes les opérations d’analyses nécessaires, écrit les résultats au niveau du cluster, et c’est tout », Spark est jusqu’à 10 fois plus rapide que MapReduce pour le traitement en lots et jusqu’à 100 fois plus rapide pour effectuer l’analyse en mémoire », (Kirk Borne). 12
  • 21. Chapitre 1 : Contexte général Figure 1.6 – Comparaison entre Spark et Hadoop Conclusion Dans ce chapitre nous avons commencé par définir la notion de Big data. En- suite, nous avons expliqué l’aide à la décision multicritère et son rôle majeur dans la vie quotidienne ainsi que la vie professionnel. Par la suite, nous avons mis en exergue le paradigme MapReduce et son utilité dans le traitement des grandes quantités de données. Nous avons enchaîné par la définition des plate-formes Ha- doop et Spark en terminant avec une petite comparaison entre les deux. Cette comparaison a démontré que les performances de Spark sont nettement supé- rieures. 13
  • 22. Chapitre 2 Outils d’aide à la décision multicritère Introduction L’analyse multicritère est souvent utilisée dans la prise de décision. Ces outils d’aide à la décision ont été développés depuis les années 1960. Lorsque le décideur se trouve face à plusieurs scénarios possibles, il définit un ensemble de critères pour juger ces scénarios Dans ce chapitre, nous allons commencer par présenter les étapes d’aide à la décision multicritère. Par la suite, nous allons définir les différents algorithmes que nous adaptons après au paradigme map reduce. Enfin, nous allons réaliser une étude comparative de ces algorithmes. 2.1 Les étapes d’aide à la décision multicritère Nous proposons une démarche en trois étapes. Dans un premier temps, les alter- natives potentielles sont identifiées. Dans un deuxième temps, les préférences du décideur sont modélisées, ce qui permettra de différencier les actions potentielles. Pour finir, un processus d’investigation mathématique se lance. Autrement dit, une procédure d’agrégation, est définie ou choisie afin de fournir des éléments de réponse au problème de décision. 1. Identification des alternatives potentielles : L’identification des alternatives potentielles consiste à définir l’ensemble des alternatives qui doivent être examinées. Cet ensemble d’alternatives n’est pas toujours définitivement délimité. Il peut être soumis à des révisions. 14
  • 23. Chapitre 2 : Outils d’aide à la décision multicritère Des alternatives peuvent apparaître ou disparaître. 2. Modélisation des préférences du décideur : La comparaison des alternatives à partir de leurs conséquences est souvent rendue difficile à cause de l’imprécision, de l’incertitude et de la mauvaise détermination de ces conséquences. C’est pourquoi la notion de critère est introduite. Les critères permettent de comparer les alternatives entre elles. Un critère est une fonction C à valeurs réelles définie sur l’ensemble des alternatives potentielles. Cette fonction est définie de telle sorte que deux alternatives a1 et a2 puissent être comparées en se basant sur les nombres C(a1) et C(a2). Les préférences du décideur peuvent ainsi être représentées par un ensemble de critères. Un poids peut aussi être associé à chaque critère, selon l’importance du critère par rapport aux autres. Pour garantir une bonne représentation de ces préférences, l’ensemble des critères doit répondre à des exigences d’exhaustivité, de cohésion et de non redondance. Lorsque ces exigences sont vérifiées, la famille de critères est dite cohérente. L’évaluation des alternatives se fait sur la famille des critères. Un tableau de performances qui présente les résultats de cette évaluation sur chaque critère donne une vue de l’ensemble des alternatives. Les critères sont sur les colonnes et les alternatives sont sur les lignes. La case Cj(ai) donne la performance de l’alternative ai selon le critère Cj. Table 2.1 – Matrice d’évaluation Alternatives/Critères 3. La procédure d’agrégation : Une procédure d’agrégation multicritère doit être définie afin de répondre 15
  • 24. Chapitre 2 : Outils d’aide à la décision multicritère à la problématique de décision posée en s’appuyant sur le tableau des per- formances qui caractérise les alternatives potentielles à évaluer. 2.2 Méthodes d’aide à la décision multicritère Une très grande partie des problèmes de décision se caractérise par la diversité des points de vue qui sont souvent contradictoires et qui mesurent des choses de nature différente. La résolution de ce type de problèmes doit tenir compte simultanément de tous les points de vue jugés pertinents par le décideur. Les recherches concernant l’aide multicritère à la décision visent à développer des modèles plus ou moins formalisés dans la perspective d’améliorer, de faciliter et d’accompagner le gestionnaire dans le déroulement du processus décisionnel. Figure 2.1 – Les méthodes d’aide à la décision multicritère les plus connus 2.2.1 AHP AHP 1 est une méthode de hiérarchie analytique. Cette méthode est à la fois puissante et souple de mise en oeuvre et d’allocation des ressources en matière de gestion de portefeuille de produits. Elle a été développée par Thomas Saaty en 1970 (?) et permet de décomposer un problème complexe en un système hiérar- chique, dans lequel sont établies des combinaisons binaires à chacun des niveaux de la hiérarchie. Cette méthode est très pratique pour déterminer les poids relatifs à des critères. En classant hiérarchiquement les situations que rencontre l’entre- prise, le décideur peut en déduire des priorités relatives, en faire une synthèse 1. Analytic hierarchy process. 16
  • 25. Chapitre 2 : Outils d’aide à la décision multicritère plus facile à appréhender et s’en servir pour allouer efficacement ses ressources et/ou définir les objectifs prioritaires dans une meilleure cohérence (?). Le clas- sement s’effectue selon trois niveaux, à savoir, l’environnement, les objectifs de l’entreprise et les cours des activités auxquels sont associés différents critères. Ainsi, il est possible de déterminer l’alternative la plus pertinente, en fonction de la priorité accordée à chacun des critères pris en considération (?). 2.2.2 TOPSIS TOPSIS 2 est une méthode dont le but est de pouvoir classer par ordre de choix un certain nombre d’alternatives sur la base d’un ensemble de critères fa- vorables ou défavorables. Cette méthode s’inscrit dans les techniques utilisées dans le domaine d’aide à la décision multicritères MCDM 3 . Elle a été développée par Hwang et Yoon en 1981 (?). Son principe consiste à déterminer pour chaque alternative un coefficient compris entre 0 et 1 sur la base des distances (eucli- diennes) entre chaque alternative d’une part et les solutions idéales favorable et défavorable. Nous allons voir ci-dessous en détail les étapes à suivre pas à pas. Une alternative est dite ’idéale favorable’ si elle est la plus éloignée de la pire alternative et la plus proche de la meilleure alternative. Une alternative est dite ’idéale défavorable’ si elle est la plus proche de la pire alternative et la plus loin de la meilleure alternative (?). 2.2.3 Electre Electre 4 est une famille de méthodes d’analyse multicritères développée en Eu- rope. Sa méthode ELECTRE I a été élaborée par Bernard Roy en 1968 (?), avec l’aide de P. BERTIER. Cette méthode vise à obtenir un sous-ensemble N d’actions tel que toute action externe à N soit surclassée par au moins une ac- tion de N et que les actions appartenant à N soient incomparables entre elles. Ce sous-ensemble est souvent comparé au noyau d’un graphe de surclassement possédant les actions comme sommets, ces derniers étant reliés entre eux par une flèche partant de l’action surclassant et arrivant vers l’action surclassée (?). On peut, à partir de cette première description, comprendre la philosophie générale 2. Technique for Order of Preference by Similarity to Ideal Solution. 3. Multiple Criteria Decision Making 4. Elimination Et Choix Traduisant la Realité 17
  • 26. Chapitre 2 : Outils d’aide à la décision multicritère des méthodes de surclassement. N n’est sans doute pas l’ensemble des bonnes actions mais l’ensemble dans lequel se trouve certainement le meilleur compromis (?). 2.2.4 SkyRule Skyrule est une méthode dont le but est d’extraire les règles non dominées à partir d’une table relationnelle. Cette méthode s’inscrit dans les techniques utilisées dans le domaine d’aide à la décision multicritères. Elle a été développée par Slim Bouker en 2015. Une règle r est dite dominée par une autre règle r’, si pour toutes les mesures, r est moins pertinente que r’. Figure 2.2 – Les méthodes d’aide à la décision multicritère et ses contributions 2.3 Étude comparative La plupart des méthodes d’aide à la décision multicritère appartiennent à l’une des deux approches opérationnelles suivantes (Roy, 1985) : 1. L’approche du critère unique de synthèse, évacuant toute incomparabilité ; 2. L’approche du surclassement de synthèse, acceptant l’incomparabilité ; Il y a une différence fondamentale entre ces procédures d’agrégation, tou- tefois dans les méthodes appartenant à ces deux approches les préférences sont introduites a priori. 18
  • 27. Chapitre 2 : Outils d’aide à la décision multicritère Dans la première approche : inspirée américaine, les préférences locales (au niveau de chaque attribut) sont agrégées en une fonction (de valeur, d’utilité) unique qu’il s’agit ensuite d’optimiser. Les travaux relatifs aux méthodes mul- ticritères appartenant à cette approche étudient les conditions d’agrégation, les formes particulières de la fonction agrégeante et les méthodes de construction de ces fonctions (aussi bien au niveau local que global). Les principales méthodes appartenant à cette approche sont : MAUT, SMART, UTA, TOPSIS, AHP et G.P. La deuxième approche : inspirée française, elle vise dans un premier temps à construire des relations binaires, appelées relations de surclassement, pour re- présenter les préférences du décideurs, compte tenu de l’information disponible. Dans certaines des méthodes multicritères s’inscrivant dans cette voie, avant de construire ces relations de surclassement, nous introduisons des seuils de discri- mination (indifférence, préférence) et même de veto, au niveau de chacun des critères, pour modéliser localement les préférences du décideur. Ces relations ne sont, en général, ni transitives, ni complètes. Dans un deuxième temps, ces rela- tions sont exploitées en vue d’aider à formuler une recommandation qui puisse apporter une réponse au problème de décision. La formulation est formulée en tenant compte de la problématique décisionnelle retenue. En effet, aider à déci- der n’est pas nécessairement ou uniquement résoudre le problème du choix de la meilleure solution. L’aide à la décision peut concerner d’autres problématiques que celle du choix (Bana e Costa, 1996) (?). Cette approche renferme des mé- thodes qui n’ont peut-être pas une très bonne base axiomatique mais qui sont empreintes d’un bon réaliste pragmatique compte tenu des contextes décision- nels fréquemment rencontrés. Les principales méthodes ou familles de méthodes appartenant à cette approche sont : ELECTRE, PROMETHÉE, ORESTE, QUA- LIFLEX, certaines de ces méthodes étant purement ordinales. 19
  • 28. Chapitre 2 : Outils d’aide à la décision multicritère Figure 2.3 – Les méthodes d’aide à la décision multicritère les plus utilisés Conclusion Le but de l’analyse multicritère est de fournir au décideur des outils lui permettant de progresser dans la résolution de problèmes décisionnels faisant intervenir plusieurs points de vue généralement contradictoires. Il n’est dès lors plus question de découvrir des solutions optimales, des décisions les meilleures selon chacun des points de vue, mais d’aider le décideur à dégager une ou plusieurs solutions de compromis, en accord avec son propre système de valeurs. Dans ce chapitre, nous avons présenté les different étapes d’aide à la décision multicritère. Ensuite, nous avons défini les méthodes que nous allons implémenter, des méthodes qui sont trop utilisées dans plusieurs domaines et qui appartiennent à des approches différentes. 20
  • 29. Chapitre 3 Implementation MapReduce des algorithmes d’aide à la décision multicritère Introduction Le modèle de programmation MapReduce fournit un cadre à un dévelop- peur afin d’écrire une fonction de Map et de Reduce. Tout l’intérêt de ce modèle de programmation est de simplifier la vie du développeur. Ainsi, ce développeur n’a pas à se soucier du travail de parallélisation et de distribution du travail, de récupération des données sur HDFS, de développements spécifiques à la couche réseaux pour la communication entre les nœuds, ou d’adaptation de son dévelop- pement en fonction de l’évolution de la montée en charge (scalabilité horizontale, par exemple). Ainsi, le modèle de programmation permet au développeur de ne s’intéresser qu’à la partie algorithmique. Il transmet alors son programme Ma- pReduce développé dans un langage de programmation au framework Spark pour l’exécution. Dans ce chapitre nous allons utiliser ce modèle pour implémenter les algorithmes TOPSIS, ELECTRE et SKYRULES afin de pouvoir gérer de grandes masses de données. 21
  • 30. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère 3.1 Motivation de notre approche L’IDC 1 estime l’univers digital à une taille de près de 4.4 Zettabytes (cor- respondant à un peu plus de l’espace de stockage de 1000 milliards du DVD) en 2013 et prédit une évolution à 44 Zettabytes en 2020. C’est ainsi qu’est né le Big Data pour répondre à un besoin matériel mais aussi à un besoin en ma- tière de business. Le terme Big Data se réfère aux technologies qui permettent aux entreprises d’analyser rapidement un volume de données très important et d’obtenir une vue synoptique. Ainsi, Big Data désigne un ensemble d’outils ap- propriés pour le stockage, l’analyse et le traitement de données à grande échelle de façon moins couteuse, plus rapide et de manière distribuée Si les données sont là, justes sous notre nez, il nous faut encore la volonté et la capacité de les dé- chiffrer, trier, et catégoriser pour en tirer de l’information et au final prendre une décision. Aujourd’hui, cette masse de données est bien souvent inexploitable. les algorithmes d’aide à la décision multicritère, définis au troisième chapitre, permettent d’offrir aux utilisateurs des solutions objectif et optimals au problème rencontrer, mais, quand les données aient une masse importante, ces algorithmes perdent en matière d’agilité et de performance. Quand les données en entrées deviennent de taille gigantesque, les algorithmes soient ils échouent de fournire de bon résultat soient le temps d’exécution devient considérable, de ce fait, l’uti- lisation d’une nouvelle approche s’impose. Sur le plan technologique, pour répondre aux besoins d’analyse ultra-rapide de très grandes quantités de données afin de vérifier plus rapidement les hypothèses et de bâtir de spark et le paradigme map reduissait d’où vient la necessite de notre solution. L’approche proposée consiste à tirer les avantages de pargardime map reduce et de la plate-forme spark afin de paralléliser les algorithmes utilisés dont le but est d’optimiser leur temps d’exécution et la mémoire utilisée. 3.2 STOPSIS L’algorithme STOPSIS est une version amiliorée de l’algorithme initial TOP- SIS. En effet, nous l’avons implémenté sous la plateforme Spark. 1. International Data Corporation. 22
  • 31. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère Algorithme 1 : STOPSIS ALGORITHM Data : Matrice : X , Vecteur = W , Vecteur : I Results : Top n candidats R ← NormalisationEuclidienne(X) V ←MatricePondéréeNormalisée(R) ProfitsIdéalAnti-Idéal (A∗ , A− , I ) CalculerLaDistanceEuclidienne(V, A∗ , A− , S∗ , S− ) C∗ ← CalculerCoefficientMesure(S∗ , S− ) Return { Ordonner (C∗ )}. L’algorithme précédent commence par le calcule des préférences normalisées, R. Le processus dans cette étape est la conversion des valeurs des différents critères dans l’intervalle [0,1], dans l’unité (normalisée) est destiné à offrir de meilleures possibilités de comparaisons entre les critères de reconnaissance. La matrice de décision est créée, en utilisant la formule de normalisation Eucleudienne. ri,j = xi,j m k=1 x2 i,j i ← 1 to n j ← 1 to m Ensuite, il Calcul des préférences normalisées avec des poids associés aux critères, V. Le mécanisme du processus dans cette étape est de multiplier les valeurs des différents critères de les matrices normalisées par les poids associés à ces critères (wj). Généralement la somme de poids est définie de la façon suivante : n j=1 wj = 1. Par conséquence, 0 ≤ wj ≤1. Vi,j = Ri,j ∗ Wj i ← 1 to n j ← 1 to m Après , il détermine la solution idéale positive et négative A∗ (PIS) et A− (NIS), respectivement. À ce stade, à partir de la matrice V, nous allons produire deux différents en- sembles de solutions, une solution idéale positive et une solution idéale négative en fonction des valeurs normales pondérées. Les critères d’évaluation de chaque colonne de la solution idéale sont égaux à la plus grande (la meilleure) valeur de la matrice V et la solution idéale négative est constituée de la valeur la plus faible 23
  • 32. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère (pire) si ce critère est à maximiser. Si les critères d’évaluation sont à minimiser, dans ce cas, la solution idéale est composée de la plus petite valeur de la matrice V et la solution idéale de la valeur maximale. A∗ = v+ 1 , ...v+ j , ..., v+ n = (max Vi,j|j ∈ J1 ), (minVi,j|j ∈ J2 ) A− = v+ 1 , ...v+ j , ..., v+ n = (max Vi,j|j ∈ J2 ), (minVi,j|j ∈ J1 ) où J1 est un ensemble de critères à maximiser ; J2 est un ensemble de critères à minimiser ; J1 J2 = ∅ Après avoir calculer la solution idéale positive et négative A∗ (PIS) et A∗ (NIS), l’algorithme calcule la distance Euclidienne par rapport à A∗ et A− . Pour chaque candidat, nous calculons sa mesure de séparation de la solution idéale positive (S∗ i ) et la solution idéale négatif (S− i ). À ce stade, le calcul des mesures de séparation de chaque candidat du PIS et NIS est calculée par la formule de distance euclidienne suivante : S∗ i = n j=1 (Vi,j − A∗ j )2 i ← 1 to m S− i = n j=1 (Vi,j − A− j )2 i ← 1 to m S∗ i : représente la distance du i éme alternatif à partir de la solution idéale. S− i : représente la distance du i éme alternatif à partir de la solution idéale négative. Après avoir calculer S∗ i et S− i , l’algorithme calcule un coefficient de mesure de rapprochement au profil idéal. Dans cette étape, la proximité relative d’une alternative au simulateur idéale, C∗ i , peut être exprimé sous la forme : C∗ i = S− i S− i + S∗ i i ← 1 to m 0 ≤ C∗ i ≤ 1 Enfin, l’algorithme se termine par ordonner les préférences. Dans cette étape, 24
  • 33. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère un ensemble d’alternatives peut maintenant être classé selon l’ordre décroissant de la valeur C∗ i . Nous allons présenter maintenant un exemple illustratif de la méthode TOPSIS. Le contexte de l’exemple consiste à déterminer un classement des modèles de voiture suivants : • RENAULT SCENIC ; • VOLKSWAGEN GOLF ; • FORD FOCUS ; • PEUGEOT 407 ; • CITROEN C3 PICASSO. Sur la base des critères suivants : • Style ; • Fiabilité ; • Consommation ; • Coût. Data R (matrice)=    6 5 4 5 6 7 5 6 7 7 4 6 7 7 3 7 5 5 6 5    W (poid) = 0.45 0.25 0.20 0.1 I (importance) = 1 1 1 0 25
  • 34. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère Figure 3.1 – Matrice normalisée par critère Figure 3.2 – matrice normalisée et pondérée 26
  • 35. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère Figure 3.3 – Solution idéal positive (A∗ i ) et idéales négatif (A− i ) Figure 3.4 – Mesure de séparation de la solutuon idéal positive (S∗ i ) et la solu- tions idéales négatif (S− i ) 27
  • 36. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère Figure 3.5 – Coefficient de mesure de rapprochement au profil idéal C∗ i Figure 3.6 – Candidats ordonnés En conclusion de cette partie, le classement en ordre décroissant des 4 modèles de voiture sur la base des scores et pondérations fournis est le suivant : 1. FORD ; 2. VOLKSWAGEN GOLF ; 3. PEUGEOT 407 ; 4. CITROEN C3 PICASSO ; 28
  • 37. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère 5. RENAULT SCENIC . 3.3 SELECTRE L’algorithme SELECTRE est une version plus avancée que l’algorithme ELECTRE. En effet, nous l’avons implémenté sous la plateforme spark. Algorithme 2 : SELECTRE ALGORITHM Data : Matrice : G , Vecteur = K , entier : c∗ , entier : d∗ Results : Top n candidats C ← CalculeDeConcordance(G , K) D ← CalculeDeDiscordance(G,K) S ← CalculeDeSurclassement(C,D,c∗ ,d∗ ) Return { (S )}. L’algorithme précédent commence par le calcul de la matrice de Concordance, C. On définit pour chaque critère une fonction d’évaluation gj (où j=1 à n, n est le nombre de critères), pour chaque critère, on évalue un poids kj qui augmente avec l’importance du critère. L’indice de concordance pour deux actions a et b est noté par C (a, b), compris entre 1 et 0, il mesure la pertinence de l’assertion « a surclasse b », comme suit : C (a, b) = ( ∀j : g(a) ≥ g(b) kj K ) avec K = n j=1 kj Après, il calcule la matrice de Discordance, D. L’indice de discordance D (a, b) est défini par : D (a, b) =    0 si ∀j, g(a) ≥ g(b) Sinon 1 σ maxj gj(b) − gja    σ est la différence maximale entre le même critère pour deux actions donnée. Enfin, la relation de sur-classement pour Electre I est construite par la com- paraison des indices de concordance et de discordance à des seuils limites de 29
  • 38. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère concordance c∗ et de discordance d∗ . Ainsi, a surclasse b, si : aSb ⇐⇒ C (a, b) ≥ c∗ et D (a, b) ≤ d∗ Nous allons présenter maintenant un exemple illustratif de la méthode SELECTRE. L’exemple traite le choix d’un projet, parmi 6 projets concurrents, pour la réa- lisation d’une raffinerie. Chaque projet est évalué sur la base de 5 critères envi- ronnementaux : • Nuisance sonore • Séparation du territoire • Pollution de l’air • Impact sur l‘aménagement du territoire • Impact sur les activités récréatives Chaque projet est évalué en fonction des critères retenus à l’aide d’une échelle qualitative et des scores. Plus le score est élevé, plus les impacts du projet sur l’environnement sont moindres. G (matrice)=    10 20 5 10 16 0 5 5 16 10 0 10 0 16 7 20 5 10 10 13 20 10 15 10 13 20 10 20 13 13    W (poid) = 0.3 0.2 0.3 0.1 0.1 c∗ = 0.9 , d∗ = 0.2 30
  • 39. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère Figure 3.7 – Calcul de la matrice de Concordance, C et Discordance, C et D Figure 3.8 – Surclassement des candidats 31
  • 40. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère L’intérêt de la méthode Electre I est d’isoler un sous ensemble de solutions. En projetant cela sur notre cas, nous nous intéressons à identifier les projets avec le minimum d’impacts sur l’environnement. En effet, P1 et P6 sont incomparables, par contre le projet P6 suivant surclasse l’ensemble des projets P2, P3, P4 et P5. 3.4 SSKYRULE L’algorithme SSKYRULE est une version distribué de l’algorithme SKYRULE. Ainsi, nous l’avons conçu sous la plateforme spark en déployant le paradigme MapReduce. Algorithme 3 : SSKYRULE ALGORITHM Data : Matrice : G Results : Top n candidats r∗ ← RègleDassociationFictive(G) S ← DegréSimilarité(G, r∗ ) Return { Ordonner (S )}. L’algorithme précédent commence par le calcule de la règle fictive, r∗ . Une règle référence r∗ est une règle fictive qui domine toutes les règles de G selon l’ensemble de mesures. Formellement : ∀ r ∈ G, r∗ ≥ r. Par exemple, la règle référence r∗ peut être une règle telle que pour chaque mesure m ∈ M, r∗ [m] doit être la meilleure valeur parmi les valeurs correspondantes aux différentes règles. Par conséquent, il n’existe aucune règle dans G qui domine r∗ . r∗ = g+ 1 , ...g+ j , ..., G+ n = (max G(i,j)) Après, il calcule le degré de similarité entre tous les candidats et la règle fictive ; DegSim (r, r∗ ) = k i=1 | ri, − r∗ i | k avec k égal au nombre de mesures dans G. 32
  • 41. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère Enfin, l’agorithme se termine par ordonner les candidats. Dans cette étape, un ensemble d’alternatives peut maintenant être classé selon l’ordre croissant de la valeur S. Nous allons présenter maintenant un exemple illustratif de la méthode SS- KYRULE. L’objectif de cet exemple est de sélectionner le meilleur candidat d’un champ de cinq autres candidats. Les facteurs à considérer sont l’expérience, l’édu- cation et le charisme. G (matrice)=    10 20 5 5 16 10 10 16 7 10 10 13 15 10 13    Figure 3.9 – Calcul de le ragle fictive 33
  • 42. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère Figure 3.10 – Calcul du degré de similarité des candidats par apport à la règle fictive Figure 3.11 – Classement des candidats par ordre décroissant des degrés de similarité 34
  • 43. Chapitre 3 : Implementation MapReduce des algorithmes d’aide à la décision multicritère En conclusion, le classement en ordre croissant des 5 candidats sur la base de degré de similarité est le suivant : 1. Candidat numéro 5 ; 2. Candidat numéro 1 ; 3. Candidat numéro 3 ; 4. Candidat numéro 4 ; 5. Candidat numéro 2. u Conclusion Le projet spark, qui est désormais géré par l’Apache Software Fondation, af- fiche le plus grand nombre de contributions que tout autre projet logiciel Apache. Dans ce chapitre, nous avons présenté la motivation de notre projet, les consé- quences issues de l’augmentation considérable des données en entrées sur les al- gorithmes d’aide à la décision multicritère. Ensuite, nous avons definit STOPSIS, SELECTRE puis SSKYRULE et intégré leurs implémentation en spark qui a été accompagnée d’une explication des différentes étapes tout en proposant un exemple tiré de la vie réelle. 35
  • 44. Chapitre 4 Évaluation et expérimentation Introduction Ce chapitre présente l’évaluation expérimentale de l’approche proposée. Les évaluations ont été menées dans le but d’étudier la performance de l’approche utilisée. Tout d’abord, nous allons commencer par citer les différents outils utilisées ainsi les caractéristiques matériels et logiciels. Ensuite, nous allons comparer les dif- ferentes implémentations des algorithmes (séquentiel et pareille) pour distinguer à la fin la valeur ajouter de la parallelisation des algorithmes dans certains cas. Enfin, nous présenterons quelques maquettes de l’interface développée. 4.1 Outils utilisée L’ensemble des tests ont été effectués sur un MacBook Pro sous un système d’exploitation Mac os x el capitaine version 10.11.4. Il est doté d’une horloge avec une fréquence de 2,5 GHz et 8 Go de mémoire centrale dont 1 Go a été alloué à la JVM 1 lors dû l’exécution des algorithmes. 4.1.1 Netbeans Nous avons utilisé Netbeans pour programmer notre algorithme. NetBeans est un EDI 2 . Il comprend toutes les caractéristiques d’un EDI moderne (éditeur 1. Java virtual Machine. 2. environnement de développement intégré. 36
  • 45. Chapitre 4 : Évaluation et expérimentation en couleur, projets multi-langage, refactoring, éditeur graphique d’interfaces et de pages Web). Conçu en Java, NetBeans est disponible sous Windows, Linux, Solaris (sur x86 et SPARC), Mac OS X ou sous une version indépendante des sys- tèmes d’exploitation (requérant une machine virtuelle Java). Un environnement JDK 3 est requis pour les développements en Java. 4.1.2 Java 8 Si les versions 6 et 7 de Java étaient des évolutions douces, Java 8 est d’un tout autre ordre. Plus de 56 nouvelles fonctionnalités ont été ajoutées. Les arrivées des lambdas, des méthodes par défaut, des interfaces fonctionnelles et de Stream vont modifier en profondeur le langage et donc l’écosystème Java tout entier. Nous pouvons aussi citer l’incorporation d’une nouvelle API pour gérer les dates, de nouvelles annotations et d’un nouveau moteur d’exécution JavaScript. 4.1.3 API JavaFX Avec l’apparition de Java 8 en mars 2014, JavaFX devient l’outil de créa- tion d’interface graphique (’GUI 4 toolkit’) officiel de Java, pour toutes les sortes d’application (applications mobiles, applications sur poste d 000e travail, appli- cations Web...). JavaFX est une pure API Java. JavaFX contient des outils très divers, notamment pour les médias audio et vidéo, le graphisme 2D et 3D, la programmation Web, la programmation parallèle. 4.2 Exprimentation et évaluation Dans le cadre de l’étude expérimentale menée, nous avons eu recours à quelques tests sous forme de graphe où nous allons faire une comparaison entre les algo- rithmes utilisés dans ce projet en different approche (sequetionelle, parallèle) dont le but est de demontrer la puissance de l’approche parallèle indépendam- ment du matériel utilisé. Pour y arriver, nous avons pris comme donnée en entrée une matrice avec un nombre de colonnes, qui égale à 5, fixe, et un nombre de lignes variabes afin de confirmer la puissance de l’approche en parallèle pour le traitement de grande masse de données. 3. Java Development Kit 4. Graphical User Interface 37
  • 46. Chapitre 4 : Évaluation et expérimentation Nous allons commencer par une étude comparatif entre les deux algorithmes TOPSIS et STOPSIS : 103488 206976 413952 0 100 200 300 400 500 600 700 800 3.0 5.0 13.025.0 169.0 814.0 Nombre des lignes tempsd’exécution(seconde) STOPSIS ET TOPSIS impementation parallèle implémentation séquentielle Figure 4.1 – Comparaison entre TOPSIS et STOPSIS Comme le montre la figure 4.1, nous constatons une croissance importante de l’implementation séquentielle dès que le nombre de lignes augmente, par exemple lorsque le nombre de lignes égale à 103 488 le temps d’exécution égale à 25 secondes avec l’implementation séquentielle contraint à 3 secondes en utilisant l’implementation en parallèle. En prennant un autre exemple de notre graphe où 38
  • 47. Chapitre 4 : Évaluation et expérimentation le nombre de lignes égale à 206 976 le temps d’exécution égale à 169 secondes avec l’implementation séquentielle contraint à 5 secondes en utilisant l’implementation en parallèle. Dans cette étude, nous allons comparer les deux algorithmes SELECTRE et ELECTRE l’une implémention parallèle et d’une autre séquentielle : 5584 6926 8702 0 100 200 300 400 500 600 700 800 7.0 9.0 15.0 120.0 255.0 743.0 Nombre des lignes tempsd’exécution(seconde) impementation séquentielle implémentation parallèle Figure 4.2 – Comparaison entre SELECTRE et ELECTRE Nous pouvons déduire de la figure 4.2 une croissance importante de l’imple- mentation séquentielle contrairement à l’implementation parallèle dont l’évolu- tion reste négligeable par rapport a l’autre. Pour confirmer notre déduction, nous 39
  • 48. Chapitre 4 : Évaluation et expérimentation prenons un exemple tirer du graphe. Pour 5584 lignes le temps d’exécution de l’implémentation séquentiontielle est de 120 secondes pendant que l’implementa- tion en parallèle dure seulement 7 secondes. Nous allons comparer maintenant à l’aide du graphe les deux algorithmes SS- kyrule et Skyrule, l’un avec une implemention séquentielle et l’autre avec une implementation paralléle : 493926 660638 736040 0 50 100 150 200 250 300 5.0 6.0 7.0 125.0 182.0 290.0 Nombre des lignes tempsd’exécution(seconde) impementation séquentielle implémentation parallèle Figure 4.3 – Comparaison entre SSKYRULE et SKYRULE Nous constatons à partir de la figure 4.3 que l’implémentation séquentielle a un temps d’exécution très important par rapport à l’implementation en parallèle sur- tout en augmentant les données en entrées. Nous prenons un exemple du graphe 40
  • 49. Chapitre 4 : Évaluation et expérimentation avec le nombre de lignes égale à 493926, le temps d’exécution de l’implémenta- tion séquentielle est de 35 secondes contrairement à l’implementation parallèle qui prend seulement 4 secondes. Un autre exemple tiré du graphe avec le nombre de lignes égale à 660 638, ou l’implémentation séquentielle prend 57 secondes contrairement à l’implementation paralléle qui prend seulement 5 secondes. 4.3 Les maquettes d’interfaces graphiques Nous présentons dans cette section quelques interfaces principales de notre réalisation qui Illustrent les différents cas d’utilisation. Au démarrage de notre application une interface d’accueil démarre comme le montre la figure 4.4. l’uti- lisateur peut accéder à l’application sans inscription. Chaque utilisateur, pourra avoir la possibilité de manipuler l’application directement Figure 4.4 – Interface d’accueil A partir de cette interface, l’utilisateur peut soit obtenir des informations sur l’application, soit consulter les différentes tâches qui lui sont offertes. 41
  • 50. Chapitre 4 : Évaluation et expérimentation Figure 4.5 – Interface principale L’interface précédente permet de donner aux utilisateurs, un ensemble de menus pour utiliser les différentes fonctionnalités de l’application, à savoir : • Le chargement de fichier qui contient le problème en forme de matrice. • La sélection et la préparation de l’algorithme à utiliser parmi les trois im- plementers dans ce projet. • Consulter la console. • Voir le contenu du fichier chargé. 42
  • 51. Chapitre 4 : Évaluation et expérimentation Figure 4.6 – Console À l’aide de la console, l’utilisateur peut visualiser toutes les actions qu’il a fait en temps réel. Cette information l’aide à bien comprendre le comportement du programme, ainsi, il peut enregistrer tout ce qu’il a fait pour garder une trace des matrices qu’il a déjà traitées. 43
  • 52. Chapitre 4 : Évaluation et expérimentation Figure 4.7 – Menu pour remplir l’importance des critères Grâce à l’interface de la figure 4.7, l’utilisateur peut remplir soit les valeurs de l’importances des critères du problème ou simplement utiliser l’algorithme AHP pour le faire. Il peut également mentionner quels sont les critères à maximiser et les critères à minimiser. 44
  • 53. Chapitre 4 : Évaluation et expérimentation Figure 4.8 – Classement des candidats L’interface précédente permet de visualiser les résultats donnés par les diffé- rents algorithmes. Elle permet de visualiser le classement des candidats proposés par l’application des différentes solutions proposées. Grâce à cette interface, l’uti- lisateur peut garder une trace des résultats en l’enregistrant dans un fichier. 45
  • 54. Chapitre 4 : Évaluation et expérimentation Conclusion Cette partie démonstrative du travail offre une présentation des différentes fonc- tionnalités de notre application. En fait, nous avons vu dans ce chapitre les en- vironnements logiciels et matériels sur lesquels s’est basé ce travail. Nous avons montré ensuite les avantages de notre aproche et comment elle peut fournir de bon résultat dans un temps minimal ainsi que quelques captures d’écrans qui illustre la démarche de notre approche. 46
  • 55. Conclusion générale et perspective Spark et MapReduce forment l’ossature logicielle d’une infrastructure Big Data, en commençant par son architecture en cluster avec des noeuds, jusqu’à sa capacité de traitement au service de l’analyse. Au-delà de la consolidation du stockage de gros volumes de données, qui peuvent être à la fois structurées et non structurées, ou dispersées, le Big Data propose de mettre en exergue la valeur de l’information stockée, et ce en apportant une couche supplémentaire de traitement. Néanmoins, les outils d’analyse doivent intégrer cette couche de traitement des données. Des données qui peuvent être éventuellement stockées par les entreprises ou encore accessibles sur les réseaux sociaux, etc. Pour cela, les solutions de Big Data intègrent une couche de support d’applica- tion, ce que nous appelons un framework, qui fait lien entre la couche de stockage et le traitement de la donnée. En ce domaine, une solution émerge. Elle porte le nom spark. C’est un framework Open Source d’architecture distribuée, dont les développements sont hébergés par la Fondation apache et qui est dédié au support des applications destinées au Big Data, en particulier l’analytique. Au fil des quelques années qui ont rythmé le développement du Big Data, le framework Spark s’est imposé en piliers de cette technique. Nous avons utilisé dans ce projet ces deux outils pour faciliter et profiter du vrai pouvoir de la prise de décision multicritère. Nous avons, grâce au chapitre 3, prouver que notre solution offre de bons résultats face au problème de données volumineuses. Dans le chapitre 4, l’étude expérimentale et les statistiques propo- sées nous ont permis de prouver la robustesse de notre solution. La comparaison du temps d’exécution des algorithmes développés avec les implémentations sé- 47
  • 56. Conclusion générale et perspective quentielles a montré l’inifficacité de ces algorithmes en augmentant la masse de données par rapport à leurs implémentations paralléles. Perspectives Bien que les résultats obtenus soient encourageants, plusieurs perspectives et améliorations peuvent être envisagées dans notre projet. Ces perspectives se résument comme suit : - Améliorer et faciliter l’usage de notre plateforme , comme par exemple les données en entrées seront directement ajoutées depuis la base de don- nées. Il suffira donc à l’utilisateur de donner seulement le nom de la base ainsi que la table souhaitée et notre plateforme se chargera du reste. - Aider notre utilisateur à mieux sauvegarder ses données en écrivant un script qui permet de les stocker dans une base de données NOSQL 5 où il peut les réutiliser à tout moment. - Enrichir la plate-forme avec d’autres algorithmes d’aide à la décision multicritère comme PROMETHEE et GREY THEORY pour avoir encore plus de choix dans la résolution des problèmes proposés. 5. Not Only SQL. 48