Calcolare il valore k-core di un grafico estraendo in modo iterativo i vertici è abbastanza semplice. Tuttavia, per la mia applicazione, mi piacerebbe essere in grado di aggiungere i vertici al grafico iniziale e ottenere il core aggiornato senza dover ricalcolare l'intero k-core da zero. Esiste un algoritmo affidabile in grado di sfruttare il lavoro svolto su iterazioni precedenti?algoritmo incrementale k-core
Per i curiosi, il k-core viene utilizzato come fase di pre-elaborazione in un algoritmo di ricerca di cricche. Qualsiasi cricca di taglia 5 è garantita come parte del 4-core di un grafico. Nel mio set di dati, il 4-core è molto più piccolo di tutto il grafico, quindi la forza bruta - forzandola da lì potrebbe essere trattabile. L'aggiunta incrementale di vertici consente all'algoritmo di lavorare il più piccolo possibile di un set di dati. La mia serie di vertici è infinita e ordinata (numeri primi), ma mi interessa solo la cricca numerata più bassa.
Edit:
Pensando ancora un po 'in base alla risposta del akappa, rilevando la creazione di un ciclo è davvero critica. Nel grafico sottostante, il 2-core è vuoto prima di aggiungere F. L'aggiunta di F non modifica il grado di A, ma aggiunge ancora A al 2-core. È facile estenderlo per vedere come chiudere un loop di qualsiasi dimensione causerebbe l'unione simultanea di tutti i vertici del 2-core.
L'aggiunta di un vertice può avere un effetto sul coreness dei vertici a una distanza arbitraria, ma forse questo si sta concentrando troppo sul comportamento del caso peggiore.