Wykład 5. Alan Turing u progu współczesnej
Transkrypt
Wykład 5. Alan Turing u progu współczesnej
Alan M. TURING ∞ ∑ n =0 1 n! Matematyk u progu współczesnej informatyki −− Wykład 5. Alan Turing u progu współczesnej informatyki −− O co pytał Alan TURING? Czym jest algorytm? Czy wszystkie problemy da się rozwiązać algorytmicznie? Czy wszystkie liczby można obliczyć? Czy maszyna może myśleć? −− Wykład 5. Alan Turing u progu współczesnej informatyki −− KALENDARIUM (1912 – 1954) 1931 do 1939 – studiuje, a następnie pracuje w King’s College w Cambridge. 1936 – publikuje swoją najważniejszą pracę „On Computable Numbers…”. Wprowadza w niej podział na liczby obliczalne i nieobliczalne, oraz ideę abstrakcyjnej maszyny, która uściśla w sposób ostateczny pojęcie algorytmu, a dziś stanowi najprostszy model komputera cyfrowego. 1939 do 1945 – pracuje jako kryptolog w służbie wywiadu brytyjskiego; konstruuje specjalne maszyny deszyfrujące (tzw. bomby Turinga), które powalają rozszyfrowywać tajne depesze niemieckie kodowane za pomocą maszyny Enigma. 1946 do 1950 – uczestniczy w pracach nad skonstruowaniem pierwszego angielskiego komputera cyfrowego. 1950 – publikuje artykuł „Computing Machinery and Intelligence”, w którym formułuje swoje filozoficzne poglądy n.t. możliwości zaistnienia sztucznej inteligencji. 1954 – popełnia samobójstwo; jest to dramatyczna reakcja na publiczne szykany wobec jego orientacji homoseksualnej. −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Jakie idee Alana Turinga weszły na trwałe do nauki? liczby obliczalne matematyka teoria liczb teoria obliczeń maszyna Turinga informatyka teoria algorytmów teoria obliczeń test Turinga teza Churcha-Turinga filozofia umysłu informatyka sztuczna inteligencja filozofia umysłu teoria algorytmów teoria obliczeń −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Czym jest MASZYNA TURINGA ? Pierwotnie był to abstrakcyjny automat precyzujący pojęcie algorytmu, czyli procedury mechanicznej. Automat ten można rozumieć fizycznie, jako mechanizm o ściśle określonej konstrukcji, zdolny realizować programy. Udowodniono, że MT jest równoważna komputerowi cyfrowemu realizującemu konkretny program. −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Jak jest ZBUDOWANA maszyna Turinga ? Maszyna Turinga składa się z: (1) nieskończonej, podzielonej na odrębne komórki, taśmy, (2) głowicy do odczytu-zapisu danych, (3) rejestru stanów, (4) tablicy przejść między stanami. Automat ten działa na podstawie programu zawartego w tablicy (4). −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Jak wygląda PROGRAM maszyny Turinga ? symbole a b 0 (1,a,P) (0,b,L) 1 (0,a,P) (1,b,L) # (#,b,L) (#,c,P) c – stan końcowy stany rozkazy −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Czym jest UNIWERSALNA maszyna Turinga? UMT jest specjalną maszyną Turinga, której program ma za zadanie symulować działanie dowolnej, konkretnej MT. Wykazano, że UMT może wykonać dowolnie złożony program dla dowolnie zaawansowanej technicznie maszyny cyfrowej. −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Czy maszyna uniwersalna jest naprawdę UNIWERSALNA ? (P1) Czy wszystkie dobrze określone problemy matematyczne mają rozwiązania algorytmiczne ? (P2) Czy istnieje algorytm rozstrzygający, że dany problem ma rozwiązanie algorytmiczne ? (P3) Czy uniwersalna maszyna Turinga potrafi stwierdzić rozwiązywalność dowolnego problemu ? −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Czy jakaś maszyna Turinga może wiedzieć WSZYSTKO o innych maszynach ? NIE ! A oto oryginalny nierozstrzygalny problem Turinga (tzw. problem stopu) 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? −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Czy programy komputerowe mogą być WSZECHWIEDZĄCE? NIE ! Nie istnieje bowiem taki uniwersalny program komputerowy, który dla dowolnego innego programu i dowolnych jego danych wejściowych, jest w stanie rozstrzygnąć, czy dla tych właśnie danych program ów zakończy pracę, czyli zatrzyma się ! −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Jakie jeszcze problemy są NIEROZSTRZYGALNE? Równania diofantyczne Równania diofantyczne Czy dane równanie diofantyczne, z dowolną liczbą niewiadomych i całkowitymi współczynnikami, ma choć jedno rozwiązanie w zbiorze liczb całkowitych ? x2 + 2 y3 − 4 y2 + z4 = 0 (1) −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Jakie jeszcze problemy są NIEROZSTRZYGALNE? Równoważność Równoważność składniowaskładniowa języków programowania języków programowania Czy dla dwóch dowolnych języków programowania, określonych co do składni i co do zbioru instrukcji podstawowych, możemy stwierdzić, że z ich instrukcji podstawowych daje się zbudować takie same zbiory instrukcji złożonych ? (2) −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Czy problemy nierozstrzygalne są nierozstrzygalne W OGÓLE? Teza Churcha-Turinga Każdy problem, dla którego istnieje efektywny algorytm rozwiązania, można rozwiązać za pomocą maszyn Turinga. ( maszyna Turinga dostatecznie dobrze opisuje pojęcia algorytmu i algorytmizowalności ) Czy istnieją jednak maszyny alternatywne? neurokomutery komputery kwantowe maszyny analogowe (… ? ...) −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Czym są liczby NIEOBLICZALNE ? Liczby obliczalne… ? Liczby nieobliczalne… ? Istnieje dla nich algorytm obliczania. Nie istnieje dla nich algorytm obliczania. Istnieje maszyna Turinga obliczająca je z dowolną 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. −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Czy liczby niewymierne są NIEOBLICZALNE? NIE WSZYSTKIE! 4 4 4 (−1)n π = 4 − + − +...= 4⋅ 3 5 7 2n +1 n=0 ∞ ∑ 1 1 1 e = 1 + + + + ... = 1! 2! 3! ∞ 1 n! n =0 ∑ −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Czy maszyna może MYŚLEĆ ? Na czym polega test Turinga ? Maszynę należy uznać za inteligentną (szerzej: myślącą), jeśli na podstawie analizy jej odpowiedzi na zadawane pytania, nie potrafimy odróżnić maszyny od człowieka. −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Jakie maszyny mogłyby MYŚLEĆ ? UCZĄCE SIĘ ! Uczące się metodą prób i błędów. Uczące się w sposób losowy czyli niedeterministycznie. Uczące się w drodze elektronicznej ewolucji. −− Wykład 5. Alan Turing u progu współczesnej informatyki −− Dlaczego Turing – matematyk przyczynił się do rozwoju INFORMATYKI? Bo jako pierwszy podał opis abstrakcyjnej maszyny, która stanowi do dziś najprostszy model komputera cyfrowego. Ta sama idea precyzuje pojęcie algorytmu. Bo nie bał się marzyć o maszynach myślących – objaśniając przy tym ich ogólne zasady działania. Bo wskazał kierunki badań nad myślącymi maszynami przyszłości, które dziś są intensywnie rozwijane.