Discussion:
Oczekiwana długość cyklu w losowym zbiorze
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
osobliwy nick
2021-09-30 15:11:20 UTC
Permalink
Wiemy, że oczekiwania długość cyklu w losowej permutacji o wielkości n wynosi (n+1)/2:

https://en.wikipedia.org/wiki/Random_permutation_statistics#Expected_cycle_size_of_a_random_element

Rozważmy jednak zbiór 2^n elementowy liczb n-bitowych. W takim zbiorze liczby mogą się powtarzać. Przykładowo tworzymy zbiór 1024 elementowy losując liczby z przedziału od 0 do 1023. Następnie przyporządkowujemy liczbom liczby porządkowe (załóżmy, że również od zera do 1023).

Teraz możemy poszukać cykli, jak w typowej permutacji. Niektóre liczby będą wpadać w cykle, niektóre będą elementami cykli. Może podam jeszcze mały przykład:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
29 59 62 14 58 29 1 42 0 53 41 63 53 56 48 27 45 26 32 7 0 2 53 63 56 63 28 62 3 7 4 48 35 63 15 28 26 8 7 7 31 0 62 35 33 18 14 17 2 58 35 60 48 45 54 52 61 3 14 20 63 31 17 63

Zaczynając od 29 otrzymujemy:

29 -> 7 -> 42 -> 62 -> 17 -> 26 -> 28 -> 3 -> 14 -> 48 -> 2 -> 62

Kończymy zatem z cyklem o długości 8. Nie wiem, czy akurat w tym zbiorze jest więcej cykli, ani jaka jest średnia długość cyklu.

1. Jaka jest oczekiwania długość cyklu w czymś takim?
2. Jaka jest oczekiwana liczba kroków, po których losowa liczba wpadnie w cykl?
3. Jakie jest prawdopodobieństwo, że dostaniemy jakiś krótki cykl o długości m, zaczynając od losowego elementu (m < 2^n)?

Wstępnie udało mi się ustalić, że liczba unikalnych liczb w takim zbiorze wynosi prawdopodobnie około:

w = 1-1/e * 2^n

Możemy zatem rozpatrywać pary liczb od 0 do w (liczba porządkowa plus liczba ze zbioru), bez powtórzeń. Pytanie jaka jest oczekiwania długość cyklu w czymś takim? Na pewno mniejsza niż oczekiwana długość cyklu w losowej permutacji o liczbie elementów w, bo tutaj mamy tylko w par, ale wylosowanych z przedziału większego niż w.
osobliwy nick
2021-10-01 12:00:41 UTC
Permalink
Z tego co poczytałem to:

https://math.stackexchange.com/questions/2849169/expected-number-of-cycles-in-random-function

Być może oczekiwania długość cyklu to będzie pierwiastek z długości cyklu z typowej permutacji, czyli:

((n+1)/2)^0,5

Choć niewiele rozumiem z tamtego wątku i nie umiem uzasadnić tego wyniku. Koreluje to z moimi eksperymentalnymi wynikami, choć regularnie dostaję nieco niższe długości cykli, prawdopodobnie ze względu na niedoskonałości generatora PRNG, którym się posługuję.
osobliwy nick
2021-10-02 18:32:57 UTC
Permalink
Wydaje mi się, że problem może być analogiczny do random mapping albo być dokładnie tym samym problemem. Nie mogę znaleźć dobrej definicji random mapping. W każdym razie tutaj Mellisa O'Neil wymienia statystyki, które mnie interesują:

https://www.pcg-random.org/posts/too-big-to-fail.html

Wygląda na to, że oczekiwana długość cyklu wynosi (PI*N/8)^0,5, co zgadza się z moimi eksperymentami. Path length to reach cycle również wydaje się być tego rzędu (choć to trudniej mi zmierzyć i nie mierzyłem tego tak dokładnie).
J.F
2021-10-04 10:32:46 UTC
Permalink
Post by osobliwy nick
https://en.wikipedia.org/wiki/Random_permutation_statistics#Expected_cycle_size_of_a_random_element
Rozważmy jednak zbiór 2^n elementowy liczb n-bitowych. W takim zbiorze liczby mogą się powtarzać. Przykładowo tworzymy zbiór 1024 elementowy losując liczby z przedziału od 0 do 1023. Następnie przyporządkowujemy liczbom liczby porządkowe (załóżmy, że również od zera do 1023).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
29 59 62 14 58 29 1 42 0 53 41 63 53 56 48 27 45 26 32 7 0 2 53 63 56 63 28 62 3 7 4 48 35 63 15 28 26 8 7 7 31 0 62 35 33 18 14 17 2 58 35 60 48 45 54 52 61 3 14 20 63 31 17 63
29 -> 7 -> 42 -> 62 -> 17 -> 26 -> 28 -> 3 -> 14 -> 48 -> 2 -> 62
Kończymy zatem z cyklem o długości 8. Nie wiem, czy akurat w tym zbiorze jest więcej cykli, ani jaka jest średnia długość cyklu.
1. Jaka jest oczekiwania długość cyklu w czymś takim?
Hm, czy ja sie myle, czy gdyby numerki w zbiorze byly unikalne, to
kazdy nalezalby do jakiegos cyklu ?

Dlugosc cyklu ... 1 jest malo prawdopodobny, bardzo dlugi ... chyba
tez, ciekawe gdzie sie ustala maksimum.

Ale przy braku unikalnosci wszystko sie zmienia.
Post by osobliwy nick
2. Jaka jest oczekiwana liczba kroków, po których losowa liczba wpadnie w cykl?
3. Jakie jest prawdopodobieństwo, że dostaniemy jakiś krótki cykl o długości m, zaczynając od losowego elementu (m < 2^n)?
w = 1-1/e * 2^n
Możemy zatem rozpatrywać pary liczb od 0 do w (liczba porządkowa plus liczba ze zbioru), bez powtórzeń. Pytanie jaka jest oczekiwania długość cyklu w czymś takim? Na pewno mniejsza niż oczekiwana długość cyklu w losowej permutacji o liczbie elementów w, bo tutaj mamy tylko w par, ale wylosowanych z przedziału większego niż w.
J.
osobliwy nick
2021-11-15 23:45:27 UTC
Permalink
Post by J.F
Post by osobliwy nick
https://en.wikipedia.org/wiki/Random_permutation_statistics#Expected_cycle_size_of_a_random_element
Rozważmy jednak zbiór 2^n elementowy liczb n-bitowych. W takim zbiorze liczby mogą się powtarzać. Przykładowo tworzymy zbiór 1024 elementowy losując liczby z przedziału od 0 do 1023. Następnie przyporządkowujemy liczbom liczby porządkowe (załóżmy, że również od zera do 1023).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
29 59 62 14 58 29 1 42 0 53 41 63 53 56 48 27 45 26 32 7 0 2 53 63 56 63 28 62 3 7 4 48 35 63 15 28 26 8 7 7 31 0 62 35 33 18 14 17 2 58 35 60 48 45 54 52 61 3 14 20 63 31 17 63
29 -> 7 -> 42 -> 62 -> 17 -> 26 -> 28 -> 3 -> 14 -> 48 -> 2 -> 62
Kończymy zatem z cyklem o długości 8. Nie wiem, czy akurat w tym zbiorze jest więcej cykli, ani jaka jest średnia długość cyklu.
1. Jaka jest oczekiwania długość cyklu w czymś takim?
Hm, czy ja sie myle, czy gdyby numerki w zbiorze byly unikalne, to
kazdy nalezalby do jakiegos cyklu ?
Każda liczba będzie należeć do jakiegoś cyklu, niezależnie do tego czy są one unikalne, czy nie, bo poruszamy się po skończonym zbiorze. Więc kolejne iteracje muszą się w końcu zapętlić, niezależnie co tam wstawimy.
Post by J.F
Dlugosc cyklu ... 1 jest malo prawdopodobny, bardzo dlugi ... chyba
tez, ciekawe gdzie sie ustala maksimum.
Intuicyjnie jest to mało prawdopodobne, ale jak policzyć prawdopodobieństwo napotkania cyklu o zadanej długości w takim random mapping o wielkości n nadal nie wiem. Na szczęście path lengh i spodziewania długość cyklu są już jasne.
J.F
2021-11-16 11:45:09 UTC
Permalink
Post by osobliwy nick
Post by J.F
Post by osobliwy nick
https://en.wikipedia.org/wiki/Random_permutation_statistics#Expected_cycle_size_of_a_random_element
Rozważmy jednak zbiór 2^n elementowy liczb n-bitowych. W takim zbiorze liczby mogą się powtarzać. Przykładowo tworzymy zbiór 1024 elementowy losując liczby z przedziału od 0 do 1023. Następnie przyporządkowujemy liczbom liczby porządkowe (załóżmy, że również od zera do 1023).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
29 59 62 14 58 29 1 42 0 53 41 63 53 56 48 27 45 26 32 7 0 2 53 63 56 63 28 62 3 7 4 48 35 63 15 28 26 8 7 7 31 0 62 35 33 18 14 17 2 58 35 60 48 45 54 52 61 3 14 20 63 31 17 63
29 -> 7 -> 42 -> 62 -> 17 -> 26 -> 28 -> 3 -> 14 -> 48 -> 2 -> 62
Kończymy zatem z cyklem o długości 8. Nie wiem, czy akurat w tym zbiorze jest więcej cykli, ani jaka jest średnia długość cyklu.
1. Jaka jest oczekiwania długość cyklu w czymś takim?
Hm, czy ja sie myle, czy gdyby numerki w zbiorze byly unikalne, to
kazdy nalezalby do jakiegos cyklu ?
Każda liczba będzie należeć do jakiegoś cyklu, niezależnie do tego
czy są one unikalne, czy nie, bo poruszamy się po skończonym
zbiorze.
Chyba chodzilo mi o to, ze w przykladzie powyzej 29 prowadzi do cyklu,
ale sama w cyklu nie jest - bo cykl to od 48.

gdyby numerki wystepowaly tylko raz - to gdzies musialoby byc
wskazanie na element 29.
W tym przykladzie sa az dwa takie wskazania, ale skoro sa dwa, to
jakis wartosci zabraklo.
Post by osobliwy nick
Więc kolejne iteracje muszą się w końcu zapętlić,
niezależnie co tam wstawimy.
mogla by byc tylko pojedyncza petla na koncu - czyli element wskazuje
sam na siebie.
Cyklem to nazwac ?

J.
osobliwy nick
2021-11-16 13:15:05 UTC
Permalink
Post by J.F
Post by osobliwy nick
Post by J.F
Post by osobliwy nick
https://en.wikipedia.org/wiki/Random_permutation_statistics#Expected_cycle_size_of_a_random_element
Rozważmy jednak zbiór 2^n elementowy liczb n-bitowych. W takim zbiorze liczby mogą się powtarzać. Przykładowo tworzymy zbiór 1024 elementowy losując liczby z przedziału od 0 do 1023. Następnie przyporządkowujemy liczbom liczby porządkowe (załóżmy, że również od zera do 1023).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
29 59 62 14 58 29 1 42 0 53 41 63 53 56 48 27 45 26 32 7 0 2 53 63 56 63 28 62 3 7 4 48 35 63 15 28 26 8 7 7 31 0 62 35 33 18 14 17 2 58 35 60 48 45 54 52 61 3 14 20 63 31 17 63
29 -> 7 -> 42 -> 62 -> 17 -> 26 -> 28 -> 3 -> 14 -> 48 -> 2 -> 62
Kończymy zatem z cyklem o długości 8. Nie wiem, czy akurat w tym zbiorze jest więcej cykli, ani jaka jest średnia długość cyklu.
1. Jaka jest oczekiwania długość cyklu w czymś takim?
Hm, czy ja sie myle, czy gdyby numerki w zbiorze byly unikalne, to
kazdy nalezalby do jakiegos cyklu ?
Każda liczba będzie należeć do jakiegoś cyklu, niezależnie do tego
czy są one unikalne, czy nie, bo poruszamy się po skończonym
zbiorze.
Chyba chodzilo mi o to, ze w przykladzie powyzej 29 prowadzi do cyklu,
ale sama w cyklu nie jest - bo cykl to od 48.
gdyby numerki wystepowaly tylko raz - to gdzies musialoby byc
wskazanie na element 29.
W tym przykladzie sa az dwa takie wskazania, ale skoro sa dwa, to
jakis wartosci zabraklo.
Faktycznie, mój błąd, bo oczywiście należeć do cyklu to nie to samo, co być na ścieżce do cyklu (nie wiem jak się to określa w matematyce, zwykle piszą "path", "path legth to reach the cycle"). Więc wracając do pytania, z tego co wiem istnieje dowód, że każdą permutację można rozbić na cykle. A "gdyby numerki były w zbiorze unikalne", to mamy do czynienia właśnie z permutacją.
Post by J.F
Post by osobliwy nick
Więc kolejne iteracje muszą się w końcu zapętlić,
niezależnie co tam wstawimy.
mogla by byc tylko pojedyncza petla na koncu - czyli element wskazuje
sam na siebie.
Cyklem to nazwac ?
Tak, to też można nazwać cyklem.
J.F
2021-11-16 13:52:50 UTC
Permalink
Post by osobliwy nick
Post by J.F
Post by osobliwy nick
Post by J.F
Post by osobliwy nick
https://en.wikipedia.org/wiki/Random_permutation_statistics#Expected_cycle_size_of_a_random_element
Rozważmy jednak zbiór 2^n elementowy liczb n-bitowych. W takim zbiorze liczby mogą się powtarzać. Przykładowo tworzymy zbiór 1024 elementowy losując liczby z przedziału od 0 do 1023. Następnie przyporządkowujemy liczbom liczby porządkowe (załóżmy, że również od zera do 1023).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
29 59 62 14 58 29 1 42 0 53 41 63 53 56 48 27 45 26 32 7 0 2 53 63 56 63 28 62 3 7 4 48 35 63 15 28 26 8 7 7 31 0 62 35 33 18 14 17 2 58 35 60 48 45 54 52 61 3 14 20 63 31 17 63
29 -> 7 -> 42 -> 62 -> 17 -> 26 -> 28 -> 3 -> 14 -> 48 -> 2 -> 62
Kończymy zatem z cyklem o długości 8. Nie wiem, czy akurat w tym zbiorze jest więcej cykli, ani jaka jest średnia długość cyklu.
1. Jaka jest oczekiwania długość cyklu w czymś takim?
Hm, czy ja sie myle, czy gdyby numerki w zbiorze byly unikalne, to
kazdy nalezalby do jakiegos cyklu ?
Każda liczba będzie należeć do jakiegoś cyklu, niezależnie do tego
czy są one unikalne, czy nie, bo poruszamy się po skończonym
zbiorze.
Chyba chodzilo mi o to, ze w przykladzie powyzej 29 prowadzi do cyklu,
ale sama w cyklu nie jest - bo cykl to od 48.
Faktycznie, mój błąd, bo oczywiście należeć do cyklu to nie to samo,
co być na ścieżce do cyklu (nie wiem jak się to określa w
matematyce, zwykle piszą "path", "path legth to reach the cycle").
Więc wracając do pytania, z tego co wiem istnieje dowód, że każdą
permutację można rozbić na cykle.
nawet nie wiem, czy tu jakis dowod potrzebny - skoro w zbiorze sa
wartosci z zakresu numeracji, to zawsze sie jakies cykle trafia.
Moze byc N cykli dlugosci 1, moze byc jeden cykl dlugosci N,
moga byc przypadki mieszane.

No tak - przydalby sie dowod na to "zawsze" :-)

J.

Kontynuuj czytanie narkive:
Loading...