Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 2
J.Nawrocki, Modele obliczeń i granice... Plan wykładu Maszyna TuringaMaszyna Turinga Funkcje rekurencyjneFunkcje rekurencyjne Model maszyny RAMModel maszyny RAM
J.Nawrocki, Modele obliczeń i granice... Maszyna Turinga a1a1a1a1 a2a2a2a2... aiaiaiai... ananananBB...
J.Nawrocki, Modele obliczeń i granice... Maszyna Turinga a1a1a1a1 a2a2a2a2... aiaiaiai... ananananBB... Sterowanie
J.Nawrocki, Modele obliczeń i granice... Maszyna Turinga Sterowanie Problem parzystości liczby binarnej 0 | A | 1 | A | 0 | B | B | B | 1 | B | 0 | B | 1 | B | A | 0 | - A | 1 | -
J.Nawrocki, Modele obliczeń i granice... Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | 0 | B | 1 | B | A | 0 | - A | 1 | - 110BB...
J.Nawrocki, Modele obliczeń i granice... 1 | A | Maszyna Turinga Sterowanie 0 | A | 0 | B | B | B | 1 | B | 0 | B | 1 | B | A | 0 | - A | 1 | - 110BB...
J.Nawrocki, Modele obliczeń i granice... 1 | A | Maszyna Turinga Sterowanie 0 | A | 0 | B | B | B | 1 | B | 0 | B | 1 | B | A | 0 | - A | 1 | - A10BB...
J.Nawrocki, Modele obliczeń i granice... 1 | A | Maszyna Turinga Sterowanie 0 | A | 0 | B | B | B | 1 | B | 0 | B | 1 | B | A | 0 | - A | 1 | - A10BB...
J.Nawrocki, Modele obliczeń i granice... Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | 0 | B | 1 | B | A | 0 | - A | 1 | - A10BB...
J.Nawrocki, Modele obliczeń i granice... Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | 0 | B | 1 | B | A | 0 | - A | 1 | - AB0BB...
J.Nawrocki, Modele obliczeń i granice... 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 0 | - A | 1 | - AB0BB...
J.Nawrocki, Modele obliczeń i granice... 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 0 | - A | 1 | - AB0BB...
J.Nawrocki, Modele obliczeń i granice... 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 0 | - A | 1 | - ABBBB...
J.Nawrocki, Modele obliczeń i granice... 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 0 | - A | 1 | - ABBBB...
J.Nawrocki, Modele obliczeń i granice... B | B | 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 0 | - A | 1 | - ABBBB...
J.Nawrocki, Modele obliczeń i granice... B | B | 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 0 | - A | 1 | - ABBBB...
J.Nawrocki, Modele obliczeń i granice... B | B | 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 0 | - A | 1 | - ABBBB...
J.Nawrocki, Modele obliczeń i granice... B | B | 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 0 | - A | 1 | - ABBBB...
J.Nawrocki, Modele obliczeń i granice... B | B | 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 0 | - A | 1 | - ABBBB...
J.Nawrocki, Modele obliczeń i granice... B | B | 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 0 | - A | 1 | - ABBBB...
J.Nawrocki, Modele obliczeń i granice... B | B | 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 0 | - A | 1 | - ABBBB...
J.Nawrocki, Modele obliczeń i granice... A | 0 | - B | B | 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 1 | - ABBBB...
J.Nawrocki, Modele obliczeń i granice... A | 0 | - B | B | 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 1 | - 0BBBB...
J.Nawrocki, Modele obliczeń i granice... A | 0 | - B | B | 0 | B | Maszyna Turinga Sterowanie 0 | A | 1 | A | 0 | B | B | B | 1 | B | A | 1 | - 0BBBB...
J.Nawrocki, Modele obliczeń i granice... Deterministyczna maszyna Turinga Zbiór stanów Zbiór symboli wejściowych Zbiór symboli taśmowych Funkcja następnego ruchu jeśli stan=q x oraz symbol=a i to {przejdź do stanu q y ; zapisz na taśmie symbol s; przesuń głowicę} Stan początkowy Symbol pusty (B) Zbiór stanów końcowych
J.Nawrocki, Modele obliczeń i granice... Funkcje rekurencyjne Tylko funkcje określone na zbiorze liczb naturalnych i o wartościach naturalnych * 3 5 mod ln 5 5 e
J.Nawrocki, Modele obliczeń i granice... Funkcje rekurencyjne Składanie funkcji Nieparz(n)= 2*n + 1 Plus(a,b) = a + b Razy(a,b) = a * b Nieparz(n)= Plus(Razy(2,n), 1)
J.Nawrocki, Modele obliczeń i granice... Funkcje rekurencyjne Definiowanie indukcyjne (1) n! = 1*2*3*.. *n Silnia(0)= 1 Silnia(n)= n * Silnia(n-1) f(0)= k f(n)= h(n-1, f(n-1))
J.Nawrocki, Modele obliczeń i granice... Funkcje rekurencyjne Definiowanie indukcyjne (2) a b = a*a*a*.. *a P(a,0)= 1 P(a,n)= a * P(a, n-1) f(x, 0)= g(x) f(x, n)= h(x, n-1, f(n-1,x))
J.Nawrocki, Modele obliczeń i granice... Funkcje rekurencyjne Operacja minimum Log2(x)= Log 2 x Log2(x)= Log 2 x Log2(x)=w 2 w x < 2 w+1 Log2(x)= najmn. w : x < 2 w+1 Log2(x)= ( w) [ x < 2 w+1 ] f(x)= ( y) [ R(x,y) ]
J.Nawrocki, Modele obliczeń i granice... Funkcje rekurencyjne Minimum efektywne Minus1(x)= ( y) [ x < y + 2 ] ( y) [ x < y + 2 ] --- efektywne -- f(x)= ( y) [ R(x,y) ] x y R(x,y) x y R(x,y) Minus1(x)= ( y) [ x = y + 1 ] ( y) [ x = y + 1 ] --- nieefektywne ---
J.Nawrocki, Modele obliczeń i granice... Funkcje rekurencyjne Klasa funkcji obliczalnych Najmniejsza klasa funkcji zawierająca zero i następnik oraz zamknięta ze względu na operacje: składania funkcji, składania funkcji, rekursji prostej, rekursji prostej, minimum efektywnego. minimum efektywnego.
J.Nawrocki, Modele obliczeń i granice... Twierdzenie Gödela Jeśli teoria T jest niesprzeczna i zawiera arytmetykę liczb naturalnych, to istnieją zdania A(x) takie, że chociaż wszystkie zdania A(0), A(1), A(2),... są twierdzeniami teorii T, to jednak zdanie ogólne dla każdej liczby naturalnej x zachodzi A(x) ani jego zaprzeczenie nie daje się wyprowadzić.
J.Nawrocki, Modele obliczeń i granice... Model maszyny RAM Rejestry Pamięć
J.Nawrocki, Modele obliczeń i granice... Model maszyny RAM Rejestry Pamięć Przykładowe operacje maszyny: przesłanie stałej do rejestru: R1 1przesłanie stałej do rejestru: R1 1 przesłanie iloczynu do rejestru: R1 R1 * R2przesłanie iloczynu do rejestru: R1 R1 * R2 porównanie rejestru ze stałą: R2 > 0porównanie rejestru ze stałą: R2 > 0 przesłanie komórki pamięci do rejestru: R1 M [1000]przesłanie komórki pamięci do rejestru: R1 M [1000]
J.Nawrocki, Modele obliczeń i granice... Język schematów blokowych R1 1 R2 0 R2 > 0 Tak Nie Start Stop
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 0 Tak Nie Warunek pocz.: R2 = n Warunek końc.: R1 = n!
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out 1
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out 1
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out 1 4
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out 1 43
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out 1 43
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out 1 43
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out
J.Nawrocki, Modele obliczeń i granice... Obliczanie n! Start Stop R1 1 R1 1 R1 R1 * R2 R1 R1 * R2 R2 R2 - 1 R2 R2 - 1 R2 > 1 Tak Nie R2R1 4 In Out In Out ! = 24 4! = 24
J.Nawrocki, Modele obliczeń i granice... Koncepcja von Neumanna Specjalizowane kalkulatory (obliczanie toru pocisku) a uniwersalne komputery Jak zrealizować uniwersalność: program jako łącznice kablowe program jako łącznice kablowe program jako dane przechowywane w pamięci (koncepcja von Neumanna) program jako dane przechowywane w pamięci (koncepcja von Neumanna)
J.Nawrocki, Modele obliczeń i granice... Koncepcja von Neumanna Dwie fazy: 1. Ściąganie rozkazu i jego dekodowanie 2. Wykonanie rozkazu Specjalny rejestr (licznik rozkazów) pokazuje następny rozkaz do wykonania.
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów Kod Rozkaz Przykład 1 MovRegCon(R, C) R1 0 1 MovRegCon(R, C) R1 0 2 IfRegLeCon(R, C, I) R IfRegLeCon(R, C, I) R MulRegReg(Rd, Rs) R1 R1*R2 3 MulRegReg(Rd, Rs) R1 R1*R2 4 SubRegCon(Rd, C) R2 R2-R1 4 SubRegCon(Rd, C) R2 R2-R1 5 Jump(I) Jump(I) Stop 6 6 Stop 6
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów 1 1 1MovRegConR IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów MovRegCon R IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop R2R1 3 In Out In Out 10 IC
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów MovRegCon R IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop R2R1 3 In Out In Out 13 IC 1
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów MovRegCon R IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop R2R1 3 In Out In Out 17 IC 1
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów MovRegCon R IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop R2R1 3 In Out In Out 20 IC 1 3
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów MovRegCon R IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop R2R1 3 In Out In Out 23 IC 1 32
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów MovRegCon R IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop R2R1 3 In Out In Out 13 IC 1 32
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów MovRegCon R IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop R2R1 3 In Out In Out 17 IC 1 32
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów MovRegCon R IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop R2R1 3 In Out In Out 20 IC
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów MovRegCon R IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop R2R1 3 In Out In Out 23 IC
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów MovRegCon R IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop R2R1 3 In Out In Out 13 IC
J.Nawrocki, Modele obliczeń i granice... Kodowanie rozkazów MovRegCon R IfRegLeCon 3 17 MulRegReg SubRegCon Jump 25Stop R2R1 3 In Out In Out 13 IC
J.Nawrocki, Modele obliczeń i granice... Równoważność modeli Maszyna Turinga, funkcje rekurencyjne i maszyna RAM są obliczeniowo równoważne
J.Nawrocki, Modele obliczeń i granice... Problem stopu Dany jest podprogram X. Czy ten podprogram skończy obliczenia w skończonym czasie?
J.Nawrocki, Modele obliczeń i granice... Problem stopu procedure ZatrzymaSię(P: procedure): Boolean; { ??? } { ??? } procedure X; { while ZatrzymaSię(X) do ; } { while ZatrzymaSię(X) do ; }
J.Nawrocki, Modele obliczeń i granice... Problem stopu ZatrzymaSię(X) procedure X Tak Nie Wniosek: Problem stopu jest nierozstrzygalny
J.Nawrocki, Modele obliczeń i granice... Podsumowanie Maszyna Turinga, funkcje rekurencyjne i maszyna RAM są obliczeniowo równoważneMaszyna Turinga, funkcje rekurencyjne i maszyna RAM są obliczeniowo równoważne Problem stopu jest nierozstrzygalnyProblem stopu jest nierozstrzygalny Nareszcie!