2012-10-16 11 views
7

Sarei interessato a sapere esattamente quali algoritmi D3 utilizza per ottenere la funzione del grafico di forza diretta nella libreria. Dopo aver letto Kobourov's summary della cronologia dei grafici diretti alla forza, mi sono lasciato un po 'sconcertato su quale sia l'algoritmo o il metodo esatto (combinazione di algoritmi/euristica) utilizzato nella libreria.Quali algoritmi utilizza D3.js per il grafico orientato alla forza?

D3 API reference dice che l'algoritmo Barnes-Hut viene utilizzato per calcolare le cariche che agiscono sui corpi, un'operazione O (N * log (N)). L'articolo di Kobourov menziona l'algoritmo di Quigley-Eades e l'algoritmo di Hu sono algoritmi multilivello che fanno uso di Barnes-Hut. Uno di questi è utilizzato in qualche modo in D3?

Il wiki wiki futher afferma che l'integrazione Verlet viene utilizzata per il posizionamento delle particelle. Lo source code menziona l'algoritmo di Gauss-Seidel, che a sua volta è menzionato sia in Hu's algorithm sia in Dwyer's graph layout paper. Credo che la domanda a cui sto cercando una risposta sia l'algoritmo "integrativo" D3; L'articolo di Kobourov elenca diverse caratteristiche di D3 e la forza diretta non sembra corrispondere a nessuna di quelle.

+1

Ora che è una domanda! +1 – Ridcully

+0

È meglio inviare questa domanda a Mike Bostock ... – akuhn

+0

@akuhn: Non ho visto l'email del creatore sul sito D3. Non sarebbe opportuno inviare per posta elettronica tali domande direttamente a lui, quindi tutti nella comunità lo farebbero semplicemente. Ho visto Mike rispondere alle domande qui su SO quindi penso che questo sia il forum giusto da chiedere. – amergin

risposta

3

Nell'originale d3 paper, Mike Bostock & al. ha scritto che l'implementazione di Dwyer viene utilizzata per il layout del grafico della forza:

Il layout della forza combina la simulazione fisica e il rilassamento del vincolo iterativo [7] per un layout grafico stabile.

[7] T. Dwyer. Layout grafico vincolato scalabile, versatile e semplice. In EuroVis, 2009.

Per ulteriori informazioni, Dwyer's paper descrive in dettaglio l'intero algoritmo.

Problemi correlati