Przeskocz do treści

Delta mi!

Mała Delta

Nieskończoność

Zbiory duże

Michał Korch

o artykule ...

  • Publikacja w Delcie: sierpień 2019
  • Publikacja elektroniczna: 1 sierpnia 2019
  • Wersja do druku [application/pdf]: (413 KB)

W poprzedniej części tej opowieści o nieskończonościach rozważaliśmy twierdzenie Cantora, które stanowi, że żaden zbiór A nie jest równoliczny ze zbiorem jego podzbiorów |P(A); co symbolicznie notujemy | A < P (A) : Szczególnie zajmowaliśmy się przypadkiem, gdy |A jest zbiorem liczb naturalnych N = {0;1;2;3;:::}:

obrazek

Studiowaliśmy także zbiór liczb całkowitych Z oraz zbiór liczb wymiernych |Q, pokazując, że każdy z nich jest równoliczny ze zbiorem liczb naturalnych. Takie zbiory nazywane są zbiorami przeliczalnymi. Inaczej mówiąc, są to zbiory, których elementy można zakwaterować w hotelu Hilberta. Chociaż są nieskończone, to z naszej perspektywy wydają się relatywnie "małe". Przynajmniej w porównaniu z innymi zbiorami, które rozważaliśmy. A były to: przedział |[0,1], zbiór liczb rzeczywistych |R, zbiór wszystkich nieskończonych ciągów zero-jedynkowych oraz zbiór wszystkich podzbiorów zbioru liczb naturalnych |P(N). Wiemy, że żaden z nich nie jest równoliczny ze zbiorem liczb naturalnych. Są one ewidentnie "większe" - dla każdego ustawienia elementów dowolnego z tych zbiorów w pary z liczbami naturalnymi znajdowaliśmy element, który do żadnej pary nie trafił. Zauważyliśmy także, że zbiór wszystkich nieskończonych ciągów zero-jedynkowych oraz zbiór wszystkich podzbiorów zbioru liczb naturalnych P(N) są równoliczne, ponieważ każdy podzbiór zbioru liczb naturalnych można ustawić w parę z ciągiem zer i jedynek, który go koduje. Wszystkie wymienione tu zbiory nazywa się zbiorami mocy continuum. Okazuje się bowiem, choć może być to z początku zaskakujące, że one też są parami równoliczne, czemu spróbujemy się teraz przyjrzeć dokładniej.

Jak zatem ustawić w pary elementy przedziału |[0, 1] ze wszystkimi liczbami rzeczywistymi? Prościej będzie na początku rozważyć przypadek przedziału otwartego (0,1), czyli przedziału wszystkich liczb większych od 0 i mniejszych od 1. Czytelnik, który miał do czynienia z funkcjami rzeczywistymi, znajdzie pewnie po chwili kilka sposobów takiego ustawienia liczb w pary. Na przykład, można liczbę x z przedziału (0,1) ustawić w parę z liczbą rzeczywistą  x−1~2 |x -1− x-. Rzeczywiście, dwóm różnym liczbom z przedziału |(0,1) przyporządkujemy dwie różne liczby rzeczywiste i, co więcej, wszystkie liczby rzeczywiste zostaną wykorzystane, co doskonale ilustruje powyższy wykres funkcji  x−1~2 | f(x) = x 1−x-.

A zatem wiemy, że  (0,1) = R . Musimy jeszcze wykazać, że | (0,1) = [0,1] . Inaczej mówiąc, musimy ustawić w odpowiednie pary wszystkie liczby tych dwóch przedziałów tak, żeby uwzględnić dwie "dodatkowe" liczby (0 i 1 ) w jednym ze zbiorów. Zadanie to jest ładnym problemem kombinatorycznym, zachęcam więc Czytelnika do samodzielnego zastanowienia się nad nim przed analizą poniższego rozwiązania. Rozważmy pewien nieskończony ciąg liczb, na przykład 1/2n, dla n = 1,2,... Teraz, jeśli liczba |x z przedziału |(0,1) nie należy do tego ciągu, to ustawiam ją w parę z odpowiadającą jej tą samą liczbą |x z przedziału |[0,1]. Kolejne liczby z wyróżnionego ciągu przesuwam o dwa miejsca (podobnie jak przesuwaliśmy gości w hotelu Hilberta), tak żeby pierwsze dwa wyrazy tego ciągu mogły być towarzyszami w parach z 0 i 1. To znaczy, |1/2 z przedziału (0,1) ustawiam w parę z 0 z przedziału [0,1],1/4 - w parę z liczbą |1,1/8 - w parę z 1/2,1/16 z 1/4, itd. (patrz rysunek). Czyli dla n > 2 ustawiam 1/2n w parę z |1/2n−2. Rzeczywiście, ustawiłem wszystkie liczby z przedziału (0,1) w pary z liczbami z przedziału |[0, 1], wykorzystując wszystkie liczby z obu przedziałów dokładnie raz. A zatem  [0,1] = (0,1) = R .

obrazek

Najtrudniejsze zadanie jednak przed nami. Musimy jeszcze wykazać, że liczb z przedziału |[0, 1] jest tyle samo, co nieskończonych ciągów zero-jedynkowych. Rozbijmy ten ostatni zbiór na dwie części: niech |A będzie zbiorem tych nieskończonych ciągów zero-jedynkowych, które od pewnego miejsca mają już tylko jedynki, zaś B | niech będzie zbiorem wszystkich pozostałych ciągów. Zatem zbiór wszystkich nieskończonych ciągów zero-jedynkowych to A | Wykażemy najpierw, że  A czyli że zbiór wszystkich ciągów jest równoliczny ze zbiorem zawierającym wszystkie ciągi, w których od pewnego miejsca są same jedynki, oraz wszystkie liczby z przedziału |[0, 1).

W tym celu musimy rozważyć zapis liczb rzeczywistych w systemie binarnym. Prawdopodobnie każdy Czytelnik zapisywał liczby naturalne w systemie dwójkowym, np. |1011 w systemie binarnym to |1⋅23 + 0⋅22 +1 ⋅21 ++1 ⋅20 = 8 +2 + 1 = 11 w systemie dziesiętnym. Nie ma jednak żadnych przeciwwskazań, żeby system binarny stosować także po przecinku, np. |0,1011 w systemie binarnym to |1⋅1/2 + 0⋅1/4 +1⋅1/16+ 1⋅1/32 = 19/32. Co więcej, podobnie jak każda liczba rzeczywista ma (być może nieskończone) rozwinięcie dziesiętne, tak każdą liczbę rzeczywistą można zapisać w postaci rozwinięcia binarnego. Rozwinięcia skończone oczywiście możemy również napisać jako nieskończone, dodając na końcu same zera (0,1011 = 0,10110000...). Musimy jednak zauważyć, że podobnie jak w przypadku rozwinięć dziesiętnych, w których od pewnego momentu są same dziewiątki, jeśli w rozwinięciu binarnym od pewnego momentu są same jedynki, mamy do czynienia po prostu z liczbą, którą da się zapisać w skończonym rozwinięciu (na przykład w systemie dziesiętnym |0,49999 ... = 0,5, w systemie binarnym |0,1011111... = 0,11 ). Inaczej mówiąc, rozwinięcie w takich przypadkach nie jest jednoznaczne. Wykluczmy więc z rozważań nieskończone rozwinięcia binarne posiadające od pewnego miejsca już same jedynki.

Powyższe rozważania definiują metodę ustawienia w pary elementów zbioru |A oraz |A Każdy zero-jedynkowy ciąg, w którym od pewnego miejsca są same jedynki, stawiamy w parę z tym samym ciągiem. W każdym innym przypadku łączymy go w parę z liczbą z przedziału [0,1), której ten ciąg jest rozwinięciem binarnym (dopisujemy do ciągu zero i przecinek z lewej strony). W ten sposób rzeczywiście wykorzystamy wszystkie liczby, każdą jednokrotnie. Mamy więc  A .

Sprawdźmy teraz, że  A co zakończy nasze rozważania. W tym celu warto zauważyć, że wszystkie elementy zbioru |A da się zakwaterować w hotelu Hilberta, to jest ponumerować liczbami naturalnymi. Wystarczy najpierw zakwaterować ciąg a0 = 111..., potem ciąg |a1 = 01111..., potem dwa ciągi, w których ostatnie zero stoi na drugim miejscu (czyli |a = 001111... 2 i a = 101... 3), następnie te ciągi, gdzie ostatnie zero jest na trzecim miejscu (jest ich cztery!), i tak dalej. Tak więc sporządziliśmy listę wszystkich nieskończonych zero-jedynkowych ciągów, w których od pewnego miejsca są same jedynki, A .

obrazek

Wybierzmy zatem, podobnie jak poprzednio, ciąg liczb z przedziału [0,1] - niech to będzie 1/2n dla n = 0,1,2,3,... Tym razem musimy poradzić sobie z "nadmiarem" nieskończonej liczby elementów, gdy będziemy łączyć w pary elementy zbioru |A z liczbami z [0,1]. Wykorzystajmy więc parzyste potęgi 1/2, aby znaleźć towarzyszy do par dla tych "dodatkowych" elementów, zaś nieparzyste potęgi muszą nam starczyć jako towarzysze dla dotychczasowych liczb z wybranego ciągu. Zatem liczba x z przedziału |[0, 1] nie będąca elementem wybranego ciągu będzie w parze z tą samą liczbą |x należącą do zbioru A Niech 1/20 = 1 stanie w parze z ciągiem |a0, ale |1/21 = 1/2 niech stoi w parze z 1/2 z |A Następnie |1/22 = 1/4 trafia do pary z |a , 1 zaś 1/23 do pary z 1/22. I tak dalej. Inaczej mówiąc, dla każdego  2n n,1/2 z [0,1] stoi w parze z ciągiem an z A zaś 1/22n+1 z [0,1] stoi w parze z liczbą  n+1 |1/2 z A (patrz rysunek). Udało się ustawić wszystko w pary! A zatem  [0,1] = A czyli zbiór wszystkich liczb rzeczywistych z przedziału [0,1] jest równoliczny ze zbiorem wszystkich nieskończonych ciągów zero-jedynkowych. Wszystkie rozważane przez nas "duże" zbiory też okazały się parami równoliczne.

Mamy zatem w garści różne "małe" zbiory nieskończone, czyli zbiory przeliczalne: N, Z oraz Q. Mamy także zbiory "duże": |R,[0,1],P(N) oraz zbiór wszystkich nieskończonych ciągów zero-jedynkowych. Wszystkie takie zbiory, które rozpatrywaliśmy, okazały się parami równoliczne. Zwane są zbiorami mocy continuum. Powstaje więc naturalne pytanie. Czy jest coś pomiędzy zbiorami przeliczalnymi a zbiorami mocy continuum? Czy istnieje zbiór o mocy większej niż moc zbiorów przeliczalnych, a mniejszej niż continuum?

Pytanie takie zadał sobie już Georg Cantor. Nie udało mu się skonstruować takiego zbioru, przypuszczał więc, że zbiór taki nie istnieje, i przez wiele lat swojego życia próbował to udowodnić. Nie był w stanie tego dokonać. Ta niemoc bardzo go frustrowała i dodatkowo źle wpływała na jego chwiejne zdrowie psychiczne. Teza Cantora, że nie istnieje zbiór o mocy większej niż moc zbiorów przeliczalnych, a mniejszej niż continuum, nazywa się hipotezą continuum. Problem zaciekawił wielu matematyków, w tym Davida Hilberta, którego koncepcję nieskończonego hotelu już omawialiśmy. Na Kongresie Matematyków w Paryżu David Hilbert wygłosił referat, podczas którego przedstawił 23 matematyczne problemy (10 z nich zdążył przedstawić ustnie, a reszta pojawiła się w spisanej wersji referatu), jego zdaniem najbardziej interesujące, które powinny zostać rozwiązane w kolejnym stuleciu. Jaki był pierwszy wymieniony przez niego problem? Właśnie hipoteza continuum! Poniżej ten właśnie fragment spisanego już po samym Kongresie referatu Hilberta.

obrazek

Czy ponad wiek później znamy odpowiedź na pytanie o hipotezę continuum? Jeśli tak, to jaka ona jest? Odpowiedzi na te pytania mogą być zaskakujące! Ale o tym następnym razem.