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.

Podobne dokumenty