Estensioni efficienti del grado di separazione

1

Sto cercando di giocare con il problema dei 6 gradi di separazione, in particolare con il gioco Kevin Bacon per trovare modi alternativi di giocare. Voglio portarlo a MapReduce, ma per ora mi sto concentrando sulla semplice vecchia Java per ottenere una solida comprensione del problema.

Fondamentalmente ho un programma funzionante in grado di calcolare il percorso più breve e il grado di separazione tra due attori, che ho implementato usando la ricerca di ampiezza sul database IMDB. Può anche calcolare il centro medio di un determinato attore (una distribuzione ponderata) come da questi due collegamenti.

I sei gradi di Kevin Bacon

Il centro dell'universo di Hollywood

Il secondo link mostra i primi 1000 "centri" di Hollywood che ho implementato letteralmente iterando su tutti gli attori, applicando BFS e poi ordinando per i centri, ma come potete immaginare con un database delle dimensioni di IMDB, questo è sloooowwww !

Questo mi porta al mio problema in quanto voglio provare altre cose come adattare il centro di ogni attore a seconda dei film in cui si trovavano e di quanti attori ci fossero in quel film. Ancora meglio sarebbe dare all'attore un centro migliore se recitassero in attori cinematografici con centri "buoni", ad es. quelli nella top 1000 lista di cui sopra. Nella mia testa, quest'ultimo avrebbe bisogno di un passaggio su ciascun attore per ottenere il loro centro e poi un altro passaggio per regolare il centro in base ai co-protagonisti di ciascun film. Potrei probabilmente mettere in gioco Dijkstra usando i centri come pesi, ma sarà comunque lento vero?

Qualcuno ha qualche approccio alternativo o dovrei rinunciare da qui in avanti e iniziare su MapReduce?

    
posta Metaman 23.06.2015 - 08:56
fonte

0 risposte

Leggi altre domande sui tag