Wykład 3. Algorytmy i maszyny Turinga

Transkrypt

Wykład 3. Algorytmy i maszyny Turinga
O ALGORYTMACH
I
MASZYNACH TURINGA
−− Wykład 3. Algorytmy i maszyny Turinga −−
ALGORYTM (objaśnienie ogólne)
Algorytm
Pojęcie o rodowodzie matematycznym, oznaczające
współcześnie precyzyjny schemat mechanicznej lub
maszynowej realizacji zadań określonego typu;
schemat możliwy do zakodowania w postaci programu komputerowego.
Algorytm potocznie: przepis na rozwiązanie pewnego problemu.
Ważne!
Algorytm nie musi gwarantować rozwiązania problemu; wystarczy, że
opisuje w sposób precyzyjny procedurę (nie zawsze skuteczną)
poszukiwania rozwiązań.
Krótko: Algorytm może być heurystyczny.
−− Wykład 3. Algorytmy i maszyny Turinga −−
ALGORYTM (w informatyce – dwa ujęcia)
W sensie wąskim
Algorytmem nazywa się każdy ogólny schemat
procedury możliwej do wykonania przez
uniwersalną maszynę Turinga (UMT).
(Ze względu na obliczeniową równoważność
UMT i komputerów cyfrowych jest to pojęcie
algorytmu dla maszyn cyfrowych.)
W sensie szerszym
Algorytmem nazywa się ogólny schemat procedury
możliwej do wykonania przez pewną maszynę –
niekoniecznie cyfrową i deterministyczną
(np. analogową, kwantową, ewolucyjną – lista nie
jest zamknięta).
−− Wykład 3. Algorytmy i maszyny Turinga −−
ALGORYTMY (typy i własności)
Algorytm ≈ program komputerowy
Różne typy algorytmów
cyfrowe vs analogowe
determ. vs niedeterm.
szeregowe vs równoległe
szeregowe vs rekurencyjne
klasyczne vs populacyjne
działania vs uczenia się (…)
Różne informatyczne
własności algorytmów
skuteczność
złożoność czasowa
złożoność pamięciowa
złożoność struktury
stabilność (numeryczna)
Uwaga: typ algorytmu zależy często (być może najczęściej)
od typu maszyny, na której będzie realizowany.
−− Wykład 3. Algorytmy i maszyny Turinga −−
Kim był Alan TURING? (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 3. Algorytmy i maszyny Turinga −−
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 3. Algorytmy i maszyny Turinga −−
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 3. Algorytmy i maszyny Turinga −−
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 3. Algorytmy i maszyny Turinga −−
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 3. Algorytmy i maszyny Turinga −−
Czy maszyna uniwersalna jest
naprawdę UNIWERSALNA ?
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 3. Algorytmy i maszyny Turinga −−
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 3. Algorytmy i maszyny Turinga −−
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 3. Algorytmy i maszyny Turinga −−
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 3. Algorytmy i maszyny Turinga −−
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 3. Algorytmy i maszyny Turinga −−
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 3. Algorytmy i maszyny Turinga −−
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
∑

Podobne dokumenty