bal w13


Poszukiwanie prostej i uniwersalnej maszyny obliczeniowej Przykład tablicy dwuwymiarowej
Algorytm = operacje elementarne + struktury sterujące
7 45 -3
Program obliczeniowy =
91 0 12
= język programowania + algorytm + struktury danych
-15 11 17
Maszyna obliczeniowa (MO) =
= model pamięci + zapis sterowania + zestaw operacji elementarnych
Jak dalece można uprościć model pamięci, aby można było tworzyć
# 7 45 -3 " 91 0 12 " -15 11 17 #
różne struktury danych?
Czy pamięć MO mogłaby być jednowymiarową  taśmą podzieloną
Strukturę tablicy można zapisać na jednowymiarowej taśmie
na komórki?
Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 1 Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 2
Przykład drzewa ukorzenionego
Każdą strukturę danych da się zlinearyzować,
I
tzn. zapisać na jednowymiarowej taśmie
N F O
W MO przyjmujemy najprostszy model pamięci:
R M A T
# # # #
Y K A
pamięcią MO jest nieskończoną jednowymiarową taśmą
podzieloną na komórki,
# I " N F O " R M A T " Y K A #
pojedyncza komórka może przechowywać jeden znak z
przyjętego alfabetu symboli,
lub lepiej
puste komórki wypełnione są umownym symbolem #
( I ) ( N F O ) ( R M ) ( A ) ( T ) ( ) ( Y ) ( ) ( K A )
Strukturę drzewa można zapisać na jednowymiarowej taśmie
Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 3 Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 4
symbole
Jak dalece można uprościć zapis sterowania, tak aby można alfabetu
było realizować różne algorytmy?
stan a
aktualny
Sterowanie powinno wskazywać kolejność wykonywania
możliwe
b
operacji w procesie wyznaczania wyniku wg przyjętego następne
c stany
algorytmu (w każdym momencie może być wykonywana co
najwyżej jedna operacja)
wszystkie stany, które mogą pojawić się przy realizacji danego
znajdowanie się w określonym miejscu procesu realizacji
algorytmu są zaznaczane jako węzły na tzw. diagramie przejść
algorytmu nazwiemy stanem procesu,
międzystanowych
stan początkowy symbolizuje rozpoczęcie realizacji algorytmu
dla każdego stanu na diagramie, zbiór następnych stanów wynika
(start), a stan końcowy jego zatrzymanie (stop),
ze struktury sterowania przyjętej w danym algorytmie
proces jest sekwencją stanów przechodzonych jeden po drugim,
wybór jednego z możliwych stanów następnych zależy od
w każdym przebiegu algorytmu kolejność stanów wynika z
zawartości komórek pamięci, w których zapisano dane
zawartości określonych komórek w pamięci MO.
początkowe dla konkretnego przebiegu algorytmu
Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 5 Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 6
1
Maszyna Turinga (MT)
Jak dalece można uprościć zestaw operacji, tak aby można
było realizować różne algorytmy?
Jeden z wielu modeli prostej MO
Zestaw podstawowych operacji musi zawierać zapisanie i odczytanie
symbolu z komórki pamięci, wskazanie pojedynczej komórki w celu
STEROWANIE
dokonania zapisu lub odczytu oraz przejście do kolejnego stanu.
(diagram przejść
głowica
między stanami)
Okazuje się, że nie musi zawierać już niczego więcej!
ruch głowicy
ODCZYTUJCO
o jedną komórkę
-ZAPISUJCA
Operacje wykonywane przez MO:
w lewo lub w prawo
1. przeczytanie jednego symbolu ze wskazanej komórki taśmy,
# # a # #
2. zapisanie jednego symbolu do wskazanej komórki taśmy,
PAMIĆ (nieskończona taśma)
komórka
3. wskazanie jednej z dwóch komórek sąsiednich po wykonaniu
pamięci pojedynczy
odczytu i zapisu w bieżącej komórce,
symbol alfabetu
4. przejście do kolejnego stanu.
Wszystkie podane operacje mogą być wykonywane zawsze razem
Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 7 Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 8
Węzłami (wierzchołkami) diagramu przejść są wszystkie stany
Na MT składa się:
w jakich może znajdować się MT podczas realizacji algorytmu,
skończony alfabet symboli do zapisywania danych,
dla którego została zdefiniowana.
Węzły na diagramie są połączone odcinkami skierowanymi,
skończony zbiór stanów, w których może się znajdować proces
które symbolizują możliwe przejścia od stanu do stanu.
realizacji algorytmu zapisanego w postaci MT,
Każde przejście opisane jest tzw. etykietą.
nieskończona taśma podzielona na komórki przechowujące
pojedyncze symbole alfabetu,
akcja
etykieta
stan
(węzeł grafu)
krokowo poruszająca się głowica odcztująco-zapisująca,
przejście
a / b L
diagram przejść miedzy stanami, który steruje głowicą tak,
nazwa stanu
że po każdym odczytaniu zawartości komórki następuje zapisanie
do niej podanego symbolu, głowica jest przesuwana w lewo lub
kierunek przesunięcia
wyzwalacz przejścia
głowicy (L lub P)
(symbol alfabetu odczytany
w prawo o jedną komórkę i następuje przejście do kolejnego
przez głowicę z taśmy)
stanu, co rozpoczyna znów tę samą sekwencję operacji, symbol alfabetu zapisywany
przez głowicę na taśmie
jeden stan początkowy i stany końcowe, których może być kilka.
Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 9 Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 10
dokładnie jeden ze stanów w diagramie przejść MT
dla każdego stanu w diagramie MT muszą być opisane
jest wyróżniony jako stan początkowy,
przejścia do kolejnych stanów dla wszystkich symboli
w przyjętym alfabecie i dla dodatkowego symbolu #,
MT jest deterministyczna, jeżeli z żadnego stanu nie
Stan 1.
wychodzi więcej niż jedno przejście z tym samym
wyzwalaczem, tzn. nie pozostawiamy
wyboru przejścia maszynie, zakładając,
w stanie początkowym głowica MT jest ustawiona na pierwszej
a / b L
że wybierze właściwie;
od lewej niepustej komórce taśmy,
odczytanie z taśmy symbolu
stany, z których nie wychodzą już żadne przejścia, nazywane
a / c P
wyzwalacza jednoznacznie wskazuje,
są stanami końcowymi  MT kończy w nich swoje działanie,
(determinuje), który ze stanów jest
stanem następnym,
Stan  TAK
Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 11 Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 12
2
Przykład MT do wykrywania palindromów
# # a b b a # #
# # # b b a # #
# # # b b a # #
# # # b b a # #
# # # b b a # #
# # # b b a # #
# # # b b # # #
# # # b b # # #
# # # b b # # #
# # # b b # # #
# # # # b # # #
# # # # b # # #
# # # # b # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
Alfabetem symboli jest zbiór {a, b}
# / # L
ruch dla a test dla a
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
ruch dla a test dla a
ruch dla a test dla a
ruch dla a test dla a
ruch dla a test dla a
ruch dla a test dla a
ruch dla a test dla a
ruch dla a test dla a
ruch dla a test dla a
ruch dla a test dla a
ruch dla a test dla a
a / # L b / b L
b / b P a / # L b / b L
a / # L b / b L
a / # L b / b L
a / # L b / b L
a / # L b / b L
a / # L b / b L
a / # L b / b L
a / # L b / b L
a / # L b / b L
a / # L b / b L
a / # P b / b P
b / b P
b / b P
b / b P
b / b P
b / b P
b / b P
b / b P
b / b P
b / b P
a / a L a / # P
a / # P
a / # P
a / # P
a / # P
a / # P
a / # P
a / # P
a / # P
a / # P
a / a L
a / a L
a / a L
a / a L
a / a L
a / a L
a / a L
a / a L
a / a L
a / a P b / b L a / a L
a / a P b / b L
a / a P b / b L
a / a P b / b L
a / a P b / b L
a / a P b / b L
a / a P b / b L
a / a P b / b L
a / a P b / b L
a / a P b / b L
a / a P b / b L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
1. z lewej TAK NIE powrót
1. z lewej TAK NIE powrót
1. z lewej TAK NIE powrót
1. z lewej TAK NIE powrót
1. z lewej TAK NIE powrót
1. z lewej TAK NIE powrót
1. z lewej TAK NIE powrót
1. z lewej TAK NIE powrót
1. z lewej TAK NIE powrót
1. z lewej TAK NIE powrót
1. z lewej TAK NIE powrót
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L # / # L
a / a L
a / a L
a / a L
a / a L
a / a L
a / a L
a / a L
a / a L
a / a L
a / a L a / a L
b / b P
b / b P
b / b P
b / b P
b / b P
b / b P
b / b P
b / b P
b / b P
b / b P b / b P
b / # P
b / # P
b / # P
b / # P
b / # P
b / # P
b / # P
b / # P
b / # P
b / # P b / # P
a / a P
a / a P
a / a P
a / a P
a / a P
a / a P
a / a P
a / a P
a / a P
a / a P
a / a P
b / # L
b / # L
b / # L
b / # L
b / # L
b / # L
b / # L
b / # L
b / # L
b / # L
b / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
# / # L
ruch dla b test dla b
ruch dla b test dla b
ruch dla b test dla b
ruch dla b test dla b
ruch dla b test dla b
ruch dla b test dla b
ruch dla b test dla b
ruch dla b test dla b
ruch dla b test dla b
ruch dla b test dla b
ruch dla b test dla b
# / # P
# / # P
# / # P
# / # P
# / # P
# / # P
# / # P
# / # P
# / # P
# / # P
# / # P
Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 13 Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 14
Przykład taśmy MT przy dodawaniu dwóch liczb dziesiętnych
Jakie algorytmy może realizować MT?
# # # # # # # # 7 3 6 + 6 3 5 1 9 #
Wszystkie!
# # # # # # 5 ! 7 3 # + 6 3 5 1 # #
Teza Churcha-Turinga (tzw. Teza CT)
# # # # # 5 5 ! 7 # # + 6 3 5 # # # Na maszynie Turinga można zrealizować rozwiązanie każdego
efektywnie rozwiązywalnego problemu algorytmicznego!
# # # # 2 5 5 ! # # # + 6 3 # # # #
MT jest uniwersalną MO
# # # 4 2 5 5 ! # # # + 6 # # # # #
efektywnie rozwiązywalny problem algorytmiczny = problem,
dla którego można znalezć algorytm dający się zapisać w
# # 6 4 2 5 5 ! # # # + # # # # # #
jakimkolwiek języku jako program wykonujący się na
jakimkolwiek istniejącym lub możliwym do zbudowania
# ! 6 4 2 5 5 ! # # # + # # # # # #
komputerze (nawet jeśli wymagałby on nieograniczonej ilości
MT może realizować także algorytmy obliczeniowe czasu i pamięci)
Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 15 Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 16
MT stosowana jest w wielu odmianach:
maszyna z taśmą tylko jednostronnie nieskończoną,
maszyna z wieloma taśmami i głowicami,
maszyna z taśmą dwuwymiarową,
Teza CT
maszyna niedeterministyczna.
Wszystkie te odmiany są równoważne w sensie zbioru problemów
algorytmicznych, które mogą być nimi rozwiązane.
Proponowano różne inne uniwersalne MO:
rachunek lambda (A. Church), system produkcji do manipulowania
symbolami (E. Post), klasa funkcji rekurencyjnych (S. Kleen) itd.
Wszystkie te modele są równoważne MT Teza CT
Jarosław Sikorski - BUDOWA i ANALIZA ALGORYTMÓW, WIT 2006 r. 17
3


Wyszukiwarka