Ricostruzione di grafici dalla distribuzione dei gradi


12

Data una distribuzione dei gradi, quanto velocemente possiamo costruire un grafico che segue la data distribuzione dei gradi? Uno schizzo di link o algoritmo sarebbe buono. L'algoritmo dovrebbe riportare un "no" in caso non sia possibile costruire un grafico e nessun esempio se è possibile costruire più grafici.


Benvenuto! Come viene data la "distribuzione dei titoli"? Come distribuzione stocastica, come elenco di gradi, ...?
Raffaello

1
Vedi l'Esercizio 2.6 qui . Viene fornito un algoritmo per la creazione di un grafico da una determinata sequenza di gradi.
utdiscante

2
Per chiarire il commento di Raffaello, quando leggo la distribuzione dei diplomi , penso a una distribuzione probabilistica sui gradi. Come menziona utdiscant, la sequenza dei gradi è probabilmente ciò che vuoi. Se intendi il senso probabilistico, probabilmente stai cercando un algoritmo di costruzione randomizzato che tenti di "approssimare" la distribuzione. Non ha molto senso per me "segnalare un no" in questa impostazione, perché penso che la maggior parte dei grafici sarà una sorta di valore anomalo?
Lucas Cook,

E se in realtà vuoi generare un grafico con una data distribuzione dei gradi, allora questo documento sembra avere il trucco. Sembra che l'algoritmo descritto nel mio precedente commento sia in realtà l'algoritmo Havel-Hakimi nella risposta di Wu Yin.
utdiscante

Risposte:


9

Se intendi come costruire un grafico così semplice (senza auto loop e senza bordi paralleli), forse il teorema di Havel-Hakimi è quello che stai cercando. Puoi cercarlo tu stesso e anche la pagina di laurea (teoria dei grafi) di wikipedia è utile.


Grazie. sì, la pagina wiki è utile in questo caso ..
singhsumit,

11

Se la distribuzione di grado è dato come un elenco di grado, allora si può fare quanto segue, dato nodi con gradi d 1 , . . . , d n :nd1,...,dn

KnnviKndivividi=0vij1jdi

N=d1+...+dnHHM

MMH1indivi1,...,vidiuiG

O(Nω)ω2.373O(n2ω)


Dalla tua (abbastanza chiara) spiegazione non è affatto chiaro il motivo per cui la moltiplicazione di matrice entra nell'equazione.
Raffaello

2
O(|V||E|)O(N2.5)H
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.