Muszę skonstruować wykres ekspandera regularnego d dla niektórych małych stałych d (jak 3 lub 4) n wierzchołków.
Jaka jest najłatwiejsza metoda na zrobienie tego w praktyce? Konstruujesz losowy wykres d-regularny, który okazał się być ekspanderem?
Czytałem także o konstrukcjach Margulis i grafach Ramanujana, które są ekspanderami i konstrukcją wykorzystującą produkt zygzakowaty. Wikipedia podaje ładny, ale bardzo krótki przegląd: http://en.wikipedia.org/wiki/Expander_graph#cite_note-10 Ale jaką metodę wybrać w praktyce?
Dla mnie te metody wydają się bardzo skomplikowane w implementacji, a szczególnie zrozumiałe i być może dość specyficzne. Czy nie istnieją łatwiejsze metody, być może oparte na permutacjach lub mniej więcej, w celu praktycznego wygenerowania sekwencji grafów d-regularnych ekspanderów?
Czy może łatwiej jest zbudować dwuczęściowe wykresy ekspanderów D-regular?
Mam też inne pytanie: co z rodzinami złych ekspanderów d-regular? Czy takie pojęcie ma sens? Czy można zbudować rodzinę grafów d-regularnych (które są oczywiście połączone), które są tak złe, jak to możliwe w sensie ekspandera?
Z góry dziękuję.
źródło
Odpowiedzi:
Jeśli nie masz nic przeciwko wykresom z pętlami własnymi, „najłatwiejsza” rodzina ekspanderów to prawdopodobnie ta, oferująca ekspandery, które są 3-regularne.
Zacznij od jakiejś liczby pierwszej i konstruuj wierzchołki o numerach od 0 do p - 1 . Dla każdego wierzchołka u ≠ 0 połączyć u do u - 1 oraz u + 1 modulo p . Również połączyć u unikalnemu wierzchołka vp 0 p−1 u≠0 u u−1 u+1 p u v tak, że .uv≡1modp
Na przykład wykres 7-wierzchołkowy w rodzinie to 7-cykl z wierzchołkami ponumerowanymi kolejno wokół cyklu; istnieją pętle własne dla , 0 i 1 ; wreszcie są akordy łączące 3 i 5 oraz 26 0 1 3 5 2 i .4
Zobacz /mathpro/124708/an-expander-graph celu dalszej dyskusji i odniesień. Istnieje wiele bardziej szczegółowych wskazówek, wyszukując hasło „expander” w CSTheory , Math.SE i MO .
Jak zauważa Yuval Filmus, losowa konstrukcja prawdopodobnie daje lepsze wyniki, ale oczywiście może nie dać ekspandera (szczególnie w przypadku małych wykresów).
źródło
Biorąc pod uwagę, że losowy wykres zwykły jest ekspanderem whp (postępuj zgodnie z odnośnikiem podanym w dokumentacji kodu MATLAB, do którego link znajduje się poniżej), kiedyś użyłem następującego:
http://www.mathworks.com/matlabcentral/fileexchange/29786-random-regular-generator/content/randRegGraph/createRandRegGraph.m
źródło