-
Data: 2012-04-02 14:58:08
Temat: Re: dalsza optymalizacja
Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2012-04-02 02:58, M.M. pisze:
>> To, co nazwałem 'złożeniem' polega na tym, że najpierw
>> losujemy jedną liczbę k ~ B(n,p), a następnie, mając
>> już k robimu losowanie liczby g z rozkąłdu g~B(k,q)
>> (poprzednio w obu losowaniach musiało być to samo p).
> No tak. Dzieląc jeden zbiór o liczności n na dwa
> podzbiory o liczności k i n-k, schodzimy rekurencyjnie
> w dół. Ale czemu za drugim razem jest B(k,q), a nie
> B(k,p)?
Bo podział między zbiory 'weszło' i 'nie weszło'
może być inny. Jak w przykładzie z 6 szufladkami,
najpierw dzielimy po 3, czyli jest 1/2 sanszy że wejdzie
do wyróżnionego zbioru, a następnie z tych 3 wybieramy jedną
więc szansa jest tylko 1/3.
>
> Np. mamy 11 szufladek i n kulek. Szufladki dzielimy
> mniej/więcej po równo, czyli na 5 i 6. Prawdopodobieństwo
> że kulka wleci do pierwszych pięciu to 5/11, a że do
> pozostałych 6/11. Czyli zmienną k losujemy z
> rozkładu B(n,5/11).
Tak.
> W ten sposób podzieliliśmy zbiór
> na dwa podzbiory o liczności k i n-k. Następnie schodzimy
> rekurencyjnie w dół dla "5 szufladek i k kulek" i "6 szufladek i
> n-k kulek". O to chodzi?
Tak. Podzieliliśmy te kulki między te zbiory tak, jakby każda
z osobna była losowana i z równym prawdopodobieństwem
lądowała w każdej z szuflad.
>> Okazuje się, że g ~ B (n,p*q)
> Hmmm nie wiem i nie wiem do czego to jest potrzebne. Chyba
> się gubię w symbolach p i q.
Masz swoje wylosowane k i 5 szuflad. Wybierasz szufladę
nr 2. Losujesz liczbę kul w tej szufladzie z rozkładu B(k,1/5)
Wzorek mówi, że liczba ta ostatecznie będzie (gdy zapomnimy o k)
z rozkładu B(n,1/5 * 5/11) = B (n,1/11)
więc jakbyś od razu losował dla tej jednej.
>> Ale ze wzorku g ~ B (50, 1/2*1/3) = B (50,1/6)
>> czyli tak, jakbyśmy od razu badali trafianie do
>> szuflady 1. Robienie tego (w ten sposób!) na raty
>> nie zmienia wyniku.
> Czyli można liczyć albo rekurencyjnie, albo iteracyjnie:
> k1 ~ B(50,1/6)
> k2 ~ B(50-k1,1/5)
> k3 ~ B(50-k1-k2,1/4)
> k4 ~ B(50-k1-k2-k3,1/3)
> k5 ~ B(50-k1-k2-k3-k4,1/2)
> k6 = 50-k1-k2-k3-k4-k5
> Jeśli B jest jakimkolwiek prawidłowym rozkładem to nie
> widzę powodu aby to mogło nie działać.
Tak, to jest właśnie pierwszy algorytm z postu.
>> n = N; //ile kulek jeszcze zostało.
>> for( i=0 ; i<M ; i++ )
>> {
>> int k = generuj_liczbę_losową_B ( n, 1.0/(M-i) );
>> x[i]+=k;
>> n-=k;
>> }
Tylko trzeba mieć poprawny generator.
Druga wersja, dzieląca na połowy, potrafi przy dużym n (w porównaniu
do liczby szuflad) zadowolić się przybliżeniem opartym o generator
normalny (jeśli chcesz rozkład 'podobny', a nie są to jakieś ścisłe
symulacje opierające poprzwność o ten rozkład:)
W sumie nie jest trudne przy takich warunkach 'naprawić'
to metodą eliminacji (jak ona się po angielsku nazywa?)
algo od początku zbudować swoją za pomocą metody 'alias'.
pzdr
bartekltg
Następne wpisy z tego wątku
- 02.04.12 15:00 bartekltg
- 02.04.12 15:22 M.M.
- 02.04.12 15:55 M.M.
- 02.04.12 16:16 bartekltg
- 02.04.12 17:11 M.M.
- 02.04.12 17:31 Michoo
- 02.04.12 18:25 bartekltg
- 02.04.12 18:30 M.M.
- 02.04.12 18:47 Michoo
- 02.04.12 18:49 M.M.
- 02.04.12 18:51 M.M.
- 02.04.12 19:25 Edek Pienkowski
- 02.04.12 10:52 Roman W
- 02.04.12 12:07 Roman W
- 03.04.12 17:30 bartekltg
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-05-20 Fiat 125p wer. pikup - w PRL moszna było, w III Reczy [pospolitej] nie moszna
- 2024-05-19 Pożar salonu z chińskimi elektrykami
- 2024-05-18 LED
- 2024-05-19 ceny nieruchomości
- 2024-05-18 Szczecin => UX/UI Designer <=
- 2024-05-18 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-18 Warszawa => Software .Net Developer <=
- 2024-05-18 Warszawa => Mid/Senior QA Engineer <=
- 2024-05-18 Ulm => Solution Architect (sichere Kommunikation und IoT-Loesungen <=
- 2024-05-18 Katowice => Head of Virtualization Platform Management and Operating S
- 2024-05-18 Warszawa => SAP WM Consultant / Execution <=
- 2024-05-18 Wrocław => Consultant/Implementer Comarch ERP XL <=
- 2024-05-18 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-05-18 Warszawa => Account Manager (Recruitment Services) <=
- 2024-05-18 Łódź => Salesperson - CRM Systems <=