Grenoble INP - ENSIMAG Introduction à la Recherche en Laboratoire Rapport de stage
Théorie du vote et Visualisation
Encadrants : Sylvain BOUVERET Renaud BLANCH
Auteur : Corentin COS
19 mai 2014
Résumé Ce rapport présente le résultat de travaux effectués dans le cadre d’un stage au Laboratoire d’Informatique de Grenoble autour de la problématique de la visualisation de données appliquée à la théorie du vote. Tout d’abord, le contexte du sujet sera présenté, en évoquant la place des problématiques de décision collective dans notre monde technologique, avant d’aborder la problématique sur laquelle est axée le travail. Nous nous intéresserons ensuite à l’état de l’art de la théorie du vote et de la visualisation de données sous forme de graphe, afin de mieux placer nos travaux dans le contexte général de résultats de recherches existants. Enfin, nous présenterons plus en détail les différentes contributions, sous forme de visualisations, résultantes de ce stage.
1
Table des matières 1 Avant-propos 1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Un problème de décision collective . . . . . . . . . . . . . . . . . 1.1.2 Le module IRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.3 Le projet Whale3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.3.1 Découverte et expérimentations de différentes procédure 1.1.3.2 Alternative à d’autres plate-formes de sondage . . . . . 1.2 Le problème posé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . de . . . .
. . . . . . . . vote . . . .
2 État de l’art
5 5 5 5 6 6 6 6 7
3 Travaux réalisés et contribution 3.1 Les technologies utilisées . . . . . . . . . . . . . . . . . . . . . 3.2 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Formalisation du vote . . . . . . . . . . . . . . . . . . 3.2.2 Méthode de Condorcet . . . . . . . . . . . . . . . . . . 3.2.2.1 Définition . . . . . . . . . . . . . . . . . . . . 3.2.2.2 Cycle de Condorcet . . . . . . . . . . . . . . 3.2.2.3 Exemple . . . . . . . . . . . . . . . . . . . . 3.2.3 Procédure de vote par approbation . . . . . . . . . . . 3.2.3.1 Définition . . . . . . . . . . . . . . . . . . . . 3.2.3.2 Exemple . . . . . . . . . . . . . . . . . . . . 3.3 Procédure de vote par approbation . . . . . . . . . . . . . . . 3.3.1 L’existant sur Whale3 . . . . . . . . . . . . . . . . . . 3.3.2 Contribution . . . . . . . . . . . . . . . . . . . . . . . 3.3.2.1 Objectif . . . . . . . . . . . . . . . . . . . . . 3.3.2.2 Un graphique . . . . . . . . . . . . . . . . . . 3.3.2.3 Une légende . . . . . . . . . . . . . . . . . . 3.3.2.4 Fonctionnalités d’interactivités . . . . . . . . 3.3.2.4.1 Barre verticale d’interactivité . . . . 3.3.2.4.2 Évolution dynamique de la taille des 3.3.2.4.3 Mise en relief d’un candidat . . . . 3.3.2.4.4 Tri des étiquettes dans la légende . 3.3.3 Limites de la contribution . . . . . . . . . . . . . . . . 3.4 Méthode de vote de Condorcet . . . . . . . . . . . . . . . . . 3.4.1 L’existant sur Whale3 . . . . . . . . . . . . . . . . . . 3.4.2 Contribution . . . . . . . . . . . . . . . . . . . . . . . 3.4.2.1 Objectif . . . . . . . . . . . . . . . . . . . . . 3.4.2.2 Visualisation . . . . . . . . . . . . . . . . . . 3.4.2.2.1 Graphe . . . . . . . . . . . . . . . . 3.4.2.2.2 Paradoxe de Condorcet . . . . . . . 3.4.2.3 Fonctionnalités d’interactivité . . . . . . . . 3.4.3 Amélioration . . . . . . . . . . . . . . . . . . . . . . . 4 Conclusion
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . histogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 9 9 9 10 10 10 10 11 11 12 13 13 13 13 13 14 14 16 16 17 17 18 20 20 20 20 20 20 21 21 23 24
2
Table des figures 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Préférences lors d’un sondage sur Whale3 . . . . . . . . . . . . . . . . . . . . . Relations entre les différents personnages des Misérables représentées sous forme de graphe à nœud/lien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relations entre les différents personnages des Misérables représentées sous forme de diagramme à arcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relations entre les différents personnages des Misérables représentées sous forme de matrice d’incidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Matrice d’incidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Matrice de pondération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Matrice de score . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Procédure de vote par approbation et visualisation . . . . . . . . . . . . . . . . Graphique représentant les seuils . . . . . . . . . . . . . . . . . . . . . . . . . . Légende du graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tous les éléments de la visualisation . . . . . . . . . . . . . . . . . . . . . . . . Barre d’interactivité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mise à jour des quantités des histogrammes . . . . . . . . . . . . . . . . . . . . Mise en relief sur la visualisation basique . . . . . . . . . . . . . . . . . . . . . Mise en relief après bloquage avec la barre interactive . . . . . . . . . . . . . . Disposition des légendes avant le tri . . . . . . . . . . . . . . . . . . . . . . . . Disposition des légendes après le tri . . . . . . . . . . . . . . . . . . . . . . . . Mise en relief après le tri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode de Condorcet et visualisation (existant) . . . . . . . . . . . . . . . . . Nouvelle visualisation avec la méthode de Condorcet . . . . . . . . . . . . . . . Mise en relief de la pondération avec le gagnant de condorcet . . . . . . . . . . Mise en relief des duels d’un candidat avec ses adversaires . . . . . . . . . . . . Mise en relief du paradoxe de Condorcet . . . . . . . . . . . . . . . . . . . . . . Exemple de cas où une décomposition modulaire peut être intéressante . . . . .
3
7 8 8 8 11 11 11 13 14 14 15 15 16 17 17 18 18 19 19 20 21 22 22 23 23
Remerciements Je tiens tout d’abord à grandement remercier Sylvain Bouveret et Renaud Blanch, mes encadrants, pour leur grande disponibilité, leur suivi, leur aide, mais également pour l’opportunité qu’ils m’ont offerte de travailler sur deux thématiques qui m’ont passionné durant tout ce semestre. J’ai découvert, grâce à ce stage, un univers qui était pour moi inconnu : la théorie du vote. Le citoyen que je suis, bien naïf, n’avait pas imaginé l’immensité des alternatives à la procédure de vote qui à mes yeux était presque unique et indétrônable : le scrutin majoritaire à deux tours. Je remercie le LIG, et l’ENSIMAG, pour avoir mis en place les conditions qui ont permis ce stage de découverte. Je souhaite également remercier les différentes personnes de l’équipe STeamer avec qui j’ai pu échanger.
4
1 1.1 1.1.1
Avant-propos Contexte Un problème de décision collective
L’essor et la croissance des réseaux sociaux dans le monde actuel amène un nombre toujours plus important de personnes à interagir entre elles. Ces interactions peuvent consister en différentes personnes souhaitant se décider sur un problème, et prendre une décision collective. Considérons par exemple le cas d’un sondage sur le choix d’un restaurant. Cette décision consiste à choisir le restaurant convenant le mieux aux personnes concernées par ce sondage. Pour que cette décision soit optimale, il faut prendre en compte les préférences individuelles des différentes personnes. Cette décision doit être une forme d’agrégation des avis des différentes personnes, de sorte que la décision finale reflète le désir du groupe. Quel système mettre en place pour calculer cette décision ? Comment représenter le résultat d’un sondage pour mettre en avant les tendances des différentes préférences ? La théorie du vote propose différentes règles et principes, ainsi que différentes procédures et méthodes de vote, permettant de prendre une décision collective la plus fidèle possible aux préférences des individus. Nous avons différents individus qui doivent faire un choix parmi quelques restaurants. Chaque individu peut donner sa préférence, son avis, pour chaque alternative qui lui est proposée. Différentes méthodes de vote sont applicables à ce problème de choix d’un restaurant. Chaque méthode a ses particularités, son algorithme de traitement qui lui est propre, et peut amener une interprétation différente des préférences des individus. Il existe quelques plate-formes de vote et de sondage en ligne permettant de se décider sur un choix. Doodle est le plus connu, mais les choix de préférence sont restreints (Une approbation par oui ou non), et par conséquent, l’ensemble de méthodes de vote utilisables est relativement restreint. Il est difficile à l’heure actuelle de disposer de tous les outils pour prendre une décision collective optimisée et garantissant la satisfaction d’un maximum d’individus. Le rôle de la visualisation de données dans cela ? Résumer le résultat du sondage à une matrice représentant les préférences de chaque individu pour chaque choix est relativement complexe à traiter pour un être humain. Cet être humain peut être le décideur à l’origine du sondage mis en place, et devant sceller la décision. La visualisation de données permet d’éviter des calculs en proposant une image intuitive et pertinente, et ainsi grandement faciliter la compréhension des résultats. L’être humain est naturellement doué pour comprendre des figures, des formes, et identifier les informations présentées. Proposer une visualisation compréhensible peut également permettre de rendre ces outils de vote accessibles à un public plus large, non forcément averti, mais tout autant capable de comprendre la décision collective résultante.
1.1.2
Le module IRL
Le module Introduction à la Recherche en Laboratoire (IRL) est proposé aux élèves en deuxième année à l’École Nationale Supérieure d’Informatique et de Mathématiques Appliquées (ENSIMAG) dans le cadre de leur formation. L’IRL vise à faire découvrir aux élèves les métiers de la recherche en leur proposant d’effectuer un stage en laboratoire à la place d’un cours lors du second semestre. Dans le cadre de ce module, ce travail sur la thématique de la théorie de vote et de la visualisation a été effectué au sein du Laboratoire d’Informatique de Grenoble (LIG), entre les
5
équipes STeamer et IIHM.
1.1.3
Le projet Whale3
Le projet Whale3 1 est une application web de sondage visant à proposer aux internautes différentes méthodes de vote alternatives pour représenter les résultats de ces sondages. Ce projet a deux objectifs : – permettre d’expérimenter différentes procédures de vote pas forcément connues du grand public ; et – proposer une alternative à Doodle ou d’autres plate-formes de sondage de ce type
1.1.3.1
Découverte et expérimentations de différentes procédure de vote
En effet, en France par exemple, la méthode de vote la plus connue est le scrutin majoritaire à deux tours. Elle est par exemple utilisée pour les élections présidentielles. Les citoyens ne sont pas nécessairement au courant de la diversité des systèmes de vote différents. Il existe, en effet, bien d’autres méthodes de vote. Ainsi, le projet Debian utilise la méthode de Condorcet (présentée plus en détail partie 3.2.2.1) pour les élections du chef du projet [1] (au même titre que d’autres projets du monde du logiciel libre). La méthode de Borda est quant à elle par exemple utilisée pour désigner les candidats à la présidentielle des Kiribati par le parlement local [2].
1.1.3.2
Alternative à d’autres plate-formes de sondage
Prenons comme exemple Doodle, car c’est la plate-forme de décision collective connue de tous. Faire un sondage sur Doodle revient à demander aux gens de faire un choix pour chaque candidat : oui, non, ou bien aucun des 2. Doodle permet au décideur de rapidement avoir une vue d’ensemble des possibilités qui s’offrent à lui : les choix qui remportent le plus de oui, le plus de non. Doodle simplifie ainsi la prise de décision collective, mais restreint les possibilités de traitement sur les données du sondage. Whale3 propose différentes procédures et méthodes de vote, permettant ainsi d’avoir différents outils pour mieux analyser les résultats du sondage et avoir toutes les clés en main pour en tirer la meilleure des décisions.
1.2
Le problème posé
Whale3 propose plusieurs alternatives pour l’expression des préférences des individus votants lors de la création d’un sondage : – 5 niveaux positifs/négatifs (on attribue une valeur au candidat parmi - -/-/0/+/++) – ordre (au choix : strict ou non) – score (on donne un score à chaque candidat) – approbation (oui ou non, comme Doodle) Considérons par exemple un sondage auprès de personnes, afin de voir quel est leur cuisine préférée (française ? japonaise ?) : chaque individu donne son avis pour chaque choix (chaque cuisine). La Figure 1 montre la répartition des préférences de chaque individu (les lignes) pour chaque cuisine (les colonnes). Les préférences sont exprimées selon un classement de 1 au nombre de choix. On peut voir par exemple que Sylvain, l’individu dont les préférences sont situées sur la première ligne, préfère la nourriture japonaise à la nourriture chinoise, mais qu’il préfère la nourriture française à la nourriture japonaise. 1. Whale3 :http://whale3.noiraudes.net
6
Figure 1 – Préférences lors d’un sondage sur Whale3 De là vient la première problématique : comment représenter le résultat de ce vote/sondage de manière compréhensible et pertinente pour un public non averti ? Mais ce n’est pas tout. En effet, les algorithmes de traitement des scrutins, les informations qui en sont extraites, la manière dont elles sont exprimées, sont différentes suivant la procédure de vote choisie. De là vient la problématique principale : Comment représenter le résultat de ce vote/sondage de manière à ce que l’intérêt et la particularité de la méthode utilisée soit mis en avant, tout en étant compréhensible pour un public non averti ?
2
État de l’art
La visualisation de données vise à rendre les données plus accessibles et plus compréhensibles. Trouver la bonne visualisation nécessite de se poser les bonnes questions sur la donnée à représenter, sur l’information qu’on veut en extraire. Le problème est qu’il y a différentes manières de représenter le même jeu de données. À titre d’exemple, il existe un certain nombre de possibilités de représentation pour un graphe, dont les trois suivantes tirées du panorama de travaux sur les différentes possibilités de visualisation, réalisé par Jeffrey Heer, Michael Bostock, et Vadim Ogievetsky [3]. Ces visualisations représentent les relations entre les différents personnages du livre Les misérables, écrit par Victor Hugo. La représentation classique que l’on a des graphes est une représentation sous forme de graphe à nœud/lien (Figure 2). Chaque personnage est représenté par un rond. Chaque arête reliant 2 personnages signifie que ces personnages interagissent à un moment donné dans l’histoire. Nous pouvons également disposer tous les sommets sur une même ligne, et représenter les relations entre ces sommets par des arcs de cercle, donnant un diagramme à arcs (Figure 3). Une autre alternative est de représenter ce graphe sous forme de matrice d’incidence (Figure 4). Chaque personnage est représenté par une ligne et une colonne, une case colorée signifie que les 2 personnages correspondant (ligne et colonne) interagissent. Il y a des limitations à une représentation de type nœud/lien dans le cas où le graphe est très dense. Dans ce cas, il peut être intéressant de mettre en place une décomposition modulaire des sommets comme présentés dans cet article du laboratoire de recherche de Microsoft [4]. Un module M est un sous-ensemble S de sommets du graphe de sorte que les sommets de S sont vus de la même manière par les sommets à l’extérieur de M . Une décomposition modulaire
7
Figure 2 – Relations entre les différents personnages des Misérables représentées sous forme de graphe à nœud/lien
Figure 3 – Relations entre les différents personnages des Misérables représentées sous forme de diagramme à arcs
Figure 4 – Relations entre les différents personnages des Misérables représentées sous forme de matrice d’incidence 8
d’un graphe consiste en l’agrégation de sommets du graphe dans des modules. Pour qu’une décision soit prise, il faut qu’une des alternatives proposées sorte gagnante. Il y a donc une relation entre cette alternative choisie et les autres alternatives (elle gagne, les autres perdent contre elle). Le lien entre la théorie des graphes et la théorie du vote donne une base à une visualisation de données de vote comme s’y sont intéressés Nicholas R. Miller [5] et Debbie Berg [6].
3 3.1
Travaux réalisés et contribution Les technologies utilisées
Différentes technologies ont été utilisées lors de ce stage. Le langage utilisé pour l’implémentation des différentes visualisations est le javascript. C’est une technologie gérée par les navigateurs web, et permettant de faire des pages interactives. d3.js est une bibliothèque graphique javascript qui a été grandement utilisée pour la mise en place des différentes visualisations. Son développement a été initié au sein du département d’Informatique de l’université de Stanford[7]. Elle est à ce jour principalement maintenue par Michael Bostock [8]. d3.js permet de traiter et d’afficher des données de manière statique aussi bien que dynamique ou interactive, dans un navigateur web. Elle se base sur la technologie SVG pour le rendu graphique. Enfin, un versionnage a été fait à l’aide de l’utilitaire git, car les modifications apportées étaient fréquentes, et parfois assez importantes. Les sources du projet sont à présent disponibles sur github.com 2 .
3.2
Définitions
Nous allons dans cette section définir les différentes méthodes de vote sur lesquelles reposent nos travaux. Nous nous limiterons à la définition des termes et notions nécessaires à la compréhension des contributions présentées dans ce document.
3.2.1
Formalisation du vote
Quelques notions sont essentielles pour la bonne compréhension de la présentation des travaux. Soient votants V les individus exprimant leur avis/choix. Soient candidats A les alternatives qui leur sont proposées. Soit un votant v, deux candidats a1 et a2 , ainsi que la relation binaire d’ordre strict >k , k ∈ V . La relation a1 >v a2 signifie que v préfère a1 à a2 . Nous l’écrirons aussi v : a1 > a2 . Un problème de vote est défini comme suit : un profil P est une séquence de n ordres stricts totaux, ou préférences, sur un ensemble A = {a1 , .., am } de candidats. On définit comme étant une situation de vote tout couple (A, P ), avec A un ensemble de candidats, et P un profil sur A. Une règle de vote (resp. une correspondant de vote) est une fonction qui à tout profil associe un seul candidat (resp. un sous-ensemble de candidats), le gagnant (resp. les co-gagnants). Pour transformer une correspondance de vote en règle, il suffit de définir une règle départageant les candidats ex-aequo (tie-breaking rule), qui associe à tout ensemble de candidats un candidat unique. 2. Sources du projet : (https://github.com/cosinuz/FunWithd3js)
9
3.2.2 3.2.2.1
Méthode de Condorcet Définition
Considérons un ensemble de candidats A et un ensemble de votants V . La méthode de Condorcet repose sur la notion de duel. Soit n(ai , aj ), avec ai ∈ A et aj ∈ A, le nombre de votants préférant ai à aj . Si n(ai , aj ) > Card(V )/2, alors ai remporte son duel contre aj . Si n(ai , aj ) = n(aj , ai ) = Card(V )/2 alors il y a égalité. Soit c la fonction d’incidence qui à chaque (ai , aj ) ∈ A2 associe la valeur : – c(ai , aj ) = 1 si n(ai , aj ) > Card(V )/2 ; – c(aj , ai ) = −1 si n(ai , aj ) > Card(V )/2 ; – c(ai , aj ) = 0 si n(ai , aj ) = Card(V )/2 ou bien ai = aj . Une matrice d’incidence est construite à partir de cette fonction. Soit w la fonction de pondération qui à chaque (ai , aj ) ∈ A2 associe la valeur w(ai , aj ) = n(ai , aj ) − n(aj , ai ). Une matrice de pondération est construite à partir de cette fonction. Un exemple illustrant notamment la génération de ces matrices est présenté en partie 3.2.2.3. Si un candidat gagne ses duels contre tous les autres candidats, alors ce candidat est élu et est appelé le gagnant de Condorcet. Ce critère est appelé le critère de Condorcet. Le gagnant de Condorcet peut très bien ne pas exister, mais si il existe, il est unique. Il y a d’autres méthodes existantes qui respectent le critère de Condorcet : elles sont appelées méthodes Condorcet-cohérente. Elles permettent de trouver le gagnant de Condorcet si il y en a un. La méthode Copeland 1, qui est Condorcet cohérente, est utilisée dans les travaux présentés dans ce rapport. Elle consiste à compter le nombre de duels gagnés, ou de duels à égalité, pour chaque candidat de sorte que le candidat en ayant remporté le plus grand nombre est le gagnant de Condorcet.
3.2.2.2
Cycle de Condorcet
Cette situation peut arriver dès que le nombre de candidats est strictement supérieur à 2. Par exemple, considérons n candidats a1 , a2 ,...,an . Il y a cycle de Condorcet dans le cas où : a1 > a2 a2 > a3 ... an−1 > an an > a1 On a donc finalement la contradiction a1 > a2 > ...an−1 > an > a1 , ce qui constitue le cycle et donc le paradoxe de Condorcet.
3.2.2.3
Exemple
Considérons un ensemble de candidats A avec a1 ,a2 ,a3 ,a4 comme étant les éléments de cet ensemble. Considérons un ensemble de votants V avec v1 ,v2 ,v3 ,v4 comme étant les éléments de cet ensemble. Considérons la fonction r(Candidat a, Votant v) qui renvoie le rang du candidat a pour le votant v. Considérons la répartition des préférences de cette manière : v1 : a1 > a2 > a3 > a4 v2 : a2 > a1 > a4 > a3 v3 : a3 > a1 > a4 > a2 v4 : a1 > a2 > a3 > a4
10
Observons le duel entre a1 et a2 : n(a1 , a2 ) =
X
1r(a1 ,v)>r(a2 ,v)
v∈V
= 1{r(a1 ,v1 )>r(a2 ,v1 )} + 1{r(a1 ,v2 )>r(a2 ,v2 )} + 1{r(a1 ,v3 )>r(a2 ,v3 )} + 1{r(c1,v4 )>r(c2,v4 )} =1+0+1+1 =3 On en déduit que a1 gagne forcément, car Card(V )−n(a1 , a2 ) = 1 < Card(V )/2. En effectuant ces duels pour chaque candidat 2 à 2, on obtient la matrice d’incidence Figure 6. En représentant les différences de préférences entre les candidats, on obtient la matrice de pondération présentée Figure 7.
a1 a2 a3 a4
a1 0 -1 -1 -1
a2 1 0 -1 -1
a3 1 1 0 -1
a4 1 1 1 0
Figure 5 – Matrice d’incidence
a1 a2 a3 a4
a1 0 -2 -2 -4
a2 2 0 -2 -2
a3 2 2 0 -2
a4 4 2 2 0
Figure 6 – Matrice de pondération On se base ensuite sur ces données pour effectuer d’autres traitements avec les méthodes Condorcet cohérentes citées en partie 3.2.2.1, et calculer le gagnant de Condorcet. En utilisant la méthode de Copeland, présentée en partie 3.2.2.1, et utilisée dans nos travaux, on obtient le classement présenté Figure 8.
rang 1er 2ème 3ème 4ème
candidat a1 a2 a3 a4
Figure 7 – Classement 3.2.3 3.2.3.1
Procédure de vote par approbation Définition
11
Considérons un ensemble de candidats A et un ensemble de votants V . Chaque votant soumet un classement des candidats de 1 à Card(A), selon un ordre strict de préférence (le candidat classé premier est préféré aux autres, suivi par le candidat classé deuxième, etc.). Cette procédure de vote est basée sur la notion de seuil. Considérons un seuil Y ∈ N, tel que 1 <= Y <= Card(A) bien entendu. Regarder le score d’un candidat pour ce seuil Y consiste à compter le nombre de votants pour lequel il est classé entre la première place et la place Y . On associe à ce seuil un vecteur s~Y = (sYi )i∈N , que l’on appelle vecteur de seuil, défini comme suit : ∀i ∈ N, 1 <= i <= Card(A) : sYi = 1{i<=Y } . Si Y = 2, et qu’il y a Card(A) = 5 candidats, on obtient ce vecteur-ci : < 1, 1, 0, 0, 0 >. Considérons la fonction r(Candidat a, Votant v) qui renvoie le rang du candidat a pour le votant v, et la fonction score(Score s, Candidat c) qui donne pour un candidat donné P son score pour le seuil courant : score(Y,c) = v∈V sYr(c,v) . Ainsi, on obtient un score pour chaque candidat sur un seuil donné. Ce score permet de définir une relation d’ordre entre les candidats, et donc de définir un classement des candidats sur un seuil donné. En faisant ce traitement pour chaque seuil Y ∈ {1, .., Card(C)}, on obtient une matrice de score d’approbation (Figure 9). Un exemple est présenté dans la partie 3.2.3.2.
3.2.3.2
Exemple
Considérons un ensemble de canditats A avec a1 ,a2 ,a3 ,a4 comme étant les éléments de cet ensemble. Considérons un ensemble de votants V avec v1 ,v2 ,v3 ,v4 comme étant les éléments de cet ensemble. Considérons la répartition des préférences suivante : v1 : a1 > a2 > a3 > a4 v2 : a2 > a1 > a4 > a3 v3 : a3 > a1 > a4 > a2 v4 : a1 > a2 > a3 > a4 Considérons le seuil Y = 2, avec donc comme vecteur correspondant s~2 =< s21 , s22 , s23 , s24 >=< 1, 1, 0, 0 >. On a par exemple : score(2, c3) =
X
s2r(a3 ,v)
v∈V
= s2r(a3 ,v1 ) + s2r(a3 ,v2 ) + s2r(a3 ,v3 ) + s2r(a3 ,v4 ) = s23 + s24 + s21 + s23 =0+0+1+0 =1 ou bien : score(2, c1) =
X
s2r(a1 ,v)
v∈V
= s2r(a1 ,v1 ) + s2r(a1 ,v2 ) + s2r(a1 ,v3 ) + s2r(a1 ,v4 ) = s21 + s22 + s22 + s21 =1+1+1+1 =4
12
Si on prend le seuil Y = 1, s~1 =< s11 , s12 , s13 , s14 >=< 1, 0, 0, 0 >, on obtient par exemple : score(1, c1) =
X
s1r(a1 ,v)
v∈V
= s1r(a1 ,v1 ) + s1r(a1 ,v2 ) + s1r(a1 ,v3 ) + s1r(a1 ,v4 ) = s11 + s12 + s12 + s11 =1+0+0+1 =2 En effectuant ce traitement sur chaque candidat, et chaque seuil possible, on obtient la matrice de score d’approbation suivante (lignes : candidats, colonnes : seuils) présentée Figure 9.
a1 a2 a3 a4
1 2 1 1 0
2 4 3 1 0
3 4 3 3 2
4 4 4 4 4
Figure 8 – Matrice de score Différentes informations contenues dans cette matrice sont intuitives : – Si un candidat a le score maximum (= Card(C)) à un seuil i, alors il a forcément ce score aux seuils j, j >= i – Tous les candidats ont le score maximum au dernier seuil
3.3
Procédure de vote par approbation
3.3.1
L’existant sur Whale3
Une représentation était déjà disponible sur l’application web Whale3. Elle représente les résultats pour chaque seuil de manière distincte (un menu déroulant permet de désigner le seuil voulu). On voit ainsi le nombre de fois où le candidat est classé entre 0 et le seuil précisé dans le menu déroulant. La Figure 9 utilise les données du vote dont le résultat est exposé avec la Figure 1, et constitue la visualisation du résultat une fois appliquée la méthode de vote par approbation. Il est ainsi impossible d’avoir une représentation globale des différents seuils de cette manière.
3.3.2 3.3.2.1
Contribution Objectif
La méthode de vote par approbation est basée sur l’idée de seuil. Il semblait donc intéressant de permettre une vision globale des résultats avec ces seuils, voire d’en voir les évolutions sur une seule visualisation.
3.3.2.2
Un graphique
Pour agréger les différents seuils sur un même graphe, la représentation s’est basée sur un graphique avec une abscisse, les différents seuils, et une ordonnée, la quantité de votes
13
Figure 9 – Procédure de vote par approbation et visualisation pour le candidat ai pour le seuil x. Une couleur différente a été associée à chaque candidat pour les différencier. De cette manière, on peut voir l’évolution des candidats au fil des seuils instantanément et sans aucune interaction nécessaire avec la visualisation. Cela est représenté par la figure 10.
Figure 10 – Graphique représentant les seuils
3.3.2.3
Une légende
Il a été nécessaire d’ajouter une légende pour lier les candidats à leur représentation sur le graphique. Il a également été associé un histogramme à chaque étiquette de la légende. Chaque ensemble étiquette de candidat/histogramme est de la même couleur que la ligne correspondante sur le graphique. Cela permet à l’utilisateur de rapidement lier l’histogramme à la ligne correspondante. Le rôle de ces histogrammes est expliqué dans le paragraphe 3.3.2.4.
3.3.2.4
Fonctionnalités d’interactivités
Pour permettre à l’utilisateur de tirer le maximum d’information de cette visualisation (Figure 12), et pour lui permettre d’analyser certains aspects plus précis du résultat, il a été ajouté différentes fonctionnalités interactives.
14
Figure 11 – Légende du graphique
Figure 12 – Tous les éléments de la visualisation
15
3.3.2.4.1
Barre verticale d’interactivité
Lors du passage du curseur sur le graphique, il apparaît une barre qui suit les mouvements du curseur (Figure 13).
Figure 13 – Barre d’interactivité L’intérêt de cette barre est double : – Cela permet de récupérer des données pour un seuil donné (ou une interpolation entre 2 seuils), et d’effectuer un traitement sur les histogrammes des candidats, expliqué dans la partie 3.3.2.4.2 – La barre peut être bloquée à un moment pour libérer le curseur. On peut ainsi l’utiliser pour mettre en avant un candidat (expliqué dans la partie 3.3.2.4.3), ou bien ranger les étiquettes dans la légende (détaillé dans la partie 3.3.2.4.4) En effet, réunir une visualisation des informations de chaque seuil en un seul graphique peut entraîner un manque de précision et nécessiter d’accéder à certaines informations avec plus de précision.
3.3.2.4.2
Évolution dynamique de la taille des histogrammes
L’ajout des histogrammes dans la légende a été inspiré par la visualisation en place initialement sur l’application Whale3. Le rôle de ces histogrammes est le même : lors du passage de la barre d’interactivité sur le graphique, l’histogramme se met à jour en conséquence pour chaque candidat. Ceci est fait en récupérant les ordonnées de chaque candidat (de leur ligne correspondante) pour la position d’abscisse courante de la barre verticale. La taille de chaque histogramme est proportionnelle à l’ordonnée de la ligne correspondante : ainsi, un candidat ai ayant une quantité de vote plus importante qu’un candidat aj pour un seuil donné (ou une interpolation entre deux seuils), aura un histogramme plus grand. Il est en effet fait une interpolation de l’estimation de l’ordonnée de chaque candidat dans les cas où la barre n’est pas précisément sur l’abscisse correspondant à un seuil. Cela permet d’avoir une idée de l’évolution, progressive, des scores de chaque candidat. Ces histogrammes permettent d’avoir une vision précise des différences du nombre de voix entre les différents candidats. Et cela, à tout moment, entre les seuils 1 à n, simplement en utilisant la barre interactive. Nous pouvons ainsi vérifier si 2 candidats sont bien à égalité si le graphique en donne l’impression. Bloquer la barre interactive (en cliquant dessus) permet de bloquer l’état des histogrammes à l’instant voulu, et donc de déplacer le curseur en dehors du graphique sans que les histogrammes se remettent à leur état initial (ce qui est fait par défaut si la barre verticale n’est pas bloquée).
16
Figure 14 – Mise à jour des quantités des histogrammes 3.3.2.4.3
Mise en relief d’un candidat
Avec la mise en place d’un graphique pour visualiser les différents seuils, il n’est pas toujours évident de clairement distinguer la ligne d’un candidat donné. Elle peut être cachée par d’autres lignes. Pour remédier à cela, il suffit de passer le curseur sur l’histogramme ou l’étiquette du candidat correspondant. L’opacité des lignes des autres candidats est ainsi nettement diminuée pour bien faire ressortir le candidat visé.
Figure 15 – Mise en relief sur la visualisation basique
3.3.2.4.4
Tri des étiquettes dans la légende
Une fois que l’on a bloqué la barre interactive, les histogrammes sont re-calculés comme expliqué partie 3.3.2.4.2. Il a été mis en place un bouton sort qui permet de trier les légendes selon la taille des histogrammes (et donc selon le nombre de voix). On peut ainsi avoir une visualisation plus nette de l’ordre entre les différents candidats pour le seuil (ou l’interpolation entre deux seuils) choisi. Cela permet de passer d’une visualisation comme celle présentée Figure 17 à la visualisation présentée Figure 18. Cela permet d’éviter les erreurs d’interprétation et d’avoir un ordre clair entre les différents candidats, à tout moment. Dans un premier temps, ce tri a été fait de manière totalement dynamique, sans bouton. Il s’est avéré qu’avec les données de test utilisées, le but d’une meilleure visibilité de l’ordre n’était pas atteint. En effet, les histogrammes changeaient beaucoup trop souvent d’ordre et
17
Figure 16 – Mise en relief après bloquage avec la barre interactive cela était perturbant. Il a donc été décidé de laisser le choix à l’utilisateur du moment où le tri devrait se faire. On peut toujours mettre en relief un candidat particulier après avoir trié les
Figure 17 – Disposition des légendes avant le tri légendes.
3.3.3
Limites de la contribution
Il est difficile d’avoir une bonne vision d’ensemble si le nombre de candidats est de l’ordre de la centaine voire plus. En effet, observer l’évolution de tous les histogrammes serait encore compliqué, car il y aurait beaucoup trop d’informations à assimiler. Il est cependant à prévoir que des votes mis en place avec un tel nombre de candidats soient très peu probables.
18
Figure 18 – Disposition des légendes après le tri
Figure 19 – Mise en relief après le tri
19
3.4
Méthode de vote de Condorcet
3.4.1
L’existant sur Whale3
La Figure 20 utilise les données du vote dont le résultat est exposé Figure 1, et constitue la visualisation du résultat une fois la méthode de Condorcet appliquée. Le graphe résultant est un graphe complet, composé de sommets et d’arcs. Chaque sommet est un candidat. Chaque arc représente un duel entre le candidat source et le candidat cible. Le candidat source de l’arc est le candidat ayant gagné le duel. Les arcs sont pondérés avec la différence de score lors du calcul du duel entre 2 candidats. On peut voir qu’il est difficile d’avoir une idée d’ordre entre
Figure 20 – Méthode de Condorcet et visualisation (existant) les candidats en observant ce graphe (Figure 20).
3.4.2 3.4.2.1
Contribution Objectif
La base de la contribution a été de bien remettre en avant la relation d’ordre entre les différents candidats avec cette méthode.
3.4.2.2
Visualisation
3.4.2.2.1
Graphe
Les résultats visuels présentés sont calculés avec la méthode de Condorcet en se basant sur le nombre de duels perdus pour chaque candidat. Chaque rectangle représente un candidat. Le candidat placé le plus haut est le candidat ayant perdu le moins de duels, et le candidat placé le plus bas est le candidat ayant perdu le plus de duels. Cela revient à calculer le score de Copeland comme expliqué dans la partie 3.2.2.1. Deux candidats qui font un duel à égalité n’ont pas d’arcs. Si un candidat ai bat un candidat aj , alors il y aura un arc ayant pour source ai et pour cible aj . L’épaisseur de cet arc est pondérée par la différence de score entre les 2 candidats pendant le duel. Une couleur est associée à chaque candidat et à ses arcs sortants.
20
Figure 21 – Nouvelle visualisation avec la méthode de Condorcet 3.4.2.2.2
Paradoxe de Condorcet
Un cycle de Condorcet est rapidement identifié sur cette visualisation (Figure 21) grâce à la notion d’ordre. Un arc ayant pour source un sommmet situé plus bas que le sommet cible témoigne d’un paradoxe de Condorcet. Pour mettre cela encore plus en avant dans cette visualisation, il a été décidé de séparer les arcs en deux ensembles : – en partie gauche des sommets, ce sont les arcs sans information particulière autre qu’un duel ; et – en partie droite, ce sont les arcs mettant en avant des paradoxes de Condorcet. Cette visualisation prend ainsi bien en compte les particularités et spécificités de la méthode de Condorcet.
3.4.2.3
Fonctionnalités d’interactivité
Il est évident qu’il y a beaucoup d’information à visualiser et qu’il est nécessaire de filtrer cela. Pour permettre cela, il a été ajouté une fonctionnalité rappelant celle présentée partie 3.3.2.4.3. Dans le cas de la visualisation de données traitées avec la méthode de Condorcet, passer le curseur sur un des candidats (sur son rectangle), va mettre en avant les arcs entrants et arcs sortants de son rectangle. Pour expliquer cela de manière plus rigoureuse, c’est l’opacité des autres arcs qui va être diminuée (de l’ordre de 20%), c’est donc ces autres arcs qui se mettront en retrait. Soit ai le candidat sélectionné. Nous allons ainsi pouvoir voir quels candidats battent le candidat ai , quels candidats sont battus par le candidat ai , et également quels candidats font égalité face à ce candidat en déduisant cela des arcs non existant entre le candidat ai et un autre candidat. On peut voir par exemple dans la Figure 22 que les deux premiers candidats se battent de peu de voix. Pondérer les arcs, à l’aide des informations de la matrice de pondération, permet donc de déduire de notre jeu de données visualisées que la place de premier est gagnée de peu entre le candidat F rench et le candidat Japanese. On remarque que F rench est le gagnant de Condorcet. La Figure 23 montre la mise en relief des arcs entrants et arcs sortants d’un candidat (le candidat N orwegian ici en l’occurrence). Cette interaction permet également de mettre en
21
Figure 22 – Mise en relief de la pondération avec le gagnant de condorcet
Figure 23 – Mise en relief des duels d’un candidat avec ses adversaires
22
avant des paradoxes de Condorcet (Figure 24).
Figure 24 – Mise en relief du paradoxe de Condorcet 3.4.3
Amélioration
Une décomposition modulaire est envisageable pour diminuer le nombre d’arcs dans le graphe. Cependant, comme expliqué dans cet article [4], un public non averti peut nécessiter au préalable une formation même courte (de l’ordre de 20 minutes) pour bien comprendre la signification d’une décomposition du graphe en modules. Cela pourrait aller à l’encontre d’un des buts de l’application Whale3 et de nos travaux qui ont pour objectif de proposer des visualisations accessibles à toute personne. La Figure 25 présente un cas où il serait intéressant d’appliquer cela. Les candidats E et F (entourés par un rectangle) ont strictement les mêmes origines pour leurs arcs entrants, et les mêmes cibles pour leurs arcs sortants. L’application de la décomposition modulaire permettrait de les agréger dans un module.
Figure 25 – Exemple de cas où une décomposition modulaire peut être intéressante
23
4
Conclusion
Whale3, plate-forme web proposant d’expérimenter différentes méthodes de vote et d’en visualiser les résultats, dispose à présent de nouvelles formes de visualisation pour la méthode de Condorcet et pour la procédure de vote par approbation. La visualisation des résultats de vote est un domaine encore grandement inexploré par la recherche actuelle, en proportion de l’essor toujours plus important des réseaux sociaux. Quelques recherches ont été faites sur les liens possibles entre la théorie des graphes et la théorie du vote [5] [6]. Ces travaux ont amené quelques premières visualisations intéressantes. Enfin, il peut être difficile de proposer une visualisation unique car comme nous l’avons remarqué, il existe différentes manières de représenter la même information. Il sera toujours possible de proposer des nouvelles fonctionnalités à l’utilisateur, d’améliorer son expérience et sa compréhension de la visualisation. Par exemple, implémenter des visualisations de différentes méthodes Condorcet-cohérentes, et permettre d’alterner facilement entre ces différentes visualisations. Cela permettrait aux utilisateurs d’avoir une meilleure idée globale des nuances entre ces différentes méthodes.
24
Références [1] Debian Project. Information sur les votes debian. https://www.debian.org/vote/. [2] Benjamin Reilly. Social choice in the south seas. International Political Science Review, 23(4) :355–372, 2002. [3] Jeffrey Heer, Michael Bostock, and Vadim Ogievetsky. A tour through the visualization zoo. Commun. ACM, 53(6) :59–67, 2010. [4] Tim Dwyer, Nathalie Henry Riche, Kim Marriott, and Christopher Mears. Edge compression techniques for visualization of dense directed graphs. IEEE Trans. Vis. Comput. Graph., 19(12) :2596–2605, 2013. [5] Nicholas R. Miller. Graph-theoretical approaches to the theory of voting. American Journal of Political Science, 21(4) :769–803, 1977. [6] Debbie Berg. Connections between voting theory and graph theory. http://www.math. hmc.edu/seniorthesis/archives/2006/dberg/dberg-2006-midyear.pdf. [7] Michael Bostock, Vadim Ogievetsky, and Jeffrey Heer. D3 data-driven documents. IEEE Trans. Vis. Comput. Graph., 17(12) :2301–2309, 2011. [8] Michael Bostock. D3.js - data-driven documents. http://d3js.org/.
25