Apa yang Anda cari adalah heuristik. Tidak ada algoritma yang dapat mengatakan, diberikan grafik teman sebagai satu-satunya input, apakah dua orang yang tidak terhubung langsung adalah teman atau tidak; hubungan pertemanan / kenalan tidak dijamin transitif (kita dapat mengasumsikan simetri, tetapi itu mungkin bahkan menjadi bentangan dalam kehidupan nyata). Setiap heuristik yang baik karena itu perlu didasarkan pada pemahaman tentang bagaimana orang berinteraksi, daripada beberapa pemahaman matematis tentang sifat grafik hubungan (meskipun kita perlu mengukur heuristik dalam istilah ini).
Menyarankan teman teman dengan probabilitas yang sama adalah heuristik yang relatif murah tapi tidak akurat. Misalnya, ayah saya punya teman, tetapi saya tidak akan mengatakan saya berteman dengan mereka (walaupun saya mungkin mengatakan saya adalah teman ayah saya untuk keperluan, misalnya, jejaring sosial). Memiliki seseorang pada jarak yang relatif dekat tidak selalu membuat mereka menjadi kandidat yang hebat.
Menyarankan orang kepada siapa Anda memiliki banyak koneksi yang luas juga tampaknya merupakan pilihan yang buruk secara umum, karena ini akan cenderung mengarah pada pertumbuhan eksponensial dari teman-teman orang yang maju lebih dulu (tujuh derajat pemisahan dari permainan Kevin Bacon adalah suatu contoh dari ini).
Saya menyarankan model berbasis sirkuit. Asumsikan bahwa setiap link adalah resistor perlawanan . Maka kandidat terbaik untuk teman baru mungkin adalah individu dengan resistensi setara terendah. Berikut adalah contoh grafik ASCII yang dijalankan dengan buruk:R
_____
/ \
a---c f
| | /
b d---e
| \ |
g h i
Katakanlah kita ingin mencari teman baru a
. a
teman 's saat ini b
, c
, dan f
. Kami mengevaluasi setara perlawanan bersih antara a
dan masing-masing d
, e
, g
, h
, dan i
:
pair resistance
(a,d) 6/7
(a,e) 13/7
(a,g) 7/4
(a,h) 1/1
(a,i) inf
Menurut heuristik ini, d
adalah calon sahabat, diikuti oleh h
. g
adalah taruhan terbaik berikutnya, diikuti oleh e
. i
tidak akan pernah bisa menjadi calon teman oleh heuristik ini. Apakah Anda menemukan hasil heuristik ini untuk menjadi wakil dari interaksi sosial manusia nyata adalah yang penting. Berbicara secara komputasional, ini akan melibatkan menemukan sebuah subgraf yang berisi semua jalur antara dua individu (atau, mungkin yang menarik, beberapa pemangkasan yang dipilih secara bermakna dari ini), kemudian mengevaluasi resistensi setara antara node source dan sink.
EDIT: Jadi apa motivasi sosial saya untuk ini? Yah, ini mungkin model kasar dari seberapa sulit untuk berhubungan, dan kemudian mengomunikasikan sejumlah besar informasi yang mungkin melalui perantara (teman). Dalam istilah CS (bukan istilah fisika), ini mungkin ditafsirkan sebagai bandwidth antara dua node dalam grafik. Perluasan sistem ini akan memungkinkan berbagai jenis tautan antara orang-orang dengan bobot yang berbeda (resistensi, bandwidth, dll.) Dan melanjutkan seperti di atas.