Lo que estás buscando es una heurística. Ningún algoritmo puede decir, dado un gráfico de amigos como la única entrada, si dos individuos que no están directamente conectados son amigos o no; No se garantiza que la relación de amistad / amistad sea transitiva (podemos suponer simetría, pero eso incluso podría ser una exageración en la vida real). Por lo tanto, cualquier buena heurística deberá basarse en una comprensión de cómo interactúan las personas, en lugar de una comprensión matemática de la naturaleza de los gráficos de las relaciones (aunque tendremos que cuantificar la heurística en estos términos).
Sugerir amigos de amigos con la misma probabilidad es una heurística relativamente barata pero imprecisa. Por ejemplo, mi padre tiene amigos, pero yo no diría que soy amigo de ninguno de ellos (aunque probablemente diría que soy amigo de mi padre para, por ejemplo, una red social). Tener una persona a una distancia relativamente cercana no necesariamente lo convierte en un gran candidato.
Sugerir a las personas con las que tiene muchas conexiones extendidas también parece una mala elección en general, porque esto tenderá a llevar a un crecimiento exponencial de amigos de personas que se adelantan desde el principio (los siete grados de separación del juego de Kevin Bacon es un ejemplo de esto).
R
_____
/ \
a---c f
| | /
b d---e
| \ |
g h i
Digamos que queremos encontrar nuevos amigos para a
. a
's amigos actuales son b
, c
y f
. Se evalúa la resistencia equivalente neto entre a
y cada uno de d
, e
, g
, h
, y i
:
pair resistance
(a,d) 6/7
(a,e) 13/7
(a,g) 7/4
(a,h) 1/1
(a,i) inf
Según esta heurística, d
es el mejor amigo candidato, seguido de cerca por h
. g
es la siguiente mejor apuesta, seguida de cerca por e
. i
Nunca puede ser un candidato amigo por esta heurística. Lo importante es saber si los resultados de esta heurística son representativos de las interacciones sociales humanas reales. Hablando computacionalmente, esto implicaría encontrar una subgrafía que contenga todas las rutas entre dos individuos (o, quizás de manera interesante, un truncamiento significativamente seleccionado de esto), luego evaluar la resistencia equivalente entre los nodos fuente y sumidero.
EDITAR: Entonces, ¿cuál es mi motivación social para esto? Bueno, este podría ser un modelo aproximado de lo difícil que es ponerse en contacto y, posteriormente, comunicar posibles cantidades significativas de información a través de intermediarios (amigos). En términos de CS (en lugar de términos de física), esto podría interpretarse como ancho de banda entre dos nodos en un gráfico. Las extensiones de este sistema serían permitir diferentes tipos de enlaces entre personas con diferentes pesos (resistencia, ancho de banda, etc.) y proceder como se indica anteriormente.