Nous allons reprendre l'exemple d'un petit réseau social vu en classe :
Alban, Béatrice, Charles, Déborah, Éric, Fatima, Gérald, Hélène sont inscrits sur Facebook.
- Alban est ami avec Béatrice, Déborah, Éric et Fatima.
- Béatrice est amie avec Alban, Charles, Déborah, Éric et Gérald.
- Charles est ami avec Béatrice, Déborah et Hélène.
- Déborah est amie avec Charles, Béatrice, Alban et Gérald.
- Éric est ami avec Béatrice et Alban
- Fatima, avec Alban, Gérald et Hélène.
- Gérald est ami avec Béatrice, Fatima et Hélène
- Hélène est amie avec Fatima, Gérald et Charles.
Pour modéliser cette situation nous pouvons utiliser une matrice, c'est à dire un tableau à deux dimension. En python on dira une liste de listes, c'est à dire une liste dont les éléments sont des listes. Par exemple, la liste des amis de Alban s'écrira : [0,1,0,1,1,1,0] car ses relation sont :
Alban : 0 Béatrice : 1 Charles : 0 Déborah 1 Eric : 1 Fatima :1 Gérald : 0 Hélène : 0
De même les amis de Béatrice s'écriront : [1,0,1,1,1,0,1,0] et ainsi de suite pour les autres.
Le graphe sera donc :
Cette représentation n'est pas idéale, nous verrons plus tard dans l'année un autre type de donnée en python qui permet de conserver le nom du nœud associé à sa liste, pour le moment nous nous en tiendrons à l'utilisation de listes de listes.
Nous pouvons néanmoins, sans aller plus loin à ce stade, utiliser la matrice ci-dessus en ajoutant les noms des nœuds, dans un tuple (nom,listeAmi) :