Symulacje MC modelu Isinga jako narzedzie do testowania
Transkrypt
Symulacje MC modelu Isinga jako narzedzie do testowania
Symulacje MC modelu Isinga jako narzędzie do testowania generatorów liczb losowych Rafał Topolnicki KNF ”Migacz” Uniwersytet Wrocławski Abstrakt: Plakat przedstawia wyniki uzyskane przy symulowaniu modelu Isinga metodami MC a dokładniej algorytmem Metropolisa i Wolffa z użyciem 7 popularnych generatorów liczb pseudolosowych. Okazuje się, że używanie słabych generatorów, takich jak R250 czy minstd, prowadzi do systematycznych błędów przy symulacjach w temperaturze krytycznej. Mimo, że zalecane obecnie do użytku generatory takie jak Mersenne-Twister, ranlux czy gfsr4 przechodzą te testy bez problemu w wielu miejscach można spotkać się jeszcze z używaniem generatorów niskiej jakości (np. pakiet Office). Model Isinga Cel i metoda Model Isinga jest prostym sieciowym modelem magnetyka, w którym spiny rozmieszczone są w węzłach sieci. Każdy z spinów może przyjmować dwie wartości si = ±1. Energia dowolnego stanu jest dana poprzez Hamiltonian układu: X X H = −J si sj − B si i hi,ji Ważnymi parametrami układu jest energia wewnętrzna X E=− s i sj Celem pracy było pokazanie, że model Isinga, a w szczególności używany do jego badania algorytm Wolffa, jest cennym narzędziem do badania jakości generatorów liczb losowych. W ramach pracy przeprowadzono symulację modelu Isinga na kwadratowej sieci o boku 16 w temperaturze krytycznej. 2 Tc = √ ≈ 2, 269185314 ln(1 + 2) Dla takiego układu znaleziono teoretycznie dokładne wartości energii i ciepła właściwego na spin: hi,ji oraz ciepło właściwe na spin: kβ 2 2 2 c= hE i − hEi N Energię wewnętrzną na spin uzyskujemy dzieląc E przez ilość węzłów sieci N czyli ε = E/N Algorytmy Metropolisa i Wolffa Podstawowym modelem używanym w symulacjach MC jest algorytm Metropolisa. Jest on realizacją błądzenia przypadkowego po przestrzeni stanów, w taki sposób, że prawdopodobieństwa przebywania układu w różnych stanach są zgodne z wzorem Boltzmanna: 1. Wybierz losowy węzeł i, 2. Oblicz zmianę energii ∆E jaka powstałaby po obróceniu si, 3. Jeżeli ∆E < 0 lub r < exp(−∆E/kT ) to akceptuj zmianę, r to liczba losowa przedziału (0, 1), 4. Wróć do 1, Słabą stroną algorytmu Metropolisa jest efekt krytycznego spowolnienie. Jako, że przeprowadzamy symulację dokładnie w temperaturze krytycznej efekt ten jest niezwykle istotny. Dla temperatur T ≈ Tc układ ma tendencję do tworzenia dużych domen składających się z spinów o tej samej orientacji. Algorytmowi Metropolisa jest niezwykle trudno przewrócić taką domenę - musi bowiem to robić spin po spinie. Koszt przewrócenia spinu wewnątrz domeny wynosi 8J i Tc zachodzi z prawdopodobieństwem Pf lip = exp(−8/Tc) ≈ 0, 0294. Rozwiązanie tego problemu zostało zaproponowane przez U. Wolffa i stanowi uproszczenie tzw. algorytmu Swendsena-Wanga. Metoda polega na szukaniu całego klastra identycznie zorientowanych spinów a następnie obracaniu całości. Algorytm przebiega więc w następujący sposób: 1. Wybierz losowy węzeł sieci, 2. Przeglądaj wszystkich najbliższych sąsiadów o takim samym spinie. Dodaj ich do klastra z Padd = 1 − e−2β , 3. Krok 2 powtarzaj dla wszystkich nowo dodanych węzłów aż do wyczerpania wszystkich możliwości, 4. Obróć klaster i wróć do 1. http://www.knf.ifd.uni.wroc.pl εex = −1, 453064, cex = 1, 49872 Przeprowadzono symulację dla generatorów r250, minstd, mt19937, gfsr4, ranlxs0, ranlux, taus z biblioteki GSL oraz algorytmów Metropolisa i Wolffa. Za każdym razem uśredniano 10 wyników powstałych poprzez wykonanie 107 pomiarów. Szczegółowe parametry symulacji: Metropolis: czas termalizacji 500MCS tzn. 500L2 prób obrotu spinu, czas relaksacji 20MCS Wolff: czas termalizacji 1500L2 obrotów klastra, czas relaksacji 150 obrotów klastra Wyniki Rysunek: Porównanie rozbieżności między dokładną wartością cex i εex a wynikami symulacji. Linią ciągłą zaznaczono schematycznie poziom błędów statystycznych Błędy systematyczne uzyskane z użyciem algorytmu Metropolisa mieściły się w granicach błędu statystycznego, Algorytm Wolffa: Algorytm jest znacznie bardziej czuły na jakość generatora liczb losowych, Wyniki uzyskiwane generatorem R250 są obarczone błędem systematycznym - rozbieżność w energii na spin wynosi ponad 82 odchylenia standardowe w wypadku ciepła jest aż 247 (prawdopodobieństwo takiego błędu 10−316) Wyniki ε otrzymywane z R250 są systematycznie zaniżone, Ciekawy wynik dla ranlux - bardzo mały błąd c i spory ε, Literatura 1. A.M Ferrenberg et al., Phys. Rev. Lett. 69, 3382 (1992), 2. M. E. J. Newman, G. T. Barkema, Monte Carlo Methods in Statistical Physics, 3. Cz. Oleksy, Notatki do wykładu z Metod Symulacji http://www.wfa.uni.wroc.pl