Ce que vous recherchez est une heuristique. Aucun algorithme ne peut dire, étant donné un graphique d'amis comme seule entrée, si deux personnes non directement connectées sont des amis ou ne le sont pas; la relation d'amitié / connaissance n'est pas garantie d'être transitive (nous pouvons supposer la symétrie, mais cela pourrait même être un tronçon dans la vie réelle). Toute bonne heuristique devra donc être basée sur une compréhension de la façon dont les gens interagissent, plutôt que sur une compréhension mathématique de la nature des graphiques des relations (bien que nous devrons quantifier l'heuristique en ces termes).
Suggérer des amis d'amis avec une probabilité égale est une heuristique relativement bon marché mais inexacte. Par exemple, mon père a des amis, mais je ne dirais pas que je suis ami avec l'un d'eux (même si je dirais probablement que je suis un ami de mon père dans le but, par exemple, d'un réseau social). Avoir une personne à une distance relativement proche ne fait pas nécessairement d'elle une excellente candidate.
Suggérer des personnes à qui vous avez de nombreuses connexions étendues semble également être un mauvais choix en général, car cela entraînera une croissance exponentielle d'amis de personnes qui avancent tôt (les sept degrés de séparation d'avec le jeu de Kevin Bacon sont un exemple).
Je suggère un modèle basé sur un circuit. On suppose que chaque liaison est une résistance de la résistance . Le meilleur candidat pour un nouvel ami pourrait alors être l'individu ayant la résistance équivalente la plus faible. Voici un exemple graphique ASCII mal exécuté:R
_____
/ \
a---c f
| | /
b d---e
| \ |
g h i
Disons que nous voulons trouver de nouveaux amis pour a
. a
Les amis actuels de b
, sont c
, et f
. Nous évaluons la résistance nette équivalente entre a
et chacun d
, e
, g
, h
et i
:
pair resistance
(a,d) 6/7
(a,e) 13/7
(a,g) 7/4
(a,h) 1/1
(a,i) inf
Selon cette heuristique, d
est le meilleur ami candidat, suivi de près h
. g
est le prochain meilleur pari, suivi de près e
. i
ne peut jamais être un ami candidat par cette heuristique. Que vous trouviez les résultats de cette heuristique représentatifs des interactions sociales humaines réelles est ce qui est important. En termes de calcul, cela impliquerait de trouver un sous-graphique contenant tous les chemins entre deux individus (ou, peut-être intéressant, une troncature sélectionnée de manière significative), puis d'évaluer la résistance équivalente entre les nœuds source et récepteur.
EDIT: Alors, quelle est ma motivation sociale pour cela? Eh bien, cela pourrait être un modèle approximatif de la difficulté à entrer en contact avec, et par la suite, à communiquer des quantités potentiellement importantes d'informations par le biais d'intermédiaires (amis). En termes CS (plutôt qu'en termes physiques), cela pourrait être interprété comme une bande passante entre deux nœuds dans un graphique. Les extensions de ce système seraient de permettre différents types de liens entre des personnes avec des poids différents (résistance, bande passante, etc.) et procéder comme ci-dessus.