Biorąc pod uwagę rozkład stopni, jak szybko możemy zbudować wykres zgodny z danym rozkładem stopni? Szkic łącza lub algorytmu byłby dobry. Algorytm powinien zgłaszać „brak”, ponieważ nie można zbudować żadnego wykresu i dowolnego przykładu, jeśli można zbudować wiele wykresów.
algorithms
graphs
graph-theory
singhsumit
źródło
źródło
Odpowiedzi:
Jeśli masz na myśli, jak skonstruować taki prosty wykres (bez pętli własnych i bez równoległych krawędzi), być może twierdzenie Havla-Hakimi jest tym, czego szukasz. Możesz go wyszukać sam, a strona Wikipedii Stopień (teoria grafów) jest również pomocna.
źródło
Jeśli rozkład stopni podano jako listę stopni, możesz wykonać następujące czynności, podając węzłów o stopniach :n d1,...,dn
Utwórz pełny wykres na usługach. Dla każdego wierzchołka w podziel go na kopie . Podział tutaj oznacza, utwórz liczbę kopii z krawędziami do każdego wierzchołka ma krawędź do, ale bez krawędzi do innych kopii . Jeśli po prostu usuń wierzchołek. Na nowym wykresie wywołaj te wierzchołki dla .Kn n vi Kn di vi vi di=0 vij 1≤j≤di
Po zakończeniu masz bardzo gęsty wykres na wierzchołkach ; nazwać wykres . Wybierz swój ulubiony algorytm dopasowywania maksymalnej (od wykres jest tak gęsta, powinieneś wykorzystać jeden z algorytmów szybkiego mnożenia macierzy opartych) i uruchomić go na . Będzie to powrót pasujący . Jeśli dopasowanie nie jest idealne (tzn. Jeśli nie obejmuje wszystkich wierzchołków), wówczas twój rozkład stopnia był niemożliwy; więc powrót nie .N=d1+...+dn H H M
Jeśli masz idealne dopasowanie , a następnie usunąć wszystkie krawędzie nie w z , a następnie za każdy scalić dużo wierzchołków w jednym wierzchołkiem . Scalenie dwóch wierzchołków oznacza połączenie ich w jeden, tak że wynikowy wierzchołek ma krawędzie do każdego wierzchołka, do którego przynajmniej jeden oryginał miał krawędź. Wywołaj wynikowy wykres ; ma pożądany rozkład stopni.M M H 1≤i≤n di vi1,...,vidi ui G
Wynikowym środowiskiem uruchomieniowym jest gdzie jest stałą dla najszybszego algorytmu mnożenia macierzy (która w momencie pisania wynosi około ). Pod względem liczby wierzchołków na wynikowym wykresie, w najgorszym przypadku gęstego rozkładu stopni mamy .O(Nω) ω 2.373 O(n2ω)
źródło