eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › jeden generator liczb losowych do testowania drugiego?
Ilość wypowiedzi w tym wątku: 17

  • 11. Data: 2017-12-20 19:40:50
    Temat: Re: jeden generator liczb losowych do testowania drugiego?
    Od: "M.M." <m...@g...com>

    On Wednesday, December 20, 2017 at 8:30:32 AM UTC+1, M.M. wrote:
    > On Tuesday, December 19, 2017 at 5:11:43 AM UTC+1, bartekltg wrote:
    >
    > > [...]
    > > Weź dobry generator h i zrób z niego kiepski:
    > > Niech G daje liczbę będącą średnią dwóch odpaleń
    > > generatora h. G nie jest nawet w przybliżeniu jednorodny.
    > > A Twój test przejdzie.
    > > [...]
    >
    > Co myślisz o tym na dole? Porównałem ranlux48 z ranlux48 na innych
    > seedach. Długość roku dałem 2^20, ilość urodzin 2^12. Ilość
    > kubełków zredukowałem, jak radziłeś. Cały kod:
    >
    > https://pastebin.com/JhLN12C5
    >
    >
    > P-value wyszło 0.9999927195600541432. Może jednak taki test jest trochę
    > lepszy niż myślimy?


    MT testowany sam ze sobą raczej też nie przechodzi testu:

    test 1
    chi-dist-cum: 0.9999997015849526988

    test 2
    chi-dist-cum: 0.9999228118927154972


  • 12. Data: 2017-12-21 00:46:17
    Temat: Re: jeden generator liczb losowych do testowania drugiego?
    Od: "M.M." <m...@g...com>

    On Wednesday, December 20, 2017 at 7:40:52 PM UTC+1, M.M. wrote:
    > On Wednesday, December 20, 2017 at 8:30:32 AM UTC+1, M.M. wrote:
    > > On Tuesday, December 19, 2017 at 5:11:43 AM UTC+1, bartekltg wrote:
    > >
    > > > [...]
    > > > Weź dobry generator h i zrób z niego kiepski:
    > > > Niech G daje liczbę będącą średnią dwóch odpaleń
    > > > generatora h. G nie jest nawet w przybliżeniu jednorodny.
    > > > A Twój test przejdzie.
    > > > [...]
    > >
    > > Co myślisz o tym na dole? Porównałem ranlux48 z ranlux48 na innych
    > > seedach. Długość roku dałem 2^20, ilość urodzin 2^12. Ilość
    > > kubełków zredukowałem, jak radziłeś. Cały kod:
    > >
    > > https://pastebin.com/JhLN12C5
    > >
    > >
    > > P-value wyszło 0.9999927195600541432. Może jednak taki test jest trochę
    > > lepszy niż myślimy?
    >
    >
    > MT testowany sam ze sobą raczej też nie przechodzi testu:
    >
    > test 1
    > chi-dist-cum: 0.9999997015849526988
    >
    > test 2
    > chi-dist-cum: 0.9999228118927154972

    I generator Fibonacciego z tamtego kodu powyżej ( przypomnę:
    https://pastebin.com/JhLN12C5 ), gdy jest testowany sam ze sobą,
    też nie przechodzi testu urodzinowego. Albo mam błąd, albo to
    jest lepszy (bo trudniejszy) test niż można było się spodziewać :)
    Ale błędu raczej nie mam, bo ten sam kod generuje oba rozkłady i
    inne narzędzia dają tę samą wartość p-value. Mam prośbę, spójrzcie
    na tamten kod, może znajdziecie błędy?

    Przy założeniu, że nie mam błędu, jakie płyną z tego wnioski? Proszę,
    jeden ważny wniosek: Jeśli uruchamiacie symulację na klastrze, jeśli
    używacie nawet tak dobrych generatorów jak std::ranlux48 lub
    std::mt19937_64 i w każdym procesie/wątku liczycie to samo zadanie z
    innym seedem, to wyniki z poszczególnych wątków/procesów prawdopodobnie
    nie są niezależne :)


    Ułatwię test. Zrobię rok o długości 2^24 i dam 32 urodziny. Generatory
    powinny przejść ułatwione testy.... zobaczymy. Z jakiś czas dam wyniki.


    Pozdrawiam






  • 13. Data: 2017-12-21 09:25:53
    Temat: Re: jeden generator liczb losowych do testowania drugiego?
    Od: "M.M." <m...@g...com>

    On Thursday, December 21, 2017 at 12:46:19 AM UTC+1, M.M. wrote:
    > On Wednesday, December 20, 2017 at 7:40:52 PM UTC+1, M.M. wrote:
    > > On Wednesday, December 20, 2017 at 8:30:32 AM UTC+1, M.M. wrote:
    > > > On Tuesday, December 19, 2017 at 5:11:43 AM UTC+1, bartekltg wrote:
    > > >
    > > > > [...]
    > > > > Weź dobry generator h i zrób z niego kiepski:
    > > > > Niech G daje liczbę będącą średnią dwóch odpaleń
    > > > > generatora h. G nie jest nawet w przybliżeniu jednorodny.
    > > > > A Twój test przejdzie.
    > > > > [...]
    > > >
    > > > Co myślisz o tym na dole? Porównałem ranlux48 z ranlux48 na innych
    > > > seedach. Długość roku dałem 2^20, ilość urodzin 2^12. Ilość
    > > > kubełków zredukowałem, jak radziłeś. Cały kod:
    > > >
    > > > https://pastebin.com/JhLN12C5
    > > >
    > > >
    > > > P-value wyszło 0.9999927195600541432. Może jednak taki test jest trochę
    > > > lepszy niż myślimy?
    > >
    > >
    > > MT testowany sam ze sobą raczej też nie przechodzi testu:
    > >
    > > test 1
    > > chi-dist-cum: 0.9999997015849526988
    > >
    > > test 2
    > > chi-dist-cum: 0.9999228118927154972
    >
    > I generator Fibonacciego z tamtego kodu powyżej ( przypomnę:
    > https://pastebin.com/JhLN12C5 ), gdy jest testowany sam ze sobą,
    > też nie przechodzi testu urodzinowego. Albo mam błąd, albo to
    > jest lepszy (bo trudniejszy) test niż można było się spodziewać :)
    > Ale błędu raczej nie mam, bo ten sam kod generuje oba rozkłady i
    > inne narzędzia dają tę samą wartość p-value. Mam prośbę, spójrzcie
    > na tamten kod, może znajdziecie błędy?
    >
    > Przy założeniu, że nie mam błędu, jakie płyną z tego wnioski? Proszę,
    > jeden ważny wniosek: Jeśli uruchamiacie symulację na klastrze, jeśli
    > używacie nawet tak dobrych generatorów jak std::ranlux48 lub
    > std::mt19937_64 i w każdym procesie/wątku liczycie to samo zadanie z
    > innym seedem, to wyniki z poszczególnych wątków/procesów prawdopodobnie
    > nie są niezależne :)
    >
    >
    > Ułatwię test. Zrobię rok o długości 2^24 i dam 32 urodziny. Generatory
    > powinny przejść ułatwione testy.... zobaczymy. Z jakiś czas dam wyniki.
    >

    Generator Fibonacciego na ułatwionym teście zachował się przyzwoicie.
    P-value jest równe 0.6862016765421758663. W teście było wygenerowanych
    3E11 liczb pseudo-losowych, ponad 11 godzin obliczeń.

    Kod:
    https://pastebin.com/1huv7HP5


    Test:

    time ./frnd
    rnd seed1: 252276773
    rnd seed2: 1201639756

    --------------------------------------
    loops: 4763156481
    0 465935620 465937865 0.0108169465901
    1 2253109 2250870 2.22719259664
    2 456 450 0.08
    chi-square: 2.318009543230488209
    chi-dist: 0.1568991632651941654
    chi-dist-cum: 0.6862016765421758663
    --------------------------------------

    ^C
    real 679m37.501s
    user 679m28.800s
    sys 0m2.584s



  • 14. Data: 2017-12-21 20:33:50
    Temat: Re: jeden generator liczb losowych do testowania drugiego?
    Od: "M.M." <m...@g...com>

    On Thursday, December 21, 2017 at 9:25:55 AM UTC+1, M.M. wrote:
    > On Thursday, December 21, 2017 at 12:46:19 AM UTC+1, M.M. wrote:
    > > On Wednesday, December 20, 2017 at 7:40:52 PM UTC+1, M.M. wrote:
    > > > On Wednesday, December 20, 2017 at 8:30:32 AM UTC+1, M.M. wrote:
    > > > > On Tuesday, December 19, 2017 at 5:11:43 AM UTC+1, bartekltg wrote:
    > > > >
    > > > > > [...]
    > > > > > Weź dobry generator h i zrób z niego kiepski:
    > > > > > Niech G daje liczbę będącą średnią dwóch odpaleń
    > > > > > generatora h. G nie jest nawet w przybliżeniu jednorodny.
    > > > > > A Twój test przejdzie.
    > > > > > [...]
    > > > >
    > > > > Co myślisz o tym na dole? Porównałem ranlux48 z ranlux48 na innych
    > > > > seedach. Długość roku dałem 2^20, ilość urodzin 2^12. Ilość
    > > > > kubełków zredukowałem, jak radziłeś. Cały kod:
    > > > >
    > > > > https://pastebin.com/JhLN12C5
    > > > >
    > > > >
    > > > > P-value wyszło 0.9999927195600541432. Może jednak taki test jest trochę
    > > > > lepszy niż myślimy?
    > > >
    > > >
    > > > MT testowany sam ze sobą raczej też nie przechodzi testu:
    > > >
    > > > test 1
    > > > chi-dist-cum: 0.9999997015849526988
    > > >
    > > > test 2
    > > > chi-dist-cum: 0.9999228118927154972
    > >
    > > I generator Fibonacciego z tamtego kodu powyżej ( przypomnę:
    > > https://pastebin.com/JhLN12C5 ), gdy jest testowany sam ze sobą,
    > > też nie przechodzi testu urodzinowego. Albo mam błąd, albo to
    > > jest lepszy (bo trudniejszy) test niż można było się spodziewać :)
    > > Ale błędu raczej nie mam, bo ten sam kod generuje oba rozkłady i
    > > inne narzędzia dają tę samą wartość p-value. Mam prośbę, spójrzcie
    > > na tamten kod, może znajdziecie błędy?
    > >
    > > Przy założeniu, że nie mam błędu, jakie płyną z tego wnioski? Proszę,
    > > jeden ważny wniosek: Jeśli uruchamiacie symulację na klastrze, jeśli
    > > używacie nawet tak dobrych generatorów jak std::ranlux48 lub
    > > std::mt19937_64 i w każdym procesie/wątku liczycie to samo zadanie z
    > > innym seedem, to wyniki z poszczególnych wątków/procesów prawdopodobnie
    > > nie są niezależne :)
    > >
    > >
    > > Ułatwię test. Zrobię rok o długości 2^24 i dam 32 urodziny. Generatory
    > > powinny przejść ułatwione testy.... zobaczymy. Z jakiś czas dam wyniki.
    > >
    >
    > Generator Fibonacciego na ułatwionym teście zachował się przyzwoicie.
    > P-value jest równe 0.6862016765421758663. W teście było wygenerowanych
    > 3E11 liczb pseudo-losowych, ponad 11 godzin obliczeń.
    >
    > Kod:
    > https://pastebin.com/1huv7HP5
    >
    >
    > Test:
    >
    > time ./frnd
    > rnd seed1: 252276773
    > rnd seed2: 1201639756
    >
    > --------------------------------------
    > loops: 4763156481
    > 0 465935620 465937865 0.0108169465901
    > 1 2253109 2250870 2.22719259664
    > 2 456 450 0.08
    > chi-square: 2.318009543230488209
    > chi-dist: 0.1568991632651941654
    > chi-dist-cum: 0.6862016765421758663
    > --------------------------------------
    >
    > ^C
    > real 679m37.501s
    > user 679m28.800s
    > sys 0m2.584s

    Uproszczony test przechodzą:

    Generator std::ranlux48

    rnd seed1: 1898900298
    rnd seed2: 16827081

    loops: 141295617
    0 141229121 141228768 0.000882320236625
    1 66489 66834 1.78090492863
    2 7 15 4.26666666667
    chi-square: 6.048453915532432401
    chi-dist: 0.02429768651465504778
    chi-dist-cum: 0.9514046559756827399
    ----------------------------------------------------
    ---------------


    Generator std::mt19937_64

    rnd seed1: 1661541351
    rnd seed2: 1506358270


    loops: 4062183425
    0 4060261981 4060263019 0.000265363104547
    1 1921054 1919983 0.597422477178
    2 390 423 2.57446808511
    chi-square: 3.172155925389113521
    chi-dist: 0.1023634930368723807
    chi-dist-cum: 0.7952730205949993346


    Pozdrawiam


  • 15. Data: 2017-12-21 22:53:31
    Temat: Re: jeden generator liczb losowych do testowania drugiego?
    Od: "AK" <n...@n...net>

    Użytkownik "M.M." <m...@g...com> napisał:

    > > Wygląda na to, że std::mt19937_64 dwa testy przeszedł, jeden
    > > co prawda z p-value równym 0.9984, ale przeszedł. Liczb w
    > > obu testach było około 38mld.
    >
    > ...no i i po cholere cala Twoja robota ?

    >> W kwestii sensownosci juz mniej.
    >Może dlatego, że zaszło jakieś nieporozumienie?

    Nie tyle nieporozumienie, tylko to, ze moje uwagi byly wybitnie
    ukierunkowane pod potrzeby "pytacza" ktore sa tak proste/standardowe,
    ze nie ma sensu uzywac nic innego jak wlasnie standardowe "randomy",
    a juz zupelnie nie ma sensu tworzyc cus w assemblerze w tym ("pytacza") kontekscie.

    W kontekscie natomiast Twojego rozwiniecia tematu nie mam
    nie tylko najmniejszych zastrzezen, ale po prostu juz "grzrecznie, milcze" bo:
    1. przerastacie mnie z Bartkiem na dzis o glowe z wiedza
    (no kiedys gdy na Odrze pisalem "troche" programow symulacyjnych
    gdzie roznego rodzaju generatory - jednostajny, normalny, Poisona itp itd -
    byly u mnie "na porzadku dziennym" moglibysmy glebiej pogadac
    /choc wtedy Mersene jeszcze nie bylo/ :)
    2. Wasz watek jest naprawde interesujacy - skopiowalem kod/rozwiazania
    co mi sie zdarza juz bardzo rzadko. Wcale nie z tego powodu ze "wiem lepiej",
    ale z racji ogolnego znudzenia zawodem i "poziomem"/mialkoscia dzisiejszej
    Mlodziezy/usnetu.

    > 1) Sens generatora Fibonacciego już opisałem powyżej, czasami
    > potrzebuję ekstremalnie szybkiego generatora.

    j/w: grzecznie ,milcze :)

    > A tak poza tym, nie tak dawno, to ktoś inny, a nie ja, wywołał temat
    > szybkiego generatora liczb losowych, ja tylko trochę rozszerzyłem ;-)

    "Troche" ;) ? Heh.
    No wypada sobie zyczyc wiecej takich "troche" :)
    Porzadne metodyczne/systematyczne podejscie do tematu.
    Z mojej strony bezwarunlowy szacun :)

    PS: Co nie znaczy ze gdy ew. w innym termacie walniesz gdzies jakas glupote
    nie omieszkam zmieszac Cie z (s)firem :) / no moze az tak to nie ;)/

    AK


  • 16. Data: 2017-12-22 00:05:33
    Temat: Re: jeden generator liczb losowych do testowania drugiego?
    Od: "M.M." <m...@g...com>

    On Thursday, December 21, 2017 at 10:54:06 PM UTC+1, AK wrote:
    > Użytkownik "M.M." <m...@g...com> napisał:
    > [...]
    > j/w: grzecznie ,milcze :)
    Ok, rozumiem. Ale ja mam góra podstawową wiedzę statystyczną. Nie wiedziałem
    np. że złącza się kubełki gdy przypada mało liczb na kubełek.


    > > A tak poza tym, nie tak dawno, to ktoś inny, a nie ja, wywołał temat
    > > szybkiego generatora liczb losowych, ja tylko trochę rozszerzyłem ;-)
    >
    > "Troche" ;) ? Heh.
    No może trochę więcej niż trochę ;-) Zaniepokoiło mnie to że dobre generatory
    nie przechodzą testu urodzinowego w dieharder i pociągnąłem temat.


    > No wypada sobie zyczyc wiecej takich "troche" :)
    > Porzadne metodyczne/systematyczne podejscie do tematu.
    > Z mojej strony bezwarunlowy szacun :)
    Dzięki, ale tu nie ma nic zaawansowanego. Są trzy wzory z definicji
    na dużej precyzji. Gamę liczy biblioteka. Do tego jest jedno całkowanie
    trapezami - bardziej lamersko nie można, chyba że prostokątami ;-)
    Generator Fibonacciego z lagiem stanowi jedno dodawanie :) Ostatnia
    rzecz to procedura generująca dowolny rozkład w kubełkach - mam
    nadzieję że to jest dobra procedura robiąca test urodzinowy.
    Reszta to wyświetlanie wyników i "formatowanie kodu w c++".


    > PS: Co nie znaczy ze gdy ew. w innym termacie walniesz gdzies jakas glupote
    > nie omieszkam zmieszac Cie z (s)firem :) / no moze az tak to nie ;)/
    Ale na spokojnie też zrozumiem, albo... nie zawsze za pierwszym razem ;-)


    Pozdrawiam


  • 17. Data: 2017-12-22 09:55:00
    Temat: Re: jeden generator liczb losowych do testowania drugiego?
    Od: "AK" <n...@n...net>

    Użytkownik "M.M." <m...@g...com> napisał:

    > Użytkownik "M.M." <m...@g...com> napisał:
    > [...]
    > j/w: grzecznie ,milcze :)
    > Ok, rozumiem. Ale ja mam góra podstawową wiedzę statystyczną.

    No i co z tego? Porzadnie "zalapales" temat i mysle ze niedlugo staniesz sie
    specjalista w tej
    domenie :)

    > > A tak poza tym, nie tak dawno, to ktoś inny, a nie ja, wywołał temat
    > > szybkiego generatora liczb losowych, ja tylko trochę rozszerzyłem ;-)
    >
    >> "Troche" ;) ? Heh.
    > No może trochę więcej niż trochę ;-) Zaniepokoiło mnie to że dobre generatory
    > nie przechodzą testu urodzinowego w dieharder i pociągnąłem temat.

    Tu tez mi sie podoba, ze nie potratowales "aksjomatycznie" tzw standardow :)
    Zarowno biblioteki kompilatorow nie sa doskonale jak i inne "standardy".
    Pisza je zwykli (tacy sami) jak my ludzie.
    Bardzo czesto (ostatnio juz wylacznie:) spotykam postawe ze to co z USA to jest
    _bezwzglednie_ doskonale, a to co nasze (polskie) to z zasady beee.
    Tymczasem w dziedzinie szeroko pojetej inz.programowania akurat Europa historycznie
    ma wiekszy dorobek i nie mozna miec idiotycznych kompleksow.
    Pisze to bardzo ceniac USA (o wiele bardziej niz... Kur...rope - szczegolnie
    pragmatyzm USA)
    i.. swiadomie "zbaczam" z tematu aby kolejny raz "wlozyc kij w mrowisko"...

    >> No wypada sobie zyczyc wiecej takich "troche" :)
    >> Porzadne metodyczne/systematyczne podejscie do tematu.t
    >> Z mojej strony bezwarunlowy szacun :)
    > Dzięki, ale tu nie ma nic zaawansowanego. Są trzy wzory z definicji
    > na dużej precyzji.

    Nie o to chodzi jak zaawansowane matematycznie/merytorycznie jest zagadnienie.
    Chodzi o Twoj sposob podejscia do tematu. Nie "fanatyczny/uczuciowy" lecz
    taki stricte inzynierski/profesjonalny.
    Dzis coraz rzadszy nie tylko w usenecie lecz i w "normalnej" zawodowej
    rzeczywistosci.

    AK

strony : 1 . [ 2 ]


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: