LinkedIn ma tę fajną funkcję, dzięki której odwiedzając profil użytkownika, LinkedIn podpowiada w jaki sposób łączysz się z tym użytkownikiem za pośrednictwem sieci.Wydajny sposób wdrożenia LinkedIn w stylu "Jak masz połączenie z"?
Zakładając, że użytkownik i właściciel profilu są dwoma węzłami wykresu, na którym węzły reprezentują użytkowników, a krawędź przedstawia przyjaźń, prostym rozwiązaniem może być bfs, zaczynając od obu węzłów do pewnego poziomu i sprawdzając, czy są jakieś skrzyżowania. Skrzyżowania będą węzłami sieciowymi.
Chociaż brzmi to zgrabnie, problemem jest to, że w celu ustalenia przyjaciół każdej osoby potrzebne jest osobne zapytanie DB. Gdy sieć zajmie więcej niż 2 poziomy, będzie to bardzo czasochłonny algorytm. Czy istnieje skuteczniejsza alternatywa? Jeśli nie, jak możemy ulepszyć obsługę sprzętu (przetwarzanie równoległe, sieci, rozproszona baza danych itp.), Aby zmniejszyć czas potrzebny na obliczenia?
Musiałem usunąć obraz z twojego postu, ponieważ ImageShack usunął go i zastąpił go reklamą. Więcej informacji można znaleźć na stronie http://meta.stackexchange.com/q/263771/215468. Jeśli to możliwe, dobrze byłoby ponownie je przesłać. Dzięki! – Undo