NETSIM :
UN LOGICIEL DE MODÉLISATION ET DE SIMULATION DE RÉSEAUX
D'INFORMATION
MÉMOIRE
PRÉSENTÉ
COMME EXIGENCE PARTIELLE
DE LA MAÎTRISE EN INFORMA TIQUE
PAR
MÉLANIE LORD
AVRIL2007
..
UNIVERSITÉ DU QUÉBEC À MONTRÉAL
Service des bibliothèques ·
Avertissement
La diffusion de ce mémoire se fait dans le' respect des droits de son auteur, qui a signé
le formulaire Autorisation de reproduire. et de diffuser un travail de recherche de . cycles
supérieurs (SDU-522- Rév.01-2006). Cette autorisation .stipule que <<conformément ·à
l'article 11 du Règlement no 8 des études de cycles supérieurs, {l'auteur] concède à
l'Université du Québec à Montréal une licence non exclusive d'utilisation et de .
publication oe la totalité ou d'une partie importante de [son] travail de recherche pour
des fins pédagogiques et non commerciales. Plus précisément, [l'auteur] autorise
l'Université. du Québec à Montréal à reproduire, diffuser, prêter, distribuer ou vendre des ·
copies de. [son] travail de recherche à des fins non commerciales sur quelque support
que ce soit, y compris l'Internet. Cette licence et cette autorisation n'entraînent pas une
renonciation de [la] part [de l'auteur] à [ses] droits moraux ni à [ses] droits de propriété
intellectuelle. Sauf ententé contraire, [l'auteur] conserve la liberté de diffuser et de
commercialiser ou non ce travail dont [il] possède un exemplaire ..»
REMERCIEMENTS
Ce document témoigne de l'achèvement d'un long processus de recherche que j'ai entrepris il
y a deux ans déjà. Au cours de cette aventure, la chance m'a été donnée de côtoyer nombre
de gens qui ont eu, directement ou indirectement, une influence positive sur
1'accomplissement de ce projet. Ils ont été mes formateurs, mes amis, mes conseillers, mes
collègues, ma famille et chacun d'eux, à leur manière, a contribué à la réalisation de ce
mémoire.
J'ai effectué mon travail de recherche, en grande partie, au laboratoire d' informatique
LATECE. Je remercie les étudiants de ce laboratoire de constamment contribuer à
l'ambiance stimulante qui y règne. Plus particulièrement, je remercie Ghizlane El Boussaidi,
étudiante au doctorat en informatique à 1'Université de Montréal , pour ses bons conseils.
CHAPITRE 1
INTRODUCTION 1
1.1 Contexte 1
1.2 Pr oblématiqu e 3
1.3 Obj ectifs d e rech erche et méthodologie 9
1.3 .1 Création d'un langage de modé lisation de réseaux d' information 9
1.3.2 Implémentation d'un logiciel d' interprétation du langage de modélisation 10
1.3 .3 Simulation de réseaux d'information divers à l'aide de NetSim 11
CHAPITRE Z
LES RÉSEAUX SOCIAUX _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13
CHAPITRE3
LANGAGE DE MODÉLISATION NETSIM _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 52
3.1 Introduction _ __ _ _ _ _ __ __ _ _ _ _ _ __ _ _ _ _ _ __ 52
CHAPITRE 4
NETSIM : UNE PLATE-FORME DE MODÉLISATION ET SIMULATION DE RÉSEAUX
D'INFORMATION _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 85
4.1 Introduction _ _ _ __ __ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _ _ 85
CHAPITRE 5
RÉSULTATS DE SIMULATION AVEC NETSIM _ _ __ __ _ __ __ __ _ _ 121
5.2 Simulation d ' un modèle de J'évolution d ' un résea u d 'a mis _ _ _ _ _ _ _ _ 121
5.2 .1 Le modèle théo rique 12 1
5.2.2 Le modèle traduit en langage NetSim 124
5.2 .3 Rés ultats de simul ation 125
5.3 Simulation d'un modèle de J'évolution du Web _ _ _ _ _ __ _ _ _ _ _ _ 130
5.3 .1 Le modèle th éorique 130
5.3.2 Le modèle traduit en langage NetSim 132
5.3.3 Résultats de simulation 137
5.4 Conclusion _ _ _ _ _ _ _ _ __ _ _ _ __ _ _ _ _ _ __ __ _ _ 141
CHAPITRE6
CONCLUSION ET PERSPECTIVE _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 142
ANNEXE A
CODE GÉNÉRÉ DYNAMIQUEMENT DES CLASSES D' EXÉCUTION DE LA SIMULATION DU
ANNEXEB
INTERFACE GRAPHIQUE DE NETSIM _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 152
RÉFÉRENCES 162
Liste des figures
Figure 1.2 . 1 Repérage de structures typiques par visualisati on graphiqu e ...... ..................... ... 8
Figure 2.3.1.2 Chemin s de longueur x dans un e matrice sociométrique .. ..... .. ... ........... ...... . 20
Figure 2.3.2 .2 . 1 Illustrati on du « Kite Netwo rk » développé par David Krackhardt... .......... 28
Figure 2.3.2.3. 1 Autonomie des acteurs dans di fférentes structures relati onn elles .... .... .... ... 30
Fi gure 2.4.1.2 Graphe al éatoire avec N = 6 et z= 2 .. ....... ....... ..... ... ..... .... .... .. ... .... .. ..... ......... .. 34
Figure 2.4 . 1.3 Treilli s réguli er avec z = 4 ........... .......... .. .... ........... ...... ...... .... ... .. .. ................ 35
Fi gure 2.4.1.4 Modèle jJ ex posa nt l' effet des petits mond es et la propri été de transiti vité 36
Fi gure 2.4 . 1.5 Modèle de petits mond es de Dorogovtsev et Mend es ..... ...... ..... .. .............. ..... 37
Figure 2.4 . 1.6 Modèle du réseau indépend ant de l' éc hell e illustrant l'attac hement
préférentiel. ...... ...... ..... ..... ... ... .. ............. ........... .... ......... ......... .................. ...... .. ... .. ............. ..... . 39
Figure 3.2. 1 Hi érarchie des entités de NetSim ........................... .... ....... ... ... .... ................... .... 55
Fi gure 3 .4 .2.1 Phases d' exécuti on et command e d' arrêt automatiqu e de la simulati on ..... ... 80
Figure 4.2. 1 Fonct ionn ement gé néral de NetSim .. ....... .... ..... ............... ...... .... .. ................... ... 86
Figure 4.2.2 Diagramme de classes UML des c lasses principa les nécessa ires à la
co nstru cti on d' un modèle dans NetSim ...... ....... ...... .... .... .... .... ....... ........... ...... ...... ... .... .... ....... 87
Fi gure 4.2.3 Représentati on en mémoire d' un modèle NetSim du réseau d'ami s ...... ..... ...... 90
Fi gure 4.2.4 Di agramme de classes UML des principales classes de co ntrôle de la simulati on
... ..... ..... ..... ... .. .. .. ............. ......... ............ ...... ........ ... ... .......................... ... ... ... ..... .............. ....... .... 93
Figure 4.2.5 Structure de donn ées représe ntant le graph e de NetSim en mémoire ........ ....... . 94
Figure 4.3. 1. 1 Fichier de config urati on XML des di stri but ions in iti ales du résea u offertes par
NetSi1n ......... ... ........... ..... ............... ................. ....... ........... .... ............. ..... ... ... .......... .. .. ....... ...... 97
Figure 4.3.1.2 Les attributs de la classe Distribution Data .... ....... ......... ............... ........ ......... 99
Yli
Figure 4.3.1 .3 Di ag ramme UML représe ntant les classes d' implémentation des
configurations initiales du résea u............ ........... ... .. .................... ... ... ... ..... ......... ......... .... ... ... 100
Fi gure 4.3 .1.4 Fichier de classement des opérateurs de NetSim .. .. .... ...... .... ... ... ..... ........... 102
Figure 4.3.1.5 Fichi ers de correspond ance des opérateurs de NetSim avec les opérateurs ou
les méth odes Java ........................................................................... .. ...................................... 103
Figure 4.3 .1 .6 Fichi er de correspond ance entre les foncti ons NetSim défini es sur l'entité
network et les méth odes Java qui les impl émentent.. .. ........ .. .. .. .. ...... .................. ............ ...... 106
Figure 4.3 .3.1 Di agramme de classes UML représentant les classes d' exéc uti on de la
simul ation .... .... .. ....... ....... ............. ... .......... .... .. .. .... ..... ..... ....... ........... .. .......... .. .... ..... ... ........... 110
Figure 4.3.6.1 Donn ées de réseau x ex tern es dan s le form at NetSim XML .. .......... ... .. .... ..... 117
Figure 4.3.6.2 Vi suali sa ti on de donn ées de résea u extern es dans NetSim ........................... 11 9
Fi gure 5.2.3. 1 Résea u initial de la simulati on du résea u d'ami s à t = 0 (625 liens) .. .. ......... 125
Fi gure 5.2 .3.2 Évolution du résea u d'ami s au co urs de la simulati on dans NetSim ...... .. .... 128
Figure 5.3 .1.1 Attachement préférenti el dans le résea u du Web .......... ...... .. ...................... 13 1
Figure 5.3.3 .1 Évo lution du réseau du Web au cours de la simul ati on .. .... .. .... ...... ...... ..... ... 138
Figure 5.3.3.2 Di stributi on des degrés du résea u généré par simul ati on au temps t = 600 .. 139
Figure 5.3 .3 .3 Di stributi on logarithmique des degrés du réseau gé néré par simulati on au
temps t = 600 ......................... .. .... ..................................................................................... ...... 140
Figure 8 .2 Enreg istrement du nouveau proj et sur le di squ e .... ........ .................................... 153
Figure 8 .3 Éc riture de notes de proj et et créati on d ' un e nouve lle simulati on .. .... .......... .. .. . 154
Figure 8 .4 Choix d' un e confi gurati on initiale dans les paramètres généraux de la simulati on
... .. ......................... .......... ..... .... ... ....... ... .... .... .... ...... .... ........ ..... .. .... .......... ............................... 155
Figure 8 .5 Choix des autres paramètres gé néraux de la simulati on...... ........ ............ ..... ...... 156
Fi gure 8 .6 Écriture des définiti ons du modèle et vérifi cation syntax ique (avec erreurs) .. .. 157
Figure 8 .7 Vérifi cati on syntaxique des définiti ons du modèle (sa ns erreurs) ........ .. ...... ..... 158
Figure 8 .8 Éc riture des règ les du modè les et vérifica ti on sy ntax ique (sa ns erreurs) .......... !59
Figure 8 .9 Initi ali sation de la simu lati on (bouton « start ») ............ ...... ...... ...................... ... 160
Figure 8. 10 Visualisat ion de la co nfig urati on initia le du résea u ...... .. .. ...... .. ...... .... .... .... .. .. . 16 1
'
Liste des tableaux
Tab lea u 3.2.1 Les entités du lan gage NetS im ... .. ... ... ........ ...... ..................... .......... ....... ....... ... 54
Tableau 3.3.3. 1.1 Attributs prédéfi ni s sur l'entité node ... .................... ......... .. ...... ...... ... ... .... . 57
Tab leau 3.3.3. 1.2 Attributs prédéfi ni s sur l' entité link ..... .... ..... .......... ... ............ .... ... ....... ... . 57
Tableau 3.3.4. 1 Opérateurs arit hmétiques binaires de NetSi m ...... ...... ....... .. ... ...... ............ .... 59
Tab leau 3.3.4.2 Opérateurs arithmétiques un aires de NetS im .......... ........ ............... ...... .. .. .. .. 59
Tab lea u 3.3.4.3 Opérateurs boo lée ns binaires de NetSim ... ..... .. ... ...... ... .. .......... ... ......... ........ 60
Tab leau 3.3.4.4 Opérateur boo léen unaire de Ne tSim ... .... .... ......... ... ....... ......... ...... ... ........ .... 60
Tab leau 3.3.4.5 Opérateur d'affectation ........ ..... ........... .. ... ... .......... ...... .... .......... ..... ..... .. .. ..... 60
Tab leau 3.3 .4. 1. 1 Fonctions prédéfi nies sur l'ent ité wo rld ..... .. .................. .... ... .... ..... ... ... ... .. 6 1
Tab lea u 3.3 .4.1 .2 Foncti ons prédéfinies sur l' entité network ...... .... ..... .... ....... ....... .......... ..... 6 1
Tab leau 3.3.4. 1.3 Fonctions prédéfi nies sur l' ent ité link ....... ...... .... ........ ......... ............. ........ 62
Tab leau 3.3.4. 1.4 Fonctions prédéfini es sur l' en tité node ...... ... ... .... ....... ... .. ...... ...... ...... ...... .. 63
Tabl eau 3.4. 1.1 Les acti ons du langage NetS im ..... ......... ............ .. ... ........ .... .... ...... ........ ... .... . 72
Tab lea u 4.3.1.1 Descripti on des ba li ses du fichier XML de configuration des distributions
ini tiales du réseau offerte par NetSim .. ........... ........... ...... ........... .. .... .... ... .... .. ......... ..... ........... 98
Tablea u 5.2.3.1 Com paraiso n des va leurs des paramètres utili sées dans la simulatio n de
NetSim avec ce lles utili sées dans la simulati on des auteurs du modè le ... .... ............. ... ... .. ... 126
Ta bleau 5.2.3.2 Évolution du coefficient de trans iti vité au co urs de la simulation du réseau
d' amis .... ................. ............ ............ .... .. ..... ....... .. ............... .. ....... ................. .... ..... .. .. ........ .... .. 129
Tab leau 5.3. 1.1 Calcu l de la probabilité D , po ur l'ajout de nouveaux liens, qui ti ent compte
de l' attachement préférentiel dans le modèle du Web ...... .... ... ................ .... ......... ... ..... ....... .. 132
Résumé
Les réseau x électroniqu es basés sur Intern et ont beaucoup accé léré la circul ati on de
l'inform ati on dans notre société modern e, ma is on commence à voir qu e les échanges
d'information s'effectuent d'abord dans le cadre de réseau x soc iaux. Le Web comporte
égal ement une structure en réseau, mai s ce ll e-ci est assez particulière.
Ces différents types de résea ux d'info rm ati on montrent à la fois des ca ractéri stiqu es
communes et des spécificités dont il convient de tenir compte. Pour des raisons à la fo is
techniques, soci ales et économiques, il est donc util e de chercher à modéli ser les résea ux pa r
lesqu els circul ent info rmation et conn aissa nces.
En nous inspirant des acquis importants en soc iolog ie stru ctural e et en analyse math ématiqu e
de réseaux, nous avons développé un e approc he de modélisati on des résea ux par simulati on.
Nous avons tout d' abord développé un langage de modéli sati on qui se ve ut le plus fl ex ibl e
poss ibl e tout en demeurant simple et abord abl e pour des utilisateurs va ri és. Pour ce fa ire,
nous nous sommes in spirés de modèles ex istants de la littérature et avo ns tenté d' en abstraire
les concepts esse ntiels que devrait offrir un tel langage .
Finalement, nous avons obtenu des résultats plutôt convaincants qu ant à l' utili sati on de notre
logiciel pour modéli ser et simuler di ve rs ty pes de modèles de l' évo lution temporell e de la
structure des résea ux. Les phénomènes obse rvés pa r simul at ion s'a pparentent effect ivement à
certain s fa its observés dans la réa lité.
Ce logiciel pourra se rvir d'outil de rec herc he, d'ex périm entati on, de visualisati on et de
form ati on dans un domaine en plein déve loppement.
Mots-clés: Résea ux d' inform ati on, résea ux soc iaux, modéli sati on, simul ati on.
CHAPITRE 1
Introduction
1. 1 Contexte
Les réseaux d' information sont des réseaux par lesquels circulent informa tion et
connaissances. Cette défi nition est assez vague, mai s exc lut tout de même un bon nombre de
réseaux : les réseaux de tran sport comme les résea ux rout iers ou les lignes aéri enn es, les
réseaux de distribution comme les aqueducs, le système sa nguin, les systèmes de livra iso ns
par cami ons ou par avions, etc. Cependant, cette di stinct ion n'est pas toujo urs au ss i claire.
Par exem ple, les réseaux routiers servent aussi à distribuer le courri er qui est en soi de
1' information.
Ce que nous entendons par information et/ou connaissa nces consiste en tout ce qui est util e et
pertinent à un e entité cognitive pour accomplir un e tâche, résoudre un prob lème, comprendre
un e situat ion, faire des choix, planifier ou adopter tel ou te l comportement dan s des situati ons
diverses. Par exemple, si je sa is, par le biais de la météo, qu ' il va pleuv oir le lend emain , je
ne planifierai certainement pas d'aller faire un pique-niqu e. Nous in siston s ici sur le
caractère de la pertinence. Une informat ion inutile n'est pas vra iment une informati on au
sens où nous l' entend ons pui squ ' ell e ne détermin e aucun ement nos comportements ni ne
motive nos choix. En ce se ns, le degré de pertinenc e d' un e information dépend d' un
contexte. En effet, le fait de savo ir s' il pleuvra le lend emain m' importe peu si je planifie de
rester à la ma iso n. Si je sui s pilote d'avion, par contre, ma co nn aissa nce des conditions
météorologiques aura beaucoup plus d ' importance que si je travaille comme bib li othéca ire.
Au cours d' un e journée, un professionnel moderne utilise des milliers d' informations pour
accomplir so n travail. Ces informations prov iennent de plusieurs sources te lles que les livres
2
spéciali sés, les graphiques, les ca rtes, les encyc lopédies, les codes et conventions, les
ord inateurs, le courrier électronique, le téléphone, les discussions entre col lèg ues, les fichi ers
et les bases de donn ées, le WWW, etc .
Nous utili sons le concept de résea ux d' informati on pour tenter de déc rire la mani ère dont
1' informati on et les connaissances sont partagées entre div erses entités ; pour essayer de
formali se r ces éc han ges d' informati on.
Les résea ux par lesqu els circu lent information et connaissances sont nombreux. Notre corps,
par exempl e, contient plusieurs réseaux qui perm ettent à l' inform ati on de circul er afin qu e
celui -ci pui sse fonctionner normalement. Parmi ces réseaux, on peut mentionner le système
nerveux formé de neurones qui communiquent entre eux par la transmission de messages
chimiques appe lés neurotransmetteurs. Si ce système de communication se détéri ore, le
fonctionnement normal du corps est en péril. Par exemple, la maladie de Parkinson , qui est
une affecti on dégé nérative du système nerveux, est causée par le manque de production de
dopamin e (neurotransmetteur) dan s le système nerveux. Ce la entrave la bonne transmi ss ion
des messages entre les neurones et il en résulte un e ri gidité musculaire et des tremblements
du corps.
Le Web est aussi un e vaste source d' inform ati on. Sa structure, formée de pages Web étant
reliées entre e ll es par des hyperliens, forme un immense résea u pass if, mais dans lequ el on
peut navi guer à l' aide d' un fureteur Web. On y transmet des requ êtes (U RL) et au retour, on
reçoit des pages d' inform ati on.
Nous remarqu ons cependant que, parce que nous foncti onn ons la plupart du temps en soc iété,
la majorité des info rm ations que nous recevons proviennent de notre milieu socia l et sont
pertinentes au se in même de ce mili eu. Nous parlons ici d' un type particu lier de résea ux
d' informati on : les résea ux soc iaux. Le concept de résea ux soc iaux tente de formali ser plu s
particulièrement les échanges d' information entre des individus ou des groupes soc iaux. Ces
éc hanges s' effectuent par les relati ons qu ' entreti enn ent les entités soc iales entre elles. Nous
échangeons constamment de l' informati on et des connai ssa nces avec nos ami s ou nos
3
collègues de tra vail. Nous entretenons di ffé rents types de relations: relati ons fili ales,
d' amitié, de conse il , de pouvoir, de collaborati on, d'a ide, de coopération , etc . La nature de
1' info rm ation qu e nous échan geo ns avec un e personne dépend du type de relati on qu e nous
entretenons avec ce ll e-ci. En effet, nos suj ets de discussion seront certainement di fférents
se lon qu e nous di sc utons avec un ami proc he, un collègue de trava il ou notre médec in de
fa mill e. Bref, les réseaux sociaux sont des réseaux par lesquels circul e un bon nombre
d' informati ons et de connaissances qui nous sont très utiles dans la gesti on de nos
comportements sociaux.
L' évoluti on des techn ologies a grandement favo risé les échanges soc taux. Les résea ux
téléph oniques, par exempl e, permettent la transmission d' info rm ati ons entre indi vidus. Avec
l' arri vée de l' Intern et, les réseaux se sont multipliés: outre le courrier électronique, on assiste
à l'émerge nce de nombreuses communautés virtuelles dont les membres communiquent entre
eux en utili sant des outil s comme les blog ues, les wiki s, les forums et les espaces virtuels de
co llaborati on. Le WWW n'est pas un réseau soc ial en soi, mais peut s'y apparenter en ce
sens que les pages Web (inform ati on) sont conçues par des individus et peuvent être
consultées par des indi vidu s. Contrairement aux réseaux soc iaux, le Web est un e stru cture
pass ive, mais qui perm et, d' un e certaine manière, l'échange d' inform at ions entre individus.
1.2 Problématique
Plus on a accès à l' inform ati on et aux connaissances, meilleures so nt nos chances de réuss ite
dans l' accompli ssement de nos buts. Ce la est vrai dans tous les domaines. Que ce so it po ur
prédire la tend ance du marché en économ ie, pour rédiger un arti cle scientifique, pour obtenir
un e promoti on, pour acc roître notre. pouvo ir de négociati on, pour gérer le perso nnel d' un e
entrepri se, pour demeurer compétitif sur le marché, pour déc ider d' investir ou non dans un e
re lati on, l' info rm ati on est une ressou rce indis pensa ble.
Ainsi, pour des ra isons à la fo is tec hniques, soc iales et économ iques, il est donc uti le de
chercher à comprendre les réseaux par lesquels circulent info rm ati on et connaissances. Il
ex iste déj à un certain nombre d'approches pertin entes.
4
Pour les réseaux soc 1aux en parti culier, la soc iologie structurale a élaboré des méth odes
form elles d'analyse de réseaux basées sur la th éori e des graph es (Lazega, 1998). Ce pend ant,
ces enquêtes soc iologiques restent le plus souvent lentes et labori euses, car ell es mobili sent
un grand nombre de ressources : elles sont so uve nt très co ûteuses, demandent la parti cipation
d' un grand nombre d' indi vidus et peuvent parfo is s'échelonner sur plu sieurs années. De
plus, les étud es empiriques concern ant l' évo lution temporelle de la stru cture des réseaux
sociaux so nt essenti elles, mais restent encore à un état embryonnaire à ca use du manque de
données de réseaux propres à ce genre d'étud e. En effet, il n' est pas fac il e d' obtenir des
données de réseaux pertinentes s' échelonn ant sur un e bonne péri ode de temps et présentant
toute l' inform ati on nécessa ire à la reconstructi on d' un réseau du passé et de son évoluti on
temporelle. Bien que ces étud es so ient assez rares, elles ne sont pas inex istantes. Je citera i
comme exemple l' étu de des réseaux de co llaborati on sc ientifique, en ph ys ique et en bi olog ie,
conduite par (New man, 2001 ), pour tester l' hypoth èse qu e la transitivité ams1 qu e
l' attachement préférentiel so nt des propri étés de certain s réseaux soc iaux.
Ce réseau de co llaborati on sc ientifique comprend des indi vidus qui sont reliés ensemble s' il s
sont co-auteurs d' un même ouvrage scientifique. Pour ce fa ire, Newman tira les info rm ati ons
de deux so urces bibliographiques:
1. The Los A lamos E-print Archi ve, un e base de données en phys ique dont les ouvrages
sont soumis par les auteurs eux-mêmes.
2. Medlin e, un e base de données d' ouvrages publiés en biologie et en médec ine qui est
profess ionnell ement maintenue par les instituts nati onaux de la sa nté (N ati onal In stitutes
of Hea lth).
Bien qu 'aucun e de ces bases de don nées n'enregistre la date de publication exacte des
ouvrages qu ' elles contiennent, les deux peuvent fournir l' ordre dans lequ el les ouvrages ont
été aj outés à leur base de données respecti ve.
Newman a donc rec ueilli les données de co llabo ration sur un in te rva lle de six ann ées en
prenant les donn ées des cinq premi ères années pour reconstruire le résea u de collaboration. Il
5
Pour ce qui est des résea ux électroniques basés sur Intern et, il est poss ible de les étudi er en
rec ueill ant des traces électroniqu es de communications entre individu s et de reproduire le
graph e de ces échan ges à des fins d'analyse. Nous citerons comme exemple l' article de Paul
Mutton (Mutton , 2004) dans lequel celui-ci décrit un e méth ode pour infé rer le résea u soc ial à
partir d'un groupe d' utili sateurs d' IRC (Intern et Relay Chat) . Tout d'a bord , un robot (bot)
IRC est utilisé pour écouter sur un canal donné. Ce lui-ci procède ensuite à un e analyse
heuristiqu e des événements recen sés et crée un e approx imati on mathémat ique du résea u
soc ial. Finalement, le robot peut produire une visualisati on graphique du réseau inféré. On
obti ent alors un réseau d' interactions qui peut être ana lysé.
Les courriels so nt aussi des traces électroniques de communi cati ons entre personnes qu1
peuvent être utilisées pour rec rée r le résea u d' interacti ons. Par exempl e, (V iegas et al. , 2004)
décrivent deux logiciels qui utilisent les archi ves de cou rri els d' un individu pour recréer son
réseau soc ial person nel. Ces log iciels analyse nt les réseaux soc iaux qui peuvent être dérivés
des informati ons co nce rn ant 1'envoyeur, le ou les destinataires, le suj et et la date d'envo i des
cou rri els. En anal ysant les destinataires des courri els, il est possible de dérive r un graph e des
relations soc ia les pouva nt ensuite être visualisé. De plu s, se lon la date des co urri els, on peut
rec réer et visualiser l'évo lution de ce résea u soc ial dans le temps.
L'étude de la stru cture du Web est auss1 pertinente pour comprendre les ph énomènes
soc iologiques qui ca ractérise nt son évo lution. Considérons le Web com me un graph e diri gé
dans leq uel les pages Web sont les nœuds et les hyperliens so nt les arcs. On peut alors se
demander, par exemp le, quel est son diamètre, à quoi ressemb le la distribution des degrés des
noe ud s ou bien quelle est la longueu r moyenne du chemi n all ant d' une page Web à n' importe
quell e autre (ces notions seront explicitées par la su ite). La co mpréhension de la structure du
Web permet, par exemple, d' améliorer les algorithmes d'exploration de la Toile et de
recherche d' inform ati ons.
6
Pour étud ier et ana lyser la structure du Web, il fa ut d' abord la cartographier. Pour ce faire,
on peut commencer avec qu elques pages Web et découvrir d' autres pages en suivant les
hyperli ens des pages initiales. Puis, on suit les liens des pages nouve ll emen t découvertes
pour en découvrir d'autres et ainsi de suite. On construit ainsi un graphe qui représente la
topologie du Web. Cepend ant, cette tec hnique a ses limitati ons. Il est en effet impossible de
couvrir le Web dans son enti er, car si aucune des pages Web découvertes au cours du
processus de cartographie ne pointe vers un e page particulière, cette derni ère ne sera jamais
trouvée. De plus, les pages Web so nt tellement nombreuses (quelques milli ards) qu e cela
rend le process us d'exploration très long. La cartograph ie du Web ne peut donc être que
partielle. Un exempl e d'étude du Web par cartographie est donn é dans l' arti cle de (Broder et
al, 2000).
En résum é, les enqu êtes soc iologiques sur le terrain mobili se nt un grand nombre de
ressources. De plu s, la co ll ecte des donn ées est un problème difficile lorsqu ' il s'ag it
d 'étudi er l'évolution temporell e de la stru cture de résea ux d' information divers. Final ement,
dans le cas parti culi er de la cartographie du Web, cell e-c i est assez co ûteuse et ne peut être
qu e parti ell e étant donn é l' immensité de ce résea u.
Bien qu e ces méth odes demeurent esse ntielles, la modéli sati on et la simul ati on par ordinateur
nous se mblent indiquées, dans certains cas, pour pallier ce problème. Un modèle n' a
cependant pas la prétention de représe nter parfaitement la réa lité. Dans cette optique, la
modéli sati on ne doit pas être vue comme un e altern ati ve à l' étud e de terrain, mais plutôt
comme un e approc he comp lémentaire très util e pour tester ou formuler certaines hypoth èses .
Les rés ultats de simul ati ons devront tôt ou tard être comparés aux ph énomènes observés dans
la réalité, mais nous croyons la modéli sation présente tout de même un certain nombre
d'ava ntages pour la compréhension de phénomènes parti culi ers. Elle demeure un ou ti 1 à ne
pas négliger tout en gardant à l' es prit les limi tes de nos modè les.
Il existe déjà plusieurs modè les de réseaux d' information provenant de diverses disciplines
telles qu e la phys ique, les math ématiques et la soc iologie. Ces modèles tente nt de représenter
partiellement des phénomènes particuliers observés dan s le mond e rée l, tel s qu e la
7
transitivité, l'effet des petits mondes et l' homophilie dan s les réseau x soc 1aux ou
l'attachement préférenti el dans le réseau du Web.
Ces modèles sont pour la plupart des modèles statiques, mai s de plus en plus, on commence à
concevo ir des modèles dynamiques de l'évolution de la structure de résea ux d' information
dans le temps (Jin, Girvan et Newman, 200 1 ; Albert et Barabasi, 2000). Les modèles
statiques sont souvent défini s par un algorithme qui permet de construire un e structure
particulière de résea u qui possède les caractéristiques que l' on veut démontrer. Un modèl e
dynamique, quant à lui , fait intervenir la notion de temps. Il cons iste en un ensemble de
règles se rvant à construire ou modifier le résea u. En gé néral, ces règles doivent être
effectuées, se lon certaines probabilités ou cond itions, à chaque pas de temps. On peut alors
obse rver une modification de la topologie du résea u dans le temps. Le but de ce type de
modéli sation est souvent d'étudier les mécanismes qui produi se nt des structures de résea ux
possédant certaines caractéristiques observées dans le mond e rée l.
Une grand e partie des modèles ex istants prenn ent la forme d' un graphe dans lequel les
sommets représe ntent les entités du résea u et les arcs ou arêtes du graph e représe ntent les
relations entre ces entités. Par exe mple, dans le cas du Web, les so mmets représe ntent les
pages Web et les arcs représentent les hyperli ens qui reli ent les pages entre elles. Pour un
réseau soc ial, les so mmets représe ntent les indi vidus (acteurs) de l' ensemb le soc ia l et les
1iens représentent les relation s (d'amitié, par exemple) qu ' il s ont entre eux. La représe ntation
so us forme de graphe est particulièrement intéressa nte, car ell e perm et l' utili sation de la
th éorie des graph es et de l'a lgè bre matriciell e pour l'analyse de la structure des résea ux.
La vi suali sati on du réseau sous forme de gra phe est auss i très avantageuse. Ell e perm et de
constater rapid ement, sans autre analyse, s' il semb le se former certains age ncements
particuliers dan s la stru cture du réseau étud ié. La figure 1.2. 1 illustre quelques exe mples de
structures particu 1ières pouvant être faci lement repé rées par la vi suai isation graphique.
8
Dans le cadre de ce trava il , les modèl es qui nous intéressent plus parti culi èrement so nt les
mod è les dynamiqu es pouvant être représentés sous fo rm e de graphe. Étant donné qu ' il s sont
dynamiques, nous pouvons les simuler par ordinateur pour observer leurs changements
stru cturau x au co urs du temps. Bien qu ' il ex iste bea ucoup d'o util s (log iciels et librairies) qui
aident à la programmation d' un modè le dan s le but de le simul er et de le vi sualise r, on
co nstate qu e la plupart de ces outil s so nt assez comp lexes et demand ent so uve nt un e bonne
connaissance de divers langages de programmation. Aussi , dan s bien des cas, la
programm ation de la simulati on es t propre à un modèle ou un e classe de modè les en
particuli er et tout le trava il de programmati on est à reco mm encer lorsqu e !" on veut simuler un
modèle différent.
Dans cette optique, nous avons élaboré un langage de modé li sati on de résea ux d' information
simple et abordable pou r des utili sateurs variés. Nous avons ensuite réa li sé NetSim, un e
plate-forme de simulat ion paramétrable, capab le d' interpréter ce langage de modé li sat ion.
NetSim permet de modifier fac ilement et rapidement les règles et les paramètres de divers
9
modèles et perm et au ss i la vi sua i isati on, sous forme de graph e, de 1' évo luti on de la structure
du résea u dans le temps.
Notre premier obj ec tif est la créati on d' un langage de modélisati on de réseau x d' information
facile à ut ili se r pour les co ncepteurs de modèles qui , le plus so uvent, ne sont pas des
inform ati ciens. Notre but est de trouver un e façon d'ex primer les règles des modèles
dynamiques de mani ère intuit ive pour l' util isateur, qui refl ète l'esprit du modèle. Pour ce
fa ire, nous avons obse rvé différents modèles dynamiques de résea ux ex istants (Jin , Girva n et
Newman, 2001 ; Barabas i et Albert, 1999 ; Albert et Barabas i, 2000) et avons tenté d'en
abstraire les co ncepts esse nti els que devrait ex prim er un tel langage . En parti cul ier, nous
avons passé en rev ue les entités, les structures et les ac ti ons de base nécessa ires pour
modélise r ce domaine. Ce lan gage a d'abord été élaboré pour déc rire des modèles de
l'évo lution de la stru cture des résea ux soc iaux et du Web, mais reste assez soup le pour
ex primer un e certain e va ri été d' autres modèles de résea ux d' info rm ati on.
Parce qu e nous dés irons co ncevoir un langage qu i, d ' un e part, est auss i gé nériqu e (fl exib le)
que poss ib le, mais d' autre pa rt, dem eure simp le et abordab le pour des ut il isateurs divers,
nous avons dli cern er le champ d'appli ca ti on de notre langage de modélisati on par qu elques
principes généraux. Les princ ipes sui va nts aident à déte rmin er les types de modèles
dynamiqu es pouva nt être traduits dan s ce langage :
1. Le modèle doit représenter le résea u d' inform ati on sous forme de graphe.
2. L' ense mb le des règles du modèle s' app lique, se lon ce rtaines probabilités ou
conditi ons, à chaqu e pas de temps.
10
3. Le modèle peut définir des attributs sur les nœud s, les li ens ou le réseau global
pourvu qu e ce ux-ci soient numériqu es. L' ensembl e des valeurs de chaque attribut au
temps t est ce qui détermin e l' état du réseau au temps t. Les valeurs des attributs
peuvent changer au cours du temps, se lon certaines probabilités ou conditi ons qui
peuvent dépendre de 1'état du système.
4. Les règles du modèle peuvent co ncern er la suppress ion ou l' aj out de nœud s ou de
liens ou bien la modificati on des attributs des nœuds, des liens ou du résea u. Le
modèle peut spécifier l' exécution des règ les en foncti on de l' état du système ou selon
certaines probabilités ou conditi ons qui peuvent dépendre de l'état du système.
Notre deuxième obj ectif est de co ncevoir un logiciel de simul ati on (NetSim) ca pabl e
d' interpréter les modèles écrits dan s notre langage de modéli sati on et offrant des
foncti onn alités de visuali sati on de l' évolution temporelle de la stru cture des résea ux simulés .
Nous voul ons plu s parti culi èrement concevo ir un e plate-form e gé nériqu e de gé nérati on de
résea ux qui peut être facilem ent extensible. Nous avons donc détermin é qu elques
fonctionn alités importantes à réali ser dans le cadre de ce travail , ma is nous voul ons concevoir
ce log iciel dans 1'optique de fa ci1iter 1' implémentati on éve ntuell e de nouvelles
foncti onn aiités.
L'aspect visua li sati on, sous forme de graphe, est auss i une ca rac téri stiqu e importante qu e
nous désirons impl émenter. Comme nous l' avons vu bri ève ment à la sec ti on 1.2, la
visuali sati on graphique perm et de reconn aître instantanément certa ins moti fs structuraux dans
le résea u simulé. Dans certain s cas, cette reco nn aissance in stantanée peut rapid ement valider
ou in va lid er nos hypoth èses initiales ou alors nous condu ire à fo rmul er d'autres hypoth èses
sur les caractéri stiq ues de la stru cture des réseaux étudiés.
11
Ce logiciel pourra servir d'outil de recherche, d'ex périm entati on, de visualisati on et de
form ati on dans un domaine en plein déve loppement. Le système est conçu en ce but, avec
un e interface appropriée pour contribuer en particulier à la modéli sati on de l'évolution
temporell e des résea ux.
Notre derni er obj ec tif de recherch e est de tester di ffé rents modèles dynamiques de résea ux
d' informat ion ex istants à l' aid e de NetSim . Nous vo ul ons alors comparer les résultats
obtenu s de nos simul ati ons avec les rés ultats de simulati on obtenu s par les auteurs des
modèles étudiés et avec les phénomènes observés dans le mond e rée l.
Dans le chapitre 2, nous ex pliquons di fférentes noti ons qui concern ent un type parti culi er de
résea ux d' informati on : les résea ux soc iaux. Ce chapitre vise principalement à présenter le
contexte théoriqu e qui a motivé la conce pti on d' un e plate-form e gé nérique de modélisati on et
de simulati on de réseaux d' informati on et plus partic uli èrement, de réseaux soc iaux.
Dans un premi er temps, nous montrerons qu e les résea ux sociaux occ upent un e grand e pl ace
da ns notre soci été et qu' il est pertinent de vou loir chercher à les comprendre. En second lieu,
nous ex pliquerons qu elques méthodes d'analyses des réseaux soc iaux tirées de la soc iologie
structura le. Ensuite, nous verrons que l'étude des réseaux sociaux, par modéli sation , a don né
12
lieu à un e grand e vari été de modèles prove nant de domain es divers et nous commenterons
quelqu es-uns de ces modèles. Finalement, nous di sc uterons des types d' outil s qui ex istent
pour modéli se r, simuler et visua liser les résea ux soc iaux en les posi ti onn ant par rapport au
logiciel NetSim .
Dans le chapitre 4, nous ex pliquons l' architecture et le foncti on nement de NetSim . Nous
prése nterons tout d'a bord un e vue d' ense mbl e du fo ncti onn ement de cette plate-fo rme pour
ensuite ex pliquer, de fa çon plu s détaill ée, ce rtaines foncti onn alités que nous consid érons
comme les plu s importantes.
Le chapi tre 5 prése nte les résultats obtenus des sim ul at ions qu e nous avo ns effectu ées avec
NetSim . Nous modéli serons différents modèles de la littérature à l'a id e du langage de
modéli sati on de NetSim et comparerons nos résultats de simul ati on avec les résultats obtenu s
par les auteurs de ces modèles . Auss i, nous tenterons de faire le parallèle entre nos résultats
et les phénomènes qu e nous pouvons observer dans la réa lité.
2. 1 Introduction
No us consacrons un chapitre entier sur les résea ux soc iaux, car ce ty pe parti culi er de réseaux
d' informati on est un domaine de recherche en plein déve loppement tout en aya nt un e assez
longue hi stoire. En effet, les réseaux électroniques basés sur Intern et ont bea uco up accé léré
la circulation de l' informati on dans notre soc iété modern e, ma is on commence à vo ir qu e les
échanges d' informati ons s'effectu ent d 'abord dans le cadre de résea ux soc iaux.
On remarqu e, entre autres, l' appariti on mass ive de log iciels dits soc iaux (ex. : les wikis et les
blogues) . Les outil s de co llaborati on traditi onn els (collec ti ciels), ori entés projet, ava ient pour
but d'aider les orga nisat ions à communiquer. co llaborer et à coo rd onn er leurs ac ti vités afin
d'accomplir un e tâche commune aux membres du groupe (Elli s, Gibbs et Rein, 199 1). Les
logiciels soc iaux visent un tout autre objectif. Ces logiciels so nt destin és à promouvo ir les
interactions entre perso nnes incluant la communicati on en temps rée l (ex.: message n e
instantanée) ou en temps différé (ex. : es pace virtuel de co llaborati on, message n e
électroniqu e, fo rums). Ils offrent auss i la poss ibilité aux indi vidus ou aux groupes d'éva luer
les contributions de leurs co llègues et supportent la représentati on et la gesti on électroniqu e
des réseaux soc iaux personn els des individus tout en leur perm ettant de les déve lopper
(Lamy, 2004).
Dans ce chapitre, nous voyons comment le déve loppement remarquable des réseaux soc iaux
infl uence, entre autres, le domai ne de la gestion de la conn aissa nce, le déve loppement
d'outil s pour l'a ide à la recherche d' inform ati ons, la tend ance, de plus en plu s grand e, qu ' ont
14
les entrepri ses à se regrouper en réseaux pour affronter le marché ain si qu e la perception de
ce qui pourrait bien être la future générati on de l' Internet.
En seco nd lieu, nous prése ntons quelques méth odes d' analyse de résea ux soc iaux proposés
par la soc iologie stru cturale, car celles-ci peuvent s'avérer très utiles pour comprendre et
analyser la structure des réseaux générés par modélisati on et simul ati on.
Ensuite, étant donn é que nous nous intéressons particuli èrement à l' étud e des résea ux soc iau x
par modéli sati on, nous présentons une revue partielle des modè les ac tu els. Enco re un e fois,
on remarque qu e l' intérêt pour les réseaux sociaux se retrouve dans plusieurs di sc iplines . En
effet , nous verrons des mod èles provenant de champs d'étud es auss i va ri és que la ph ys ique,
les mathématiqu es, l'économie et la sociologie.
Finalement, nous pos itionn ons les pnnc1paux outil s de modéli sati on et de simulati on de
réseaux soc iaux par rapport au logiciel qu e nous proposons dans ce projet.
La gesti on de la conn aissa nce (knowledge management) s' intéresse à l' orga ni sati on, la
créati on, le partage et la circulation de la conn aissance au se in d' un e orga ni sati on: ell e
cherche à mettre à profit la connaissa nce déj à di sponible et tente de susc iter la créati on de
nouvelles co nnaissances.
La premiè re génératio n de la gesti on des conn aissances re posa it sur l' idée de l' importance de
sui vre et doc umenter tous les processus de l'orga ni sati on afin qu e cette inform ati on so it
access ible à tous, dans un environn ement corporati f, par exe mpl e, un Intranet. Les
entreprises ont alors invest i des sommes importantes da ns di ffé rentes tec hn ologies comm e
des collecti cie ls qui deva ient, justement, les aid er à gérer et coordonn er leurs acti vités.
Cependant, cet effort s'est révé lé peu productif, car on a réalisé que tout le travail nécessaire
15
à rend re access ible cette info rm ation était tro p énorme par rapport au nombre de gens qui
utilisa ient rée llement 1'Intranet mis à leur dispos ition.
La second e génération de la gesti on de la conn aissance s' est inspiré de la th éorie des
systèmes com plexes et de ce ll e du chaos. Le modèle class ique d'orga ni sati on fe rm ée
« intégrée » a été rempl acé par un modèle organisationn el compri s en tant qu e système
complexe à l' intérieur duquel des entités interdépend antes sont capabl es de réag ir à leur
environn ement. Par exemple, des études (Baker et Go llub, 1990) ont mont ré qu ' un système
complexe fo nctionne à son max imum lorsqu ' il est au bord du chaos. Le bord du chaos (edge
of chaos) , est un term e qui a été introduit par Chri s Langto n de l' in stitut Santa Fe et désigne
l' état critique dans leq uel se trouve le système au moment où un e toute peti te flu ctu at ion
pourrait le pousser so it vers un comportement chaotique, so it vers un compo rtement stab le.
Lo rsqu ' un système compl exe est au bord du chaos, il est dans un état où les change ments
peuve nt surve nir fac ilement et de façon spontanée. Ains i, l' id entificati on et la pro longat ion
de cet état on t des impli cations intéressantes au ni vea u de l'organi sation des entreprises qui
do ivent constamment s'adapter et réagi r rapidement au marché sa ns cesse changeant.
Cette nouve lle faço n d'a bord er la gesti on de la conn aissance donn e la pri orité à la mani ère
dont les ge ns constru isent et util isent la co nn aissance. Elle s' inté resse aux interac ti ons entre
les perso nn es fo rm ant le réseau social qu ' est l' orga nisati on. Auj ourd' hu i, donc, les
gesti onn aires comprenn ent bien l' importance des conn aissances dites tac ites (co nn aissa nces
personn elles, subjecti ves, intu iti ves, relevant de l'expéri ence, assoc iées à un co ntexte
spéc ifi qu e) ta nt que cell es, plus tôt convo itées par la première génération de gest ion de la
conn aissance, dites ex plicites (codifiées, sémantiques, fo rm ell es, fac il ement com muni cab les,
extériori sées). Les co nnaissances tac ites se communiquent par la soc iali sation. (No naka,
1991 ). Celles-ci se transmettent donc à travers les interact ions huma ines et plu sieurs
tec hno logies sont ma intenant em ployées à favoriser ces interactions. Ce so nt les logic iels
socia ux te ls que le courrier électroniq ue, Usenet, IRC, la messagerie insta ntanée, les blogues,
les wikis, NNTP, folksonomy et les communautés virtue ll es en ligne. On parle maintenant de
l' âge de la conn ex ion plutôt que de celui de l' information.
16
Pour débu squ er l' inform ation pertin ente, les réseaux sociaux s'avèrent so uv ent très utiles. La
rec herche d' inform ati on est généralement entravée par deux choses: la diffi culté de faire un e
requête préc ise lorsque l' utili sateur ne connaît pas bien le suj et et le fait que bea ucoup de
connaissances so nt tac ites et donc di ffi cilement access ibles. En général, la meilleure façon
de remédi er à ce problème est de demander une ass istance humaine. Ainsi, de plus en plus de
systèmes informatiques sont développés dans cette optique et utili sés pour créer des
communautés virtuell es et faciliter la locali sati on de la bonne personne dans la recherche
d' inform ati on (M emmi et Nérot, 2003).
Les méth odes class iques de recherche d' inform ati on ne tiennent pas compte de l'aspect soc ial
de la producti on et la consommati on de l' inform ati on. De plus en plu s, des techniques plu s
actu elles tentent d' intégrer des inform ati ons à propos de l' environnement soc ial de
l' utili sateur et de sa position dans le réseau soc ial afin d'améliorer l'effi cac ité de sa
recherche.
Le logiciel Human Links (http ://www. human-l inks.com) est un moteur de rec herche
di stribué, construit se lon un e architecture poste-à-poste (peer-to-peer), qui ex pl oite
1' ex perti se co llecti ve des uti 1isateurs. Lorsqu ' un utili sateur se connecte au système, il dev ient
un nœud dans ce réseau poste-à-poste (pee r-to-peer) et de ce fait, contribue implicitement à la
rec herche d' inform ati on. Le système extrait automatiquement un profi l spéc ifique pour
chaqu e utili sateur à partir de ses marqu e-pages We b, par exemple (d 'a utres in fo rm at ions
peuvent auss i être ut ili sées) et la similarité entre les profi ls des utilisateurs défi nit un réseau
virt uel. Dans ce réseau, les ut il isateu rs sont considérés comme étant proches les un s des
autres si leurs profi ls sont similaires et non parce qu ' ils sont adj acents dans la structure rée ll e
du graphe. Lo rsqu ' un utilisateur soumet un e requ ête au système, cette requête est propagée à
17
travers le réseau poste-à-poste pour localiser des experts potentiel s sur le sujet en comparant
la requête avec les profil s des utilisateurs . Lorsqu ' un expert est trouvé, le système peut
fonctionner de deux façons différentes : il peut demander à l' expert s' il est prêt à aider
l' auteur de la requête, ou bien il peut utiliser le profil de l'ex pert pour raffiner la requête
initiale pui s reprendre sa recherche . Ce logiciel peut donc être utilisé pour trouver des
doc um ents aussi bien qu e de l'ex perti se humaine.
Referra!Web (Kautz, Selman et Shah , 1997) est un autre exemple. Ce système a pour but
d' améliorer la rech erch e d' information en construisant un réseau soc ial pui s en trouvant un
ex pert dan s ce réseau . Les lien s soc iaux sont extraits automatiquement du Web en observant
les cooccurrences des noms propres cités dan s les pages Web. Par exemple, les co-auteurs de
publication s dans les bibliographi es ou les membres d' un même département universitaire
seront considérés comme étant en relation les uns avec les autres. Ce réseau peut alors être
utilisé pour loca li ser des ex perts sur un suj et particuli er en suivant les li ens soc iaux.
Une di sc uss ion plus complète sur l' utili sation des réseaux soc iaux comme aide à la recherche
d' informati on est présentée dan s l'article de (Kirsch , Gnasa et Cremers, 2006) .
Pour soutenir la concurrence et maintenir un bon nivea u de prod uctivité, dans un e soc iété
tec hn ologique où les produits sont v désuets, où les tec hn olog ies évo luent constamment et où
les entrepri ses doivent répondre rapidement à la dem ande, de plus en plus, « pour créer
davantage de valeur et soutenir des ga ins de producti vités, les entreprises devront s' ouvrir
vers l'extérieur et identifier de nouvelles façons de coordonner leurs activités autour de
réseaux réunissant un grand nombre d' entrep ri ses.» (Poulin , 2004). La mise en commun des
ressources a pour but de favoriser l' innovati on et ainsi, permettre aux entrepri ses de demeurer
concurrentielles. Dans cette optique, il serait avantageux, par exemple, d'étudi er les types de
structures relationnelles qui favor isent l'émergence de l' innovation.
18
Un résea u soc ial peut être défi ni comme étant un ense mble de relati ons entre un ensemb le
fini d' indi vidu s, ce ux-c i fa isa nt fi gure d' acteurs (ou d ·agents) à l' intéri eur du résea u.
Il est poss ib le d' id entifi er plusieurs types de relati ons (collaboration, so uti en, co ntrôle,
consei l, influence, parenté, am itié, etc.) qu ' entreti ennent les ac teurs les un s avec les autres au
se in d' un ensemble social. À titre d'exempl e, prenons les empl oyés d' un e entrepri se. On
peut alors se demand er qui co llabore avec qui au se in de cette soc iété. On obtient alors un
réseau soc ial formé de l' ensemble des relati ons de coll aborat ion ent re les empl oyés de cette
entrepri se. Dans cet exemple, le résea u est constitu é de relati ons entre indi vidus, ma is nous
pourrions, de la même façon , considérer les relati ons qui ex istent entre différe nts groupes
soc1aux. Dan s ce cas, l'acteur n' est plus un indi vidu, mai s un ensemble d' individus. Par
exempl e, nous pourri ons étudi er les relati ons de co ll aborat ion entre plu sieurs entrepri ses,
chaq ue entrepri se fa isant figure d'acteur à 1' intéri eur du résea u.
Les réseau x sociaux, de par leur nature, peuvent facilement être représentés sous form e de
graphe : chaque acteur du réseau social est représenté par un sommet (ou noeud) du graphe et
19
chaque relation entre deux indi vidus est représe ntée par un e arête (si la relation est
bidirectionnelle) ou un arc (si la relation est unidirectionnelle) du graphe. Par ana logie, il est
donc possible d'appliquer les concepts de la th éo rie des graphes aux résea ux sociaux. On
peut alors parler de proximité, de di stance, de densité, etc.
Par exemple, il existe plusieurs mesures de di stance. L' une d'entre ell es est la distance
géodésique qui mesure le plus court chemin entre deux sommets. Lorsque la di stance
géodésique entre deux acteurs est faibl e, on dit qu e les acteurs sont proc hes l' un de l'autre, s i
el le est grande, on dit qu ' ils so nt éloignés l' un de l' autre. Le di amètre d' un graphe
correspond à la longueur du plus long géodésique reli ant n' importe qu e ll e paire de sommets
dans le graphe. C'est la di stance géodésique maximale entre deux membres.
Aussi , on dit d' un e relation qu 'e lle est directe si la di stance entre les deux acteurs est d' un
se ul pas et qu 'e lle est indirecte sinon. Sachant que dan s un graphe den sommets, le nombre
de li ens possibles est égal à n(n-1) pour un graphe orienté et à n(n- 1)12 pour un graph e non
ori enté, on peut alors calculer la densité d' un graph e de cette façon :
Ceci n'est qu ' un bref aperçu des applications possib les de la th éo ri e des graphes aux résea ux
sociaux, mai s ce qu ' il faut retenir ici est qu e l'étud e des ense mbl es soc iaux sous forme de
résea ux permet l' application de mesures qui peuve nt s' avérer très util es lors de l' ana lyse de
la structure relationn ell e. De plu s, l' information contenue dans un gra phe peut être
représe ntée dans un e matrice. La représentation matri ciell e perm et alors l' utili sation
d'opérations algébriques matrici ell es dans l'analyse des résea ux . On appell e matrice
sociométrique une matrice qui montre tous les arcs (relations direc tes) d' un graphe. Pour
connaître la di stribution des relations indirectes de x pas, il suffit d'é lever cette matri ce à la
pui ssance x. La fi gure 2.3.1 .2 illustre ce cas.
~ -
20
1 2 3 4 5 6 7
0 0 0 1 0 1 0
2 0 0 0 0 0 0 0
3 0 1 0 0 0 0 0
4 1 0 1 0 0 0 0
5 0 0 0 1 0 0 0
6 0 0 0 0 0 0 0
7 1 0 0 0 1 0 0
(b) Matri ce s oc iom étrique M
(a) Graphe G
représentant le graphe G
1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7
0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0
2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0
4 0 1 0 1 0 1 0 4 1 0 1 0 0 0 0 0 1 0 1 0 1 0
5 1 0 1 0 0 0 0 5 0 1 0 1 0 1 0 5 1 0 1 0 0 0 0
6 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0
7 0 0 0 2 0 1 0 7 2 0 2 0 0 0 0 7 0 2 0 2 0 2 0
2
(c) M (d ) M3 (e) M
4
Dans le champ de la soc iologie, l'approche structura le (Lazega, 199 8) est un e méth ode qu i a
été déve loppée pour étudi er les résea ux soc iaux afin de mi eux comprendre les phénomènes
sociolog iques . Ce lle-ci tente de form aliser et de systémati ser les relati ons entre les ac teurs à
l'aid e d'outils math ématiques ou stati stiques, ce qui la di stin gue d'autres méthodes uti lisées
en soc iologie qui sont souve nt plus info rm elles et plus qualitati ves.
- - - - - - - - - - - - - - - - - - --
21
L'approche structurale propose donc diverses mes ures pour l'analyse des résea ux relati on nels
et nous en verrons quelques-unes dans les secti ons suivantes.
Cette méth ode repose sur la compara 1so n entre la fréqu ence relative des relati ons entre
membres d'un sous-groupe (relations internes) et ce lles entre membres et non-m em bres
(relations extern es). C'est la proportion donnée par la divi sion de la densité des relations
internes par la densité des relations intern es et exte rn es . Ces sous-groupes ex isten t parce
qu ' il s so nt relati vement plus cohés ifs en comparaison au reste du résea u.
Ces so us-groupes cohés ifs so nt construits par l' ad diti on success ive de membres à un sous-
ensemb le initial tant que la proportion mesurée ne varie pas trop.
Cette méth ode repose sur la définition de cliques. Les cliques so nt des sous-en sembles de
membres tous adjacents les uns aux autres (sous-graphe maximum comp let de trois sommets
ou plus). Cela signifie que les membres d' une même clique se cho isissent tous entre eux. S i
un membre appartient à plusieurs cl iques, on parle de cliques superposées.
22
Cette faço n de définir un so us-groupe cohés if est très sévère, car l'a bsence d' un seul arc peut
empêcher un graph e d'être un e clique. Ce phénomène se produi sant assez souvent dans les
résea ux di spersés, par exe mple, cette méth ode ri sque d'être inutili sa ble dans plusieurs cas .
Les méth odes suivantes sont moins strictes.
Cette méthode repose sur la définiti on de la n-c lique. Ce lle-ci est défini e co mme un so us-
graphe max imal dans lequel la distance géodés ique la plus grande qui sé pare deux sommets
n'est pas supéri eure à n. L' important, ici, co ntrairement aux cliques, n'est donc pas que les
membres so ient tous adjacents, mais qu ' il s so ient accessibles les un s aux autres, sur un e
co urte di stance.
Cette méth ode est donc moin s sévère que la méthode basée sur la réc iproc ité co mplète, mai s
prése nte auss i ses jmües . ..En effet, e cb emj iLqui mène un membre de la clique à un autre
membre peut passe r par un ou même plusieurs membres à l'extéri eur de la clique et le so us-
groupe ain si form é peut ne pas être auss i cohésif qu ' on le vo udrait. Par contre, il ex iste
ce rtaines so lutions à ce probl ème :
n-clan : consiste à exc lure toutes les cliques qui conti enn ent des géodés iques dont l' un des
membres n'est pas un membre du sous-groupe.
n-club : consiste à définir un sous-graphe max im al de di amètre n dans lequ el on n' inclut
aucun membre qui so it à un e di stance géodés ique inféri eure ou éga le à n de tous les membres
du so us-graphe.
Cette approche se fonde sur la défin ition d' un nombre minimum d' acteurs adjacents à tous
les autres membres du sous-ensemble. Il n' est donc pas nécessaire que tous soient reliés à
23
tous, ma1 s plutôt que tous les membres du sou s-groupe aient des li ens adj acents avec
« beaucoup » d' autres membres.
Cette méth ode est plus robuste et moin s vuln érabl e qu e la méth ode des n-c liques, car si l' on
retire un membre du sous-groupe, la structure n'est pas modifi ée contrairement à un e n-cliqu e
qui elle, n' ex isterait plus.
La méth ode de 1'équi va lence stru ctura le se di stin gue des tec hniques d' identifi cati on de sous-
groupes cohés ifs menti onnées précédemment. En effet, ce ll e-ci cherche dava ntage à définir
des sous-ense mbles d' acteurs aya nt le même profi 1 relati onn el qu ' à id entifie r des so us-
groupes d'acteurs qui ne font qu ' interag ir entre eux.
L' équi val ence structural e cherche donc à détermin er les so us-groupes d' acteurs qui jouent
des rôles similaires dans le résea u, qui ont des relati ons comparabl es avec d'a utres acteurs.
Dans cet ordre d' id ées, la substitution de deux ac teurs stru cturalement équi va lents, dans le
résea u, ne dev rait pas fa ire de di ffé rence.
L'équi va lence stru cturale, tell e qu 'e ll e vient d'être défini e, est un e propriété qu ' il est
pratiqu ement imposs ibl e d' observer dans la vie soc iale. Deux personn es n'ont jamais le
même profil relati onn el : il s n'ont j amais exactement, par exe mple, les mêmes ami s ou
ennemis. Pour cette raison, l'équiva lence structurale se calcule de façon statist ique. JI existe
plusieurs techniques de mesure de l' éq uiva lence structurale, dont les modèles catégoriques
(block models) et l' utili sat ion de la di stance euclidienn e (Lazega, 1998).
24
Le but de l'analyse des sous-groupes fo nd ée sur l'équi va lence stru cturale est de repérer des
sous-ensembles d' acteurs au profil relati onn el semblable c'est-à-dire, qui ont les mêmes liens
avec les mêmes membres du reste du système. Il s' ensuit donc qu ' un e telle analyse ne
perm et pas de déce ler des statuts et des rôles qui ne soient pas exc lu sive ment spéc ifiques à la
populati on étud iée. Cette méth ode ne peut donc pas être utili sée pour comparer deux
population s différentes. C'est pour tenter de dépasse r cette limite qu e l' équi va lence réguli ère
a été introduite.
L' équi valence réguli ère est, en que lque sorte, un e fo rme plus relâc hée d' équi va lence.
Contrairement à l' équi va lence structurale, l' équi va lence réguli ère n' ex ige pas qu ' un indi vidu
ait les mêmes relati ons avec tous les membres du système. Deux acteurs sont dits
réguli èrement équi va lents s' il s ont au moins une relati on avec des indi vidus eux-mêmes
équivalents. On produit ain si des cl asses corrélati ves qui se défini ssent les un es par rapport
aux autres. Par exemple, la classe « ense ignant » est défini e par ra pport à la classe
« étudi ant » (e t vice versa) et, se lon l'équi va lence réguli ère, il suffi t de n' avo ir qu' un seul
étudi ant pour être co nsidéré comme fa isa nt parti e de la classe des ense ignants.
Ce pendant, cette méth ode a auss i ses limites. La prat ique de cette forme d' analyse peut, en
effet, engendrer des classes si abstraites qu ' on peut diffi cilement les retrouve r dans la réa lité
des systèmes soc iaux étudiés.
Les mes ures de centralité et de presti ge sont des mes ures de la pos ition relati ve des acteurs au
sein d' un système soc ial. Ell es serve nt à identifi er les acteurs les plus importants qui so nt les
plus susce ptibles de contrôler l' alloca ti on des resso urces.
25
Centralité
Un acteur est très central lorsqu ' il est engagé dans beaucoup de relati ons (directes ou
indirectes). Ici , la direction des arcs ne compte pas, donc cette mes ure peut être utilisée pour
des relations orientées ou non.
Soit g, le nombre de sommets d'un graphe (nombre d' acteurs dans le réseau).
Interprétation: Plus un acteur est central, plus il est actif dans le !>ystème.
L Xii
C ',1; = - 1
-· - (normali sati on)
g -1
Centralité de proximité Cc (closeness): Nombre minimum de pas que l' acteur doit effectuer
pour entrer en contact avec les autres acteurs du système. On ne peut pas ca lcul er cet indice
lorsque le réseau comprend plusieurs composantes connexes.
1
Cc, =g- - , pour tous les j f::. i
Ldu
j= l
26
g
où du est la di stance géodés ique entre les acteurs i etj et où I du est la di stance totale entre
.J = I
1
l' acteur i et tous les au tres acteurs du système. Au max imum, cet indice = lorsque
(g- 1)
l' acteur est adj acent à tous les autres acteurs.
g -1
C 1 Ci= - g- =(g - l )Cci (norm ali sati on)
I du
j =l
1
C Ci vaut 1 lorsq ue l' acteur i est adj acent à tous les autres.
Centralité d'interm édiarité C8 (betweeness): Proporti on des géodés iques entre j et k qui
passe nt par i.
Interprétation : Contrôle exercé par l 'acteur sur les interactions entre deux autres acteurs.
Lorsque deux acteurs ne sont pas adjacents, ils dépendent d 'autres acteurs pour leurs
échanges et ces acteurs intermédiaires peuvent avoir la capacité de bloquer la circulation
des ressources. Plus un acteur se trouve au milieu et constitue un point de passage
nécessaire sur des chemins que d 'autres do ivent utiliser pour communiquer entre eux, p lus il
est central de ce point de vue.
I g,k(i)
Cs, =""".J<_k_ _ _
gik
pour i-::;!:. j , k où g,k = l'ensembl e des géodésiq ues entrej et k et où gik(i) = un chemin entre
(g- l )(g-2)
Le maximum = 2 si l'acteur se trouve sur toutes les géodésiques.
C' _ Cs;
B; - (g - l )(g-2) (normalisation)
2
Les différentes mesures de centralités déterminent l' importance d' un acteur dans le réseau
social. La figure 2.3 .2.2.1 illustre le « Kite Network » développé par David Krackhardt (tiré
de « How to do Social Network », www.orgnet.com/sna.html). Cette figure illustre très bien
les différentes mesures de centralité. On observe que dans ce résea u, Lucie obtient le
meilleur résultat pour la centralité de degré, car c' est elle qui possède le plus de liens directs.
Cependant, le fait d'avoir plusieurs relations n'est pas toujours aussi important que les
personnes avec qui on entretient ces relations. En effet, on remarqu e que les contacts de
Lucie font tous partie de sa propre clique, il s sont tous reliés entre eux. Il aurait été plus
avantageux pour Lucie d'avoir des contacts hors clique afin de devenir un intermédiaire
obligé entre les membres de sa clique et ces contacts extérieurs.
De son côté, Manon possède peu de liens directs, moins que la moyenn e dans le réseau. Son
score de centralité de degré est donc relativement petit par rapport aux autres membres du
réseau. Par contre, du point de vue de la centralité d' intermédiarité, elle occupe une des
meilleures positions dans le réseau . Elle joue le rôle de l' unique intermédiaire entre les
membres de la clique de gauche et les deux membres à sa droite. Elle peut ainsi contrôler les
communications entre ces deux parties. Elle est en position de pouvoir, car sa ns ell e, Justin
et Louise ne pourraient pas avoir accès à l' information et aux connaissances provenant de la
clique de Lucie. Un acteur ayant un fort degré de centralité d' intermédiarité a beaucoup
d' influence sur la circulation des connaissances dans le réseau .
Jean et J im possèdent un peu moins de connexions que Lucie cependant, la structure de leurs
connexions directes et indirectes leur permet d'avoir accès à tou s les autres acteurs du résea u
plus rapidement que n' importe quel autre membre. lis ont accès aux plus courts chemins vers
tous les autres acteurs. Ils sont proches de tout le monde et possèdent donc le score de
28
centralité de prox imité le plus é levé. Ils sont alors dans un e exce llente pos ition pour exercer
un contrôle sur le flux d' informati on dans le résea u, ca r il s ont la meilleure visibilité de ce qui
y circul e.
Justin ) - - - - - { Louise
Figure 2.3.2.2.1 Illu stration du « Kite Network » développé par David Krackhardt
Prestige
Prestige de degré: Un acteur est prestigieux lorsqu ' il reçoit beaucoup de choix. Ici, la
directi on des arcs a so n importance donc cet indi ce ne peut être ca lcul é que pour les relati ons
ori entées. Le prestige de degré corres pond au ca lcul du demi-degré intéri eur. C'est le
nombre de choix reçus (arcs entrants).
lnte1prétation : Plus cet indice est grand, plus 1'acteur est populaire.
Prestige par proximité : Est un e extension du prestige de degré. Ce dernier ne co mpte que
les acteurs adjace nts à i mais on peut généra liser cet indice en définissa nt un « domaine
d'influence de i » et uti liser les re lat ions directes et indirectes à l' intérieur de ce domaine
pour calculer le prestige par proximité.
lntelprétation : Plus cet indice est grand, plus 1'acteur est populaire.
29
Prestige basé sur le statut ou le rang : Si un acteur est en relation avec des membres eux-
mêmes presti gieux, cela augmente so n propre prestige.
Les structures relationn elles entre les acteurs et la position de ceux-ci dans le réseau
influencent leur comportement. La desc ripti on des structures relationn elles cherche à mettre
en lumière les contraintes que la structure fait peser sur le comportement des acteurs, la
manière dont les acteurs gèrent ces contraintes et les processus de restru cturati on qui peuvent
en résulter. De ce point de vue, on peut s' interroger sur la compos ition particulière des
structures rel ati onnell es qui contraignent dava ntage les acteurs ou qui , au contraire, leur
offrent dava ntage d'opportunités. La stru cture relationn elle peut donc procurer aux acteurs
du pouvoir, comme on l'a vu avec la centralité et le presti ge, mai s aussi, certaines formes
d' autonomie.
Autonomie
illustrées par les lignes de tirets dan s la fi gure. Dans cet exemple, pour communiquer avec
- les contacts c2, c3, c4, c6 et c7, l' acteur) n' est pas dans l' obligation de passer pari. Il a donc
une alternati ve relati onnelle pour rejoindre ces contacts et possède, de ce fait, un e certaine
autonomi e. Par contre, ) doit absolument passer pari s' il veut communiquer avec cl et c5.
De son côté, l' acteur i a bea uco up moins de pouvoir sur la circul ati on des ressources que dans
la structure relati onnelle montrée en (a), car étant donné qu e plusieurs de ses contacts directs
peuvent communiqu er entre eux, il s peuvent au ssi s'organi ser et offrir un e certain e
résistan ce.
c1 c7 c1 c7
.
c3
c4
\ cS
c6
c4 cS
c6
(a) (b)
Figure 2.3.2.3.1 Autonomie des acteurs dan s différentes structures relationne lles.
Plus un ac teur possède de contacts non redondants dans le réseau, plus ses relati ons sont
uniqu es, plu s il ri sque d' être paralysé par la structure relati onnelle. D' autre part, plus il est
relié à des contac ts non reliés entre eux, plus il y a de « trous » dans la structure, plus il est
autonome, car les indi vidu s qui l' entourent ne sont pas organi sés entre eux. Ainsi, la
stru cture des relati ons d' un acteur peut augmenter ou limiter sa liberté d'acti on et lui procurer
plus ou moins d'autonomie.
Les modèles actuels de réseaux soc1aux prov iennent de plusieurs di sc iplines te lles que la
phys ique, les math ématiques, la sociologie, l' économie et la psychologie soc iale. Dans cette
31
section, sa ns faire un e énumérati on exhaustive de tous les modèles ex istants, nous présentons
quelques modè les importants provenant de domaines divers.
Une grand e parti e des modèles soc iaux vienn ent de la phys ique avec l'adaptati on de lois
phys iques à la modélisati on des systèmes soc iaux. Ces modèles se concentrent plu s
particulièrement sur les propriétés de la stru cture globale des résea ux san s tenir co mpte des
di fférences de types de liens ou des propriétés des agents. Comme exe mple de modèles
th éoriques, nous présentons ici les automates ce llulaires, les petits mond es, le modèle de
réseau indépendant de l'échelle« sca le-free » et final ement, un modèle de réseaux d' amis.
Le champ de la modéli sati on soc ia le a hérité de plu sieurs outil s provenant des
mathématiqu es, de la ph ys ique et en parti culi er, des automates ce llulaires (Wolfram, 1986).
La stru cture d ' interacti ons so us-j ace nte à ces modèles est, en gé néral, un e gri Ile régui ière
dans laquelle chaque case représente un e ce llul e et où l' enviro nn ement soc ial est représe nté
par la grill e entière. Les vo isins de chaqu e ce llul e sont alors détermin és par leur prox imité
spati ale sur la grill e, selon un voisin age de Yon Neum ann ou de Moo re, par exempl e. La
figure 2.4 .1.1 illustre ces deux types de voisinage.
32
(a) (b)
Figure 2.4.1.1 Voisinage de Von Neumann et voisinage de Moore dans un automate cellulaire
Dans cette figure , les vo isins de la cellule noire sont représentés en gri s. (a) Le voisinage de Yon
Neumann relie une cellule à ses quatre vois ins (nord, sud, est, ouest). (b) Le vo isinage de Moore
ajoute quatre vois ins de plus que celui de Yon Neumann (nord-est, sud-est, sud -ouest et nord-ouest).
Le j eu de la vi e (The Ga me Of Life) est un exempl e populaire d' automate ce llul aire qui a été
in ve nté par le mathémat icie n John Comvay. Ce jeu consiste en un e co ll ection de ce llules qui ,
se basant sur quelqu es règles math émat iques simples, peuvent vivre, mourir ou se reproduire.
Étant donn é les conditions initi ales, les ce llul es forment divers motifs à mesure qu e le j eu se
pou rsuit. Les règles se prése ntent com me suit :
4. Chaque ce llul e vide entourée de 3 voisins naît (la case devi ent occupée).
33
Le problème principal renc ontré dan s cette approche est qu 'on part d' une mosaïque
bidimensionn elle et qu ' on dérive ensuite, de cette mosaïque, la loca li sati on des cellul es et de
leur vo isinage . Cette méth ode peut s' avé rer limitative pour modéli se r des systèmes soc iaux
qui ne sont pas se ul ement situés dans un espace géographique. De plus, dans ce ge nre de
modèle, on ne peut pas modifi er fac il ement la conn ecti vité moye nn e du graphe, car il y a un
nombre fi xe de qu atre ou huit voisins pour les vo isinages de Yon Neum ann ou de Moore. En
ce qui concern e les grill es générées par un di agramme de Yoronoï, il est poss ible d' ajuster la
co nn ecti vité moye nn e du graph e, mai s à l' intéri eur de certaines limites.
L'effet des peti ts mond es (small world effect) a été large ment étudi é. La premi ère ex péri ence
conduite en ce se ns fut ce ll e de (Mil gram, 1967) qui donn a lieu à l'ex pression bien co nnu e
des six degrés de sé parati on (Guare, 1990). Cette ex press ion signifie que le nombre de
contacts interposés entre un e personn e choisie au hasa rd et n' importe qu ell e autre dans le
monde est d' environ six. De nombreuses autres études ultéri eures prouvèrent auss i qu e si le
nombre six n'est pas nécessairement le nombre juste, il n' en demeure pas moin s que la
chaîne de co ntacts qui relie entre eux deux indi vidu s, choisis aléatoirement sur la pl anète, est
très petite par rapport à la populati on enti ère : si l' on ca lcul e la di stance qui sépare chac un
d' entre nous de n' importe qu el autre indi vidu sur la planète, en term e de nombre de co ntacts
interposés pour se rendre de 1' un à 1'autre, le mond e est petit (K orte et Mi !gram, 1970).
Certains sc ientifiques ont donc essayé de défi n ir la structure d' in te racti ons de leur modèle
pour représenter cet effet des petits mond es observé dans la réa lité.
Le modèle le pl us sim ple est le gra phe aléatoire. Les graphes aléato ires on t largemen t été
étudi és en math ématiqu e, en parti culi er par (E rd os et Rényi, 1960).
1
donc - Nz conn exio ns symétriq ues au total dans le réseau . On peut construire un tel graphe
2
1
en traçant N so mmets et en reliant - Nz paires de sommets chois is aléatoirement. La fi gure
2
2.4.1.2 illustre un graphe aléatoire de 6 sommets et aya nt une co nn ectivité moyenn e de 2.
Il est faci le de montrer que ce ge nre de résea u présente l'effet des petits mond es. En effet,
supposo ns qu e A est un des sommets d' un graphe a léatoire. A possède donc z voisins qui
possèdent à leur tour z voi sin s et ainsi de suite. Il s'e nsuit qu e A possède z voisins directs, i
deu xièmes voisins, z3 troi sièmes voisins etc . Dans la vie courante, un individu a en moyenn e
entre 100 et 1000 conna issa nces ain si, z4 se trouve entre 108 et 10 12, ce qui est comparab le à la
population mondiale actue lle. Sachant que la di stance entre deux nœuds est la longueur du
plus court chemin qui relie ces nœud s, on définit le diamètre d' un graphe comme la plus
grande di stance entre deux de ses sommets. Le diam ètre D d' un graphe aléatoire est donné
par z D = N qui implique que D =log N 1 log z. O n voit que D augmente très lentement
Outre l' effet des petits mondes, une autre caractéristique importante observée dans les
systèmes sociaux est la transitivité (clustering) qui signifie qu e deux ind iv idu s qui
co nnai ssent un e même personn e ont de fortes chances de se rencontrer. En d' autres mots,
dans un résea u soc ial , si A connaît B et C, la probabilité que B et C se co nn aissent est
beaucoup plus élevée que la probabilité que deux person nes simplement chois ies au hasa rd se
connaissent, car ils ont un contact comm un qui est A.
35
Bien que les graph es al éatoires montrent parfaitement la propriété des petits mond es, ceux-ci
ne représentent pas la propri été de transitivité qu e 1'on peut observer dans la plupart des
résea ux sociaux.
Supposons alors un graphe représe nté par un treilli s réguli er à un e dimension, pouva nt être
circul aire, dans lequel ch aqu e sommet est relié à ses z vo isins les plus proc hes. La fig ure
2.4. 1.3 montre un tel graphe avec z = 4 .
Dans la fi gure 2.4. 1.3 , on remarqu e qu e bea ucoup des vo isin s immédi ats de chaque so mmet
so nt auss i des vo isin s l' un de l' autre. Ce type de graphe représe nte donc la propriété de
transiti vité.
Le coeffic ient de transit iv ité C est la fract ion moye nn e de paires de vo isin s d' un nœud qui
sont auss i des vo isin s l' un de l' autre. Dans un graphe complet, où tout le mond e connaît tout
le monde, C = 1. Dans un graphe aléatoire, C = z 1 N, ce qui est très petit pour un gra nd
résea u.
Pour ce qui est d' un graphe simil aire à la fig ure 2.4 .1 .3 , le coeffic ient de tra nsi tiv ité
D' un autre côté, ce type de graphe ne représe nte pas du tout l'effet des petits mond es, ca r la
distan ce moye nn e séparant deux sommets augmente de faço n linéa ire avec la taill e du
système.
Ce pend ant, (Watts et Strogatz, 1998 ; Watts, 1999) ont proposé des algorithm es pour
construire un graphe montrant à la fo is 1' effet des petits mond es et la propriété de transiti vité.
Le premier modèle, le modèle a, se construit co mme le modè le de Erd os et Rényi, mais lors
de l' aj out de li ens au graphe, plutôt que de choisir deux nœud s de faço n tout à fa it aléatoire,
on les choisit avec un e probabilité qui au gmente proporti onn e ll ement au nomb re de co ntacts
co mmuns qu e possèdent les deux noeud s qu e l' on veut relier. Ce la conduit rapidement à la
fo rmati on de sous-groupes cohés ifs (clusters) dans la stru cture. Le deuxième modèle, le
modè le f3 , part d' un e stru cture en fo rm e de treillis réguli er circulaire, mai s y aj oute un
ce rtain degré de hasa rd. Pour ce faire, parmi tous les liens du graphe de la fi gure 2.4 .1.3, on
choisit qu elques li ens se lon un e probabilité pet, pour chaque lien choisi, on dépl ace un e des
extrémités de ce li en vers un autre so mmet détermin é aléatoirement. La fi gure 2.4 .1.4 montre
un exemple de graph e obtenu par cet algorithm e.
Figure 2.4.1.4 Modèle fJ exposa nt l'effet des petits mondes et la propriété de tran sitivité
La fig ure 2.4 .1 .4 montre qu e, pour un e petite probabilité p , le treilli s obtenu demeure qu and
même assez rég uli er, mais possède déso rmais qu elques racco urcis qui le traverse nt et
provoque nt ainsi l'effet des petits mondes. En effet, Watts et Strogatz ont montré, par
simul ati on numériqu e, qu e la distance moye nne entre deux sommets, lorsq ue la proba bil ité
37
p = 1~, est éga le à 3.6. Ce résultat est à peine supéri eur à la di stance moyenne éga le à 3.2,
ca lcul ée pour un graphe aléatoire.
De plus, le nombre de voi sins d' un sommet parti culier peut être supéri eur ou infé ri eur à z,
mais en moyenne, le nombre de coordin ati on est touj ours égal à z. Clairement, la va leur du
coeffi cient de transitivité C, pour de petites va leurs de p et un grand z, sera proche de ce lui
calculé pour un treillis parfaitement rég ulier, comme celui de la fi gure 2.4.1.3. Ce modèle
montre donc l'effet des petits mondes ainsi que la propriété de transiti vité observés da ns
plusieurs systèmes soc iaux rée ls.
L'effet des petits mond es, sel on la vision de Watts et Strogatz, se produit grâce à qu elques
raccourcis aléatoires, passant à travers le treilli s. (Dorogovtsev et Mendes, 1999) ont trouvé
un e autre façon de provoquer ce phénomène. Il suffit d'ajouter au graphe qu elques sommets
qui ont un nombre de coordin ati on inh abituell ement plu s élevé qu e les autres nœuds c'est-à-
dire, qui sont reli és aléatoirement à un plus grand nombre de vo isins qu e les autres nœud s du
graphe. Ces quelques sommets parti culi ers deviennent alors des points de passage entre deux
nœud s quelconques éloignés l' un de l' autre. Cet arrange ment prod uit le phénomène des
petits mondes tout en conse rvant la propriété de transitivité qu 'offre la stru cture en treilli s.
La fi gure 2.4.1.5 montre à qu oi ressemble un tel gra phe .
Un autre modè le de petits mondes à été proposé par (Kieinberg, 1999) dont l'argument en
défaveur du modèle de Watts et Strogatz porte sur le fait qu ' un tel modèle, basé sur des
connexions arbitraires entre des paires de sommets et se lon une probabilité uniform e, est une
piètre représentat ion des situations qu 'on retrouve dans le monde rée l. Il propose alors un
modèle basé sur un treillis carré à deux dimension s dans lequ el on a ajouté aléatoirement
quelques connexions entre des paires de sommets i,j, mais se lon une probab ilité non uniforme
égale à d,; ' su ivant un e loi de puissance où rest le coefficient caractéristiqu e qui détermine
d,1 = 1x, - x, 1+ 1y,- Y11et où (x,, y,) et (x,, )IJ ) sont les coord onnées des sommets i etj dans le
treillis.
Il semble possible, en effet, qu ' un tel réseau représente mieux les interacti ons soc iales qu e le
modèle présenté par Watts et Strogatz même si les propriétés des deux modèles sont
similaires en ce qui concern e l' effet des petits mondes et la tran sitivité.
Une autre propriété de certains réseaux soc 1aux et plus parti culièrement du WWW a été
démontrée dan s une étude conduite par (A Ibert, Jeong et Barabas i, 1999). Il s ont rem arqu é
que la connectivité dans beaucoup de sortes de réseaux tel s que le WWW, montre un e
distribution des degrés qui suit une loi de pui ssance et ce, indépend amment de l' éc helle
considérée. Cette propriété n' avait pas encore été rencontrée dan s les modè les théoriques
ex istants et il s ont donc proposé le modèle du résea u indépendant de l'éc helle (Barabasi ,
Albert et Jeong, 2000) . L' équipe de Barabasi a montré qu e les modèles de réseaux ex istants
ne ten aient pas compte de deux caractéristiques importantes de certains réseaux réels.
Premièrement, certains réseaux grandissent continue ll ement par l' addition constante de
nouvea ux sommets et deuxièmement, les nouveaux sommets se connectent préférablement à
des sommets qui ont une connectivité élevée (attachement préférentiel). Il s ont démontré qu e
la combina ison de la constante croissance du réseau et de l'attac hement préférentiel est
directement respon sa ble de la di stribution de la connectivité en loi de puissance. Ce modèle
dynamique est défi ni par deux règles:
39
La fi gure 2.4.1.6 illustre ce type de réseau. On y remarque qu e certains so mmets (les t ois
sommets noirs) possèdent une connectivité bea uco up plus é levée qu e les autres sommets à
ca use des méca ni smes d' attachement préférentiel.
Figure 2.4.1.6 Modèle du réseau indépendant de l' éc helle illustrant l'attachement préférentiel.
(Jin, Girvan et Newman, 2001) proposent un modèle représentant l' évo luti on d' un résea u
soc ial de co ntacts personnels (ou d'amis). Les propriétés de ce modèle di ffè rent des règles
du modèle de l' évolution du WWW (modèle indépend ant de l'échelle et ses descendants)
pour plusieurs raisons.
Tout d' abord , dans un réseau soc ial, il est vrai que de nouveaux contacts et de nouvea ux liens
s' ajoutent et di sparaissent continuellement dans le réseau. Des individus voyagent et
changent de résea u, il s font de nouvelles conn aissances, certains nai ssent, d'autres meurent,
etc. Étant donn é ce va-et-vient constant dans les réseaux sociaux, les auteurs de ce modèle
considèrent qu e l' ajout et la perte de sommets s'éq uilibreront, en qu elque sorte, et qu ' il est
raiso nn able de considérer comme un e bonn e approx imati on que, dans l' ensembl e, le nombre
de so mmets du résea u soc ial modélisé ne vari e pas. Seul s le nombre et l' arrangement des
li ens changent.
Deuxièmement, la di stributi on des degrés, dans un résea u soc ial, ne se mble pas sui vre un e loi
de puissance, mai s sembl e plutôt tourn er autour d' un degré moye n. Ce phénomène
s'ex plique par le fa it qu e, dans la plupart des résea ux soc iaux (certaines exce ptions ex istent
par exempl e, les réseaux de contacts sex uels), l'entretien d' un e amiti é demand e des
ressources en temps et en efforts: il y a un e limite au nombre de contacts qu ' un individu peut
entretenir.
Ensuite, l' absence d' un e di stributi on des degrés sui vant un e loi de puissance suggère qu e le
mécani sme de 1'attac hement préférentiel n'est pas très important dan s les résea ux d' ami s.
Finalement, comme on l' a vu précédemment, les réseaux soc iaux doivent tenir compte de la
propriété de transiti vité qui, cependant, est abse nte du modèle du résea u du Web.
Étant donn é ce qu1 vient d'être discuté, les auteurs proposent qu atre caractéristiques
importantes qu ' un modèle dynamique de l'évolution d' un réseau d' am is devrait co nsidérer:
41
1. Un nombre fixe de sommets: Considération d' une population fermée d' un e grand eur
fi xe.
2. Un degré limité : La probabilité qu ' un individu déve loppe un e nouvelle amiti é doit
diminuer fortement lorsque le nombre de ses amis atteint un certain niveau.
z* = limite sur le nombre z d'amis qu ' un individu peut avo ir. À l' atte inte de z* co ntacts,
pour un individu, la probabilité que cet indi vidu crée d'autres liens d'amitié diminue
rapid ement.
3. Transitivité: La probabilité que deux individus dev ienn ent des am1s doit être
significativement plus élevée s' ils ont un ou plusieurs amis communs.
Des paires d' individus se rencontrent avec un e probabilité par unité de temps qui dépend
du nombre d' am is qu ' il s ont en commun .
La probabilité par unité de temps Pi! qu e deux personnes donn ées, i etj, se rencontrent
La fonction .f doit être assez gra nd e et assez constante pour de petits z, mai s doit diminuer
considérablement lorsque z approche de la va leur de transition z*. La fonction de Fermi
présente ces caractéristiques et c' est elle que les auteurs ont utilisée pour leur modèle.
42
1
·
f ( z;)-
- efl( =•-=* l + 1 où le param ètre fJ co ntrôle la préc ision de la diminuti on à z*.
La foncti on g(m) représente l'augmentati on attendue de la chance que deux indi vidus se
renco ntrent s' il s ont un ou plusieurs ami s communs.
g (m ) = 1- (1 - po)e-am
Où po représe nte la probabilité d' un e rencontre entre deux personnes qui n'ont pas
Lorsqu e deux indi vidus sont am1 s, ce ux-ci doivent se renco ntrer réguli èrement pour
maintenir leur amiti é. Si tel n' est pas le cas, il y a cessati on de cette amiti é.
Pour représenter la force d' un e amitié, chaque lien d 'amiti é possède un paramètres dont
la va leur est plus ou moin s élevée se lon que les renco ntres sont plus ou moins fréqu entes.
Chaq ue fo is qu e deux ami s se rencontrent, la fo rce s,, est aj ustée à la va leur 1. Pui s, à
mes ure qu e le temps passe et qu ' il s ne se renco ntrent pas de nouvea u, la fo rce de leur
amitié diminue ex ponentiellement se lon:
s,, = e- k l1
Où Dt représen te l' in terva lle de te mps depu is la dern ière rencontre dei etj et où k est un
paramètre ajustable du modè le. Si i et) se rencontre un e autre fo is, S;; est remi s à 1. Il
43
est ensuite poss ibl e de poser un e limite minimale à Sii afin de considérer qu 'en dessous
de cette limite, il y a cessati on de l' amitié entre i et).
Dans l' approc he soc iologique, une des perspecti ves dominantes de l' analyse de résea ux vo it
les ca ractéristiques du réseau comme des va ri abl es pouvant ex pliquer le comportement de
chaqu e indi vidu au se in de l' ense mble soc ial (les co mportements qu ' il s adoptent, les
stratég ies qu ' il s utili se nt) et ceci , en rega rd de la pos ition que chac un d'eux occ upe dans la
stru cture du réseau. Dans ce cas, on ne cherche pas à ex pliquer la stru cture même du réseau.
Une second e perspec tive, plus récente, s' intéresse plutôt aux relati ons. Elle tente d' ex pliquer
leur émergence, leur age nce ment, leur évolution. De ce point de vue, la stru cture des résea ux
doit être ex pliquée à partir du comportement soc ial des ac teurs qui le co nstituent.
En compara1so n avec les modèles déc rits plu s haut, plusieurs soc iologues ont choisi de
construire des modèles stati stiqu es. No us all ons nous co ncentrer ici sur qu atre classes de
modèles importants dans ce domaine qui ont donn é naissa nce à plusieurs descend ants : le
modèle de Holland- Le inhardt et ses descend ants, les modèles métriques, les modèles de
ferm eture des tri ades et final ement, les modèles de la vari ance du degré. Ceux-ci ont en
commun qu 'étant donn é un coupl e d' indi vidus et de leurs caractéri stiqu es, il s se co ncentrent
sur la probabilité de l' ex istence de re lation entre eux. Il est à remarquer que la maj orité de
ces modèles gè rent des relati ons ori entées ce qui n'est pas la tend ance observée dans les
modèles th éoriques précédents.
Le modèle p l (premier modèle de probabilité) est un modèle log-linéa ire qui a été déve loppé
pa r (Ho lland et Le inhardt, 198 1). Ce modèle permet d' un e pa rt, de spécifier des effets
indi viduels en perm ettant de tenir compte, par exemple, de la popul arité des acteurs (nombre
de li ens reçus = demi-degré intérieur) et de l'activité de ceux-ci (re lations émi ses ou demi-
44
degré extéri eur). Cepend ant, ce modèle ne perm et pas de tenir compte de va ri abl es exogènes
te lles que l' âge, le sexe, le statut soc ial qui sont souvent très importantes pour le
déve loppement de la stru cture d' un résea u relati onn el. D'autre part, ce modèle permet de
représe nter des effets dyadiques (caractéristiques des acteurs et de leurs relati ons deux à
deux) de réciproc ité (probabilité que si i émet une relati on ve rs j alors j émet auss i un e
relati on vers i). Bien qu ' étant un point de départ important pour le déve loppement des
modèles stati stiques de résea ux soc iaux, ce modèle postul e l' ind épend ance entre les dyades,
ne permet pas de représenter les effets tri adiqu es et en ce se ns, empêc he le traitement au
nivea u stru ctural.
Le modèle p2, développé par (Van Duijn et Snijders, 1995) est un e améliorati on du modèle
p l en ce se ns qu ' il perm et le traitement de va ri ables exogènes (ca rac téri stiqu es des acteurs) et
de va riables dyadiques (simil arités, flu x, fréq uences, co ntenu s ou toutes autres
caractéri stiqu es des relati ons). Cepend ant, ce modèle ne traite touj ours pas les effets au
nivea u des tri ades.
En plus de posséder tous les ava ntages du modèle p 2, le modè le p *, introd uit par (Wasserm an
et Patti son, 1996), propose une fo rmul ati on très générale qui perm et la représe ntati on de
n' importe qu elles di stributi ons de probabilités pour un graphe ori enté. Cec i rend ce modèle
très so upl e et perm et le traitement des effets tri adiqu es et donc stru cturaux. Ce pend ant, la
formul ati on est tell ement gé nérale qu ' i1 faut trouver la fo rmul e spéc ifique pour chaque cas
parti culi er et cec i n'est pas touj ours év id ent.
La méth ode principa le utili sée ici est la construction d' un espace soc ial où chaq ue age nt est
locali sé. C'est donc un e représentati on spati ale, et non purement stru cturale. Un algorithm e
stochastiqu e est alors uti 1isé pour créer les 1iens soc iaux étant donn é un e foncti on de
proximité. En général , cette fo nction est la dista nce eucli dienn e entre chaque coupl e
d' indi vidus sé lectionn é. Plusieurs trava ux ex istants reti enn ent cette so lution soit en créant
des réseaux soc iaux qui dépend ent seulement d' une distance géographique (Nowak et
45
Valac her, 1998) ou en incluant d'autres attributs tels que des indices soc io-éco nomiqu es de
chaque individu. Une gé nérali sati on de la construction d' un e métrique sociale a été proposée
par (Banks et Carl ey, 1994). Il est à noter que le concept répandu parm i plusieurs de ces
modèles est le concept de l' homophilie. Ce terme réfè re à la tend ance de la similarité sur
plusieurs attributs des personnes qui se lient: plu s les agents so nt semb lables ou plus ils sont
près les uns des autres à l' intéri eur d' un espace soc ial, plus grande est leur tend ance à être en
relation. Une version spatial e de la construction d' un espace soc ial est proposée par (Epstein
et Axtell , 1996) dans laquelle les agents se dépl acent sur un e ca rte et les individus qu ' il s
rencontrent sont aussitôt intégrés à leurs réseaux sociaux. Les liens so nt brisés lorsqu e les
individus deviennent trop éloi gnés les un s des autres .
Ces modèles so nt dérivés des travaux de (Heider, 1958) sur l'éq uilibre. Dans ces modèles,
les indi vidus cherc hent à minimi ser le déséq uilibre perçu. Par exe mple, si Loui s se consid ère
co mme un ami de Lucie et que Louis perço it qu e Lucie est un e amie de Fa bien alors, si Louis
n' est pas am i avec Fabien, il percevra un déséquilibre et aura tend ance à vo ul oir se lier
d'amiti é avec Fabien. L'o bj et principal n' est alors plu s se ul ement la dyade, mais la tri ade,
form ée par un gro upe de trois person nes et des relati ons entre ell es. Le but de ce modè le est
d'ass igner un e probabilité sur la création d' un nouveau li en à l'intérieu r d' un e tri ade, étant
donn és les liens ex istants. Cec i a donn é li eu à un e sé ri e de modè les incluant le modèle de
« c lu sterin g » de (Davis, 1967), le modè le de transiti vité de (Holland et Le inhardt, 197 1) et le
Ces modèles dérivent en partie des trava ux de (Biau , 1967) sur la théorie de l' éc hange. Ces
modèles assument que chaque acte ur est di ffé rent dans sa probab ilité intrin sèque d' attirer de
nouveaux liens: les acteurs qui ont un degré de centralité élevé tendent à attirer plusieurs
liens tandis que ceux qui ont un degré de centra lité faible tend ent à en attirer moins. On dit
d' un acteu r qu ' i1 est très ce ntral lorsqu ' i1 est engagé dan s beauco up de re lations (directes ou
46
indi rectes). Plu s le degré de centralité est élevé, plus l' acteur possède du pouvo ir, plus il est
populaire et plu s il attire de nouve lles relati ons. Ce phénomène s' apparente fo rtement à celui
de l' attachement préférenti el ex posé dans le modè le du réseau ind épend ant de l' éc hell e
(Barabas i, Albert et Jeong, 2000). La polari sation et la balkan isati on sui vent aussi des
concepti ons th éoriqu es du pouvoi r et peuvent être vues comme des va ri ati ons du modèle de
la vari ance du degré. La polari sati on se produit l_?rsque la soc iété se di vise en deux groupes,
chacun étant centré autour d' un acteur spécifique, comme il se produit lorsqu ' il y a des
cliques opposées, chac un avec un pui ssant leader. La balkani sati on se prod uit lorsqu e la
soc iété se di vise en un grand nombre de petits gro upes, chac un étant centré autour d' un
acteur principa l.
Dan s les approches basées agents, le réseau peut être vu comme un ensemble de relati ons
gé nérées par les agents du système. Il est nécessa ire, alors, de défini r les mécani smes de
créati on, d'évoluti on et de suppress ion des relati ons des age nts eux-mêmes.
Cette catégori e de modèles de résea ux soc wux util ise un e approc he de modéli sati on
ascend ante. Son but concern e la modéli sati on des méca ni smes individuels sociocogni tifs
utili sés pour bâtir, entretenir et terminer des relati ons. On di ffé rencie deux approc hes. La
première est issue de la th éori e des jeux qui est axée sur les méca ni smes rati onn els de
créati on de liens. La second e, fortement li ée avec les th éori es soc iopsyc holog iques,
privi légie la modéli sati on des propri étés soc iocogniti ves de la créati on de relat ions. Étant
donn és ces mécani smes, elle a pour but d'observer le ge nre de résea u qu ' ils enge nd re nt.
En économie et dans la th éori e des jeux en part icu li er, le cad re utili sé est ce lu i de la
max imisation de la fonctio n d' uti li té. Chaq ue individu possède la même fonct ion utili ta ire,
mais peut posséder di fférentes ressources pour in vestir dans des re lati ons ou pour modi fier
son comportement. Ces modè les s' intéresse nt donc à la création des relations et à leur
47
Le but de la modéli sati on basée agents dan s l'étude des résea ux soc iaux est d'ex primer des
méca ni smes soc iocog nitifs de création, d' entreti en et de finalisation de relati ons. La base
th éorique de ces méca ni smes vient surtout des th éori es soc iopsycholog iques du
comportement de groupe. Ces mod è les initiali se nt le résea u soc ial en choisissant parfois un
réseau vide ou bien en utilisa nt un réseau choisi parmi les modèles th éoriques ou encore, en
utilisant des données emp iriques. Les modèles basés agents sont nombreux et plus ou moins
complexes. Pour n'en nommer que quelques-uns, (Mos ler et Bru cks, 200 1) justifi ent
1' utilisati on de simul ations basées age nts pour ex pl orer des théories soc iopsyc holog iques,
(Flache et Macy, 1996) uti 1isent un e approche stoc hastique d 'apprenti ssage basée age nts pour
explorer la théorie de l'éc han ge de Homan , (Zeggelink, 1993) suggère de nouvea ux modèles
de réseaux d'amitié basés age nts et (S nijders, 1996) propose des modèles stochast iques
orientés acteurs pour tester la théorie de la fraternité de Newcomb.
48
Dans un modèle basé age nts, ce qui motive un age nt à crée r et maintenir des relations peut
être, par exe mple, so n dés ir d' atteindre certain s buts ou d'occuper une pos ition stratégiqu e
dans le résea u qui augmentera son pouvoir. Aussi, dans plusieurs modèles, la noti on de
co nfiance joue so uve nt un rôle important dans le choix des relati ons d' un agent.
Tout d' abord, on constate qu ' il existe plusieurs langages ou logiciels qui sont bien adaptés
pour la mi se en œuvre de simul ati ons d'ensembl es soc iaux complexes. Ces outil s perm ettent
de définir fin ement les agents de la simul ati on, les méca ni smes d' interac ti ons entre les agents
et l'environn ement dans lequel évo luent ces age nts. Nous parl ons ici d' applicati ons capabl es
de co nstruire des modèles multi-agents très complexes . Swarm (http ://www.swarm .org), par
exemple, est un e des meilleures pl ates-form es pour la créati on de simul ati ons soc iales. Elle a
été spéc ial ement co nçue pour la simulati on d 'age nts multiples dans des systèmes adaptatifs
co mplexes. Ascape (http ://www.broo k.edu/es/dynamics/ models/asca pe) et RePas!
(http://repast.sourceforge. net) sont d'autres exe mpl es de ce ge nre de log ic iels.
Étant donn é leur pui ssance et leur fl ex ibi 1ité, ces applicati ons perm ettent d' implémenter des
mécani smes soc iaux très so phistiqu és. Pa r contre, il demand e un e longue co urbe
d'apprenti ssage et bea ucoup de programmati on. Dans le cas de Swarm , par exempl e, il est
nécessa ire d' avo ir une certa ine expéri ence en Java ou en Obj ective C, d' être fa milier avec
l'ori enté-obj et et d' apprendre le code Swann .
Ces logiciels ne sont pas comparab les à NetS im . Il s sont destin és à si muler des modè les
plutôt basés agents qui peuvent modéli ser des comportements sociaux très complexes. De
-- - - - - - - - - - · - - - - -- -------,
~--
49
plus, il s vi se nt plus particuli èrement l'étud e de la dynamique des interacti ons entre les age nts
plutôt qu e de s' intéresser, comme NetSim, à la stru cture de ces interacti ons.
D' autre part, en ce qui concern e plus parti culi èrement l' étud e de la stru cture des réseau x, on
peut trouve r un e grande vari été de log icie ls et libra iri es qui perm ettent la représe ntati on et
l' analyse de donn ées de réseaux . Ils comprenn ent des méth odes pouvant calculer les noti ons
les plus courantes comme la densité, le coeffi cient de tran siti vité, la di stributi on des degrés, la
centralité, l'équivalence structurale et parfo is, des procédures d' analyse stati stique plu s
sophi stiqu ées. Les log iciels
D' autres outil s se spéc iali sent dans la visuali sati on, sous form e de graphe, de donn ées de
réseaux. Il s so nt souvent offerts sous fo rm e de librairie comme
Ces différents outil s so nt très utiles pour étudier la stru cture de réseaux stati ques, mais ne
perm ettent pas de spéc ifie r les règ les d' un modèle dynamique afi n de le sim uler dans le
temps. En gé néral, les simulati ons sont programmées pour l'étud e d' un phénomène
'
1
1
50
parti culi er et ne servent que pour cette étud e. À notre co nn aissance, une pl ate-form e
générique comme NetSim, perm ettant de modéli ser les règ les de divers modèles de résea ux
soci aux à l'aide d' un langage de modéli sati on spéc ifique, et ce, dans le but de les simul er et
de visualiser 1'évolution de leurs stru ctures dans le temps, n'a pas encore été déve loppée.
Nous voudri ons cependant menti onn er B lanche (Hya tt, Contractor et Jones, 1997), un outi 1
inform atique se rvant à la modéli sati on et à l' exéc uti on de simulati ons num ériques basées sur
la conceptuali sati on et l' organisati on des résea ux. Un peu comme NetSim, il fournit un e
architecture fl ex ible et réutilisa bl e pour la spéc ificat ion de di vers types de modèles en
perm ettant la définiti on de diffé rentes entités (ac teurs, perso nn es, noe uds), d'attributs sur ces
entités, de relations entre ces entités et d 'équ ati ons math ématiqu es qui ex priment les règles
du modèle à simuler. Ce pend ant, contra irement à NetSim, cette applicati on ne permet pas la
vi suaiisati on, sous form e de graphe, de 1'évo lution stru cturale du résea u au co urs de la
simul ati on. Par contre, elle fournit di ffé rentes méth odes d' analyse du réseau de sorti e de la
simulati on.
2.6 Conclusion
Tout d'abord , nous avons vu, dans ce chapitre, qu elques exe mples montrant la pertin ence de
l'étud e des réseau x soc iaux dans plusieurs domaines pui s nous avons ex pliqué di ve rses
méthodes d 'analyse de résea ux, prove nant de la soc iolog ie stru cturale, qui so nt très utiles à la
compréhension de certain s phénomènes soc iologiques. Nous avons vu di ffé rentes méth odes
de partiti onn ement de résea ux pour un e étud e de la structure au ni veau global et avons
ensuite ex pliqué des procédures de pos iti onn ement des acteurs dans le résea u pour un e étud e
au ni vea u local.
Le logiciel NetS im n'a pas enco re déve loppé de méth ode d' analyse des résea ux, mais nous
pensons tout de même que la com pré hension de ces co ncepts t:st pertin ente po ur effectu er
un e première analyse visuelle de la structure des résea ux engendrés par simul atio n. Les
concepts de centra li té, de prestige, par exemple, bien que pouvant se ca lcul er de faço n
mathématique, peuvent être facilement repérables, dans certa in s cas, par sim ple visuali sation.
51
Nous avons ensuite montré que l' in vesti gati on de certain s phénomènes sociologiques peut se
fa ire par modélisati on et avons décrit plusieurs modèles prove nant de diverses di sc iplines .
Premièrement, les modèles th éoriques, prove nant surtout de la phys ique et des
math ématiques, tentent de représenter des phénomènes observés dans la réa lité tels qu e la
transiti vité et l'effet des petits mond es dans plusieurs types de résea ux soc iaux et
l' attachement préférentiel, dans l' évolution, par exemple, de la structure du Web.
Deuxièmement, les modèles statistiqu es, utili sés surtout en soc iologie, essa ient de
comprend re et d'ex pliquer la structure des réseaux soc iaux par les relati ons qu ' entreti enn ent
les acteurs entre eux. Ces modèles étudi ent la probabilité de l' exi stence d' un e relati on entre
deux acteurs se lon leurs caractéri stiques et leur pos ition dans le réseau. Finalement, nous
avons vu l'approche par modélisati on asce nd ante qui modéli se les mécanismes indi viduels de
créati on, d' entreti en et de suppress ion de relati ons des agents eux-mêmes dans le but
d'étudi er le ge nre de réseau qu ' il s engendrent.
Finalement, nous avons pos itionn é NetSim par rapport à di ve rs types d' outil s de
modélisati on, de vi suali sation et de simul ati on de résea ux.
CHAPITRE 3
Langage de modélisation NetSim
3. 1 Introduction
Les chapitres précédents présentaient le contexte th éoriqu e et certain es notions de base qui
ont motivé la réa lisation de ce projet. Nous avons co nstaté qu ' il ex iste des modè les
dynamiques de réseaux d' information qui peuvent être étudi és par simul at ion. Nou s avon s
vu qu e les structures des résea ux ainsi générés peuvent être exa minées par des méthodes
d' analyse, basées sur la théori e de graphes, dont les principaux co ncepts sont so uvent
repérabl es par simple vi sualisation graphique.
De plus, nous avons vu qu ' il ex iste beaucoup de ressources (logiciel , librai ri es etc .) qu1
aident à la modé lisati on, la simulation , la visuali sati on et l'analyse des réseaux d' informati on.
Cependant, on constate que, pour plusieurs de ces outi ls, la mi se en œuvre d' une simulati on
peut être assez labori euse et demande so uvent de bonn es compétences en programmati on.
De plus, chaque foi s qu e l'on désire imp lémenter un nouvea u modèle, le trava il es t so uvent à
recommencer. Ces constats nous ont amenés à cherch er des so luti ons pour fac iliter la mi se
en oe uvre de simulations diverses.
C'est dans cet es prit, donc, que nous avons développé un e plate-forme gé nérique de
modélisation, de simulat ion et de visuali sation de modèles dynamiques de résea ux
d' informati on.
Dan s ce chapitre, nous allons abord er plus particulièrement la parti e modéli sation qu1
consiste en un langage de modéli sation permettant de spéc ifier les paramètres et les règles
des modèles qu e l'on veut simuler. Ce langage est, en quelque sorte, le conce pt central de ce
53
projet et a été élaboré en particulier pour les mod èles de réseaux socia ux et le Web. Nous
croyons cependant que sa flexibilité et son extensibi lité le rendent capab le d' ex primer divers
types de réseaux d' information.
Les mod èles qui nous intéressent plus particulièrement sont les modèles dynamiques
pouvant, de ce fait, être simu lés par ordinateur et dont la structure d' interacti ons so us-j acente
est un graphe . Nous en avons vu quelques-uns au chapitre précédent et al lons les utili se r,
dans les chapitres à venir, à titre d'exemple pour la modélisati on avec le langage NetSim .
Le langage de modéli sation NetSim a été élaboré en observant di ffére nts modèles
dynamiques de réseaux d' information (Jin, Girvan et New man, 2001 ; Albert et Barabas i,
2000) . Les entités manipulées dans ces mod èles sont à peu près toujours les mêmes: les
acteurs ou age nts, les relations entre les acteurs et finalement, l'ensemble des acteurs et de
leurs relations qui forment le réseau. Dans le langage NetSim, le résea u est représenté par un
graphe dans lequ el les acteurs sont représentés par les nœuds ou sommets du graphe et les
relation s, par les liens (arcs ou arêtes) du graphe.
Le tabl ea u 3.2. 1 donne une description des entités du langage de NetSim . Pour l' instant,
notre logici el de simulation ne permet de simuler que l' évolution d' un seul résea u à la fois,
mai s nous penso ns qu 'éventuellement, il se rait intéressa nt d' étendre les fonctionnalités de
NetSim pou r qu e celui-ci puisse exécuter plusieu rs si mulations différentes en même temps.
Dans cette optique, nous avons prévu l' entité world qui représe nte l' environn ement dans
leque l évo luent les résea ux. Cet environnement pourrait alors devenir un li eu d' éc hange de
donn ées entre les différents réseaux. Pour le moment, puisqu ' il n' y a qu ' un se ul résea u, cette
entité est pratiqu ement trivi ale.
54
world L' environnement dans lequ el évo lue le réseau d' information si mulé.
network Le réseau formé par les acteurs et les relations qu ' ils entretiennent entre eux.
node Un acteur
Certaines entités, comme nous le verrons dans les secti ons sui va ntes, possèdent des
constantes, des attributs et des fonction s prédéfini s par NetSim ou qui peuvent être défini s par
l' utilisateur. Les constantes so nt initiali sées au début de la simulat ion et leur valeur reste
inchangée durant toute la simulation . Les attributs, par contre, sont in itia.l isés au début de la .
simulation, mai s leur valeur peut être modifi ée au co urs de celle-ci. Les fonctions , pour leur
part, sont des valeurs calculées pendant la simulation.
Pour comprendre ce langage de modéli sat ion, on doit tout d' abord comprendre la hi érarc hi e
des entités qui détermin e la visibilité d ' un e entité par une autre:
1. Les attributs et fonctions défini s sur l' entité world sont visibles par toutes les entités.
2. Les attributs et fonction s défini s sur l'entité network sont vi sibl es par les entités
network, link et node.
3. Les attributs et fonctions défi ni s sur l'entité link ne sont visibles que par l' entité link
se ul ement.
4. Les attributs et fonctions défini s sur l'entité node ne sont visibles que par l' entité
node seu lement.
La section suivante ex plique la syntaxe du langage NetSim pour écrire ce que nous appelons
les défin iti ons du modè le : les constantes, les attributs et les fonctions .
3.3.1 Généralités
Le langage NetSim permet de définir certains paramètres sur les entités de la simulation. Ces
paramètres (définitions) peuvent être des constantes, des attributs ou des fonctions.
À l'exception des constantes qui sont v isibles de partout, chaque défi niti on est définie su r un e
entité spécifique (world , network, link ou nod e) qui détermine sa visibilité comme nou s
l' avons vu à la section précédente.
Les commandes servant à écr ire les définitions commencent toutes par le mot « DEFINE ».
56
Les constantes sont des valeurs numériques déterminées au début de la simul ati on et qui so nt
utili sées dans la spécificati on des règles du modèle. Ce lles-ci ne sont pas modifi ables
pend ant la simulati on.
La command e pour définir un e constante est DEFI NE_ CON ST et prend comme param ètre le
nom de la constante ainsi qu e sa va leur d' initiali sati on.
Par exemple, pour définir la constante dont le nom est « limite» et dont la valeur
d' initialisati on est 5, il faut éc rire:
Les attributs so nt des vari abl es défini es sur un e entité particuli ère. Leur valeur est initi alisée
au début de la simul ati on, mais peut être modifi ée au cours de la simul ati on. NetSim définit
qu elques attributs sur les entités node et link qui caractéri se nt leur apparence lors de la
vi suali sati on de la simul ati on ce pend ant, des attributs suppl émentaires peuvent être défini s
par l' utili sateur.
Les entités node et lin k possèdent un e séri e d'attributs de visualisati on prédéfini s qui ne
concern ent qu e les propriétés graphiques de ces enti tés. On parl e ici de grosseur et/ou de
coul eur des nœud s ou des liens. En effet, il peut être utile, par exemple, de colorer ce rtain s
nœuds ou li ens présentant des caractéristiques parti culi ères que l' on vo udrai t mettre en
évidence en co urs de simulati on. Par exempl e, on pourrait voul oi r colorer en ve rt les nœud s
qui ont un degré plu s élevé qu e la moyenne afin de les rendre plus visibles en co urs de
57
simulati on. Les tab lea ux 3.3.3. 1.1 et 3.3.3 .1.2 montrent la li ste de ces attributs pour chaque
entité.
fixed co lor Coul eur de remplissage du nœud lorsqu e ce lui-ci est immobile
dan s la visuali sation graphique: il est poss ible d' immobili ser un
nœud en cliquant dessus avec la souri s (rouge par défaut).
radius Grosseur des nœud s. Plus cette valeur numériqu e est petite, plu s
la grosseur des nœud s est petite et vi ce versa (égal 6 par défaut) .
A~if)pts • c%: @;
Dê'Si!iiption %t%Jià i'H
'' &~~v
"
co lor La couleur du lien (noir par défaut) .
hi ghlight_co lor La couleur du lien lorsq ue ce lui-ci est mis en év idence par la
souri s : lorsque la so uri s est positionnée sur un nœud , tous les
liens de ce nœud prennent celle couleur (rouge par défa ut).
En ce qui concerne les attributs de co ul eur, ce sont des va leurs numériques qui correspond ent
à des codes de cou leur spéc ifiés dans un fichi er de configuration de NetSim .
-------------------------------- ,
58
Les attributs prédéfini s par NetSim sont des attributs de vi suai isati on et ne concernent qu e les
entités link et node. Cependant, les attributs servent souvent à représenter l'état de chaque
entité au cours d' une simulation . Le langage de modéli sati on NetS im offre donc la
poss ibilité à l' utilisateur de définir des attributs d' état sur toutes les entités de la simulati on.
Les attributs sont touj ours numériques et peuvent être modifi és au cours de la simul ati on.
La commande de définiti on des attributs est DEFI NE_ATTRIB et prend comme paramètres
l'entité sur laqu ell e on défi nit l' attribut (world , network, link ou node), le nom de l'attribut
ainsi qu e sa valeur d' initiali sation .
Par exemple, nous pourrions définir, sur l'entité link, l' attribut dont le nom est «force» et
dont la va leur d' initiali sation est 1 de cette manière:
Après avo ir écrit les constantes et les attributs du modè le dans le langage de modéli sati on, on
peut alors écrire les fo ncti ons nécessa ires au fonctionnement de notre modèle. Les fonctions
NetSim sont des ex pressions arithm étiqu es ou boo léennes qui ca lcul ent et retourn ent un e
va leur numérique ou boo lée nne. Comme pour les attributs, le langage fournit déjà certaines
fonctions prédéfinies sur les entités, mais il est aussi possible, pour l' utilisateur, de définir ses
propres fo nctions. Dans ce derni er cas, nous aurons besoi n de que lques opérateurs
59
arithmétiques et booléens. Les tableaux 3.3.4.1 à 3.3.4.5 montrent la li ste des opérateurs de
base dont dispose ce langage de modélisation .
- soustraction 5-3 = 2
- nombre négatif -1
+ nombre positif +] = 1
and et
or ou
Opérateur d'affectation
Signe Opération Exemp_le
Le langage de modéli sati on NetSim offre un e séri e de fonctions défini e sur les différentes
entités. Une foncti on se termine touj ours par un e parenth èse ouvrante et fermante pour se
différencier des attributs.
Les tabl ea ux 3.3.4. 1. 1 à 3.3.4. 1.4 montrent les fonctions di sponibles pour chaqu e entité. Pour
ce trava i1, nous avons implémenté les fonctions de base menti onn ées dans les tablea ux
suivants, mais nous so uhaitons éve ntu ellement ajouter de nouvelles fonctions pour enrichir
notre langage. NetSim a été conçu de façon à être faci lement extensibl e et nous ve rrons, au
chapitre suivant, co mment implémenter de nouvelles fonctions qui pourront ensuite être
utili sées comme fonctions prédéfinies du langage de modé li sation.
Se lon les règles de visibilité des entités, cette fonction est visib le par les entités wo rld ,
network, link et node .
rand om_ nurnber() Fo ncti on utilitaire qui retourne un nombre aléato ire entre 0 et 1
inclusive ment.
Se lon les règ les de visibi lité des entités, ces fo ncti ons sont donc visibles par les entités
network, lin k et node.
number_ of_ nod es() 1 Retourne le nombre de nœud s contenus dans le réseau .
62
max_ degree() Retourn e le degré d' un nœud du résea u qui est supéri eur ou
égal au x degrés de tous les autres nœud s.
min_ degree() Retourn e le degré d' un nœud du résea u qu1 est inféri eur ou
égal aux degrés de tous les autres nœud s.
Selon les règles de visibilité des entités, ces fo ncti ons sont donc visibles par l' entité link
uniqu ement.
Selon les règles de visibilité des entités, ces fonctions sont donc visib les par l' entité node
uniqu ement.
Outre les fonctions prédéfi ni es par le langage de modélisa ti on NetSim, 1' uti 1isateur peut
définir ses propres fonctions. Une fonct ion défini e par un utili sateur est un e ex press ion
arithm étiqu e ou boo léenn e qui retourn e res pectivement une va leur numérique ou boo léenn e.
Comme dan s le cas des attributs, une fonction est touj ou rs défini e sur un e entité spéc ifique.
Ell e peut être construite à l'a ide d'opérateurs arithmétiques ou boo lée ns, de constantes,
d' attributs et d'autres fonctions pourvu que les attributs et les autres fonctions respectent les
règ les de visibilité di ctées par l'entité sur laq uelle on définit la fonction.
Lorsqu 'on ve ut appeler un e fon cti on, on doit écrire le nom de ce lle-ci sui vi d' une parenthèse
ouvrante et fe rmante. La fonction calcule et retourn e la val eur de son ex press ion au moment
de l' appel. Supposo ns les définiti ons de constantes et d'attributs sui va ntes:
Exemple 1:
La foncti on sui vante est défi nie sur l' entité wor ld et son nom est f 1. C ' est un e fo ncti on
boo léenn e, car elle teste 1' éga lité entre deux sous-ex pressions arithm étiqu es à 1'aid e de
l'opérateur «=». L'ex press ion boo léenn e de cette fo ncti on utili se la foncti on time_ step ()
et les attributs wor l d 1 et world 2 aussi défin is sur l'entité world . La visibil ité des entités
est donc respectée.
Exemple 2:
La fo ncti on suivante est défini e sur l' entité netwo rk et son nom est f 2. C'est auss i un e
fo nction boo léenn e, car ell e uti li se 1'o pérateur boo léen « >= ». Elle ut i1ise les fonctio ns
number_of links () , numbe r_o f _ nodes () et diameter (), to utes prédéfi nies sur
l' enti té network. Ell e util ise auss i la fo ncti on time_ s tep () qui est prédéfi nie su r l' entité
wor ld. Comme cette fo nction est défi ni e sur l' entité network, l' expression respecte bien les
règles de visibilité, car l'entité wor ld est visible par l' entité network .
65
l
DE FI NE_FUNCT I ON (network, f 2)
(number_ of links() + n umber_ of n a des()) / min degre e () >=
diameter() * ti me _ step ( );
Exemple 3 :
La foncti on sui vante est une fon cti on défini e sur l' entité node et son nom est f 3. C'est
aussi un e foncti on boo lée nne car elle utilise des opérateurs boo léens. On remarqu e qu ' ell e
fait appel aux fonctions f _1 ( ) et f_ 2 () défini es précédemment sur l'entité wo rld et l' entité
network . De plus, elle utilise les fon cti ons in_ degree () et o ut _ d eg re e () prédéfini es sur
l' ent ité node. L'ex pression respecte donc les règles de visibilité pui squ e les entités world et
network sont visibles par l'entité node.
DEFINE_FUNCTI ON (n o de, f_ 3 )
no t (f _1 ( ) o r f _ 2() and (in d e gree() > o ut _de g ree() or
in_ d e gree ( ) / = o ut_degree ()) ) ;
Exemple 4:
La foncti on sui vante est défini e sur l'entité link et so n nom est f 4. C'est un e foncti on
arithm étiqu e qui retourn e un e valeur numériqu e. On peut remarqu er ici comm ent il est
poss ible d' appeler un e foncti on défini e sur node dans un e foncti on défini e sur link . En effet,
les deux fo ncti ons s tart _ nod e ( ) et e nd_ n o d e (), défini es sur link, retourn ent un nœud .
Avec la notati on pointée, il est poss ible d' appeler des foncti ons ou d ' uti 1iser des attributs
défi nis sur l' entité node comme dans les exp ress ions start_no de () . degree () et
e nd_node () . n ode l. Cette foncti on res pecte aussi les règ les de visibili té.
Exemple 5:
Cet exemple montre un e foncti on qui n'est pas bien défini e. Ell e présente deux erreurs. La
première erreur vient de 1' utilisation de l' attribut 1 ink_1 dan s un e fonction défini e sur node.
En effet, l' entité lin k n' est pas visible par l' entité node. La seconde erreur vient de
66
l' utili sation de la fonction f_1 () dans l'ex press ion. En effet, cette foncti on retourn e une
valeur booléenn e qui ne peut pas être multipliée ainsi.
DEFINE_FUNCTION (node, f 4)
degree() / const 2 * link 1 * f 1 ();
NetSim est un e application basée sur le langage Java et il est poss ible de définir des méth odes
Jav a qui pourront, par la suite, être utilisées dans la spéc ifi cati on des règles du modèle à
si muler. Étant donné qu ' il est imposs ible de prévo ir toutes les fonctions qui pourrai ent être
nécessa ires à la spéc ification des règles de tous les modèles poss ibl es, cette commodité a été
prév ue dans le cas où NetSim n' offrirait pas la fonction prédéfi ni e nécessa ire à la
modéli sat ion. Év idemment, 1' utili sation de cette fonctionna iité suppose que 1' uti 1isateur de
NetSim con naît le langage Java, ce qui n'est pas toujours le cas. Éve ntu ellement, nous
aimerions impl émenter plusieurs autres fonctions NetSim pour ainsi minimi se r l' utilisati on
de méthodes Java .
Il y a cepend ant certaines restricti ons à 1' uti 1isation de méth odes Java dans NetS im .
Premièrement, la méth ode Java définie doit toujours retourn er un nombre rée l (Double). De
plu s, pour le moment, le rés ultat de cette méthode est touj ours considéré comme un e
probabilité (u n nombre entre 0 et 1 inclusivement) . S' il advi ent qu e le résultat reto urn é est
plu s petit que zé ro, il sera considéré comme éga l à zéro. Si le résultat est plus grand que le
nombre un , il se ra consid éré comme éga l à un .
Pour pouvoir impl émenter une méth ode Java, il faut d'a bord l' indiquer dans les définitions
du modè le avec la commande DEFINE JAVA METHOD. Cette command e prend deux
paramètres : 1'entité sur laquelle est défi ni e cette méthode et le nom de la méthode . Par
exemp le, pour définir la méthode probabiliteAjouterCeLien sur l'entité lin k, on
écrit :
Ensuite, il faut écrire le code Java de la méthode dan s un espace réservé à cet effet dans
l' interface graphiqu e de NetSim. L' entête de la méthode Java correspondant à la définition
ci-dessus doit être abso lument :
Il faut mentionner ici que la classe dans laquelle est défini e cette méthode co nti ent déjà les
obj ets nécessa ires à la consu ltation ou la modification des attributs de chaque en tité de la
simul ati on. Nous avons donc la variable wor ld qui représente l'entité world et la variab le
network, qui représe nte l'entité network. Dans le cas des entités link et nod e, lors de
l' appel de cette méthod e au cours de la simu lation, l' instance de Node ou de Link qui est en
train d'être traitée est passée en paramètre se lon que la méth ode est définie sur l' un e ou
l'autre de ces entités.
De plu s, cette classe contient l' attribut s i mContro ll e r qui est un e in stance de la classe
SimulationControll er que nous verrons plus en détail au chapitre suivant. Il suffit de
savo ir, pour le moment, que toutes les méthod es servant à la consultation ou à la modificati on
des attributs défini s sur chaque entité du langage sont des méthod es définies sur cet obj et.
Par exe mpl e, pour modifi er la va leur de l'attribut toto qui aurait préa lab lement été défini
sur l' entité world, nous éc rivon s :
où le paramètre valeur est un une variable de type doubl e. Pour obtenir la valeur de
l' attribut force qui aurait préalablement été défi ni sur l'entité link, nou s écrivons:
in t t = s i mContro ll er.getTimeStep();
Nous n'a borderons pas cette foncti onnalité plus en détail , mais nous prése ntons un exemple
simpl e de l' utili sati on d' une méth ode Java dans l'éc riture d' un modèle de l'évoluti on du Web
au chapitre 5.
Pour donn er un e idée plus co ncrète de l'écriture des définiti ons d' un modèle avec le langage
de modé li sati on NetSim, nous all ons traduire le modèle dynamique du résea u d'ami s de (Jin ,
Girvan et New man, 2001 ) présenté à la secti on 2.4. 1.
Dans l' exe mple du modèle d' amitié, il y a plu sieurs constantes qu e nous pourr io ns définir
comme suit :
• z* est le nombre d'ami s après lequ el la proba bili té de créer d'autres amitiés diminue
rap ideme nt. No us appe lons cette co nsta nte z _limite et l' initi ali so ns à 5 pa r exemple.
69
• po est la probabilité que deux individu s se rencontrent s' il s n'ont aucun ami co mmun .
Nous appelons cette constante pO et lui donn ons la va leur de 0.006 par exemple.
• k est un paramètre ajustable du mod èle qui influence le ca lcu l de la force de l' amitié entre
deux contacts qui diminue au co urs du temps si ceux-ci ne se rencontrent pas. Nous
appe lons cette constante k et l' initiali so ns à 0.01 par exe mple.
• Un paramètre qui spéc ifi e la limite minimum de la force de l'amitié entre deux contacts.
Sous cette limite, le lien d'amitié n'existe plu s. Nous appe lons cette co nstante
limit_min_for_friendship et l' initi ali sons à 0.5 par exempl e.
Définitions d'attributs
Ensuite, touj ours en prenant l'exemple du modèle d'amitié, nous pourrions définir les deux
attributs sui va nts sur l'entité link:
70
• S est la force de l' amiti é entre deux contacts. Au début d' un e nouvell e amiti é (création
d' un nouvea u li en), la force est éga le à l mais diminu e au cours du temps si les deux
ami s ne se renco ntrent pas. Nous appelons cet attribut strength et l' initialisons à 1.
• nt est l' interva ll e de temps entre deux renco ntres success ives de deux ami s. Au début
d' un e amitié (à la créati on d' un lien), la va leur de cet attribut est égal e à 0, mai s
au gmente de 1 à chaqu e pas de temps jusqu 'à ce que les deux ami s se rencontrent de
nouvea u et qu e Dt so it rem1 s à O. Nous appelons cet attribut
ti me_since_ l ast_mee ti ng et l' initiali sons à O.
Fin alement, le modèle d'amitié définit les foncti ons sui va ntes :
• La fonction g (m) == 1- (1- p o)e~ am qui représe nte l'a ugmentati on attendu e de la chance qu e
deux indi vidus se rencontre nt s' il s ont un ou plu sieurs ami s commun s. Le nombre m,;
est le nombre d' ami s commun s dei et) où i et j représente nt deux ami s.
DEFINE_FUNCTION (l ink, g)
1 - (1 - pO) * e ** (-a* number_of common_contacts()) ;
• La fo ncti on f(z,) = e fJ(·-'- --*l + 1 qui ajuste la probabilité pour un contact id e se fa ire de
nouvea ux ami s. No us aurons beso in de deux fo ncti ons: Une fo nct ion pour le premier
nœud du lien i et une fo nction pour le deuxième nœud du li en).
• La foncti on pu= f (zi )f (z,)g(mu) qui perm et de ca lcul er la probabilité d'aj outer un
lien d'amitié entre les contacts i etj. Cette foncti on utili se les tro is foncti ons défini es ci-
dess us.
• La foncti on su= e-kl t qui diminu e la force du lien d' amiti é à chaqu e pas de temps où
deux ami s ne se rencontrent pas.
La prochaine secti on ex plique comment écrire les règles du modèle à simul er dans le langage
de mod é li sati on NetSim. Nous pourrons alors fin ali se r la tradu cti on de ce modèle.
Les règles du modèl e so nt des acti ons à exécuter sur le résea u, à chaqu e pas de temps. Ces
règ les sont habituellement exéc utées se lon certaines probabilités et/ou co nditi ons qui peuvent
dépendre de l'état (l 'ensemble des va leurs des attributs) des ent ités du réseau. Les règles du
modèle so nt donc spécifiées par le langage de modéli sati on via les ac ti ons.
Les acti ons du langage de modéli sati on so nt en somme les acti ons de manipul ati on d' un
graph e. Ils se résum ent à aj outer, modifi er ou supprim er des li ens ou des nœud s et à modifi er
les attributs du résea u ou du mond e.
Chaqu e action concern e un e entité spéc ifique de la simulati on. Cette entité est spécifiée par
le deuxième terme de la commande d'action . Par exemple, la commande PICK WORLD
concerne 1'entité wor ld tandis que la commande ADD_NOD ES concerne 1' entité node. Cette
co nstatati on est importante car les paramètres des act ions doivent respecter la visibilité des
72
entités les unes par rapport aux autres. Le tablea u suivant présente la liste des neuf actions
disponibles dans le langage NetSim .
Action.s ll.~jl. .,î:.•.~lM:w. 0n J_).éfjpiti~D ~Wi~Jfliii•Y ~,k. qp"'". ij; "-'Ë 1h' _iii ~t~i·
PICK- WORLD ( ... ) Cette action permet de choisir l'ent ité world dans le but d' en
modifier les attributs.
PICK- NETWORK ( ... ) Cette action permet de choi sir l'ent ité network dans le but d'en
modifier les attributs.
PI CK- LINKS ( ... ) Cette action perm et de choisir des liens dans le but d'en modifi er
les attributs.
ADD - LINKS ( ... ) Cette action permet d'aj outer des liens.
REW IRE- LINKS ( ... ) Cette act ion permet de change r le deuxième nœud de certains liens
par un autre nœud choisi au hasa rd .
PI CK- NODES ( ... ) Cette action perm et de cho isir des noeud s dan s le but d'en modifi er
les attr ibuts.
ADD- NODES ( ... ) Cette act ion permet d'ajouter des nœuds.
Chaque acti on peut contenir un e séqu ence de paramètres, chac un étant sé paré par un e virgul e.
Chaque paramètre peut être soit un e expression arithmétique, so it un e expression
booléenne ou so it une affectation.
• Un attribut
73
• Une constante
• Une ex press ion mathématique construite à l'a ide d' opérateurs arithmétiqu es, des
fo ncti ons et/ou des constantes et/ou des attributs.
• un e ex press ion boo léenn e con struite à l' aid e des opérate urs boo lée ns et des fonction s
et/o u des constantes et/ou des attributs.
• Une affectati on est une ex pressiOn qui modifi e un attribut par un e ex press1on
arithm étiqu e à 1' aide de 1' opérate ur d'affec tati on. Seul s les attributs peuve nt être
modifiés (peuvent se situer à ga uch e de l' opérateur d' affectation) .
Les paramètres des action s sont donc so it des va leurs numériqu es, so it des co nditi ons ou so it
des affectati ons.
• Si elle est entre 0 et 1 inclusivement, ell e est con sidérée comme un e probabi lité.
• Si elle est plu s petite qu e 0, e lle es t consid érée comme éta nt éga le à 0 et donc comme
un e probabilité.
• Si elle est plus grande qu e 1, e ll e est co nsid érée comme un nombre enti er (s' il y a des
déc imal es, elles seront tronqu ées).
Il est important de respecter la visibilité des entités les unes par rapport aux autres (voir
fi gure 3 .2. 1). Par exemple, pour un e act ion co ncernant 1'entité world , il est interdit d' utili ser,
dans les expressions définissant les paramètres de l'action, les fo nctions ou les attrib uts qui
sont définies sur les entités network, link et node car l'entité world ne voit qu 'e lle-même. Par
contre, une act ion qui concerne l'entité link peut contenir des paramètres définis à l'a ide de
foncti ons ou d ' attributs défini s sur 1'entité 1ink, 1'entité network et 1'entité world car 1'ent ité
link se voit ell e-même, voit l' entité network et l'entité world.
Les paramètres des acti ons sont en qu elque sorte une mani ère de choisir les entités sur
lesqu ell es l' acti on se ra effec tuée. Il s peuvent être vus comme un e séri e d'é preuves qu e les
entités concernées par l' acti on doivent gagner afin que l' acti on pui sse y être appliquée. Ces
épreuves sont appliquées séquentiellement dans l'ordre où elles so nt éc rites et auss itôt qu ' un e
épreuve est échouée, 1' acti on n'est pas appliquée sur 1'entité co urante. Supposons les
définiti ons sui vantes et examinons qu elques exemples :
Ce type d' acti on sert à choisir des enti tés afi n d' en modifi er les attributs.
Exemple 1
PICK_WORLD();
PICK_NETWORK ();
PICK_LINKS();
PICK_NODES();
PICK WORLD (flag .- 1);
75
Les quatre premières actions n'exécuteront ri en, car bien qu 'e ll es choisissent res pectivement
l'entité world, l'entité network, les liens (links) et les nœuds (nodes) du réseau, elles n'ont
aucun paramètre qui pourrait modifi er les attributs de ces entités.
La cinquième acti on, par contre, aura pour effet de chois ir l'entité world , sa ns condition, et de
modifier sont attribut flag en lui ass ignant la va leur 1.
La dernière action cho isira l'entité network si, tout d'abord, l' épreuve probabili ste indiquée
par la constante pl est réuss ie et si ensuite, la condition booléenne qui stipul e que le nombre
de nœuds dans le résea u doit être plus gra nd ou éga l à 100 est respectée. Si et seulem ent si
ces deux tests sont réuss is, l'attribut ok sera modifi é par la va leur 1 sinon, l'action n' aura
aucun effet.
Exemple 2
La première acti on se ra interprétée comme suit : tout d'abord, chac un des li ens ex istants dans
le résea u passe ra le test probabili ste donn é par la fonction probl () . Ensuite, seul l' attribut
force des liens choisis prendra la va leur 1. Le dernier paramètre qui mod ifie l' attribut
flag , défini sur l'entité world, pourrait ag ir ici comme un co mpteur des liens sé lecti onn és,
car à chaque li en cho isi, la valeur de flag augmente de 1. Il faudrait s'assurer, dans ce cas,
que l' attribut flag soit bien initial isé à zé ro en éc ri vant l'action PICK_WORLD (flag : =
O); juste avant cette action PICK_LINKS.
76
La deuxième acti on commence tout d' abord par sélecti onner 20 liens au hasard dans le
réseau . Ensuite, chacun de ces 20 liens dev ra passer le test probabili ste donné par la foncti on
prob2 (). Supposons que nous obtenons 12 liens gagnants. L'attribut force des ces 12
liens sera alors incrémenté de 1 et l' attribut color dev iendra éga l à 8. Finalement, parmi ces
12 liens, 2 liens seront choisi s au hasa rd et la va leur de leur attribut co l or dev iendra éga le à
S.
La derni ère acti on débute en sélecti onnant, parmi tous les noe ud s ex istants dans le réseau, les
noeuds qui répondent à la conditi on donnée par la foncti on co nd 1(). Ensuite, 1'attribut
fi li_ color de tous les nœuds choisis dev iendra éga le à 6. Enfin , parmi tous les nœud s déj à
sélectionnés, on en choisira n b (= 3) au hasa rd qui verront la va leur de leur attribut radius
être remplacée par la valeur 1O.
Ces acti ons servent à aj outer des nœud s ou des 1iens dans le résea u se lon certaines
probabi 1ités et/o u conditions.
Exemple 1
ADD_NODES();
ADD_LINKS ();
Par convention, pour une acti on ADD_ NODES ( ) sa ns paramètres, on ajoute un nombre de
noe ud s éga l au nombre de nœuds déj à présents da ns le résea u au moment de l'exéc ution de
l'acti on. Si cette acti on, san s paramètre, est exécutée dans un réseau vid e, ell e n'a donc
aucu n effet. C' est po urq uoi, lors de l'in itia lisation d'un réseau, nous uti li sons souvent cette
acti on avec un nombre comme para mètre . Par exemple, ADD_ NODES (100 ) ajoutera 100
nœud s au résea u. Considérons maintenant les deux actions suivantes:
Après l'exéc ution de ces deux acti ons, il y aura 200 nœud s dans le réseau.
77
L'acti on ADD_ LINKS() , sans para mètre, aj outera tous les liens potenti els possibl es dans le
réseau c'est-à-dire, tous ceux qui peuvent être aj outés dans le réseau jusqu 'à ce qu e le graph e
soit complet.
Exemple 2
La première action crée d'abord 300 nouvea ux nœuds et, se lon le deuxième paramètre, les
aj outera au réseau tant que le nombre total de nœud s dans le réseau est plus petit qu e 500.
La deuxi ème acti on a comme premi er paramètre une proba bilité. Premi èrement, ell e crée un
nombre de nouvea ux nœuds éga l au nombre de nœuds déj à présents dans le réseau et chac un
de ces nouveaux nœuds doit ensuite passe r le test probabili ste donné par pl. Parmi les
nœuds gagnants, ell e en sélecti onne aléatoirement 100 qui sont fi nalement aj outés au réseau.
La derni ère acti on aj oute d'abord 100 nouvea ux nœud s au réseau. Ensuite, l' attribut
border_co l or des nœuds ayant passé le test probabili ste donné par pl pre nd la va leur 4 et
Exemple 3
La deuxième action crée d'abord tous les liens potentie ls du réseau. Ensuite, chaque lien
potentiel qui passe l'épreuve probabili ste donnée par la fo ncti on prob2 () ve rra son attribut
force augmenter de 1. Puis, parmi les liens précédemment sé lecti onnés, 10 liens sont
78
choisis. Ces 10 li ens sont ensuite testés sur leur nœud d'arrivée (end_node ()) se lon la
condition cond l () et les liens qui répondent à cette condition verront leur force augmenter
encore de 1.
Les actions de ce type servent à supprimer des nœuds ou des liens du résea u se lon certaines
probabi 1ités et/ ou conditions. Les actions CUT_NOD ES () et CUT _LINKS () sa ns paramètre
suppriment respectivement tous les nœuds et les liens du résea u. Lorsque ces actions ont des
paramètres, elles agissent comme les actions PICK_NOD ES () et P I CK_ LINKS () à
1'exception que les nœuds ou les liens gagnants de toutes les épreuves donn ées par les
paramètres de l' action sont alors supprim és du réseau.
Cette action consiste à changer le nœud d'arrivée d' un li en (end_no de ()) par un autre nœud
du résea u choisi au hasard. L' action REWIRE_LINKS () , sa ns param ètre, a pour effet de
changer le nœud d' arrivée de tous les liens du résea u. Sinon, lorsqu ' elle a des paramètres,
cette acti on fonctionne de la même manière qu e l' acti on CUT_LINKS ( ... ) à l' exce pti on qu e
tous les liens ayant gagné toutes les épreuves donn ées par les paramètres de l' action sont
reconnectés au 1ieu d'être supprimés.
Arrêt de la simulation
Le langage de modélisation NetSim offre aussi un e in struction qui permet de spéc ifier le
moment d'arrêt de la simulat ion. Le nom de cette comm and e est SIMUL S TOP CONDITION
et elle prend une expression booléenne comme seul paramètre. Cette expression peut donc
être form ée d'o pérateurs bool éens et/ou de constantes et/ou d' attributs et/ou de fonctions
pourvu que ceux-ci respectent les règles de visibilité. À cet effet, nous devons considérer la
79
commande d'arrêt comme si elle était définie sur 1' entité network. Ce lle-ci peut donc
contenir, dan s l' expression de son paramètre, des attributs et/ou des foncti ons défi nis sur les
entités network et world.
La simulati on se termine aussitôt que l'ex press ion bool éenn e devi ent vraie. Dit d' une autre
façon, la simulation s' exécutera tant que la condition n' est pas vraie. Si aucune command e
d' arrêt de la simulation n' est donn ée, la simulation ne s'arrêtera pas automat iquement.
Certaines fonctionnalité s du logicie l NetSim permettent cependant de termin er la simulation
manuellement, via l'interface graphiqu e.
Par exe mple, pour que la simulation s' arrête au pas de temps 1000, nous pourri ons écrire :
Pour qu e la simulation se termine aussitôt qu e le degré moyen de tous les nœuds du résea u
dépasse la va leur 5, par exemp le, nous pourri ons éc rire :
Une phase, dans le langage NetSim, est un groupe de règles (d ' actions) qui sont exécutées
ensemble à chaque pas de temps. Il est poss ible de définir plusieurs phases dan s un e
simul at ion. Par exe mple, nous pourri ons tout d' abord construire un réseau initi al avec un
ensembl e parti culi er de règles et, à un moment spéc ifié, continuer la simul ati on avec un
groupe de règ les différentes . Nous pourri ons auss i définir différentes phases et les exéc uter
se lon certaines probabilités à chaque pas de temps.
Il faut donc spécifier un e co ndition qui détermine si une phase s'exéc utera ou non, à un pas
de temps donné. L' instruct ion PHASE_ EXEC_ CONDITION prend un e exp ress ion booléenne
comme seul paramètre. La phase ne s' exéc utera que si le résultat de l' éva luat ion de son
expression booléenne est vrai.
80
Il est à noter qu e se ule la première phase ne nécessite pas la spéc ification d' une condition
d'exécution . Si la commande PHAS E_EXE C_CONDITI ON est absente, pour la première phase,
la phase sera exécutée sa ns conditi on. Pour la définit ion de toutes les phases subséqu entes, la
condition d'exécution est requise, car cette command e détermin e le début d' une nouve ll e
phase. La fi gure 3.4.2 .1 montre un fi chier d'actions contenant trois phases d' exéc uti on
différentes et un e commande d' arrêt automat ique de la simulation. Se lon cet exempl e, la
simulati on s' arrêtera au pas de temps 100. La première phase regroupe trois acti ons et
s' exécute sans condition. La deuxième phase contient deux acti ons et s'exécute si le pas de
temps est plu s grand que zéro et fin alement, la troisième phase, qui définit deux acti ons,
s' exécute se lon une probabi lité de 0.7.
Figure 3.4.2.1 Phases d ' exécution et command e d ' arrêt automatique de la simulation
Ceci nous amène à parl er des deux modes d' exéc uti on de ph ases que gère NetSim : le mode
séqu entiel et le mode para llèle.
Se lon le mode séqu entiel, les phases s'exécutent, un e après l' autre, dans l'ordre où ell es so nt
écrites . Po ur qu ' un e ph ase pui sse être exéc utée, il fa ut abso lument qu e la phase précédente
ait d' abord été exéc utée. Au premier pas de temps, la simulation tente d' exéc uter la première
phase. Si celle-ci n' a pas de conditi on d' exéc ution, elle s' exécute jusqu ' à ce que la condition
d' exécution de la second e phase soit vrai e. Ensuite, la second e phase s'exécute jusqu ' à ce
81
que la conditi on d'exécution de la troi sième phase soit vraie et ainsi de suite. Si la première
phase définit un e condition d'exécution, le programme évalue la condition et exécute la
première phase se ulement si le résultat de l'évaluation est vrai. Si la condition n'est j amais
vraie, la simul ati on ne fait ri en, car elle reste bloqu ée sur cette phase.
Le pseudo-code suivant décrit l'a lgorithme de la simulation des trois phases déc rites à la
figure 3.4.2.1 en mod e séquentiel.
Comp teurDePhases = 0
pasDeTemps = 0
Le mode d'exéc uti on en parallèle fonctionne de faço n tout à fait différente. À chaque pas de
temps, chaq ue phase s'effectue si le résultat de 1'évaluation de sa condition d'exécuti on est
vrai. Le pseud o-code suivant décrit l'a lgo rithm e de la simulation des trois phases décrites à
la fi gure 3.4.2. 1 en mode parallèle.
82
pasDeTemps = 0
Exécut er phase 1
pasDeTemp s pasDeTemps + 1
Le choix du mode d'exécution des phases dépend du ge nre de modè le que l' on veut simuler.
La spéc ification du mode se fait via l'interface grap hique du logic iel NetSim au moment de la
créati on d' un e simul ation.
Nous allons reprendre 1' exemple du modè le d' amiti é et all ons maintenant écrire les règles de
ce modèle en lan gage de modéli sation NetSim.
Une des règles du modèle cons id ère un nombre fi xe de noe ud s. Cette règle indique
simpl ement qu ' il n' y aura pas d' ajout ni de suppress ion de nœud s au cours de la simu lation et
donc, pas d' actions ADD_NODES ou CUT_NODES.
Une autre règle concerne la formation de nouvea ux li ens d'am itié. D' un côté, le nombre
d' amis qu ' un individu peut posséder doit diminu er rapidement lorsque so n nombre de
relations atteint la constante z* (degré 1imité). Ce facteur est représe nté par la fonction j(ZJ.
De l'autre côté, la probabilité que deux individus créent un lien d' amitié doit être plus élevée
s' il s ont un ou plusieurs amis communs (transit ivité). Ce facteur est représenté par la
fonction g(m) . L' ajout de liens, dans le réseau, doit donc se faire se lon une certaine
,- --- ----------- - --------- -- - - -- - - -- -- - - -- ----------,
83
probabilité qui ti ent compte de ces deux facteurs et qui est représentée par la fon cti on p" qu e
nous avons déjà défini e. Nous pourri ons donc définir cette règle comme suit :
ADD_LINKS(p ij ()) ;
Selon cette acti on, chaque lien potentiel du résea u doit passer le test probabili ste donné par la
foncti on pij () . Chaqu e lien qui passe l'épreuve sera aj outé au réseau.
Les derni ères règles du modèle d' amiti é concern ent la suppression de li ens d' amiti é qui ne
sont pas entretenus au cour du temps. ( 1) À chaque pas de temps, deux ami s qui ne se
rencontrent pas vo ient la force de leur amitié diminu er ex ponentiellement selon s,, = e- k il
Nous avons déjà écrit cette foncti on s () dans les définiti ons. (2) À chaqu e pas de temps,
deux ami s qui se rencontrent de nouvea u renforcent leur amit ié (force := 1). (3) Lorsqu e la
force d' une amiti é dev ient trop petite (plus petite qu e la constante
li mit_ min_ f o r_fri e nd s hip), le lien d' amiti é di sparaît.
L' acti on (1 ) sélecti onne tous les li ens du résea u pour ajuster les attributs
t i me_ s i n ce_l a st _ mee ting et s t re n g th de chaqu e lien. En effet, à chaqu e pas de
temps, la force de la relati on entre chaque co upl e d 'ami s diminu e si ce ux-c i ne se renco ntrent
pas de nouvea u. L'attribut time_s inc e _l as t _ mee ting comptabilise, pour chaqu e
re lation, le nombre de pas de temps qui se sont écoul és depui s la dern ière rencontre de deux
amt s.
84
L'acti on (2) modéli se la rencontre de certains coupl es d'amis qui se conn aisse nt déj à et
renforce nt ainsi leur amiti é. Elle choisit, parmi tous les liens du résea u, ce ux qui passe nt le
test probabiliste donné par la foncti on pij (). Ensuite, pour chaque lien sé lec ti onn é, ell e
remet l'attribut time _ since_ last_meeting à 0 et l'attribut strengt h à 1 pour indiquer
que cette relation a été renouvelée.
L'acti on (3) sert à décrire la règ le qui stipul e qu ' une re lati on d'amitié tend à di sparaître si ell e
n'est pas entretenue. Dans le modèle, la co nstante l i mit min_for_fri e ndship
représe nte la 1imite inféri eure perm ise sur la force d' une relati on ava nt que ce lle-ci ne cesse
d'ex ister. Cette action supprime donc tous les liens d' amiti é dont la force (strength) est
plu s petite ou éga le à li mi t_min_ for_friendship.
3.5 Conclusion
Bien que le langage de modéli sati on Ne tSim ait été conçu plus parti culi èrement pour la
modélisation de résea ux soc iaux et du Web, nous croyons en so n potentiel de déve loppement
quant à la modélisat ion d'u ne grande va riété de réseaux d' info rm ation.
CHAPITRE 4
NetSim : une plate-forme de modélisation et
simulation de Réseaux d'information
4. 1 Introduction
NetSim est une plate-forme de simu lati on capabl e d' interpréter le langage de modélisati on
NetSim. Étant donn é la fl ex ibilité de ce langage, il est possib le de simuler fac ilement divers
types de modèles de réseau x d' inform ati on. Dan s ce chapitre, nous prése ntons tout d' abord
un e vue gé néra le du foncti onn ement de NetSim pour ensuite ex pliquer ce rtains détail s
d' implémentati on que nous considérons comme les plus importants.
NetSim est un e app li cation qui se rt à interpréter le langage de modéli sati on NetSim.
Ce pendant, ce logiciel n'est pas un interpréteur en so i. Il est basé sur le langage Java et se
sert de la machine virtuelle Java pour interpréter le langage de modéli sati on, préa lablement
traduit en code Java. La fi gure 4.2. 1 illu stre les grand es étapes du fo nct ionn ement de
NetSim.
La première étape de la constru cti on d' une simulati on dans NetS im co nsiste à éc rire les
définiti ons et les règ les du modèle à simuler en langage de modéli sati on NetSim, comme
nous l' avons fa it au chapitre 3. De uxièmement, l' applicati on véri fie la sy ntaxe de ces règ les
et définiti ons et, lorsqu ' il n' y a pas d'erreur, le programme lit le modèle NetSim en mémoire.
Ensuite, l' applicati on traduit le modèle NetSim en modè le Java et d'a près ce modèle Java,
elle écrit en mémoire les classes d'exécution de la simulation. Finalement, ces classes sont
86
compil ées en in stru cti ons (bytecodes) compréhensibles pour la machine virtuelle Java de
sorte qu e cell e-ci pui sse interpréter la simulati on.
Définitions
Modèle NetSim Modèle Java
et Vérification syntaxique
en mémoi re en mémoire
règles
~,--------------------E~.c-ri-tu-re_d_e_c-od_e_j-av-a--------------------------f]
Classes java en
Compilation et interprétation Simulation
mémoi re
La fi gure 4.2 .2 illu stre un di agramme de classes UML qui montre les classes et assoc iati ons
principales nécessa ires à la co nstructi on d' un e simul ati on. L'obj et
ApplicationController est le premi er à être créé. C'est en quelque sorte ce lui qui
orchestre la mi se en œuvre de la simul ati on.
Premièrement, I'ApplicationController lit les définiti ons et les règ les du modèle
écrit en langage de modéli sati on NetSim . Ensuite, la méth ode
verifyDefinitionsSyntax () de l'obj et ApplicationController construit le
ApplicationController
1SimulationControll~-~
+loadModel()
+ initJavaSimulationModel () __j -"-
1 1
+ ve rifyDefin itionsSyntax {)
1
+ve ril yR ulesSyntax()
+compileSimulation (}
+executeSimulation ( )
1 1
1
11
/ 1 1
1 1 1
1
1 1
1
1 1
1 1 ModeiO efinitions
-compiledSimContextCiass : Glass
DegreeDistributionOat~
,r
J Simul ationData]
-simContext : Object
1 ...._ 1
1
1 1 0 .. 1 1 1
1 1 1
1
1 1
1
1
Simulation Model 1 1 JavaSimu lationModel
\ Il
l·simS1opCondition : String 1 l·simulationStopCondition :String 1
Syn taxVerifi ca to r
1 1 1 1
-er rorMsgDets: String
-e rrorMsgRules : String
1 +verif yDefs() 1 1 1
+vernyRules{)
1'1
JavaRuleSet
JavaAction
1 1
-name : String
1-execCondilion : String
-e ntity · St ring
1 1 1
1.. '
\
NetSimAction 1
1 ModeiRul eSet
·name : Str ing
1 1
· execCondition :String 1
·params : Arr aylisl
1 1 \/
JavaParam
·expression : String
·type : String
Figure 4.2.2 Diagram me de classes UML des cla sses principales nécessaires à la construction
d'un mod èle d a ns NetSim
88
Les définiti ons NetSim sont entreposées dans le Mode lDe f in i t ions so us forme de
di cti onnaires (HashMap). Par exempl e, les définiti ons du modèle d'amitié, qu e nous avons
écrites en langage NetSim au chapitre précédent, ressembl erai ent à cec i un e fois en
mémoire:
Si la sy ntaxe des règles est valide, avec sa méth ode loadModel (),
l'ApplicationController lit en mémoire toutes les règles (acti ons) écrites en langage
NetSim et construit le modèle NetSim . Ce modèle est composé de tro is classes :
SimulationModel , ModelRuleSet et Net SimAction. La classe
SimulationModel contient un attribut de type Stri ng qui contient l'expression, en
langage NetSim, de la condition d'arrêt de la simu lation (qu i pe ut être nulle). Ell e conti ent
89
auss i un e liste de toutes les ph ases du modèle où chacune comprend un e ou plu sieurs acti ons
NetSim et un e condition d'exécution (qui peut être nulle pour la première phase). C' est
l'objet ModeRuleSet qui sert à stocker les informations d' une phase. Ce derni er possède
comme attribut l'express ion, en langage NetSim, de la condition d'exécuti on de la phase et
une li ste de toutes les actions NetSim contenues dans cette phase. Chaque act ion NetSim est
ensuite décomposée en deux objets : un e chaîne de caractère qui est le nom de l'action et un e
li ste de chaînes de caractères qui contient tous les paramètres de l' acti on écrits en langage
NetSim .
Pour donner un exempl e plus concret de la création du SimulationModel , nous all ons
nous in spirer du modèle de réseau d'ami s écrit au chapitre précédent. Supposons d'abord qu e
nous voulons qu e la simulat ion s'arrête au temps t = 1000. Ensuite, nous vo ul ons, dans un
premier temps, construire un réseau initial de 250 nœud s, de faço n aléatoire, en ajoutant des
liens jusqu 'à ce qu e le degré moyen du réseau soit éga l à z_limit e. Pour ce faire , nous
écrivons un e première phase, sans spécifi er de condition d'exécuti on, qui ajo ute 250 nœud s
au temps t = O. La deuxième phase a comme condition d'exécuti on qu e le pas de temps so it
supéri eu r à 0 et entre donc en acti on au temps t = 1. Cette deuxième phase ne contient
qu ' un e se ul e acti on qui ajoute 10 liens, au hasa rd , à chaq ue pas de temps. La troi sième phase
est déc lenchée au moment où le degré moyen du réseau est plus grand qu e z limi te et
contient les règ les (actions) du ~ o dèl e telles qu 'écrites au chapitre précédent. Voici les
acti ons NetSim qui modélisent ce qui vient d' être di scuté (nous supposons un mode
d'exécution séquentiel) :
#deuxième phase
PHASE EXEC CONDITION (time step() > 0);
PICK_LINKS(time_since_last_meeting time_since_last_meeting + 1 ,
strength s () )
ADD_LINKS(pi j ())
La figure 4.2.3 illustre les objets en mémoire qui contiennent les informat ions de ce modè le
écrit en langage de modélisation NetSim .
: SimulationModel
1 1
sim StopCondhion = "time_step() >= 1000" 1
ruleSetlist
-- -
1 · ~e:tSim8~ioo 1 · ~ e1Sim 8ctioo
1
~~ame - ''ADD_ NODES'' / name ="ADD_ LINKS" 1
params params
'"250"
- "10"
-
1 1 - 1
-
-
1 · ~etSiro8ctioo 1 1 · ~etSim8ctioo 1 1 · ~e1Sim8ctioo 1 1 · ~e!Sim8c:!ioo 1
~~ame= "PICK_LINKS" 1 ~~ame= "PICK_ LINKS" 1 ~~ame = "CUT_ LINKS" 1 ~~ame= "ADD_ LINKS" 1
params ~ params pa r am s ~ params ~
1 1 "strength := ,~
1 1
1 1
1 1
Toutes les foncti ons prédéfini es du langage de modéli sati on NetS im sont traduites par des
méth odes Java défini es dans la classe Simu l ationController . Prenons, par exemple,
la premi ère acti on de la troisième phase du modèle NetSim :
PHASE # 3
condition exé cution: "mean_ degree() > z l imite"
ACTION # 1
Name : "pick links"
Params :
"time_s i nce_last_meeting .- time s ince last_meeting + l"
"strength : = s()"
La méthode NetS im «mean degree () » est trad uite par un appe l de la méthode
getMeanDegree () sur l'objet simController.
L'opérateur d' affectation NetSim «:=»d' un attribut défi ni sur l' entité link est trad ui t par la
méthode:
92
Pour obtenir la val eur d' un attribut défini sur l'entité link, il faut appeler, sur l' obj et
simControl l er, la méthode :
On remarque qu e la fonction s () a été remplacée par son ex press ion correspondante ava nt
d'être traduite en code Java.
Nous ne détaillerons pas ici la procédure complète de traduction des ex pressions NetSim en
expressions Java, mais nous en reparl erons à la section 4.3 .2.
Une fois le mod èle NetSim traduit en Java, se lon que le mode d'exéc uti on de la simulati on
choisi est séquentiel ou parallèle, NetSim éc rit le code Java des classes nécessa ires à
l' exécution de la simulati on. Nous verrons cette partie plu s en déta il à la section 4.3.3 .
Le Simul ationControl l er est l'objet qui contrôle la simulation . Il contient toutes les
méth odes qui sont appelées par les classes respon sa bles de l' exéc ution de la simul at ion: les
méthodes d' ajout et de suppress ion de nœud s ou de liens du réseau, les mét hodes de
con sultation et de modification des attributs de toutes les entités du modèle sim ul é ain si qu e
des méth odes d' arrêt, de mi se en marche, d'arrêt temporaire, et de reprise de la si mulation.
De plu s, c' est lui qui est responsable de la coordination de l' état du graphe représe ntant le
93
SimulationController
prefuseNodesToNetSimNodes : Hash Map
-netSîmNodesToPrefuseNodes : HashMap
----- ----- --- -- -- -- -.
'
+initDisplayQ r-
1 +startSimulationO
+stopSimulationQ
+pauseSimulationQ
+resumeSimulationQ
1
1 11 1
];
1NetworkController World DlsplayController
·~
1
Network
J
l·•ttnbutes HashMap 1
l J r-1 ,:,
1 edu.berkeley .guir.prefuse
1j;
1 Graph
1
-directed boolean
1 1 1
1
Node
r 1
~attributes : HashMap 1
1 Link
- -- ----- -attrîbutes : HashMapjE-
1 '
1 1 l 1
1L
Figure 4.2.4 Diagramme de classes UML des principales classes de contrôle de la simulation
Dans la classe Simulati o nCo nt ro ller, la méthode ini tDisplay () est responsable
de 1'initialisation de la fenêtre de visualisation du réseau, la méthode
startSimulati o n ( ) démarre la simulation et la méthode st o pSimul a t ion () arrête
la simulation.
94
Pour ce qui est de la vis ualisati on du réseau, nous avons utili sé la librairie Prefuse
(http://www .prefuse.org/). Cette librairie offre des classes servant à la manipul at ion d' un
graph e et à sa visualisation à l' éc ran. Il faut construire le gra phe avec les classes
Defaul tGraph , De faul tNode et De faul tLink fournies dans le paquetage
edu .berke ley.g uir.prefuse, afin qu ' il pui sse être visualisé à l'éc ran. Comme nous ne voulions
pas que notre application dépende du graph e d' un e librairie parti culi ère, au cas où nous
voudrions éve ntu ellement utiliser un e autre librairie, nous avons construit notre propre
graphe. La figure 4.2.5 illustre la stru ctu re de données que nous avo ns utili sée pour
co nstruire notre graphe.
.
~1 0
Liens rtants
.:J'Io<lo
1 1 Lions( nlmnls
1
1 1
2
1
3
1
_J .:J'Io<lo 1 ol 1 1 1
llE!nS ri ants
1 1 1 1 \ 1 1 1 -·
L10ns \ranis
0\ 1 2 3
! !
Le graphe de NetSim est composé d' une liste de nœud s et d' un e liste de li ens. La liste de
noeuds est plu s particul ièrement un dictionnaire (java. utii.HashMap) dans lequel les clés so nt
les nœuds et les valeurs correspondantes so nt des tabl eaux de longueur deux. La premi ère
case du tabl ea u contient la li ste des liens sortants du nœud clé. La deuxi ème case du tabl ea u
contient la li ste des liens entrants sur le nœud clé. Si le graph e n'est pas dirigé, se ule la
première case du tabl ea u est utilisée et contient une li ste des liens (sortants ou entrants) du
nœud clé.
Les entités world et network du langage de modéli sation NetSim so nt représe ntées par les
classes World et la classe Network. Chacune de ces deux classes contient aussi un
dictionnaire (nomAttrib ---> valeur) pour gérer les valeurs de leurs attributs respectifs. De la
même façon que pour les nœuds et les liens, la consultation et la modification de ces attributs
se font VJa les méthodes getAttribute ( ... ) et setAttribut e ( ... ) du
SimulationController.
Nous allons maintenant voir certains aspects de l' implémentation de NetSim plu s en détail.
NetSim possède plusieurs fichiers de configurat ion qui sont lus en mémoire lors de
l'i nitialisation du logiciel. À l'excepti on du fichier XML de configurations initi ales du
réseau offertes par NetSim, les données de ces fichi ers sont représentées en mémoire so us la
forme d' un dictionnaire (HashMap) dans l'objet ApplicationData. Nous prése ntons ici
les fichiers principaux.
Avant de commencer une simulation, NetSim offre la possibilité à l' utili sateur de choisir un e
configuration initiale du réseau dans le cas où celui-ci ne voudrait pas qu e la sim ulati on
débute à partir d' un réseau vide. Les différentes configurations initiales offertes sont li stées
97
dan s le fi chi er de confi gurati on XML « degreeDi stributi on.xml ». Lors de l' ouverture du
logiciel, les confi gurati ons décrites sont montées en mémoire. La fig ure 4.3. 1. 1 montre ce
fi chi er.
<DISTRIBUTION >
c NAME >Explicit degree distributi o nc/NAME >
c iMPLEMENTATION_CLASS >ExplicitDegre eDistrib c/ IMPLEMENTATI ON_ CLASS >
c PARAM >Maximum Degree c/ PARAM >
c PARAM >Degree 1 Number of n a de s t a bl ec/ PARAM >
</ DISTRIBUTION >
<DISTRIBUTION >
c NAME >Normal distributi o n c/ NAME >
c iMPLEMENTATI ON_CLASS>No rmalDe greeDi s t r i bc/I MPLEMENTAT I ON_CLASS>
c PARAM >Number of n o d e s c/ PARAM >
c PARAM >Mean c/ PARAM >
c PARAM >Standard dev iati o n c/ PARAM>
</ DISTRIBUTION >
Figure 4.3.1.1 Fichier de configuration XML d es distributions initia les du r ésea u offertes pa r
NetSim
Dans le fichier de configuration XML chaqu e co nfi gurati on est déc rite par les bali ses
<NAME >, < IMPLEMENTATION_CLASS> et < PARAM> contenu es à l' intéri eur de chaq ue
balise <DISTRIBUTION >. Le tab leau 4.3 . 1. 1 déc rit chac un e de ces ba lises.
98
Ta blea u 4.3. 1.1 Descript ion des ba lises d u fic hier XML de configuration des d istributio ns
in itia les d u réseau offerte par NetSim
Etiquette Descriptjon
<NAM E> Spéc ifie le nom de la di stribut ion. Ce nom est ce lui
qui apparaîtra dans la li ste des di stributi ons offe rtes
dans l' interface graphique de NetSim .
<IMPL EM ENTATION CLASS> Spécifie la classe d' imp lémentation de la di stributi on.
<PARAM> Spéc ifi e le nom des para mètres que l' utili sateur dev ra
sa1s1r, dans 1' interface graphiqu e, s' il choisit cette
di stributi on initiale.
Dans le fichier de la fi gure 4.3.1.1, quatre distributions initi ales so nt défi ni es. La première
di stributi on est un e di stributi on ex plicite pour laquell e l' utili sateur doit tout d' abord spéc ifier
le degré ma ximum du réseau à gé nérer et ensuite, doit donn er le nombre de nœud s, dans le
résea u, pour chaque degré allant de zé ro au degré max imum. Par exemp le, s' il choisit un
degré ma ximum égal à 4, il devra ensuite spéc ifi er le nombre de nœud s de degré éga l à 0, le
nombre de nœud s de degré éga l à 1, le nombre de nœud s de degré éga l à 2 et ainsi de suite
jusqu'à 4. Le résea u initial de la simulation sera donc initialisé avec ces paramètres.
La second e distributi on est une di stributi on aléatoire pour laqu elle l' utili sateur doit spéc ifier
le nombre de nœud s du réseau initia l et le pourcentage de li ens dans le réseau. Cette
configuration est co nstruite en ajoutant d' abord les nœuds, pui s les liens, de faço n aléatoire.
La troisième distribution décrite est une distribution (des degrés) normale pour laq uell e
l' utilisateur doit fournir le nombre de nœud s, la moyenn e et l' écart-type.
La derni ère distribution est un e di stributi on (des degrés) en loi de pui ssa nce pour laquelle
l' utili sateur doit spéc ifi er le nom bre de nœud s et le param ètre ide la formule de la loi de
puissance p(degré) = degré_, _
99
<NAM E >, est affiché dans 1' interface graphique et lorsque 1' uti 1isateur en choisit une, i1 doit
fournir un e valeur pour chacun des paramètres spécifiés par les bali ses <PARAM>. La
configurati on choisie, les val eurs des paramètres fournies par l' utili sateur ain si que la classe
d' implémentation de cette di stributi on, donnée par la balise < I MPLEMENTA T ION_ CLASS>,
sont al ors stockées en mémoire dans l'obj et Di st ribu t i onData. La fi gure 4.3 .1.2
détaille cette classe.
createDistrib () sur cet objet. La figure 4.3 . 1.3 montre un diagramme UML des
classes qui viennent d'être discutées.
DegreeDistribConfig
1 1 1 1
LinksProportionDistri t ExplicitDegreeDistrib PowerLawDegreeDistrib NorrnaiDegreeDistrib
Figure 4.3.1.3 Diagramme UML représentant les classes d'implémentation des configurat ions
initiales du réseau .
Les classes d' implémentation se trouvent dans le paquetage org. netsim.application et doivent toutes
hériter de la classe abstraite DegreeDistribConfig qui contient la méthode abstraite
createDistrib () . Par conséquent, les classes d' implémentation doivent aussi implémenter la
méthode createD istrib () .
Maintenant, en regardant le fichier XML des configurations initial es, on constate qu ' il y en a
quatre cependant, NetSim a été conçu de te ll e sorte qu e l' on puisse aisément en ajo uter de
nouvelles. Supposons, par exemple, que l'o n veuil le ajo uter le choix d' un e distribution
suivant une lo i de Poisson. La Première étape est d' ajouter les informations nécessa ires au
fichier XML des configurations in itiales. Par exemp le :
implémenter la méth ode createDistrib () dans laqu ell e on éc rit le code qui génère la
di stributi on suivant une loi de Poisson. Le constru cteur de notre classe d' impl émentation
reçoit en argument une liste des valeurs des paramètres nécessa ires à la constructi on de cette
confi gurati on, préalablement sa1s1es par l' utili sateur et se trouva nt dans l'objet
DistributionData. Le code simplifié de la classe d' implémentati on pourrait ressembler
à cec i :
//constructeur
public Po i ssonDegreeDistrib(ArrayList params) {
this.d i str ib Params = params ;
catch (C l assCastException e) {
System. out .println ("A parameter is wrong. " );
//Fin classe
Pour générer les distribut ions des degrés su ivant différentes lois comme la loi norma le et la
loi de puissance, nous avons utilisé des mét hodes de génération de nombres provenant de
classes Java contenues dans les paq uetages cern. colt. * , cern .jet. *, cern .c lhep du proj et Co lt
(http://dsd .1bl .gov/-hosc hek/co lt). Ce projet fo urnit un ense mble de li brairies Java
------1
102
Tout d' abord, un opérateur est soit un aire, so it binaire. NetSim n' implémente pas, pour le
moment, d'o pérateurs terti aires. Ensuite, i1 peut être un opérateur de comparaison,
arithm étique, boo lée n ou d' affectati on. Le fi chi er « operatorsDefinit ions.txt » contient le
classement de tous les opérateurs de NetSim . La fi gure 4.3. 1.4 montre ce fi chier. La
première ligne du fi chier sert à définir tous les symboles atomiques ut ili sés (en combinaison
ou non) pour représenter les opérateurs symboliques (qui ne sont pas des mots). Les lignes
suivantes classent les opérateurs dans leurs catégo ri es. Par exemple, l'o pérateur « := »est un
opérateur binaire d'affectation tandi s qu e l'o pérateur « fl oor »est un aire et arithm étique.
Comme nous l' avons exp liqué à la section 4.2, les déclarations en langages NetSim sont
d' abord traduites en langage Java avant d'être compilées et exécutées. Nous avons donc
deux autres fic hiers qu i indiquent la corres pondance entre les opérateurs de NetSim et les
,--- ----- ~- --
103
opérateurs Java. La figure 4.3. 1.5 illustre ces deux fichiers. Le fi chier de gauche fa it
correspondre les opérateurs de NetSim avec les opérateurs de Java tandi s que ce lui de droite
fait correspondre les opérateurs de NetSim avec des méthodes Java contenues dans la classe
java.lang.Math.
Figure 4.3.1.5 Fichiers de correspondance des opérateurs de NetSim avec les opérateurs ou les
méthodes Java
Le fichier de gauche conti ent les correspond ances des opérateurs de NetSim avec les opérateurs de
Java. Le fi chi er de droite contient les correspondances des opérateurs de NetS im avec les méth odes
Java de la classe j ava. lang.Math.
Ces fichiers serviront à la trad uction des ex press ions arithm étiqu es ou boo lée nnes de NetSim
en ex press ion Java. Cette opération est ex pliquée plus en détai l à la secti on 4.3.2.
Maintenant, il est poss ible d' in venter ou d'aj outer d' autres opérate urs NetS im en modifiant
ces troi s fichi ers de configuration . Les deux exemples sui va nts montrent comment faire .
Exemple 1
Supposons qu e l' on veuille aj outer l' opérateur de comparaison «>>» qu i signifie« plus de
deux foi s plus gra nd ».
Vérifier qu e le symbole atomique « > » utili sé pour form er notre nouvel opérateur
« >>» est prése nt dans la première ligne. Dans cet exemple, il y est, mais dans le cas
où il n'y sera it pas, il faudrait l'aj outer à la fin de la première ligne du fi chi er en le
séparant des autres symboles par un e virgul e.
Dans le fi chi er de corres pondan ce des opérateurs de NetSim avec les opérateurs Java:
A in si, lors de la tradu cti on, l'opérateur NetSim « >> » se ra transform é par
l' ex press ion Java« 2 * > ».
Pui sque l' ex press ion Java ne fait pas appel à un e méth ode de la classe j ava. lang. Math, nous
ne modifi ons pas le fi chi er de droite de la fi gure 4.3. 1.5.
Exemple 2:
Supposo ns qu e l'on dés ire aj outer la fo nction sqrt qui calcul e la rac ine ca rrée d' un nombre de
tell e sorte que l' ex press ion « sqrt 4 » éga le 2.
Étant donn é qu e notre nouvel opérateur « sqrt » n'est pas formé de sy mboles
atomiques (c 'est un mot), on ne vérifie pas la première ligne du fichi er.
Notre nouvel opérateur est un opérateur unaire arithmétique. JI faut donc ajouter cet
opérateur à la fin des lignes qui comptabilisent ces types d' opérateurs, de cette
façon:
Dans le fichier de correspondance des opérateurs de NetSim avec les méthodes Java de la
classe java.lang.Math :
Avec ces simples modificati on des fichi ers de configuration des opérateurs, il est maintenant
possible d' utiliser l' opérateur« >>» et l' opérateur « sqrt » dans la définiti on des fonctions
ou des paramètres des acti ons lors de l'éc riture du modè le en langage de modéli sati on
NetSim.
Comme nous l' avons vu au chapitre 3 sur le langage de modéli sati on NetS im, il ex iste des
fonctions prédéfi ni es sur chaque entité . Ces fonctions correspondent à des méth odes Java qui
sont implémentées dan s la classe Simul a tionContr o ll e r. Par exe mple, la foncti on
nurnber_of_no d e s ( ), définie sur l'entité network, correspond à la méth ode
g e tNurnberOfN o des () de la classe Simul a tionCo ntroller. NetSim possède un tel
fic hi er de correspondance par entité. Par exemple, le fichier
« networkFun ctions.properties », illustré à la figure 4.3 . 1.6 contient la correspondance entre
les fo ncti ons NetSim défini es sur l'entité network et les méthodes Java qu i les impl émentent.
106
number_of_nodes : getNumberOfNodes()
number o f links:getNumberOfLinks()
mean_degree:getMeanDegree()
max _degree:getMaxDegree()
min_degree:getMinDegree()
di ameter:getDiameter()
Figure 4.3.1.6 Fichier de correspondance entre les fonctions NetSim définies su r l'entité
network et les méthodes Java qui les implémentent
À l' initiali sation du logiciel, ces fichiers sont lu s en mémoire et serviront à la traduction des
ex press ions NetSim en expression Java.
Pour ajouter un e nouvelle fonction prédéfini e sur un e entité particulière, il suffit donc
d' implémenter la méthod e Java correspondante dans la classe S imul at ionContro ll er
et d' ajouter la correspondance dans le fichier de l' entité concerné.
Il existe cependant certaines restrictions aux foncti ons qui peuvent être ajoutées au logiciel.
Pour le moment, i1 n'est pas possible d' implémenter des fonction s avec paramètres, mais
nous comptons éve ntu ellement remédi er à cette limitation.
Dans le langage de mod élisation NetS im , nous avons vu qu ' il ex iste des attributs de couleur
prédéfini s sur les entités nod e et link . Ces attributs permettent de modifier la couleur des
nœud s et des liens du résea u en cours de simulati on. Il faut pour cela affecter à l' attribut de
couleur un code num ériqu e correspondant à un e couleur défi nie dans le fichi er de
configuration « co lorCodes. properti es ». Chaque ligne de ce fichi er contient la définition
d' une couleur en précisant le code NetSim de la couleur, son encodage RVB et finalement,
son nom . Par exemple, pour définir la coul eu r rouge, nous pouvons éc rire, dans le fichier, la
li gne suivante :
7:255,0,0;light red
107
La ligne précédente définit la coul eur rou ge dont le code NetSim est 7, l'encodage RVB est
255 1 0 1 0 et le nom est l ight red. Il faut bien entendu qu e les codes de coul eur
NetSim soient uniqu es, dans le fi chier.
On peut ainsi aj outer toutes les coul eurs voulues au fichi er de confi gurati on des coul eurs et
ces codes seront di sponibles pour modifi er les attributs de co ul eur défini s sur les entités node
et link.
À l' aide des données provenant des fi chiers d ' initiali sati on de l'application et du
Model Def i n i tions qui contient les définiti ons du modèle défini es par l' utili sateur,
NetSim peut traduire les règles du modèle.
C'est la méthode netSimToJava () , appelée sur l' obj et NetSi mExpress i o n qui est
responsabl e de la tradu cti on des ex press ions NetSim en ex press ions Java. Tout d' abord , ell e
traduit les foncti ons, ensuite, les nombres, les constantes, les attributs, les opérateurs et
fin alement, les affectati ons (qui sont auss i des opérateurs, mais qui sont traitées
diffé remment).
Prenons, par exempl e, l' ex pression su ivante qui est ce ll e de la fonct ion g de notre modè le
d'amis:
108
La première étape de la méth ode netSimToJava () consiste à traduire les fo ncti ons. Pour
ce faire, l'application peut vérifier qu elles so nt les fonctions prédéfi ni es de NetSim, dans
I'ApplicationDataRegister et quell es sont les fonctions défi ni es par l' utili sateur
dans le ModelDefinitions. Après la traducti on des fonctions, l'ex press ion ressem ble à
cec1:
1 - ( 1 - pO ) * e ** ( - a * simController . getNumOfCornmonNeighbours
(link) )
La deuxième étape consiste à traduire tous les nombres en nombres réels pour év iter les
divi sions entières. Après la traduction des nombres, l'ex pression ressemble à cec i :
1.0 - ( 1.0 - pO ) * e ** ( - a *
simControl ler.getNumOfCommonNeighbours (link) )
La troisième étape consiste à traduire les constantes dont les va leurs peuvent être réc upérées
dans le ModelDefinitions. Après la traducti on des co nstantes, l'exp ress ion ressemb le à
cec1 :
La qu atri ème étape consiste à rem placer le nom des attributs par la méth ode
getAttribute (Entité , nomAttrib) du Simulati o n Controller qu1
récupère la va leur courante de cet attr ibut au moment de l'a ppel. Dans cet exempl e, il n'y a
aucun attribut donc l'ex press ion reste inchangée.
La cinquième éta pe est la traduction des opérate urs, à l'exception de l' opé rate ur d'affectation
qui sera traduit à l'étape sui va nte. Toutes les indicat ions nécessaires à la traduction des
opérateurs proviennent des fichiers d' initialisations des opérateurs lus en mémoire dans
l' objet ApplicationDataRegister. Après la traduction des opérateurs, l'exp ress ion
ressemble à ceci ;
~-~---~ ------ -------------------;
109
1. 0 - ( 1. 0 - 0 . 0 0 6 0 ) * Ma t h . pow ( 2 . 7 1 8 , - 0 . S *
s imContro ll er . ge tNumOfCommonNeighbou rs ( li nk))
La sixième et derni ère étape est la tradu ction des opérateurs d'affectati on. Cet opérateur est
traduit par la méthod e setAtt r ibute (en t i té, nomAttr i b ,
n ouve l leVale u r) du S i mul at i onControl l e r. Dans cette ex press ion, il n'y a pas
d'o pérateur d' affectati on alors l' expression reste inchangée.
L'express ion fina le, comp lètement traduite en code Java, est la sui va nte :
Comme exemple de tradu ction de 1' opérateur d' affectation et des attributs, prenons
l' ex press ion sui vante, auss i tirée du modèle d' amis:
stre n gt h : = s ()
Mainte nant que toutes les expressions sont tradu ites en expression Java, l' application peut
écrire les classes d' exécution de la simu lation . C'est ce que nous ex pl iquons à l'artic le
suivant.
La classe principale d' exécution de la simu lation est la classe SimulationContext. Elle
contient la méthod e run () dans laquelle se trouve la boucl e principale d'exéc uti on de la
simu lation . Un tour de boucle correspond à un pas de temps et à chaque pas de temps
s'exécutent une ou plusieurs phases selon le mode d'exécution (séquentiel ou parallèle)
cho isi par l' uti lisateur. La fi gure 4.3.3. 1 montre les classes nécessa ires à l' exécution d' une
simulation.
SimulationContex Mode/Phases
......
/
+run() 1 1 +abstract simule()
1
T 1 1
Mode1Ph ase1 ModeiPhasE2 Mo de1Phasé3
Figu re 4.3.3.1 Diagramme de classes UML représentant les classes d 'e xécution de la simulation
1 11
SimulationController simController
SimulationContro ll er.getContro ll er();
} // end metho d
//end class
11 2
Dans chaque classe Model Phase#, un e acti on est implémentée par un e méth ode du nom de
cette acti on qui prend en paramètre un e instance de la classe Simu lationController.
En effet, lors de la traducti on des ex pressio ns NetSim en Java, toutes les méth odes sont
appelées sur cet obj et.
Évidemment, le code de chaqu e méth ode qui implémente un e acti on parti culi ère se ra
di fférent se lon les param ètres qu e l' utili sateur a fournis à cette acti on lors de l' écritu re du
modèle en langage de modéli sati on N etSim . Ce sont ces méth odes qui modifient le graphe
représe ntant le réseau simulé. Nous ne ve rrons pas le code de ces méthodes en détai1
ce pend ant, l' ann exe A fournit le code complet des cl asses Simu l at i onContex t et des
classes Mode l Phase# éc rites dynamiquement lors de la constructi on de la simul ati on du
modèle de résea ux d'ami s.
Revoyons le pse ud o-code gé néral de la méth ode run () se lon ces deux modes (e n supposa nt
qu ' il y a trois phases dans le modèle et que la première phase n'a pas de co nditi on
d'exécuti on):
compteurDePhases = 0
pasDe Temps = 0
ModelPhases p = null
# phase 3
SI <condit i on d ' exécution p h ase 3> et compteurDePhases 2
ALORS
compteurDePhases = 3
p .- nouvelle instance de la c las se Mode1Phase3
# phase 2
SINON SI <conditi on d'exécution phase 2> et
compteurDePh ases = 1 ALORS
compteurDePhases = 2
113
# phase 1
SINON SI compteurDePhases = 0 ALORS
compteurDePhases = 1
p . - nouvelle instance de la classe ModelPhasel
FIN SI
p. simule()
pasDeTemps pasDeTemps + 1
pasDeTemps = 0
TANT QUE NOT <c ond it ion d'arrêt de la s imulati o n > FAIRE
FIN SI
FIN SI
pasDeTemps pasDeTemps + 1
Dans les deux cas, si une phase doit être exéc utée, une instance de la classe Mo del Phase#
correspondante est créée et la méthode s imule ()est appe lée sur cette instance.
Les classes qui sont écrites e n mémo ire sont donc la classe SimulationContext et toutes
les classes ModelPhase# . La c lasse Model Phases n 'est pas écrite dynamiquement étant
donné qu 'e ll e ne change pas se lon les modè les s imul és.
114
Le choix de conception que nous avons fait d' utiliser la mac hine virtuell e Java comme
interpréteur de notre langage de mod é li sati on NetSim préa labl ement traduit en Java suppose
la compi latio n dynamique des classes di sc utées à l' artic le précédent. Nous nous so mmes
interrogés à savoir si la compi lation de classes ne prendrait pas trop de temps lors de la mi se
en œuvre d' une simulation, mais étant donné qu e le nombre de classes à co mpil er est
proportionnel au nombre de phases du mod èle simul é, qui est rarement plu s grand que trois,
la compi lation s'exécute très rapidement.
Lorsque les classes d'exécution de la simulati on ont été éc rites en mémoire et stoc kées dans
le Mode l Defin i tions , nous pouvon s les compiler. Pour ce faire , nous avo ns utili sé le
paquetage uk. ac .dcs.stand .dcs.javacompil er créé par Graham Kirby (http ://www-
systems.cs.st-andrews.ac. uk!w iki/Dynamic _Java_ Compiler), co ntenant une librairie pour la
compilation dynamique.
// Definitions de variables
String prefix= SimulationCons t. SIMULATION_PACK_PREFIX;
ModelDefinitions mode lDe fs = simRegister.getModelDefinitions();
St ring [) defns = mode lDefs.getClas ses Definitions( );
Clas s simu l ContextClass = null;
Dyn amicCompi l e r comp il er = nul l ;
//compilation d es c l asses
si mulContext Clas s = compiler. compileCl ass (def n s, prefix +
"SimulationContext");
La variable pre fix contient le nom du paq uetage dans lequ el se trouve la classe
Simulat ionCont ext . Le tablea u defns est un tab lea u de chaînes de caractères
contenant les définition s des classes à compiler, préa lab lement stockées dan s le
ModelDefi niti o ns.
Fin alement, en appelant la méth ode n ewinstanc e () sur l'obj et simul ContextClass,
nous con strui sons une in stance de la classe S imulati o n Context et cette in stance est
auss i stockée dans le Model Def ini tions.
Comme nous l' avons déjà dit, c'est le Simul a ti o nContr o ll e r qui est responsable du
contrô le de l'exécuti on de la si mulation . Sa méth ode startSimul ation () démarre la
116
À la section 4.3.1, nous avons introduit la noti on de configuration initi ale en ex pliquant qu e
NetSim offre différentes façons de créer le résea u in itia l de la simul ati on se lon différen tes
di stributi ons. Cette fonctionna lité perm et à l' utili sateur de ne pas amorcer sa si mulation à
part ir d'un réseau vide.
Ce pendant, il peut arriver qu e l' on possède déjà des données de réseau que l' on voudrait
utili ser pour construire le résea u qui servira de point de départ à notre simulati on. Dans cette
optique, nous avons créé un format de fichier XML permettant la représentati on de donn ées
de résea ux extern es et que NetSim peut alors interpréter pour créer le résea u initial. Il suffit
d'écrire nos données so us ce format et de charger le fichier XML dans NetSim.
Aussi , NetSim permet d'enregistrer dans ce format les résea ux générés par simulat ion. Ce la
peut être utile dans le cas où nous vo udrions réc upérer nos données dans le but de les utili ser
dans un autre logiciel, d'analyse par exemple ou simp lement pour les réutiliser comme réseau
initial dans une autre simu lation de NetSim.
Le format XML de NetSi m (NetS im XML) est divisé en deux parties . La première, délimitée
par la bali se <ENTITY ATTR I BUTE > sert à définir le nom des attributs des nœuds et des
liens. S' il n'y a pas d'attributs, cette section reste vide. La seconde partie, délimitée par la
117
ba lise <GRAPH > sert à décrire tous les nœud s et les liens du graphe avec les val eurs de leurs
attributs respectifs s' i 1y a 1ieu. La fi gure 4.3 .6.1 montre un exemple d'un tel fichier.
c NETWORK >
cENTITY ATTRIBUTES>
c ENTITY ATTRIBUTES>
c NODE ATTRIB>
cNAME >attribl c /NAME>
cNAME >attrib2c/NAME>
c/NODE_ATTRIB>
c LINK ATTRIB>
cNAME>attrib3c/NAME>
cNAME>attrib4c/NAME>
c /LINK_ATTRIB>
c/ ENTITY_ATTRIBUTES >
cNODES >
c NODE id= 11 n1 11 label= " Banane " attrib_values= " 2.3 3" />
c NODE id= 11 n2 1' label= "Maison " attrib_values="0.345 3" / >
<NODE id= 11 n3 11 label="Citron" attrib_values="2.5 3.2" / >
c NODE id="n4 11 label="Café " attrib_values="2.6 3.5" / >
c NODE id= 11 n5 '' label="Taxi" attrib_values="O 0" / >
e NODE id== •• n6 '' label= "Voiture " attrib values= " 2.6 3.5" />
c NODE id= 11 n7 11 label="Soleil" attrib_values="2.6 3.5" / >
cNODE id;:: 11 fl8 11 label="Visage " attrib_values="2.6 3.5" />
<NODE id= 11 n9 11 label="Beau" attrib_values="2.5 3.2" / >
cNODE id= 11 n10 11 label= "Travail " attrib values= " O 0 " />
cNODE id=="nll 11 labe l = " École" attrib_va-lues="2.5 3.2" / >
cNODE id="n12" label= "Moustache" attrib values= " 2 . 5 3.2" />
e NODE id="nl3 11 label="Lunette " attrib values= " 2.5 3.2" / >
c/NODES >
cLINKS>
c LINK nodel="nl" node2= " nl2" attrib_values="O 1"/ >
c LINK nodel="n3 " node2="n7 " attrib values= " 2 0 " />
c LINK nodel= " n6" node2="n7" attrib values="3 l" / >
c LINK nodel="n12" node2="n3 attrib values="O 2" />
c LINK nodel="nl" node2="n4 attrib values="l 3 " />
c LINK node l = " nB " node2="n3 attrib values="O 3" / >
c LINK nodel= " n9 " node2= " n6 attrib values= " 2 0" / >
c LINK nodel= " n6" node2="n2 attrib values="O l" / >
c LINK nodel="n9" node2="nl attrib values="O l " />
c LINK n o del="n12" node2="n6 a ttrib values="O 2" / >
c LINK nodel= " nl2" node2="n5 attrib values= " O 0 " />
c LINK nodel="n4" node2="n12" attrib_values="2 0" / >
c/ LINKS>
c/ GRAPH >
c/ NETWORK >
118
On remarque que le format NetSimXML permet aussi de spécifier un e étiquette pour chaque
nœud du graphe, mais ce lle-ci n'est pas obli gatoire. Si on menti onn e un e étiquette dan s la
définition des noeud s, ell es se ront affic hées dans chaque nœud lors de la visuali sation du
gra phe.
Dan s 1'exemple de la fi gure 4.3 .6. 1, on a défini deux attributs pour les nœuds (at t ribl et
attrib2) ain si qu e deux attributs pour les li ens (attrib3 et attrib4). Les valeurs de
ces attributs so nt spéc ifi ées dans la définiti on de chaque nœud et de chaque lien. Ainsi , la
ligne
définit un nœud dont le num éro uniqu e d' identification est « n 1 », l'étiquette est « Banane »,
la valeur de l' attribut attribl est 2.3 et la valeur de l'attribut attrib2 est 3, les valeurs
de chaque attribut étant séparées par un es pace. Il est importa nt que les num éros
d' identificati on des nœud s soient tous uniqu es puisqu ' il s serviront à identifier les deux nœud s
qui compose nt un lien dans la définition des li ens. Ainsi , la ligne
<LINK nodel= "nl" node2="nl2 " attrib_ values ="O 1" />
défi nit un 1ien dont le premier nœud est celui qui a le num éro d' id entificati on « n 1 » et dont
le deuxième nœud est ce lui qui a le num éro d' identificati on « n 12 ». La va leu r de l'attribut
attrib3 est éga le à 0 et la valeur de l' attribu t attr ib4 est égale à 1, les va leurs de
chaque attribut étant sépa rées par un espace.
La figure 4.3.6.2 montre le gra phe obtenu une fois qu e le fichier NetSimXML de la figure
4.3.6.1 a été chargé dans NetSim comme configuration de départ.
11 9
Taxi
Nous pouvons maintenant exéc uter un e simul ati on à partir de ce résea u initial. Ce pend ant, si
des nœud s so nt ajoutés en cours de simul at ion, ceux-ci sont anonymes et ne seront
év id em ment pas étiqu etés .
Même si NetSim a été co nçu spéc ialement pour simuler des modèles dynamiques de résea ux
d'information , on peut auss i 1' utiliser pour la visualisati on statique de donn ées de réseaux
représe ntées so us le format NetSimXml. On charge d' abord ce fichi er dans NetSim, on crée
ensuite une simulat ion vide (sans aucu ne définition ni règle) et on choisit le fichier
NetSimXML comme confi gurati on de départ de notre simu lat ion. Lors de l' initialisation de
la simu lation, le résea u initial est affic hé.
- - - - - ---------,
120
Éventuellement, nous voudrions rendre NetSim capab le de lire d' autres form ats de
représentat ion de données de réseaux. Par exemple, il serait utile de pouvoir fournir, en
format texte ou Exce l, des données de réseaux qui représentent simplement les nœud s et les
liens sous forme de matrice. Plu sieurs applications d' analyse ou de visua li sati on de réseaux,
comme Pajek ou Krac kPi ot, fournissent leur propre format de données, mais il ex iste aussi
des formats connus et assez génériqu es, dont Grap hXML, qu ' il serait intéressant d' intégrer à
NetSim.
4.4 Conclusion
Dans ce chap itre, nous avons exp liqué le fonctionnement gé néral de NetSim pour ensuite
détailler certains aspects de son implémentati on. No us avo ns pointé, ici et là, certain es
limitation s actue lles quant à son utili sati on, mai s avons tenté de montrer qu e sa conception
est assez so upl e pour permettre, éventuell ement, l' extension ou l' amé li orati on de ses
fonct ionn aiités.
Le chapitre sui va nt propose deux exempl es de simul ati ons de modèles de résea ux tirés de la
littérature qui nous ont permi s de tester notre pl ate-forme.
CHAPITRE 5
Résultats de simulation avec NetSim
5. 1 Introduction
Lorsqu e nous étudi ons certains phénomènes par modélisati on, la simul ati on de nos modèles
est un e étape esse nti elle. En effet, ce ll e-ci perm et de tester nos hypoth èses so us di ffé rentes
contraintes. Les modèles incluent so uve nt des paramètres ajustables qu ' on doit tester avec
différentes va leurs avant de trouver la va leur ou l' interva ll e de va leurs qui produit les effets
recherch és. De plu s, en jouant avec ces paramètres, on peut déco uvrir des comportements
qui n'étai ent pas prév us à l' ori gin e. Les simulati ons perm ettent ai nsi d'ex pli citer nos
modèles.
Dan s ce chapitre, nous ex posons nos résultats de simul ati on avec NetSim de deux modèles
tirés de la littérature : le modèle du résea u d'ami s qu e nous conn aissons déj à et un modèle de
l' évo lution de la structure du Web. Nous comparons ensuite nos résultats avec les résultats
de simulati on obtenus par les auteurs de chaqu e modèle.
Nous allons reprendre ici le modè le de l' évolution du résea u d' ami s de (Jin, Girvan et
Newman, 2001 ) que nous avons déjà écrit au chapitre 3 et allons le simuler à l' aide de
NetS im .
Nous en rappe lons brièvement ici les prin cipales règ les :
--- ---- ---- - - - - -------------~
122
1. Un nombre fixe de sommets: Considération d' un e popul at ion fermée d' une
grandeur fixe .
2. Un degré limité: Lorsqu ' un individu atteint z* contacts, la proba bilité qu e celui-
ci déve loppe de nouvelles amitiés diminue radi ca lement. Ce mécani sme est mis
en place pour modéli ser le fait qu 'entretenir une amitié demande des ressources
et que, pour cette rai son, un individu ne peut pas avoi r un nom bre illimité d'ami s.
3. Transitivité : La probabilité que deux indi vidu s devienn ent am1 s doit être
significativement plus élevée s' ils ont un ou plusieurs amis commun s.
La probab ilité par unité de temps p,, que deux perso nnes donn ées, i et j , se
rencontre dépend de deux facteurs :
La fonction f doit être assez grand e et assez constante pour de petits z, mais doit
diminuer considérab lement lorsque z approche la va leur de transiti on z * La
fonction de Fermi , qui est un e sigmoïde, présente ces caracté ri stiques et c'est ell e
qu e les auteurs ont utili sée pour leur modè le.
4. Bris de liens d'amitié : Lorsqu e deux indi vidus sont am1 s, ce ux-c i doivent se
renco ntrer régulièrement pour mainteni r leur amiti é. Si tel n' est pas le cas, il y a
cessati on de cette amitié. Pour représenter la fo rce d' un e amitié, chaqu e 1ien d' amitié
possède un paramètre s dont la va leur est plu s ou moins élevée selon que les
rencontres sont plus ou moin s fréquentes. Chaqu e fo is que deux ami s se rencontrent,
la fo rce s;; est ajustée à la va leur 1. Pui s, à mesure qu e le temps passe et qu ' il s ne se
rencontrent pas de nouvea u, la force de leur amiti é diminu e ex ponenti ell ement se lon :
s,, = e - k lt
Où Dt représente l' interva lle de temps depuis la derni ère renco ntre de i etj et où k est
un paramètre ajustabl e du modèle.
Il est ensui te poss ible de poser un e limite minimale à s,, perm etta nt de considérer un e
amitié active et ne teni r compte qu e de ces li ens lors des ca lcul s, par exempl e, du
nombre d' amis communs et du coeffi cient de transi ti vité.
124
Nous avon s déjà éc rit ce modèle en langage NetSi m au chap itre précédent :
ADD_LINKS(pij ());
Maintenant que nous avons traduit le modèle en langage NetS im, nous pouvons le simuler.
125
Pour construire le réseau initial de notre simulation, nous avons fait comme les auteurs du
modèle. Nous avons commencé avec 250 nœuds et, en simulant le modèle, nous avons
ajouté des liens au réseau jusqu'à ce que le degré moyen des nœuds du réseau atteigne la
valeur de la constante z li mi te. Pour ce faire, nous avons mis la valeur de la constante k à
0 afin d'empêcher la suppression de liens durant cette étape. La figure 5.2.3.1 montre l'état
du réseau à la fin de cette étape.
Une fois notre configuration initiale construite, nous avons amorcé la simulation de notre
modèle en spécifiant des valeurs de paramètres très similaires à ceux utilisés par les auteurs
du modèle. Certains paramètres n'étaient pas spécifiés explicitement dans 1'article alors nous
avons expérimenté avec différentes valeurs pour trouver celles qui semblaient donner de
meilleurs résultats. Le tableau 5 .2.3 .1 montre la comparaison des valeurs des paramètres
utilisées par les auteurs du modèle avec les valeurs des constantes utilisées pour exécuter la
simulation dans NetSim. On remarque qu 'à l'exception des valeurs non spécifiées par les
auteurs, les valeurs utilisées pour la simulation avec NetSim sont toutes identiques sauf dans
le cas de la force minimale limite d'une amitié (limit_min_for_friendship). En effet,
126
nous avons réalisé qu ' en au gmentant légèrem ent cette valeur, nous obteni ons de mei lleurs
résu ltats quant à la démonstration de l'effet de transitivité et de la formation de petites
communautés à l' intérieur du réseau qui so nt des propriétés de plu sieurs types de résea ux
soc 1aux.
Tableau 5.2.3.1 Comparaison des valeurs des paramètres utilisées dans la simulation de NetSim
avec celles utilisées dan s la sim ulation des a uteurs du modèle
k k 0.0 1 0.01
fJ b 5 5
z* z limite 5 5
Force minimale Limit_ min _for _fr iend ship 0.3 0.5
limite d' un e
amiti é
La figure 5.2.3.2 montre l'évo lution du résea u à différents moments dans le temps. Comm e
l'ex pliquent les auteurs du modèle, on peut observer la formation de co mmun autés bien
déterminées à l' intéri eur du réseau. La plupart des gro upements observés sont restés reliés
entre eux, mai s certa ins se sont déconnectés de la composante principale du gra phe, au cours
de la simul at ion. Cette propriété (qui n' était pas, à 1'origine, une des caractérist iques du
modèle) est évidemment observab le dans le mond e rée l. L' émergence de ce phénomène
s' explique par le fait que si, durant l' évo luti on du résea u, un e région du graph e commence à
montrer une plus grande densité de connexions que la moyenne alors, dans cette région, on
observe conséq uemment un nombre plus élevé de paires de so mmets qui ont des liens
communs. Ainsi, de nouvell es amitiés vont préférab lement se former entre ces paires de
- - -- - - - - - -- - -- - - - - - - - -- - -- - -- -- - -- - -- - - - - - - - - - - - - -- - - -
127
sommets en fa vorisant, à leur tour, la densité de connex ions à l' intéri eur de cette région et
ain si de suite. Il apparaît donc qu ' une toute petite fluctu ati on init ial e dans la densité du
réseau peut provoqu er l'évolution de communautés cohésives à l' intéri eur du système.
De plus, on remarque qu e ces communautés sembl ent autosuffi santes . En effet, à l' intéri eur
de ce lles-ci, plusieurs paires d' individus ont nécessa irement des amis commun s ce qu1
produ it la formati on de plusieurs « trian gles» d' amiti é. Un tri angle est un e structure
autosuffi sante dans ce modèle. Chaque paire de sommets, dans un triangle, a un vo isin
commun qui est le troisième sommet du tri angle. Donc, parce qu ' il s ont un ami commun et
qu ' ainsi la rencontre entre chaque paire de sommets a plus de chances de se produire souve nt,
la force de connexion entre ces paires de sommets est continuell ement renouve lée. Ce la
signifie qu 'à l' intérieur d' une communauté, les liens perdurent plus longte mps, en moyenne,
que ceux qui relient les communautés entre elles. Ce so nt donc les ami s commun s qui
forment et maintienn ent les communautés.
128
Etat du réseau à t = 200 (619 liens) Etat du réseau à t = 400 (624 liens)
Etat du réseau à t = 700 (622 liens) Etat du réseau à t = 1000 (626 liens)
Nous avons ensuite calculé les coefficients de transitivité à chacune des étapes de la
simulation montrées à la figure 5.2.3.1 (réseau initial) et à la figure 5.2.3.2 (réseaux
subséquents) à l'aide du logiciel d'analyse de réseaux sociaux« Ucinet » (Borgatti, Everett et
Freemanm, 2002). Le coefficient de transitivité est la mesure de la densité des triangles dans
le réseau. C'est le rapport entre le nombre de structures triangulaires (triangles fermés) et le
129
nombre de tripl ets (triangles ouverts et ferm és) dans le résea u. Le tabl ea u suivant montre
1'évo lution du coefficient de transitivité au cours de la simul ati on.
Tableau 5.2.3.2 Évo lution du coefficient de transitivité a u cours de la sim ulation du réseau
d 'am is
Les auteurs du mod èle obtiennent un coeffic ient de transiti vité éga le à 0.45. Nous obte nons
donc des résultats similaires si l'on considère notre simulat ion entre les temps t = 200 et t =
400. Comme il s le fo nt remarq uer, ce coefficient de transitivité est très élevé si on le
compare à un gra phe aléatoire de même dimension et possédant environ le même nombre de
liens qui prése nte un coeffic ient de transit ivité tournant autour de z * 1N = 5 1 250 = 0.02. N
étant le nombre (constant) de nœuds dans le résea u et z*, le nombre d'amis (liens) après
leq uel la poss ibilité de créer d'autres amitiés diminu e radical ement. Ce modèle montre
clairement la propriété de transitivité propre aux résea ux soc iaux.
De plu s, si l'on observe le tabl ea u 5.2.3.2, on remarque qu e le coeffic ient de tran sitivité tend
à augmenter avec le temps. Nous pourri ons donc fai re l' hypot hèse que la formation de
communautés se poursuit et s' intensifi e avec le tem ps. On pourrait, éventu ell ement, observer
l' évo lution de la structure de ce réseau sur une ~ lu s grande période de temps pour éva luer
cette hypothèse.
Il nous apparaît donc que notre simulation du modèle avec NetSim produit des résultats très
similaires aux simulations effectu ées par les auteurs du modèl e.
130
Comme modèle de l'évo lution du Web, nous avons choisi de simuler le modèle proposé par
(Albert et Barabas i, 2000) qui est un e extension du modèle indépend ant de l' échelle
précédemment introduit par (Barabas i, Albert et Jeong, 1999). Ce modèle ti ent compte du
phénomène de l'attachement préférentiel qui veut que les nœuds de degré élevé (nœud s
popul aires) tend ent à attirer plus de liens qu e les nœuds de degré faibl e. Cette propriété a été
observée dans certains résea ux tels qu e le WWW . De plus, contrairement au modè le d' amitié
vu à la secti on précédente, ce modèle ti ent compte de la croissance constante du nombre de
nœud s et de liens qu 'on observe dans le WWW . En conséquence de cette croissance et du
méca ni sme d'attachement préférentiel, il a été montré (A lbert, Jeong et Barabas i, 1999) qu e
la di stributi on des degrés du réseau enge ndré par l' évo lution du Web semble sui vre un e loi de
pui ssanc e. No us tenterons donc de vérifi er cette propriété sur le résea u enge ndré par notre
simul ati on.
Ce modèle débute avec m0 nœud s et à chaqu e pas de temps, les trois règles sui vantes so nt
effectu ées se lon ce rtaines probabilités.
1
D (k) = k, + où k représente la connecti vité du nœud (so n degré).
I<k,+ 1)
131
Cette probabilité ti ent compte du fait que les nouveaux liens s'attac hent
préférentiellement à des nœuds populaires ayant déj à beaucoup de connexions. La
fi gure 5.3.1 .1 et le tableau 5.3 .1.1 ex plicitent le calcul de cette probabilité.
En se rapportant à la figure 5.3 .1. 1, le tableau 5.3. 1.1 montre les ca lcul s des probabi 1ités 11
de choisir les nœuds i, j , k, lou m comme nœud d'arrivée du lien à ajouter. On remarque
effecti vement que cette probabilité ti ent compte de l'attachement préférent ie l, car plus la
conn ecti vité d' un nœud est élevée, plus sa proba bil ité d'être choisi est élevée.
Tableau 5.3.1.1 Calcul de la probabilité 11, pour l'ajout de nouveaux liens, qui tient compte de
l'attachement préférentiel dan s le mod èle du Web
5 5 1 15 = 0.333
J 2 2 / 15 = 0.133
k 4 4 1 15 = 0.267
3 3 1 15 = 0.200
m 1 1 15 = 0.067
Il est à noter qu e la probabilité 11( k) est propo rti on nelle à k, + 1 de telle sorte qu e les nœud s
de degré zéro n' aient pas une probabilité nulle de recevoir de nouveaux liens.
Dans ce modèle, les probabilités p et q peuvent se situer dans les interva ll es 0 ::::; p < 1 et
o ::::; q < l - p.
Les constantes
• La constante p est la probabilité d'exéc uter la règ le 1. Selon nos di fférents tests de
simu lation, nous avons trouvé que la va leur 0.4 produisait de bons résultats.
133
• La constante q est la probabilité d'exécuter la règ le 2. Après avoir testé plu sieurs
valeurs lors de simulati ons diverses, nous avo ns fi xé cette valeur à 0.3.
Les attributs
• Bien qu ' il n'y ait pas d'attributs défini s par ce modèle, nous aurons besoin d' un e variable
témoin qui marque les nœud s traités. Nous allons donc définir cet attribut que nous
initialisons à zéro.
Les fonctions
• Nous aurons besoin d' un e fonction pour calc ul er la probab ilité TI . Pour ce faire, nous
avons reco urs à la définition d' un e méth ode Java définie sur l' entité link que nous
appellerons probToAddThi sLink. No us devo ns tout d' abord la déclarer avec la
commande DEFINE JAVA METHOD comme suit :
Nous allons ensuite écrire le code java de cette méthode dans l'éditeur de code j ava du
logiciel NetSim. Voici le code :
134
Il obtenir tous les liens potentiels qui ont comme noeud de départ
/1 le nœud de départ du lien reçu en paramètre.
ArrayList links = simController.
getPotentialNodeOutLinks(link.getStartNode());
Il Calculer la somme des degrés (+ll des noeuds d ' arrivée de tous
Il les liens potentiels obtenus à l'étape précédente.
return value;
Comme les règles du modèle s'effectuent selon une probabilité, il n'est pas certain qu 'elles
s'effectueront toutes dans un même pas de temps. Nous allons donc créer une phase
différente pour chaque règle. La condition d'exécution de chaque phase dépend de la
probabilité d'effectuer la règle concernée : la règle 1 s'exécute selon la probabilité p, la règle
2, selon la probabilité q et la règle 3 selon la probabilité 1 - p - q .
Phase 1
La phase 1 contient 1'action qui modélise la règle 1 concernant l'ajout de m liens au réseau.
Pour fabriquer la condition d'exécution de la phase 1, nous appelons la méthode
135
L'acti on ADD LINKS sélecti onn e tous les liens potenti els qui passent le test probabili ste
donné par la méth ode probToAddTh isL i nk et parmi tous ces liens sé lectionn és, ell e en
choisit rn à aj outer au résea u.
Phase 2
La phase 2 conti ent toutes les acti ons qui modéli sent la règle 2 conce rn ant la reconn ex ion de
m li ens dans le résea u. La conditi on d' exéc uti on de cette phase suit le même principe qu e
ce lle de la ph ase 1.
L'acti on CUT_L INKS sé lecti onn e rn liens du réseau (ce ux qu e l'on dés ire reco nn ecter) et,
avant de les supprim er, marqu e le nœud de départ de chac un de ces liens en affectant la
va leur 1 à leur attribut mark.
Ensuite, l'action ADD _ L I NKS sé lecti onn e tous les liens potentiels dont le premier nœud a
so n attribut mark éga l à 1 (nœud marqué à l' act ion précédente). To us les liens ain si choisis
passe nt l'é preuve pro babiliste donn ée par la méth ode probToAddThisLink. To us les
liens qui réuss issent le test sont aj outés au résea u et l'attribut mark de leur nœud de départ
est remi s à 0 po ur qu ' un autre li en, avec ce même nœud de départ, ne so it pas choisi de
nouveau.
L' action PICK_LINKS a pour but de s'ass urer que l'attribut mark de tous les nœuds du
résea u est rem is à 0 pour la prochaine phase ou le prochain pas de temps.
Phase 3
La phase 3 contient toutes les actions qui modélisent la règle 3 concernant l' ajout, au résea u,
d' un nœud avec m liens. La cond ition d'exéc uti on de cette phase suit le même principe que
pour la phase 1.
L' action ADD_NOD ES aj oute un nœud au résea u et marque ce nœud en affectant la va leur 1 à
son attribut mark . On remarque ici qu e pour ajouter un se ul nœud , il faut que la valeur soit
légèrement plu s grande que 1 car la va leur exacte de 1 est traitée, par co nvention, comm e un e
probabilité (valeur entre 0 et 1 inclusivement) et non comme un nombre. Par co nvention,
toute valeur plus grand e que 1 est traitée com me un nombre entier et sa partie déc imale, s' il y
a li eu, se ra tronqu ée . Comme nous l' avons déjà exp liqué au chapitre 3, lorsqu 'on traite un e
probabi lité comme premier paramètre d' un e ac ti on ADD, par convention , le système crée tout
d' abord un nombre de nouvea ux nœud s éga l au nombre de nœud s déjà présents dans le
réseau. Ensuite, chaque nouveau nœud doit passer le test probabili ste donn é par ce paramètre
probabi 1iste. Dan s le cas d' un e pro ba bi 1ité éga le à 1, tous les nouvea ux nœud s passeront
l' épreuve. Ains i, dans le cas de notre acti on ADD_NODES, ce la aurait pour effet d' ajouter
au résea u un nombre de nœuds éga l au nombre de nœuds déjà présents dans le grap he, ce qui
ne correspond pas à ce qu e nous vou lons fa ire. Puisque la va leur 1.1 est traitée comme un
nom bre (par convention), sa partie déc imal e se ra tronquée et un seul nœud sera aj outé au
réseau (la valeur de l' attribut mark de ce nœud ayant préalablement été aj ustée à 1). C' est
exactement ce que nous voul ons faire ici .
L' act ion ADD_ LINKS débute en sé lectionnant tous les liens potentiels dont le nœud de
départ est marqué. Ensuite, les liens choisis passent le test probabili ste donn é par la méthode
- - - - - -- - --- -- - ·--·-
137
probToAddTh is L i n k et parmi les gagnants, on sé lecti onne final ement m liens à aj outer
au réseau .
L'action PI CK_L INKS a pour but de s' assurer qu e l'attribut mark de tous les nœuds du
réseau est remi s à O.
Maintenant que nous avons éc rit le modèle du Web en lan gage NetSim, nous pouvons le
simu ler dans NetSim. La secti on suivante commente nos rés ultats obtenus par simulati on.
Tout d' abord , nous avons co nstruit notre résea u initial avec m 0 = 6 nœud s initiaux. No us
avons alors démarré la simu lati on et la fi gure 5.3 .3. 1 montre l'évo luti on de la stru cture du
réseau à différents moments dans le temps. Da ns l' image du résea u au temps t = 600, nous
avons coloré certains nœud s de degré élevé en séparant la valeur des degrés se lon des
tranches de cinq . Étant donn é qu e le degré maximum du résea u fin al est de 43, le code des
co ul eurs des nœud s est le suivant :
Nous remarq uons déjà qu ' il y a très peu de nœuds avec un degré très élevé se situant dans les
trois premières tranches des degrés. Nous remarquons auss i que le nombre de nœuds semble
138
augmenter fortement à mesure que le degré diminue doucement. Ceci est une première
indication de la possibilité d' une distribution exponentielle des degrés.
du réseau à t = 100 (44 nœuds, 157 liens) Etat du réseau à t = 200 (69 nœud s, 157 liens)
Etat du réseau à t = 300 (98 nœuds, 449 liens) Etat du réseau à t = 400 ( 126 nœ uds, 566 liens)
139
Cependant, nous voudrions vo ir si la distributi on des degrés de notre résea u gé néré par
si mul ation suit bien un e loi de pui ssa nce de la forme p(d) =d-a où p(d) est la probabilité du
degré d et a, un paramètre variab le. Nous avons donc tracé graphiquement la distributi on
des degrés en omettant les deg rés de va leur éga le à 0 et les probabilités éga les à zéro. La
figure 5.3.3.2 montre ce graphique dan s lequel l' axe des x correspond aux degrés des nœud s
tandis que l' axe des y représe nte la probabilité de chaque degré dans le résea u. Nous
co nstatons que les points du graphique semb lent dess iner une courbe à l'a llure ex ponenti ell e.
Si la courbe de la figure 5.3.3 .2 suit un e loi de pui ssance, nous devri ons obtenir un e droite en
prenant le logarithme des val eurs en x et en y. La figure 5.3.3.3 illustre ce graphique. En
utilisant une technique de régress ion linéa ire, nou s obtenon s un e pente de régress ion dont le
coefficient de corré lation est éga l à -0 .879. Il semble que le mod èle simul é avec NetSim
produise effectivement un e structure de résea u dont la di stributi on des degrés suit assez bien
une loi de pui ssance .
• (Il
0,10
••
~ 0,08
::0
ID
•
.0
0
0,06
•• •
tl:
0,04 •
0,02 ••• • • ••• • •
• • • •
0,00 • ••••• •• • •
0 10 2.0 30 40
(}egré
Figure 5.3.3.2 Distribution des degrés du réseau généré par simulat ion au temps t = 600
L'axe des x représente les degrés des nœuds du réseau et l'axe des y, les probabilités d'occurrence de
ces degrés dans le réseau. Les points du graph ique semblent dessiner une courbe de type exponentiel.
140
-1,0
.....
0
....01
0
:;:..
-;v
':!: -1,5
:ë
til.
.a
0
li.
-2,0
F igure 5.3.3.3 Distrib ution loga ri t hm iq ue des d egrés d u résea u gé néré par simulat ion au temps t
= 600
Ce graphique illustre la di stribution logarithmique du graph ique de la figure 5.3 .3.2. L'axe de x
représente le logarithme des degrÙ des nœuds du résea u et l'axe des y, le logarithme des probabi lités
d' occurrence de ces degrés dans le résea u. Les points du graphique sembl ent dess iner un e ligne dro ite
qui ind ique que la distribution des degrés suit une loi de puissance. Le coefficient de corré lation de la
pente de régress ion est assez significatif avec une va leur de -0.879. La va leur négative du coefficient
de corré lation signifie que les données sont corrélées négativement : plus la valeur des degrés
augmente, plus la va leur des probabilités diminue.
141
5.4 Conclusion
Dans ce chapitre, nous avons traduit en langage NetS im et simulé deux modè les typ iques de
la littérature. Bien que notre ana lyse des résultats obtenus reste assez so mmaire, nous
voulions d' abord montrer qu ' une première analyse visuelle est so uvent révé latri ce des
résultats que nous sommes susceptibles d'obtenir, par la suite, avec un e analyse plu s poussée.
Dans le cas du modèle d' amitié, nou s avons obtenu des résu ltats très simil aires à ceux
obtenus par les auteurs du modèle. Le réseau généré par NetSim montrait effec ti vement la
propri été de transitivité ainsi que la formation de petites communautés très cohés ives au se in
de la structure. Ces phénomènes sont aussi des phénomènes obse rvés dans plusieurs résea ux
soc iaux rée ls.
En ce qui concerne le modèle de l' évolution de la structure du Web, nous avons obtenu ,
comme mentionné dan s la littérature, un réseau dont la di stribution des degrés se mbl e
effect ivement su ivre un e loi de pui ssance.
CHAPITRE 6
Conclusion et perspective
6. 1 Contributions
Dans ce mémoire, nous avons montré que 1'étude des réseaux par lesquels circulent
information et connaissances est pertinente dans notre société moderne et que l'investigation
de ces réseaux par modélisation et simulation est, dans certains cas, une solution appropriée :
elle permet de tester diverses hypothèses ou d'aider à en formuler d'autres quant aux
phénomènes observés dans le monde réel.
Étant donné que l'échange d'informations se fait, le plus souvent, dans le cadre de réseaux
sociaux, nous avons vu différents modèles de ce type de réseaux, tirés de la littérature et
provenant de plusieurs domaines tels que la physique, les mathématique, la psychologie, la
sociologie et l'économie. Parmi ces divers types de modèles, nous avons choisi de nous
intéresser plus particulièrement à ceux qui tentent de comprendre la structure des interactions
entre les acteurs du réseau plutôt qu'à ceux qui étudient la dynamique de ces interactions.
Cette « structure » peut dès lors être représentée sous forme de graphe et de ce fait, peut être
examinée de façon quantitative par des méthodes d'analyse se basant sur la théorie des
graphes. Nous en avons vu quelques-unes provenant de la sociologie structurale.
De plus, cette «structure», lorsque visualisée sous forme de graphe, peut déjà révéler
plusieurs informations lorsqu'elle montre certains motifs spécifiques dans 1'arrangement de
ces nœuds et de ces liens.
143
Ce pendant, la mi se en œuvre de simulations de modèles de réseaux d' inform ati on est so uvent
lente et labori euse, car celles-ci so nt so uvent programmées à partir de zéro et ne répondent
aux beso in s qu e d' un seul modèle : 1' impl émentati on est à recommencer lorsqu ' i1 s'agit de
simuler des modèles di fférents. C'est pourquoi nous avons proposé, dans ce mémoire, un e
plate-form e gé nériqu e de modéli sation de réseaux d' inform ati on et plus parti culièrement, de
réseaux soc iaux.
En nous in spirant de modèles ex istants, nous avons tout d'abord élaboré un langage de
modéli sati on qui est assez simple pour être access ible à des utili sateurs vari és et assez concis
pour être capable de spéc ifi er un modèle en peu de commandes. Un modèle exprimé dans ce
langage est fac ilement modifi able et perm et de tester rapidement di fférentes règles ou
différentes va leurs de paramètres de modèles di vers.
No us avons ensuite implémenté NetSim, un logiciel de simulati on ca pable d' interpréter notre
langage de modéli sati on et de simuler des modèles vari és tout en visuali sa nt leur évo luti on,
au co urs de la simul ati on, sous fo rm e de graphe. Étant donné l'as pect structural de ces
modèles, la visuali sati on est importante, car outre le fa it qu ' ell e nous perm et de déce ler
di ve rs motifs ou régul arités structurales significati ves, ell e permet auss i de nous apercevo ir
rapidement si le modèle simulé sembl e tendre ou non ve rs la stru cture recherchée .
Finalement, nous avons testé notre plate-form e de simulati on sur di fférents modèles
class iques de la littérature. Les rés ultats de simulations qu e nous avons obtenus sont plutôt
conva incants, car il s sont signifi cati ve ment confo rmes aux résultats obtenus par les auteurs
des di ffé rents modèles simulés.
La pl upart des trava ux tec hn iques actu els ne ti ennent pas suffi samment compte des as pects
sociaux de la communicati on et restent ainsi en deçà de leur potentiel d'utilisati on. Cet outil
de modéli sati on nous donne la possibilité de modéliser fi nement des réseaux pertin ents pour
la circulation de l'information entre individus. Cela nous semble très uti le pour le
développement, par exemple, de nouve lles app lications de communication électronique ou de
trava i1co ll aboratif par ordin ateur.
144
Pour la suite de ce proj et, nous voudrion s étendre les fonctionnalités de NetSim en y aj outant
un modul e d'analyse de réseaux. En effet, bien que la vi suali sation des réseaux so it
révélatri ce en so i, elle n'est pas suffi sante pour bien comprendre et caractéri ser les stru ctures
générées par simulation. Nous pourrions commencer par implémenter les méth odes
présentées au chapitre 2. Par exemple, pour un e étud e plus approfondie au ni veau stru ctural,
il serait intéressa nt de pouvoir partiti onner le résea u en sous-groupes cohés ifs se lon
di fférentes méth odes comme les méth odes basées sur l'access ibilité et le di amètre, sur la
réc iproc ité complète ou sur l'équivalence structurale et de pouvoir vi suali se r ces partiti ons à
l'écran. Pour un e analyse au ni veau local, nous pourri ons implémenter les méth odes de
calcul des différents pointages de centralité et de presti ge, etc. Il ex iste aussi des méth odes
stati stiqu es plu s compl exes d' analyse de résea u (Wasse rmann et Faust, 1994) qu e nous
voudri ons éventuell ement impl émenter.
De plu s, le langage de modéli sati on NetSim est, pour le moment, à un état embryo nn a ire et
nous voudri ons le déve lopper pour qu ' il pui sse modéli ser une plus grand e va ri été de résea ux
d' inform ati on. Pour ce faire, nous voudri ons d' abord améliorer les méca nismes de créati on
de fonctions. Comm e nous l'avons déj à menti onn é, pour le moment, les foncti ons se limitent
à retourn er un rés ultat numérique ou boo lée n. De plus, les foncti ons ne peuvent pas recevo ir
de paramètres. Éve ntuellement, il serait intéressant de pouvoir créer des librairies de
foncti ons défini es en langage NetSim. Chaque librairie pourrait fourni r des méth odes
spéc iali sées dans 1' étud e de phénomènes spécifiques ou de types particuli ers de réseaux
d' info rm ati on. Ell es pourraient être déve loppées sé parément par ce rtains et se charger dans
NetSim pour pouvo ir être utili sées par d' autres. Le code NetSim pourrait ainsi être réutili sé.
No us espérons que l' ébauche d' un tel langage de modéli sati on ouvrira la porte à d'autres
propos iti ons. Beauc oup de conce pts de programmati on sont déjà passés dans la prat iq ue
co urante de l' info rm at iq ue (langages numériques, langages de manipu lation de li stes,
langages orientés obj ets ... ) et nous croyons qu ' il est temps, maintenant, de se do nne r des
outil s pour modé liser les réseaux d' inform ati on.
ANNEXE A
Code généré dynamiquement des classes
d'exécution de la simulation du modèle du
réseau d'amis de Jin, Girvan et Newman
Classe SimulationContext
public SimulationContext () {
super() ;
phase = null;
phaseCounter = 0 ;
146
notifyAll () ;
catch (InterruptedException e)
System.out.println("Interrupted exception");
if (phase != null)
phase. simule();
//end synchro
//end while
suspend = true;
NetSimUtils.po pinfoMsg(null, "Normal end of this simulation!");
// end method
//e nd class
147
Classe ModelPhasel
import java.util.HashMap;
import java.util.ArrayList;
import org.netsim.network.* ;
import org.netsim.utils .*;
double [] numValues = { } ;
ArrayList processList initPi ckLinks();
ArrayList chosenLinks new ArrayList();
HashMap link sToRewire new HashMap();
boolean fail false;
boolean stop = false;
int i = 0;
ILink link;
boolean boolValue;
double doubleValue;
int counter = -1 ;
int number;
fail = false;
proce s sList . remove(i);
count e r = -1;
//end whil e
//end me thod
148
//PROBABILITY
if (!fail) {
if (!Mat hUtil s . isARandomWinningNumber(doubleVal u e))
fail = true;
}
//ASSIGNMENT
if (!fail) {
s imContro ller . setAttribut e(li n k,
" time_since_last_mee ting", 0.0);
}
//ASS IGNMENT
if (!fa il ) {
simControl l er. setAt tribu te ( link, "strength ", 1. 0) ;
fail = false;
processList.remove(i);
counter = -1;
} //end while
//end method
149
d o u b l e [) numVa lues = { } ;
Arr a yLi s t process Li st init CutL i nk s ();
ArrayLi s t c h osenLinks n ew Ar r ayList();
Has hMa p link s To Rewi r e n ew HashMap();
boo l ean fa i l fa l se;
boo l ean s t op = f alse;
i nt i = 0;
ILink l i nk ;
b oo l ean b oo l Va lu e ;
d o u b l e d o u b l eVa lue ;
int count er = -1;
in t numbe r ;
//BOOLEAN
i f ( ! fa il )
boolVa lue = si mContro ll er . ge t Attribute(l i nk, " s t rength " )
<= 0.5 ;
fail = !bool Va lu e ;
}
// ENDI NG
fa i l = fa l se ;
p r ocess Li st.remove( i );
counter = -1 ;
}//end whil e
//end met h od
150
//PROBABILITY
if ( !fail) {
if ( !MathUtils . isARandomWinningNumbe r(doubleValue))
fail = true;
}
//ENDING
if (fail)
simController.cutLink(link);
fail = false;
processList.remove(i) ;
counter = -1;
//end while
//end method
151
pickLinksO(simController);
pickLinksl(simControl ler );
cutLinks2(simController);
addLinks3(simController);
//end c l ass
ANNEXE B
Interface graphique de NetSim
, :
. '
· .:. t
Project Help
Fich,iers du !)lpe :
r - -
~1
Ir Enregistrer 111 Annuler
1
..
Project Help
Select a simulation
Simulations: ll~"""""""""""""""""""""""""""""""""""""""""""""..."'~ll r
[
'New
Projectnoles----------------------~----------,
1
Changed
Figure B.3 Écriture de notes de proj et et création d ' une nouvelle simulation
À la création d' un projet, un espace est réservé pour 1'écriture de notes à propos de ce projet. Ensuite,
pour créer une nouvelle simulation, il faut sélectionner 1'option « New » dans la liste des simulations.
S'il y avait déjà des simulations d'enregistrées dans ce projet, elles apparaîtraient dans la liste des
simulations et il serait possible de les sélectionner pour les ouvrir.
155
Simulation Help
~~~ork---------------------------------------------------------------,
bJ: Orier\ted
star't configuration: j Ex~i~~ degree distribution ,.. 1 Edit
Simulalioni--------------------------------1
Degree maK: ~ Refresh 1
Rule sé( execution: Z! J Se;quenfial
_Networok updàte: .® immediate
Degree Number of no des
Display 0
10
Nodesize le ...J 20
Node border color ! _BLACK ... 1
Figure B.4 Choix d'une configuration initiale dans les paramètres généraux de la simulation
On peut choisir une configuration pour le réseau initial de la simulation en choisissant une
configuration dans la liste des « start configuration ». Dans cet exemple, on a sélectionné la
configuration « Explicit Degree Distribution » et une autre fenêtre s'est ouverte, dans laquelle on doit
entrer les valeurs des paramètres pour cette configuration. Dans ce cas, il faut tout d'abord donner le
degré maximum de notre réseau et ensuite fournir le nombre de nœuds pour chaque degré allant de 0 à
degré maximum.
- - -- - - - - - -- - -- - - -- -- -- -- ---- ------ - - - - - - -- -,
156
.. .. .. .. - -· .. . .
' Simulation Help
1 ( Getting. storted)!î'Mj@MIEBJft!rv.jiîtrW!WlDI
Nelwork
1
0 Oriented
start configuration: 1 Explicit degree distribution ... 1 Edit
1 1
Simulation
Rule set execution: ® Sequ enti al 0 Pa rall él
Network update: ®immediate 0 Differe d
Display
Node fd l color 1LIGHT BLUE ... 1 Highlighted link color 1RED ... 1
1
Save 1
~ .. .. .. .. .. . -·
Simulation Help
DEFINE_FUNCTION (1ink, g)
1 - (1 - pO) .,. e 11'1r (- a~ numbe~_ o f_ cornmon_ co nt acts()) ;
DEFINE_FUNCTION (1ink , fi )
1 / (e ~~ (b ~ (sta~t_node().deg~ee() - z_limite)) + 1);
DEFINE_FUNCTION (1ink , fj )
1 /(e ~~ (b ~ (end_node().deg~ee() - z_1imite) ) + 1);
Figure B.6 Écriture des définitions du modèle et vérification syntaxique (avec erreurs)
C'est dans l'onglet « Définitions » que l'on écrit les définitions du modèle. Lorsqu 'on clique sur le
bouton « Verify Syntax », si nos définitions contiennent des erreurs de syntaxe, un message d'erreur
(en rouge) est affiché dans l'aire de texte du bas.
158
Simulation Help
DEFINE_FUNCTIO!V (1ink, g)
1- (1- pO) • e •• (-a • numbe r_of_common_contacts() ) ;
DEFINE_FUNCTIO!V (1ink, fj )
1 /(e •• (b • (end_node().de gree( ) - z 11m1te)) + 1);
Simulation Help
Gîîtti Rulell
ADD_LINKS(pij());
Syntax OK!
Figure B.8 Écriture des règles du modèles et vérification syntaxique (sans erreurs)
Lorsque la syntaxe de nos règles est correcte, le bouton « Save » s'active. Lorsque l'on clique sur ce
bouton, si nous avons défini une méthode Java dans les définitions, l'onglet suivant (Java Methods),
dans lequel on peut écrire notre méthode en Java, deviendra actif. S'il n' y a pas de méthode Java, le
bouton « Start » apparaît (voir figure suivante).
L__ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _____
160
Simulation Help
ADD_L I NKS(pij());
Synt.ax OK!
Albert, R.H. et Barabasi A.-L. (2000), Topology of evolving networks : local events
and universality, Physical Review Letters, vol. 85 , 5234.
Amb1ard F. (2002), Which ties to choose? A survey of social networks models for
agent-based social simulations, Proceedings of the 2002 SCS International
Conference On Artificial Intelligence, Simulation and Planning in High Autonomy
Systems, Portugal, Lisbon, avril, 253-258 .
Barabasi A. -L. , Albert R. et Jeong H. (1999), Mean-field theory for scale-free random
networks, Physica A, vol. 272, 173-187.
Borgatti S. P., Everett M. G. et Freeman L. C. (2002), UCINET 6 for Windows,
Software f or Social Network Analysis, Harvard, Analytic Technologies.
163
Jackson M. O. (200 1), The stability and efficiency of economie and social networks,
in Models of the Formation of Networks and Groups, B. Dutta and M. O. Jackson
(eds. ), Springer-Verlag, Heidelberg.
Lamy C. (2004 ), Les logiciels sociaux : des outils qui placent 1' individu au premier
plan, Bulletin SJSTech. URL : http ://www. info metre.cefrio.qc.ca/loupe/sistech/0204.asp
165
Milgram s. -(1967), The small world problem , Psycho/ogy Today, vol. 2, 60- 67.
Mutton P. (2004), Inferring and visualizing social networks on Internet relay chat,
Proc Information Visualization, IEEE Computer Society, London, UK.
Viegas F., Boyd D. , Nguyen D. , Potter J. et Donath J. (2004), Digital artifacts for
remembering and storytelling : posthi story and social network fragments ,
Proceedings of the 37th Hawaii International Conference on System Sciences,
janvier, 401 09a.
Wasserman S. et Pattison P. (1996), Logistic models and logi stic regressions for
social networks : An introduction to Markov graphs and p* , Psychometrika, vol. 61 ,
401-425 .
Wolfram S. (1986), The ory and Applications of Cellular A ut amata , World Scientist,
Singapore.