W tym dokumencie , który dotyczy polecenia „ustaw ziarno”, ludzie Stata omawiają kwestie związane z ustawieniem nasion podczas generowania liczb pseudolosowych.
Znamienne „nie” to „nie używaj szeregowo liczb naturalnych jako nasion, ponieważ ma to wzór i zagraża pseudolosowości”.
Jedyną jedną czwartą żartobliwie godną uwagi „do” jest ustawienie tylko jednego ziarna w trakcie swojego życia , a następnie zapisanie „stanu” wygenerowanego procesu na końcu każdego eksperymentu, aby następny eksperyment był kontynuowany w punkcie gdzie proces się zatrzymał.
Oczywiście powyższa rada zależy od oczekiwanej liczby pseudolosowych liczb, które wygeneruje się w trakcie jego życia badawczego. Być może twister Mersenne zaspokoiłby potrzeby wielu naukowców na całe życie ...
Teraz nie mam dużego doświadczenia w zakresie PRNG w teorii ani w praktyce, więc nie mogę kłócić się o te sugestie - powinny zostać udowodnione, że są ważne lub nieważne na podstawie teoretycznej i twardych statystyk matematycznych.
Więc moje pytania są
1) Czy możesz pomóc w wyjaśnieniu lub unieważnieniu powyższych porad lub wskazać odniesienie do takich problemów?
2) Czy możesz podać referencje, które oferują „najlepsze praktyki” w ustawianiu nasion?
3) Jak sobie z tym radzisz we własnej pracy i dlaczego?
Powiązany wątek (choć o wiele bardziej skoncentrowany) to
Ustaw ziarno przed każdym blokiem kodu lub raz na projekt?
Mam wrażenie, że to może być wiki społeczności, mody, proszę, zdecyduj o tym.
źródło
Odpowiedzi:
Co jest warte, jest to oparte na doświadczeniu, a nie na analizie matematycznej:
Myślę, że chyba, że wykonujesz kryptografię, w której subtelne wzorce mogą być bardzo złe, ustawione ziarno nie robi różnicy, o ile korzystasz z akceptowanych dobrych PRNG, takich jak Mersenne Twister, a nie starych, takich jak liniowe generatory kongruencjalne. O ile mi wiadomo, nie ma możliwości, że można powiedzieć, jaki numer losowy wyjdzie z danego materiału siewnego bez faktycznie uruchamiania PRNG (zakładając, że jest to przyzwoity jeden), w przeciwnym razie po prostu przyjąć, że nowy algorytm i wykorzystania , które jako swoje generator liczb losowych.
Inna perspektywa: czy uważasz, że jakiekolwiek subtelne wzorce w symulacji Monte-Carlo będą prawdopodobnie miały większą wielkość niż wszystkie błędy pomiaru, pomyłki i błędy wprowadzane przez inne założenia modelowania?
Po prostu użyłbym jednego losowego materiału siewnego na początku dla odtwarzalności i nie ustawiałem jednego przed każdym wywołaniem, chyba że robię debugowanie, w którym muszę upewnić się, że dwa różne algorytmy dają ten sam wynik dla dokładnie tych samych danych wejściowych.
Uwaga: jeśli symulujesz reaktory jądrowe lub systemy kontroli rakiet lub prognozę pogody, najlepiej skonsultować się z ekspertami w tej dziedzinie, nie biorę w tym przypadku odpowiedzialności.
źródło