eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › testowanie generatorów liczb losowych (kontynuacja)
Ilość wypowiedzi w tym wątku: 23

  • 1. Data: 2016-10-06 22:42:49
    Temat: testowanie generatorów liczb losowych (kontynuacja)
    Od: "M.M." <m...@g...com>

    Trudno uwierzyć, ale widać czarno na białym, że mt19937_1998
    wg diehardera nie przechodzi testu birthdays. dieharder ma
    problem, MT, ja coś źle robię?



    time dieharder -d 0 -g 15 -m 1000
    #===================================================
    ==========================#
    # dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
    #===================================================
    ==========================#
    rng_name |rands/second| Seed |
    mt19937_1998| 1.12e+07 | 502159522|
    #===================================================
    ==========================#
    test_name |ntup| tsamples |psamples| p-value |Assessment
    #===================================================
    ==========================#
    diehard_birthdays| 0| 100| 100000|0.00000458| WEAK

    real 31m42.178s
    user 31m31.855s
    sys 0m6.840s



    time dieharder -d 0 -g 15 -m 5000
    #===================================================
    ==========================#
    # dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
    #===================================================
    ==========================#
    rng_name |rands/second| Seed |
    mt19937_1998| 4.32e+06 |2158334279|
    #===================================================
    ==========================#
    test_name |ntup| tsamples |psamples| p-value |Assessment
    #===================================================
    ==========================#
    diehard_birthdays| 0| 100| 100000|0.00000000| FAILED

    real 39m10.705s
    user 39m3.746s
    sys 0m4.479s


  • 2. Data: 2016-10-07 02:00:06
    Temat: Re: testowanie generatorów liczb losowych (kontynuacja)
    Od: Borneq <b...@a...hidden.pl>

    W dniu 06.10.2016 o 22:42, M.M. pisze:
    > Trudno uwierzyć, ale widać czarno na białym, że mt19937_1998
    > wg diehardera nie przechodzi testu birthdays. dieharder ma
    > problem, MT, ja coś źle robię?
    >
    >
    >
    > time dieharder -d 0 -g 15 -m 1000

    -m 1000 oznacza poważniejszy test?
    bez tego parametru szybko się wykonuje i przechodzi test


  • 3. Data: 2016-10-07 02:12:41
    Temat: Re: testowanie generatorów liczb losowych (kontynuacja)
    Od: "M.M." <m...@g...com>

    On Friday, October 7, 2016 at 2:00:06 AM UTC+2, Borneq wrote:
    > W dniu 06.10.2016 o 22:42, M.M. pisze:
    > > Trudno uwierzyć, ale widać czarno na białym, że mt19937_1998
    > > wg diehardera nie przechodzi testu birthdays. dieharder ma
    > > problem, MT, ja coś źle robię?
    > >
    > >
    > >
    > > time dieharder -d 0 -g 15 -m 1000
    >
    > -m 1000 oznacza poważniejszy test?
    > bez tego parametru szybko się wykonuje i przechodzi test

    Bartek pisał co to oznacza. Cytuję z pamięci: 'dieharder idzie
    jeszcze dalej, wykonuje serię m testów i dla całej serii liczy
    x-kwadrat'. Bazowa wartość to (z tego co widzę) zazwyczaj 100.
    Gdy da się 1000, to ilość wynosi 100x1000=100tys - co potwierdza
    taka sama wartość w kolumnie psamples.

    Generator MT słynął z bardzo dużej równomierności, dlaczego w
    tak długim teście daje wartość rzędu zero na osmy miejscu po
    przecinku ?

    Coś nie tak z moim systemem? U Ciebie nie ma problemów?

    Pozdrawiam


  • 4. Data: 2016-10-07 02:23:26
    Temat: Re: testowanie generatorów liczb losowych (kontynuacja)
    Od: Borneq <b...@a...hidden.pl>

    W dniu 07.10.2016 o 02:12, M.M. pisze:
    > Generator MT słynął z bardzo dużej równomierności, dlaczego w
    > tak długim teście daje wartość rzędu zero na osmy miejscu po
    > przecinku ?
    >
    > Coś nie tak z moim systemem? U Ciebie nie ma problemów?

    Nie wykonywałem na razie tak długiego testu. Dla plików binarnych było
    odwrotnie - gdy miał tak z 10 MB, brał go kilkakrotnie i test był
    failed. Dopiero kilkaset mega było dobre. Tutaj nie wiem - 100 tys
    testów, ale czy w kółko z tymi samymi liczbami pseudolosowymi? czy też
    generuje ich 1000 razy większą ilość niż dla standardowych testów?


  • 5. Data: 2016-10-07 02:29:39
    Temat: Re: testowanie generatorów liczb losowych (kontynuacja)
    Od: "M.M." <m...@g...com>

    On Friday, October 7, 2016 at 2:23:25 AM UTC+2, Borneq wrote:
    > W dniu 07.10.2016 o 02:12, M.M. pisze:
    > > Generator MT słynął z bardzo dużej równomierności, dlaczego w
    > > tak długim teście daje wartość rzędu zero na osmy miejscu po
    > > przecinku ?
    > >
    > > Coś nie tak z moim systemem? U Ciebie nie ma problemów?
    >
    > Nie wykonywałem na razie tak długiego testu.
    To tylko 30-40 minut czasu. Mogę mieć do Ciebie prośbę, abyś uruchomił
    te same polecenia co wkleiłem? Na razie z dowolnym seedem.


    > Dla plików binarnych było odwrotnie - gdy miał tak z 10 MB, brał
    > go kilkakrotnie i test był failed.
    Hmmm zapętlenie jest tożsame z krótszym okresem, gdy test pobiera
    dużo liczb, to zapętlenie może właśnie powodować failed.


    > Dopiero kilkaset mega było dobre.
    Zgodnie z intuicją.


    > Tutaj nie wiem - 100 tys
    > testów, ale czy w kółko z tymi samymi liczbami pseudolosowymi? czy też
    > generuje ich 1000 razy większą ilość niż dla standardowych testów?
    TO polecenie które wpisałem generuje na bieżąco nowe liczby, niczego nie
    zapętla, nic nie bierze z pliku - o ile wszystko rozumiem.


    Mój generator (chyba) nie ma problemów z tym testem:

    time ./rnd | dieharder -d 0 -g 200 -m 10
    #===================================================
    ==========================#
    # dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
    #===================================================
    ==========================#
    rng_name |rands/second| Seed |
    stdin_input_raw| 2.66e+07 |1251621916|
    #===================================================
    ==========================#
    test_name |ntup| tsamples |psamples| p-value |Assessment
    #===================================================
    ==========================#
    diehard_birthdays| 0| 100| 1000|0.21655610| PASSED

    real 0m21.593s
    user 0m24.910s
    sys 0m0.762s


    time ./rnd | dieharder -d 0 -g 200 -m 100
    #===================================================
    ==========================#
    # dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
    #===================================================
    ==========================#
    rng_name |rands/second| Seed |
    stdin_input_raw| 2.53e+07 |1344337559|
    #===================================================
    ==========================#
    test_name |ntup| tsamples |psamples| p-value |Assessment
    #===================================================
    ==========================#
    diehard_birthdays| 0| 100| 10000|0.58211684| PASSED

    real 3m40.354s
    user 4m11.789s
    sys 0m8.076s


    Dla m=1000 dam za chwilę.

    Pozdrawiam


  • 6. Data: 2016-10-07 02:58:28
    Temat: Re: testowanie generatorów liczb losowych (kontynuacja)
    Od: bartekltg <b...@g...com>

    On 06.10.2016 22:42, M.M. wrote:
    > Trudno uwierzyć, ale widać czarno na białym, że mt19937_1998
    > wg diehardera nie przechodzi testu birthdays. dieharder ma
    > problem, MT, ja coś źle robię?
    >
    >
    >
    > time dieharder -d 0 -g 15 -m 1000
    > #===================================================
    ==========================#
    > # dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
    > #===================================================
    ==========================#
    > rng_name |rands/second| Seed |
    > mt19937_1998| 1.12e+07 | 502159522|
    > #===================================================
    ==========================#
    > test_name |ntup| tsamples |psamples| p-value |Assessment
    > #===================================================
    ==========================#
    > diehard_birthdays| 0| 100| 100000|0.00000458| WEAK
    >
    > real 31m42.178s
    > user 31m31.855s
    > sys 0m6.840s
    >
    >
    >
    > time dieharder -d 0 -g 15 -m 5000
    > #===================================================
    ==========================#
    > # dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
    > #===================================================
    ==========================#
    > rng_name |rands/second| Seed |
    > mt19937_1998| 4.32e+06 |2158334279|
    > #===================================================
    ==========================#
    > test_name |ntup| tsamples |psamples| p-value |Assessment
    > #===================================================
    ==========================#
    > diehard_birthdays| 0| 100| 100000|0.00000000| FAILED
    >
    > real 39m10.705s
    > user 39m3.746s
    > sys 0m4.479s
    >

    Jedna sptawa, to ta flaga:

    -k ks_flag - ks_flag

    0 is fast but slightly sloppy for psamples > 4999 (default).
    //A Ty yżywasz p=100 000
    ...

    2 is very slow and accurate to machine precision.
    ...


    Druga opcja, którą mozęsz się zainteresować to testowanie do upadłego,
    zwłąszczą uwagami. To nie musi być problem generatora, ale może być i
    testu, bo niekoniecznie są one numerycznie stabilne z wystarczającą
    dokłądnośćią, a nieraz i ich teoretyczny rozkład jest dla wersji
    asymptotycznej (hmm, w sumie wtedy może zwiększenie -t ).


    -Y Xtrategy - the Xtrategy flag controls the new 'test to failure' (T2F)
    modes. These flags and their modes act as follows:
    ...
    2 - 'test to destruction' (T2D) mode. Sometimes you just want to know
    where or if a generator will .I ever fail a test (or test series).
    -Y 2
    causes psamples to be added 100 at a time until a test returns an
    overall pvalue lower than the failure threshold or a specified maximum
    number of psamples (see -P) is reached.

    Note well! In this mode one may well fail due to the alternate
    null hypothesis -- the test itself is a bad test and fails! Many
    dieharder tests, despite our best efforts, are numerically unstable or
    have only approximately known target statistics or are straight up
    asymptotic results, and will eventually return a failing result
    even for
    a gold-standard generator (such as AES), or for the hypercautious the
    XOR generator with AES, threefish, kiss, all loaded at once and xor'd
    together. It is therefore safest to use this mode comparatively,
    executing a T2D run on AES to get an idea of the test failure
    threshold(s) (something I will eventually do and publish on the web so
    everybody doesn't have to do it independently) and then running it on
    your target generator. Failure with numbers of psamples within an
    order
    of magnitude of the AES thresholds should probably be considered
    possible test failures, not generator failures. Failures at levels
    significantly less than the known gold standard generator failure
    thresholds are, of course, probably failures of the generator.

    This option should only be used with -k 2.


    MT nie jest też generatorem idealnym.


    W dokumentacji, chyba nie ma online, jest w paczce w
    .../dieharder-3.31.1/manual/ jako TeX (trzeba skompilować)
    Jest tam rozdział o bracei tego generatora
    7.0.1 A Good Generator: mt19937 1999
    I po nastu stronach wyników jest omówienie. Czego nie przechodzi,
    co przechodzi. I ejst tam też to:

    We then begin on the Diehard tests. The test passes the birthday test,
    but examining
    the distribution produced we can see that the pass is a bit "marginal",
    in the sense that
    p isn't terribly uniformly distributed. When this happens, one may want
    to rerun the
    particular test a few times to see if the features in the histogram vary
    or are systematic.
    Alternatively, rerunning it with a larger value of KS samples with e.g.
    -p 1000 or more
    may push it into unambiguous failure and in fact it does. This is a
    marginal result,
    and a sample of random numbers far smaller than what would be used in
    any numerical
    simulation will unambiguously fail the Diehard birthdays test.


    Zawalenie _już_ przy -p 1000 jest przewidywane (choć ten tekst jak i
    cała ksiazeczka jest niewiele zmieniana od wielu wersji, może coś
    poprawili w kodzie).
    O co chodzi w ostatneim, wydaje się najważniejszym, zdaniu,
    nie mam pojęćia.

    Dokręciły się testy:
    time dieharder -d 0 -g 15 -m 1000
    #===================================================
    ==========================#
    # dieharder version 3.31.1 Copyright 2003 Robert G. Brown
    #
    #===================================================
    ==========================#
    rng_name |rands/second| Seed |
    mt19937_1998| 1.68e+07 |2613656395|
    #===================================================
    ==========================#
    test_name |ntup| tsamples |psamples| p-value |Assessment
    #===================================================
    ==========================#
    diehard_birthdays| 0| 100| 100000|0.00006613| WEAK

    real 22m53.588s
    user 22m48.928s
    sys 0m0.884s

    time dieharder -d 0 -g 15 -m 1000 -k 2
    #===================================================
    ==========================#
    # dieharder version 3.31.1 Copyright 2003 Robert G. Brown
    #
    #===================================================
    ==========================#
    rng_name |rands/second| Seed |
    mt19937_1998| 1.71e+07 |3645920823|
    #===================================================
    ==========================#
    test_name |ntup| tsamples |psamples| p-value |Assessment
    #===================================================
    ==========================#
    diehard_birthdays| 0| 100| 100000|0.00000002| FAILED

    real 39m30.472s
    user 39m14.048s
    sys 0m5.244s

    time dieharder -d 0 -g 15 -m 5000 -k 2
    #===================================================
    ==========================#
    # dieharder version 3.31.1 Copyright 2003 Robert G. Brown
    #
    #===================================================
    ==========================#
    rng_name |rands/second| Seed |
    mt19937_1998| 6.62e+06 |2144839991|
    #===================================================
    ==========================#
    test_name |ntup| tsamples |psamples| p-value |Assessment
    #===================================================
    ==========================#
    diehard_birthdays| 0| 100| 100000|0.00000012| FAILED

    real 42m33.697s
    user 42m25.048s
    sys 0m4.516s


    Za poradą z pdfa, ten sam test, twardszy generator,
    chyba jednak to już wina testu/implementacji

    time dieharder -d 0 -g 205 -m 1000 -k 2
    #===================================================
    ==========================#
    # dieharder version 3.31.1 Copyright 2003 Robert G. Brown
    #
    #===================================================
    ==========================#
    rng_name |rands/second| Seed |
    AES_OFB| 5.17e+06 |3983713961|
    #===================================================
    ==========================#
    test_name |ntup| tsamples |psamples| p-value |Assessment
    #===================================================
    ==========================#
    diehard_birthdays| 0| 100| 100000|0.00003436| WEAK

    real 34m53.133s
    user 34m47.464s
    sys 0m4.556s



    time dieharder -d 0 -g 205 -m 5000 -k 2
    #===================================================
    ==========================#
    # dieharder version 3.31.1 Copyright 2003 Robert G. Brown
    #
    #===================================================
    ==========================#
    rng_name |rands/second| Seed |
    AES_OFB| 1.98e+06 | 373043125|
    #===================================================
    ==========================#
    test_name |ntup| tsamples |psamples| p-value |Assessment
    #===================================================
    ==========================#
    diehard_birthdays| 0| 100| 100000|0.00000176| WEAK

    real 56m56.810s
    user 56m31.972s
    sys 0m22.432s

    pzdr
    bartekltg




  • 7. Data: 2016-10-07 03:18:52
    Temat: Re: testowanie generatorów liczb losowych (kontynuacja)
    Od: "M.M." <m...@g...com>

    On Friday, October 7, 2016 at 2:58:29 AM UTC+2, bartekltg wrote:

    > [...]
    > Za poradą z pdfa, ten sam test, twardszy generator,
    > chyba jednak to już wina testu/implementacji
    > [...]

    Nom. Chwilowo mnie też przekonuje, że jakiś problem leży
    po stronie testu i/albo implementacji. Dzięki za testy i
    odpowiedź. Pozdrawiam.


    Mój też 'zawala' na m=1000
    time ./rnd | dieharder -d 0 -g 200 -m 1000
    #===================================================
    ==========================#
    # dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
    #===================================================
    ==========================#
    rng_name |rands/second| Seed |
    stdin_input_raw| 3.65e+06 |2134646726|
    #===================================================
    ==========================#
    test_name |ntup| tsamples |psamples| p-value |Assessment
    #===================================================
    ==========================#
    diehard_birthdays| 0| 100| 100000|0.00000027| FAILED

    real 36m14.389s
    user 41m39.106s
    sys 1m18.097s



  • 8. Data: 2016-10-07 15:00:20
    Temat: Re: testowanie generatorów liczb losowych (kontynuacja)
    Od: Borneq <b...@a...hidden.pl>

    W dniu 07.10.2016 o 02:29, M.M. pisze:
    > To tylko 30-40 minut czasu. Mogę mieć do Ciebie prośbę, abyś uruchomił
    > te same polecenia co wkleiłem? Na razie z dowolnym seedem.

    Właśnie uruchomiłem


  • 9. Data: 2016-10-07 15:20:50
    Temat: Re: testowanie generatorów liczb losowych (kontynuacja)
    Od: "M.M." <m...@g...com>

    On Friday, October 7, 2016 at 3:00:18 PM UTC+2, Borneq wrote:
    > W dniu 07.10.2016 o 02:29, M.M. pisze:
    > > To tylko 30-40 minut czasu. Mogę mieć do Ciebie prośbę, abyś uruchomił
    > > te same polecenia co wkleiłem? Na razie z dowolnym seedem.
    >
    > Właśnie uruchomiłem

    U Bartka też nie przeszło, więc to nie jest problem z moim systemem.
    Ale zobaczymy, może u Ciebie przejdzie testy.

    Nawiasem mówiąc, dostrzegam teraz zalety prostszej metody
    testowania, typu policz znaną całkę i porównaj wartość do
    wartości oczekiwanej. Liczenie x-kwadrat dla milionów punktów
    swobody pewnie trzeba na bignumie zaimplementować.

    Pozdrawiam


  • 10. Data: 2016-10-07 16:39:45
    Temat: Re: testowanie generatorów liczb losowych (kontynuacja)
    Od: bartekltg <b...@g...com>

    On Friday, October 7, 2016 at 3:20:51 PM UTC+2, M.M. wrote:
    > On Friday, October 7, 2016 at 3:00:18 PM UTC+2, Borneq wrote:
    > > W dniu 07.10.2016 o 02:29, M.M. pisze:
    > > > To tylko 30-40 minut czasu. Mogę mieć do Ciebie prośbę, abyś uruchomił
    > > > te same polecenia co wkleiłem? Na razie z dowolnym seedem.
    > >
    > > Właśnie uruchomiłem
    >
    > U Bartka też nie przeszło, więc to nie jest problem z moim systemem.
    > Ale zobaczymy, może u Ciebie przejdzie testy.
    >
    > Nawiasem mówiąc, dostrzegam teraz zalety prostszej metody
    > testowania, typu policz znaną całkę i porównaj wartość do
    > wartości oczekiwanej. Liczenie x-kwadrat dla milionów punktów
    > swobody pewnie trzeba na bignumie zaimplementować.


    Ale chyba niejest to szczególnie mocna metoda.

    Ciągi quasilosowe zaliczają ją lepiej niż losowe ;-)


    pzdr
    bartekltg

strony : [ 1 ] . 2 . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: