Problem Collatza

problem w teorii liczb naturalnych

Problem Collatza (znany też jako problem 3x+1, problem Ulama, problem Kakutaniego, problem syrakuzański) – nierozstrzygnięty dotychczas problem o wyjątkowo prostym – jak wiele innych problemów teorii liczb – sformułowaniu. Nazwa pochodzi od nazwiska niemieckiego matematyka Lothara Collatza (1937). Zagadnienie to było również rozpatrywane przez polskiego matematyka Stanisława Ulama, a także przez Shizuo Kakutaniego.

Sformułowanie problemu Collatza edytuj

Weźmy dowolną dodatnią liczbę naturalną   Jeśli jest ona parzysta, to niech   w przeciwnym wypadku niech   Następnie z liczbą   postępujemy podobnie jak z   i kontynuujemy ten proces. Otrzymamy w ten sposób ciąg liczb naturalnych określony rekurencyjnie przez formułę

 

lub

 

Przedmiotem problemu jest przypuszczenie, że niezależnie od jakiej liczby   wystartujemy, w końcu dojdziemy do liczby 1.

Zdefiniowany wyżej ciąg jest ciągiem nieskończonym i łatwo zauważyć, że jeśli pewien wyraz tego ciągu jest równy 1, to następne po nim wyrazy będą równe 4, 2, 1, 4, 2, 1,... O takim ciągu mówimy, że wpada w cykl (w pętlę).

Przypuszczenie można więc sformułować inaczej: niezależnie od jakiej liczby   wystartujemy, to ciąg wpadnie w cykl (4, 2, 1).

Przykłady edytuj

 
Diagram dla ciągu zaczynającego się od 15
 
Graf pierwszych 30 liczb naturalnych (bez 27).
  • Zaczynając od   = 11, mamy:
11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1.
  • Zaczynając od   = 15, mamy:
15, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1.
  • Zaczynając od   = 27, mamy:
27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1.

tutaj cały proces wymaga aż 111 kroków z maksymalną osiągniętą wartością 9232.

Próby rozstrzygnięcia problemu Collatza edytuj

Wykazano prawdziwość hipotezy Collatza dla liczb   mniejszych niż 20 × 258 ≈ 5.764×1018[1].

Każdy ciąg nieskończony {cn} startujący od pewnej liczby naturalnej dodatniej ma następującą własność:

ciąg {cn} jest ograniczony wtedy i tylko wtedy, gdy wpada w pewien cykl.

Rzeczywiście, jeśli ciąg wpada w jakiś cykl, to jest tylko skończona liczba początkowych wyrazów niewchodzących do tego cyklu. Odwrotnie, jeśli ciąg jest ograniczony, to nieskończona liczba wyrazów ciągu osiąga jedynie skończoną liczbę wartości, co oznacza, że niektóre wyrazy muszą się powtarzać. A ponieważ w ciągu {cn} każdy wyraz zależy jedynie od swojego bezpośredniego poprzednika, więc wyrazy powtarzające się wyznaczają początek i koniec pewnego cyklu.

Ponadto

jeśli ciąg {cn} jest nieograniczony, to jest rozbieżny do nieskończoności.

Rzeczywiście, przypuśćmy, że ciąg nie jest rozbieżny do nieskończoności. Stąd dla pewnej liczby naturalnej   istnieje nieskończenie wiele wyrazów ciągu {cn} mniejszych od   co oznacza, że pewne dwa z nich mają te same wartości, tym samym wyznaczają one pewien cykl. Stąd z kolei wynika, że ciąg jest ograniczony, wbrew założeniu.

Z powyższego wynika, że są tylko dwie możliwości zaprzeczenia hipotezie:

  • dla jakiejś liczby początkowej {c0} otrzymany ciąg {cn} jest ograniczony i wpada w cykl inny niż (4, 2, 1);
  • dla jakiejś liczby początkowej {c0} otrzymany ciąg {cn} jest nieograniczony, czyli jest rozbieżny do nieskończoności.

Paul Erdős wypowiedział[2] o problemie Collatza słynne zdanie: „mathematics is not yet ready for such problems” – „matematyka nie jest jeszcze gotowa na takie problemy”. Niewątpliwie świadczy to o złożoności ewentualnego rozwiązania, z drugiej strony kontrast pomiędzy ową złożonością a prostotą sformułowania jest intrygujący.

Uogólnienie problemu Collatza wszystkie liczby całkowite[3] edytuj

Przy założeniu, że ciąg możemy zacząć od także od zera lub liczby ujemnej, znaleziono dotąd kolejne trzy cykle (poza trywialnym cyklem składającym się tylko z zera), w które może on wpaść:

  • −1, −2, −1,
  • −5, −14, −7, −20, −10, −5,
  • −17, −50, −25, −74, −37, −110, −55, −164, −82, −41, −122, −61, −182, −91, −272, −136, −68, −34, −17.

Cykle n-tego stopnia edytuj

W 1978 roku R. Steiner oraz w 1996 i 2002 roku J. Simons i B. de Weger (bazując na metodzie Steinera) udowodnili, że pewne rodzaje cykli nie mogą istnieć.

Aby to wyjaśnić, zdefiniujmy transformację dla liczb całkowitych dodatnich   i   oraz  

  b = T(a;A)   znaczy   b = (3*a+1)/2^A
gdzie   to maksymalna potęga liczby   która dzieli liczbę   bez reszty
  Przykład:
  a = 15, wtedy b = T(15,A)  3*15+1 = 46, więc A = 1   b = (3*15+1)/2^1 = 23
  23 = T(15;1)
  b = T(T(a;A);B) = T(a;A,B)
  Przykład:
  b = T(15;A,B) = T(15;1,1) = ((3*15+1)/2^1*3+1)/2^B = (3*23+1)/2^B = 70/2^1 = 35
  35 = T(15;1,1)
  • Zdefiniujmy transformację, dla której mamy   wykładników równych   i ostatni   większy od liczby  
  b = T(a;1,1,1,1,1,...,1,A) = T(a;(1)L,A)
przy czym liczba   może być dowolnie duża
  Przykład:
  b = T(15;1,1,1,A) = T(15;(1)3,A) = (53*3+1)/2^A = 160/2^5 = 5
  5 = T(15;(1)3,5)
  • Wówczas funkcja:
  b = T(a;(1)L,A)

gdzie   to cykl I stopnia o długości   iteracji.

Twierdzenia edytuj

  • Ray Steiner udowodnił w 1978 r., że nie istnieje cykl I stopnia. Oznacza to, że niezależnie od tego, ile iteracji   zostanie wykonanych oraz ile będzie wynosił wykładnik   zaczynając od liczby   nigdy nie otrzymamy liczby  
  • w 1996 r. John Simons (opierając się na metodzie Steinera) udowodnił, iż nie istnieje cykl II stopnia: a = T(a;(1)L,A,(1)M,B), niezależnie od tego ile będzie wynosić   oraz  
  • w 2002 r. John Simons oraz Benne de Weger wykazali, że nie istnieje cykl mniejszy lub równy cyklowi 68. stopnia: a = T(a;(1)L1,A1,(1)L2,A2,...,(1)L68,A68).
  • w 2002 r. John Simons oraz Benne de Weger wykazali także, że nie istnieje cykl większy o kilka wartości od cyklu 68. stopnia (szacując to na podstawie poprzedniego wyniku).

Hipoteza Collatza w ujęciu diofantycznym edytuj

Warunki hipotezy można ująć za pomocą pewnych równań diofantycznych. Aby to wyjaśnić posłużymy się pewną skróconą formułą opisującą ciąg.

Skrócona formuła rekurencyjna edytuj

Każdą operację typu   w ciągu Collatza wykonywaną zgodnie z definicją na nieparzystym   można skrócić do postaci   gdyż liczba   jest zawsze parzysta (przy nieparzystym  ), a zatem zawsze w następnej kolejności wywołuje dzielenie przez   Dlatego ciąg Collatza możemy równoważnie zdefiniować za pomocą następującej skróconej formuły:

 

Przykłady edytuj

  • Zaczynając od   = 7, mamy:
7, 11, 17, 26, 13, 20, 10, 5, 8, 4, 2, 1.
  • Zaczynając od   = 15, mamy:
15, 23, 35, 53, 80, 40, 20, 10, 5, 8, 4, 2, 1.

Ciąg Collatza w ujęciu diofantycznym edytuj

Obserwując zachowanie się skróconego ciągu dla określonych liczb, można zauważyć, iż niektóre liczby nieparzyste wywołują kilka operacji typu   z rzędu – do momentu, gdy zostanie osiągnięta liczba parzysta, inne natomiast tylko jedną. Liczby te można zapisać przy użyciu dwóch naturalnych zmiennych   oraz   warunkujących wielkość danej liczby oraz liczba powtarzalnych operacji typu   które dana liczba determinuje za pomocą następującego wyrażenia:

 

Przy czym zmienna   jest determinantą liczby następujących po sobie operacji typu   natomiast   tylko wielkości liczby. Każda liczba postaci   generuje w ciągu Collatza po   operacjach liczbę postaci:

 

Weźmy np. liczbę 15:

  a zatem liczba, która następuje po niej po   operacjach wynosi  

jednak liczbę 15 można również zapisać następująco:

  wtedy jej następnik po   operacjach wyniesie:  

Obie konstatacje są poprawne, ale tylko gdy zapiszemy liczbę   tak, iż współczynnik   będzie nieparzysty otrzymamy ostatnią parzystą składową ciągu operacji typu   Bazując na powyższym zapisie, możemy zdefiniować ciąg jeszcze ogólniej, ujmując powtarzalne dzielenie liczb parzystych przez liczbę 2 potęgowo:

 

Przykłady edytuj

  • Zaczynając od   = 21, mamy:
 
  • Zaczynając od   = 7, mamy:
 

Cykl w ujęciu diofantycznym edytuj

Warunkiem powstania cyklu w ciągu Collatza jest zajście równości pomiędzy pierwszym a  -tym wyrazem ciągu. Musi być spełnione zatem jedno z równań:

 

lub

 

lub

 

itd.

Przy czym, jeżeli na przykład:

 

to naturalnie spełnione muszą być również równania:

 

oraz

 

Ogólnie w zależności od długości cyklu rozważamy zatem układ  -tego typu równań (poniżej  ):

 

Każdy taki układ po uporządkowaniu daje się zapisać jako iloczyn następujących czynników:

 

Potęgi dwójek skracają się do postaci   Warunek jakiegokolwiek cyklu będzie zatem następującym równaniem diofantycznym:

 

Przy czym liczba ilorazowych czynników iloczynu może być dowolna, a wszystkie zmienne to liczby naturalne.

  • Powyższy  -czynnikowy iloczyn jest tożsamy z cyklem  -tego stopnia. Mają tu zastosowanie zatem twierdzenia Steinera, Simonsa oraz de Wegera (o których mowa w punkcie 5.1). Hipotetycznie, gdyby istniało rozwiązanie równania dla   czynników, moglibyśmy mówić o istnieniu pętli  -tego stopnia (pomijamy tu przypadek pętli trywialnej).

Przykład edytuj

Pętla trywialna:

 

Problem rozbieżności do nieskończoności w ujęciu diofantycznym edytuj

Bazując na przedstawionym zapisie diofantycznym, możemy zdefiniować również warunek rozbieżności do nieskończoności ciągu Collatza. Pewność, że ciąg dla danej liczby nie jest rozbieżny do nieskończoności, daje nam zapętlanie się tej liczby (co zostało rozważone powyżej), wpadanie liczby w pętlę lub wystąpienie w ciągu liczby 1 (po skończonej liczbie iteracji), co również jest szczególnym przypadkiem wpadania liczby w pętlę trywialną. Pomijając przypadki hipotetycznych pętli (innych niż 1, 2, 1,...), ciąg Collatza dla dowolnej nierozbieżnej do nieskończoności liczby początkowej   można zapisać jako następujący skończony iloczyn:

 

Wynika to z tego, iż wszystkie czynniki w takim iloczynie z racji relacji, jaka między nimi zachodzi, skracają się wzajemnie do postaci potęgi liczby dwa, poza licznikiem ostatniego czynnika, który sam musi być potęgą dwójki (co de facto gwarantuje wystąpienie liczby 1), aby równanie mogło być spełnione. Jeżeli dla jakiejś liczby początkowej licznik następujący po skończonej liczbie operacji nie będzie potęgą liczby 2, bo ciąg nigdy nie osiągnie liczby 1 lub osiąga ją w nieskończoności, nie jest możliwe skonstruowanie skończonego iloczynu spełniającego równanie. Próba rozstrzygnięcia problemu w tej drodze powinna zatem skutkować dowodem, że iloczyn spełniający powyższe równanie dla dowolnej liczby   będzie skończony.

Przykłady edytuj

  • Zaczynając od 9, mamy:
 
  • Zaczynając od 21, mamy:
 

Uogólnienie równań na liczby ujemne edytuj

Warunki hipotezy można ująć za pomocą równań diofantycznych również dla liczb ujemnych. W owych równaniach zmieniamy wtedy tylko znaki „ ” przed jedynkami na „+”. Warunek cyklu zapiszemy zatem jako następujące równanie:

 

Natomiast warunek rozbieżności do nieskończoności dla dowolnej liczby ujemnej przyjmie postać:

 

Przykłady edytuj

Trzy znane pętle dla liczb ujemnych w ciągu Collatza reprezentują następujące równania:

  • Zaczynając od liczby −1, mamy:
 
  • Zaczynając od liczby −5, mamy:
 
  • Zaczynając od liczby −17, mamy:
 

Liczby postaci 3n jako liczby, które się nie zapętlają edytuj

Dla dowolnej liczby   która zapętla się w ciągu Collatza istnieje nieskończenie wiele jej następników oraz poprzedników. Przykładowo w cyklu trywialnym po liczbie jeden następuje nieskończenie wiele jej następników, jednak możemy wyznaczyć również równie wiele jej poprzedników. Hipotetycznie, zgodnie z zapisem diofantycznym ciągu Collatza poprzednikiem dowolnej liczby   będzie zawsze jakaś liczba:

 

Jednakże gdy liczba   jest postaci   to równanie diofantyczne:

 

Nie może być spełnione dla żadnej liczby   ponieważ prawa strona równania dzieli się przez 3 bez reszty, natomiast lewa nie. Oznacza to, iż żadna liczba postaci   nie ma poprzednika w ciągu Collatza, a zatem nie może spełniać również warunków pętli.

Generalizacja problemu 3x+1 edytuj

Ogólnie każdy ciąg zdefiniowany dowolnym skończonym ciągiem działań arytmetycznych dla liczby nieparzystej oraz redukcją liczby parzystej do liczby nieparzystej poprzez dzielenie jej przez liczbę 2 daje się zapisać za pomocą podobnych jak w ciągu Collatza równań diofantycznych. Przy czym zależność pomiędzy definicją ciągu a pojedynczym wyrażeniem diofantycznym jest następująca:

 

Przykłady edytuj

  • Weźmy ciąg zdefiniowany następująco:
 

Pierwszym krokiem będzie wyznaczenie wielkości   oraz   dopiero potem   jednak kolejność nie ma tu znaczenia, należy zachować tylko jedną zasadę: aby wyrażenie faktycznie opisywało ciąg wielkości   oraz   muszą być dobrane tak aby iloraz   był ułamkiem nieskracalnym:

 

Zatem:

 

Natomiast:

 
 

Nasze wyrażenie przyjmuje więc postać:

 

Możemy na tej podstawie skonstruować również warunki zapętlania się ciągu oraz rozbieżności do nieskończoności.

  • Rozważmy jeszcze inny ciąg:
 

Nasze wyrażenie przyjmuje wtedy następującą postać:

 

Taki ciąg zapętla się już dla niewielkich liczb. Na przykład dla liczby 3:

 

Pętla występuje też dla liczby 39:

 

Związek z problemem stopu edytuj

Zobacz też: problem stopu.

Algorytm sprawdzający hipotezę Collatza dla zadanej liczby naturalnej x można przedstawić w postaci pseudokodu w następujący sposób:

  procedure collatz(x);
  begin
    do
      if x mod 2 = 0 then
        x := x / 2
      else
        x := 3 * x + 1
    while x <> 1
  end

Program w C++ i standardowym wyjściem STD wypisujący wszystkie liczby z podaniem największej z nich i liczby powtórzeń

#include <iostream>

using namespace std;

int main()
{
    long long int I = 0;
    int l = 0;
    long long int x = 0;
    do{
    I = 0;
    l = 0;
    x = 0;
    cin >> I;

    while(I != 1){
        if(I % 2 == 0){
             I = I/2;
        }else{
            I = (I*3)+1;
        }
        if(x < I){
            x = I;
        }
        l++;
        cout << I << endl;
    }
    cout << "MAX: " << x << " repeats: " << l << endl;
    }while(true);
    return 0;
}

Problem Collatza jest prawdopodobnie niealgorytmiczny, tzn. prawdopodobnie nie istnieje algorytm pozwalający rozstrzygnąć hipotezę[potrzebny przypis]. Z przypuszczalnej niealgorytmiczności problemu wynika między innymi to, iż nie wiadomo, czy przedstawiona wyżej procedura collatz zatrzyma się w skończonym czasie – pytanie o własność stopu tego programu pozostaje otwarte.

Wiele osób[potrzebny przypis] zaangażowanych w program BOINC uczestniczyło w projekcie 3x+1@home, którego celem było rozwiązanie tego problemu poprzez znalezienie kontrprzykładu. Obecnie na stronie tego zamkniętego projektu można znaleźć listę liczb-kandydatów użytych w projekcie, dla których długość ciągu przed osiągnięciem pętli {4, 2, 1} wyniosła 1000 iteracji.

Kontynuacją zakończonego projektu 3x+1@home jest Collatz Conjecture również wykorzystujący infrastrukturę BOINC.

Przypisy edytuj

  1. Lagarias 2010 ↓, s. 189.
  2. Lagarias 1985 ↓, s. 3.
  3. Eric W. Weisstein, Collatz Problem [online], Wolfram MathWorld [dostęp 2024-02-21] (ang.).

Bibliografia edytuj

Linki zewnętrzne edytuj