Obliczalna liczba

π można obliczyć z dowolną precyzją, podczas gdy prawie każdej liczby rzeczywistej nie da się obliczyć.

W matematyce liczby obliczalne to liczby rzeczywiste , które można obliczyć z dowolną precyzją za pomocą skończonego, kończącego algorytmu . Są one również znane jako liczby rekurencyjne , liczby efektywne lub obliczalne liczby rzeczywiste lub rekurencyjne liczby rzeczywiste . [ potrzebne źródło ] Pojęcie obliczalnej liczby rzeczywistej zostało wprowadzone przez Emile'a Borela w 1912 r., wykorzystując dostępne wówczas intuicyjne pojęcie obliczalności.

Równoważne definicje można podać za pomocą funkcji μ-rekurencyjnych , maszyn Turinga lub rachunku λ jako formalnej reprezentacji algorytmów. Obliczalne liczby tworzą rzeczywiste zamknięte pole i mogą być używane zamiast liczb rzeczywistych do wielu, ale nie wszystkich, celów matematycznych.

Nieformalna definicja na przykładzie maszyny Turinga

Poniżej Marvin Minsky definiuje liczby do obliczenia w sposób podobny do tych zdefiniowanych przez Alana Turinga w 1936 r .; tj. jako „ciągi cyfr interpretowane jako ułamki dziesiętne” między 0 a 1:

Obliczalna liczba [to] taka, dla której istnieje maszyna Turinga, której dane n na jej początkowej taśmie kończy się n- tą cyfrą tej liczby [zakodowanej na jej taśmie].

Kluczowymi pojęciami w definicji są: (1) pewne n jest określone na początku, (2) dla dowolnego n obliczenie obejmuje tylko skończoną liczbę kroków, po których maszyna generuje żądany wynik i kończy działanie.

Alternatywna postać (2) – maszyna kolejno drukuje wszystkie n cyfr na swojej taśmie, zatrzymując się po wydrukowaniu n- tej – podkreśla obserwacja Minsky'ego: (3) Że za pomocą maszyny Turinga skończona definicja – w postaci tablicy stanów maszyny – służy do określenia, czym jest potencjalnie nieskończony ciąg cyfr dziesiętnych.

Nie jest to jednak współczesna definicja, która wymaga jedynie, aby wynik był dokładny z określoną dokładnością. Powyższa nieformalna definicja podlega problemowi zaokrąglenia zwanemu dylematem twórcy stołu, podczas gdy współczesna definicja nie.

Definicja formalna

Liczba rzeczywista a jest obliczalna można ją przybliżyć jakąś obliczalną funkcją w następujący sposób: biorąc pod całkowitą n , funkcja daje liczbę całkowitą f ( n ) taką, że:

Istnieją dwie podobne definicje, które są równoważne:

  • Istnieje obliczalna funkcja, która przy dowolnym dodatnim błędzie wymiernym jest ograniczona daje liczbę wymierną r taką,
  • Istnieje obliczalna sekwencja do że dla każdego ja .

Istnieje inna równoważna definicja liczb obliczalnych za pomocą obliczalnych cięć Dedekinda . Obliczalny przekrój Dedekinda obliczalna funkcja = t lub , spełniając następujące warunki:

Przykład podaje program D , który definiuje pierwiastek sześcienny z 3. Zakładając, że jest to zdefiniowane przez:

Liczba rzeczywista jest obliczalna wtedy i tylko wtedy, gdy odpowiada jej obliczalny przekrój Dedekinda D. Funkcja D jest unikalna dla każdej obliczalnej liczby (chociaż oczywiście dwa różne programy mogą zapewniać tę samą funkcję).

Liczbę zespoloną nazywamy obliczalną, jeśli jej części rzeczywista i urojona są obliczalne.

Nieruchomości

Nieobliczalnie policzalne

Przypisanie liczby Gödla do Turinga tworzy podzbiór liczb naturalnych odpowiadających liczbom obliczalnym i identyfikuje od liczb . Istnieje tylko policzalnie wiele maszyn Turinga, co pokazuje, że liczby obliczalne są przeliczalne . Zbiór tych liczb Gödla nie jest jednak a co za tym idzie, nie są to również podzbiory są zdefiniowane na jego podstawie). Dzieje się tak, ponieważ nie ma algorytmu określającego, które liczby Gödla odpowiadają maszynom Turinga, które wytwarzają obliczalne liczby rzeczywiste. Aby wytworzyć obliczalną liczbę rzeczywistą, maszyna Turinga musi obliczyć funkcję całkowitą , ale odpowiadający jej problem decyzyjny jest w stopniu Turinga 0′′ . W konsekwencji nie ma surjektywnej obliczalnej funkcji od liczb naturalnych do obliczalnych liczb rzeczywistych, a argumentu Cantora dotyczącego przekątnej nie można konstruktywnie użyć do wykazania niezliczonej liczby z nich.

Podczas gdy zbiór liczb rzeczywistych jest niepoliczalny , zbiór liczb obliczalnych jest klasycznie policzalny , a zatem prawie wszystkie liczby rzeczywiste nie są obliczalne. Tutaj, dla dowolnej liczby obliczalnej zasada dobrego uporządkowania przewiduje, że istnieje minimalny element w który odpowiada , a zatem istnieje podzbiór składający się z { minimalnych elementów, na których mapa jest bijekcją . Odwrotnością tej bijekcji jest wstrzyknięcie do liczb naturalnych liczb obliczalnych, co dowodzi, że są one policzalne. Ale znowu ten podzbiór nie jest obliczalny, mimo że same obliczalne liczby rzeczywiste są uporządkowane.

Właściwości jako pole

Operacje arytmetyczne na liczbach obliczalnych same w sobie są obliczalne w tym sensie, że ilekroć liczby rzeczywiste a i b są obliczalne, obliczalne są również następujące liczby rzeczywiste: a + b , a - b , ab i a/b, jeśli b jest niezerowe. Operacje te są w rzeczywistości jednostajnie obliczalne ; na przykład istnieje maszyna Turinga, która na wejściu ( ZA , b , ) wytwarza wynik r , gdzie A jest opisem maszyny Turinga przybliżającej a , B jest opisem maszyny Turinga przybliżającej b , a r jest a + b .

Fakt, że obliczalne liczby rzeczywiste tworzą ciało , został po raz pierwszy udowodniony przez Henry'ego Gordona Rice'a w 1954 roku.

Obliczalne liczby rzeczywiste nie tworzą jednak pola obliczeniowego, ponieważ definicja pola obliczeniowego wymaga efektywnej równości.

Nieobliczalność zamówienia

Relacja porządku na liczbach obliczalnych nie jest obliczalna. Niech A będzie opisem maszyny Turinga . Wtedy nie ma maszyny Turinga, która na wejściu A wyprowadza „TAK”, jeśli i „NIE”, jeśli Aby zobaczyć dlaczego, załóżmy, że maszyna opisana przez A nadal wyprowadza 0 . Nie jest jasne, jak długo należy czekać, zanim zdecydujemy, że maszyna nigdy nie wygeneruje przybliżenia, które wymusza dodatnią wartość a . Tak więc maszyna będzie musiała ostatecznie zgadnąć, że liczba będzie równa 0, aby wytworzyć dane wyjściowe; sekwencja może później stać się różna od 0. Pomysł ten można wykorzystać do pokazania, że ​​maszyna jest niepoprawna w niektórych sekwencjach, jeśli oblicza funkcję całkowitą. Podobny problem pojawia się, gdy obliczalne liczby rzeczywiste są reprezentowane jako przekroje Dedekinda . To samo dotyczy relacji równości: test równości nie jest obliczalny.

Chociaż pełna relacja porządku nie jest obliczalna, jej ograniczenie do par nierównych liczb jest obliczalne. Oznacza to, że istnieje program, który pobiera jako dane wejściowe dwie maszyny Turinga B aproksymujące liczby gdzie i wyprowadza, czy \ lub użyć , gdzie więc biorąc coraz mniejsze ostatecznie można zdecydować, czy


Inne właściwości

Obliczalne liczby rzeczywiste nie mają wszystkich właściwości liczb rzeczywistych używanych w analizie. Na przykład najmniejsza górna granica ograniczonej rosnącej, obliczalnej sekwencji obliczalnych liczb rzeczywistych nie musi być obliczalną liczbą rzeczywistą. Sekwencja o tej właściwości jest znana jako sekwencja Speckera , ponieważ pierwsza konstrukcja jest dziełem Ernsta Speckera w 1949 r. Pomimo istnienia takich kontrprzykładów, części rachunku różniczkowego i analizy rzeczywistej można rozwijać w dziedzinie liczb obliczalnych, prowadząc do badania analizy obliczeniowej .

Każda liczba obliczalna jest definiowalna arytmetycznie , ale nie odwrotnie. Istnieje wiele definiowalnych arytmetycznie liczb rzeczywistych, których nie można obliczyć, w tym:

Oba te przykłady w rzeczywistości definiują nieskończony zbiór definiowalnych, nieobliczalnych liczb, po jednej dla każdej uniwersalnej maszyny Turinga . Liczba rzeczywista jest obliczalna wtedy i tylko wtedy, gdy reprezentowany przez nią zbiór liczb naturalnych (zapisany binarnie i postrzegany jako funkcja charakterystyczna) jest obliczalny.

Zbiór obliczalnych liczb rzeczywistych (jak również każdy policzalny, gęsto uporządkowany podzbiór liczb rzeczywistych obliczalnych bez końców) jest rzędem izomorficzny ze zbiorem liczb wymiernych.

Ciągi cyfr i przestrzenie Cantora i Baire'a

Oryginalna praca Turinga zdefiniowała liczby obliczalne w następujący sposób:

Liczba rzeczywista jest obliczalna, jeśli jej ciąg cyfr może być utworzony przez jakiś algorytm lub maszynę Turinga. Algorytm przyjmuje liczbę całkowitą wejściowe i generuje -tą dziesiętnego liczby rzeczywistej jako dane

(Rozwinięcie dziesiętne a odnosi się tylko do cyfr następujących po przecinku.)

że ta definicja jest równoważna podanej powyżej definicji . Argument przebiega następująco: jeśli liczba obliczalna w sensie Turinga, to jest również obliczalna w sensie jeśli 1 następnie pierwsze n cyfr rozwinięcia dziesiętnego dla a zapewniają a . Na odwrót, wybieramy liczbę rzeczywistą i generujemy coraz dokładniejsze przybliżenia, aż n- ta cyfra po przecinku jest pewna. To zawsze generuje rozwinięcie dziesiętne równe a , ale może niewłaściwie zakończyć się nieskończoną sekwencją dziewiątek, w którym to przypadku musi mieć skończone (a zatem obliczalne) właściwe rozwinięcie dziesiętne.

są istotne, często wygodniej jest zajmować się elementami (całkowita funkcja o wartości 0,1 zamiast liczb rzeczywistych w . Członków można zidentyfikować za pomocą binarnych rozwinięć dziesiętnych, ale od rozwinięć dziesiętnych i oznacza tę samą liczbę rzeczywistą, przedział może ) identyfikowany tylko z podzbiorem nie kończącym się na wszystkich jedynkach

Należy zauważyć, że ta właściwość rozwinięć dziesiętnych oznacza, że ​​​​niemożliwe jest skuteczne zidentyfikowanie obliczalnych liczb rzeczywistych zdefiniowanych za pomocą rozwinięcia dziesiętnego i tych zdefiniowanych w . Hirst wykazał, że nie ma algorytmu, który przyjmuje jako dane wejściowe opis maszyny Turinga, która wytwarza liczby obliczalnej i wytwarza jako dane wyjściowe maszynę Turinga, która wylicza cyfry a w sensie definicji Turinga. Podobnie oznacza to, że operacje arytmetyczne na obliczalnych liczbach rzeczywistych nie działają na ich reprezentacje dziesiętne, jak przy dodawaniu liczb dziesiętnych. Aby wygenerować jedną cyfrę, może być konieczne spojrzenie arbitralnie daleko w prawo, aby określić, czy istnieje przeniesienie do bieżącej lokalizacji. Ten brak jednolitości jest jednym z powodów, dla których współczesna definicja liczb obliczalnych wykorzystuje zamiast rozwinięć dziesiętnych

Jednak z obliczalności lub miary dwie i zasadniczo Dlatego teoretycy obliczalności często odnoszą się do członków . Chociaż jest całkowicie odłączony , przypadku pytań dotyczących \ .

Elementy są czasami nazywane liczbami rzeczywistymi i chociaż zawierają homeomorficzny obraz , nie jest nawet lokalnie zwarty (oprócz tego, że jest całkowicie rozłączony). Prowadzi to do rzeczywistych różnic we właściwościach obliczeniowych. Na przykład satysfakcjonujące satysfakcjonujące , z \ Displaystyle formuła może zajmować dowolnie wysoką pozycję w hierarchii hiperarytmetycznej .

Użyj zamiast liczb rzeczywistych

Liczby obliczalne obejmują określone liczby rzeczywiste, które pojawiają się w praktyce, w tym wszystkie rzeczywiste liczby algebraiczne , a także e , π i wiele innych liczb przestępnych . Chociaż obliczalne liczby rzeczywiste wyczerpują te liczby rzeczywiste, które możemy obliczyć lub przybliżyć, założenie, że wszystkie liczby rzeczywiste są obliczalne, prowadzi do zasadniczo różnych wniosków na temat liczb rzeczywistych. Naturalnie powstaje pytanie, czy możliwe jest pozbycie się pełnego zestawu liczb rzeczywistych i użycie liczb obliczalnych w całej matematyce. Pomysł ten jest atrakcyjny z konstruktywistycznego punktu widzenia i był realizowany przez to, co Errett Bishop i Fred Richman nazywają rosyjską szkołą matematyki konstruktywnej. [ potrzebne źródło ]

Aby rzeczywiście opracować analizę liczb obliczalnych, należy zachować ostrożność. Na przykład, jeśli użyje się klasycznej definicji ciągu, zbiór liczb obliczalnych nie jest zamknięty w ramach podstawowej operacji polegającej na pobraniu supremumu z ograniczonej sekwencji (na przykład rozważ sekwencję Speckera , patrz sekcja powyżej). Trudność tę rozwiązuje się, biorąc pod uwagę tylko ciągi, które mają obliczalny moduł zbieżności . Powstała w ten sposób teoria matematyczna nazywana jest analizą obliczeniową .

Implementacje arytmetyki dokładnej

Pakiety komputerowe przedstawiające liczby rzeczywiste jako programy obliczające przybliżenia zostały zaproponowane już w 1985 roku pod nazwą „arytmetyka dokładna”. Współczesne przykłady obejmują bibliotekę CoRN (Coq) i pakiet RealLib (C++). Powiązany zakres prac opiera się na wzięciu rzeczywistego programu RAM i uruchomieniu go z liczbami wymiernymi lub zmiennoprzecinkowymi o wystarczającej precyzji, na przykład pakiet iRRAM.

Zobacz też

Notatki

Dalsza lektura