2013-01-10 14 views
7

Szukasz biblioteki, która wykrywa zachodzące na siebie społeczności w dość dużej sieci (do 10 000 węzłów) w sekundach, a nie minutach? [uwaga: przez "sieć" Znaczy wykresem]biblioteka do wykrywania nakładających się społeczności w sieci?


Odpowiadając na komentarz z prośbą o szczegóły, oto prosty przykład:

D-E-F
          |
        G
        |
ABC

Istnieje wiele algorytmów, które są zdolne do wykrycia (D, E, F, G) i (A, B, C) w 2 dwóch odległych (nie nakładają się) społeczności w tej sieci - oczywiście (D, E, F) i (A, B, C, G).

Szukam algorytmu, zaimplementowanego w Javie, który byłby w stanie wykryć (D, E, F, G) i (A, B, C, G) jako dwa zachodzące na siebie (ponieważ nakładają się na G) społeczności w tej sieci.

+0

Przydałoby się trochę więcej szczegółów. Czy możesz podać przykład małej sieci, jak definiuje się wspólnoty w takiej sieci i czego spodziewałbyś się znaleźć? – mitchus

+0

@seinecle, czy znalazłeś coś na końcu? – skyork

+0

Nie mogłem znaleźć rozwiązania – seinecle

Odpowiedz

1

Wypróbuj gephi. Wierzę, że to, co planujesz zrobić, jest już tam wdrożone. Jest to jednak open source (3 GPL) i możesz uzyskać kilka pomysłów z kodu. Opis interfejsu API Graph języka Java to here.

Również może chcesz przejrzeć this towaru

+0

gephi wykrywa * nie * nakładające się wspólnoty z Louvain algo – seinecle

+0

czy to dobrze czy źle? – aviad

+0

to nie jest ani dobre ani złe - po prostu nie jest to funkcja, której szukam. Nienakładające się społeczności oznaczają, że węzły w sieci należą do jednej lub drugiej społeczności, ale nie do kilku (społeczności są rozłączne, że tak powiem). Wiedziałem o artykule, o którym wspomniałeś! Właśnie znalazłem to: http://arxiv.org/abs/1110.5813 - ale to nie dotyczy implementacji – seinecle

2

spróbować SNAP narzędzie z Uniwersytetu Stanforda. Mają ten przypadek użycia w już zaimplementowanym katalogu przykładów.

http://snap.stanford.edu/

+0

Nie mogłem go znaleźć. Czy możesz podać dokładny link? – seinecle

+0

W folderze examples zobaczysz klik. http://snap.stanford.edu/snap/description.html mówi - kliki: Znajduje nakładające się gęste grupy węzłów w sieciach, oparte na metodzie perkolacji kliki. Jakkolwiek, nie jestem pewien, czy to w sekundę. – TechCrunch

+0

To bardzo interesujące, thx! – seinecle

0

COPRA jest algorytm nakładających społeczności realizowane w JAVA i to bardzo szybko.

http://www.cs.bris.ac.uk/~steve/networks/software/copra.html

Inne przydatne linki do nakładających klastrów (niekoniecznie napisane w Javie) są:

Mojżesza cliquecluster.org/moses

OSLOM: oslom.org/

OVERMAP : bitbucket.org/dsign/grbracket/wiki/Home

Stochastyczny model blokowy: github.com/premgopalan/svinet

Powiązane problemy