Liczby nieobliczalne…

advertisement
O LICZBACH
NIEOBLICZALNYCH
I ICH ZWIĄZKACH
Z INFORMATYKĄ
Jakie obiekty matematyczne
nazywa się nieobliczalnymi?
Jakie obiekty matematyczne
nazywa się nieobliczalnymi?
Najczęściej:
a) liczby
b) funkcje
c) problemy
(nierozwiązywalne za pomocą algorytmów:
zasadniczo lub praktycznie)
► nieobliczalne = algorytmicznie niedostępne
Problemy nieobliczalne
Typowe przykłady?
Problemy nieobliczalne
Typowe przykłady?
Problem spełnialności
(nieobliczalny praktycznie)
Czy istnieje takie wartościowanie
zmiennych zdaniowych, przy
którym formuła zawierająca n
zmiennych jest prawdziwa ?
Problem równań diofantycznych
(nieobliczalny zasadniczo)
Czy dane równanie diofantyczne,
z dowolną liczbą niewiadomych
i całkowitymi współczynnikami,
ma choć jedno rozwiązanie
w zbiorze liczb całkowitych ?
(¬b ∧ ( a → b)) → (¬a ))
1
0
1
x2 + 2 y3 − 4 y 2 + z 4 = 0
0
Turingowski problem stopu
Problem stopu (maszyny Turinga)
Dla dowolnej maszyny MTi i jej
dowolnych danych wejściowych Dj
odpowiedz jednoznacznie,
czy MTi zatrzyma się dla danych Dj
tj. zakończy przetwarzanie danych Dj?
Mniej technicznie:
Czy istnieje taki uniwersalny algorytm, który analizując zapis każdego innego
algorytmu oraz dowolnych jego danych,
rozstrzygnie jednoznacznie
czy analizowany algorytm zakończy przetwarzanie swoich danych, czy też
będzie je przetwarzał w nieskończoność?
Co problemy (nieobliczalne) mogą mieć
wspólnego z liczbami ?
Co problemy (nieobliczalne) mogą mieć
wspólnego z liczbami ?
Dwa spostrzeżenia
1) Jeśli pewien problem ma algorytmiczne rozwiązanie, to istnieje
rozwiązujący go program komputerowy, a ponieważ komputerowa
realizacja programu jest ciągiem obliczeń, to sam problem ma pewne
rozwiązanie liczbowe (które człowiek tak lub inaczej interpretuje).
Krótko: rozwiązanie problemu jest liczbą.
2) Rozwiązujący dany problem program komputerowy, można
przedstawić jako pewną liczbę (przyjmując określoną metodę kodowania).
Krótko: metoda rozwiązania (program) jest liczbą. (!)
Co problemy (nieobliczalne) mogą mieć
wspólnego z liczbami ?
Wstępna konkluzja
► Jeśli pewien problem nie ma żadnych algorytmicznych rozwiązań
(w dziedzinie algorytmów dla maszyn cyfrowych), a chcemy utrzymać
pojęcie „liczby kodującej rozwiązanie”, to musimy przyjąć, że:
Hipotetyczne rozwiązanie problemu cyfrowo nieobliczalnego
jest pewną specjalną liczbą: liczbą nieobliczalną.
Jakiego typu liczbami są
liczby nieobliczalne?
Jakiego typu liczbami są
liczby nieobliczalne?
Czy liczby nieobliczalne są po prostu
liczbami niewymiernymi ?
Czy liczby nieobliczalne są po prostu
liczbami niewymiernymi?
NIE.
Liczba nieobliczalna jest to taka specyficzna liczba niewymierna,
której nie można obliczyć (algorytmicznie wyznaczyć) z dowolną
zadaną dokładnością.
Można ją obliczyć tylko z pewną skończoną dokładnością.
Należy odróżnić zatem niewymierne liczby obliczalne
i niewymierne liczby nieobliczalne.
Czy liczba π jest nieobliczalna?
Czy liczba π jest nieobliczalna?
NIE.
Liczbę π można przedstawić w postaci szeregu liczbowego,
który to szereg można zinterpretować jako algorytm jej
obliczania z dowolną zadaną dokładnością.
∞
4 4 4
(−1) n
π = 4 − + − + ... = 4 ⋅ ∑
3 5 7
n = 0 2n + 1
1 1 1
e = 1 + + + + ... =
1! 2! 3!
∞
1
n!
n =0
∑
Co liczby nieobliczalne mają
wspólnego z maszynami Turinga?
Co liczby nieobliczalne mają
wspólnego z maszynami Turinga?
Za pomocą maszyn Turinga definiuje się pojęcie obliczania.
Obliczać -- to znaczy wykonywać program dla maszyny Turinga.
A ZATEM…
Co liczby nieobliczalne mają
wspólnego z maszynami Turinga?
Za pomocą maszyn Turinga definiuje się pojęcie obliczania.
Obliczać to znaczy wykonywać program dla maszyny Turinga.
A ZATEM…
Liczba obliczalna jest to taka liczba rzeczywista,
dla której istnieje maszyna Turinga (inaczej: program
dla maszyny cyfrowej) pozwalająca obliczyć ją z dowolną
zadaną dokładnością.
Liczba nieobliczalna nie ma powyższej własności:
jest niewyznaczalna za pomocą maszyn Turinga.
Liczby (nie)obliczalne – kilka określeń
Liczby obliczalne…
Liczby nieobliczalne…
(wg. Turinga)
(wg. Turinga)
Istnieje dla nich
algorytm obliczania.
Nie istnieje dla nich
algorytm obliczania.
Istnieje maszyna Turinga
obliczająca je z dowolną
zadaną dokładnością.
Żadna maszyna Turinga
nie potrafi obliczyć ich
z dowolną zadaną
dokładnością.
Istnieje algorytm
obliczania ich
kolejnych cyfr.
Nie istnieje algorytm
obliczania ich kolejnych cyfr.
Różne klasy liczb
liczby obliczalne
i nieobliczalne
Na osi CZASU
liczby
naturalne
liczby
wymierne
liczby
niewymierne
zero
liczby
ujemne
liczby
rzeczywiste
Na osiach LICZBOWYCH
liczby
nieobliczalne
Im
i
…
?
-1
0
3
4
1
2
Re
liczby
zespolone
Definiowanie liczb nieobliczalnych
Niektóre liczby nieobliczalne można zdefiniować,
nie podając jednak efektywnego schematu
wyznaczania ich kolejnych cyfr.
Poglądowy przykład:
a) Tworzymy uporządkowaną listę wszelkich możliwych
maszyn Turinga MTi
(z danymi wejściowymi na taśmach).
b) Definiujemy liczbę zapisaną binarnie
L = 0,b1b2b3b4…
przy czym
bi = 1, gdy MTi kończy pracę
bi = 0, gdy MTi działa w nieskończoność
Od niewymierności do nieobliczalności
1. Istnieją liczby niewymierne.
(Pitagorejczycy, VI w p.n.e)
2. Liczby naturalne i wymierne
są równoliczne.
(G. Cantor, koniec wieku XIX)
5. Istnieją różne podklasy liczb
niewymiernych.
(XIX i XX wiek)
6. Istnieją niewymierne liczby
nieobliczalne.
(Turing 1936)
3. Liczby naturalne i rzeczywiste
nie są równoliczne.
(G. Cantor, koniec wieku XIX)
7. Zbiór liczb nieobliczalnych ma
moc continuum.
4. Zbiór liczb niewymiernych ma
moc continuum.
(G. Cantor, koniec wieku XIX)
8. Liczby nieobliczalne są czysto
losowe.
(G. Chaitin 1987)
Download