Odmiany maszyny Turinga. dr hab. inż. Joanna Józefowska, prof. PP 1

Podobne dokumenty
Efektywność Procedur Obliczeniowych. wykład 5

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

Maszyna Turinga języki

Języki, automaty i obliczenia

Obliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1

Matematyczne Podstawy Informatyki

Obliczenia inspirowane Naturą

Hierarchia Chomsky ego Maszyna Turinga

Logika i teoria mnogości Wykład 14

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

PROBLEMY NIEROZSTRZYGALNE

Struktury danych i złożoność obliczeniowa Wykład 6. Prof. dr hab. inż. Jan Magott

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość

1 Maszyny Turinga. stan 1 litera 1 litera 2 ruch stan 2. Matematycznie P S (Q {B}) (Q {B}) {L, R, } S

Języki, automaty i obliczenia

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Języki formalne i automaty Ćwiczenia 9

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Turing i jego maszyny

Elementy Teorii Obliczeń

O ALGORYTMACH I MASZYNACH TURINGA

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

1 Funkcje uniwersalne

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

1 Automaty niedeterministyczne

Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

Obliczenia inspirowane Naturą

Modele Obliczeń. Wykład 3 - Maszyny RAM i funkcje rekurencyjne. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

MODELOWANIE RZECZYWISTOŚCI

1 Działania na zbiorach

Rekurencyjna przeliczalność

Języki, automaty i obliczenia

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Imię, nazwisko, nr indeksu

Funkcje rekurencyjne

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Równowano modeli oblicze

Struktura danych. Sposób uporządkowania informacji w komputerze.

Elementy rachunku lambda. dr hab. inż. Joanna Józefowska, prof. PP 1

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

MASZYNA TURINGA UPRASZCZANIE DANYCH

Maszyna Turinga (Algorytmy Część III)

ZALICZENIE WYKŁADU: 30.I.2019

Dopełnienie to można wyrazić w następujący sposób:

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Złożoność obliczeniowa zadania, zestaw 2

O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ

Alan M. TURING. Matematyk u progu współczesnej informatyki

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Definicje. Algorytm to:

Języki formalne i automaty Ćwiczenia 4

Wprowadzenie do maszyny Turinga

Wstęp do programowania

Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne

Złożoność obliczeniowa. wykład 1

Jaki język zrozumie automat?

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Korzystając z własności metryki łatwo wykazać, że dla dowolnych x, y, z X zachodzi

Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń

Rozwiązania około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego (w trakcie tworzenia)

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

Robert Kowalczyk. Zbiór zadań z teorii miary i całki

Wyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym.

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Matematyczne Podstawy Informatyki

Wykład 10. Stwierdzenie 1. X spełnia warunek Borela wtedy i tylko wtedy, gdy każda scentrowana rodzina zbiorów domkniętych ma niepusty przekrój.

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

F t+ := s>t. F s = F t.

Matematyczne Podstawy Informatyki

7 Twierdzenie Fubiniego

Schemat rekursji. 1 Schemat rekursji dla funkcji jednej zmiennej

Symbol, alfabet, łańcuch

Rodzinę F złożoną z podzbiorów zbioru X będziemy nazywali ciałem zbiorów, gdy spełnione są dwa następujące warunki.

Wykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ

Maszyna Turinga, ang. Turing Machine (TM)

Matematyka dyskretna Literatura Podstawowa: 1. K.A. Ross, C.R.B. Wright: Matematyka Dyskretna, PWN, 1996 (2006) 2. J. Jaworski, Z. Palka, J.

Poprawność semantyczna

FUNKCJE. Kurs ZDAJ MATURĘ Z MATEMATYKI MODUŁ 5 Teoria funkcje cz.1. Definicja funkcji i wiadomości podstawowe

1. Definicja granicy właściwej i niewłaściwej funkcji.

Hierarchia Chomsky ego

Algorytmy i struktury danych. Wykład 4

Topologia zbioru Cantora a obwody logiczne

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

Języki formalne i automaty Ćwiczenia 7

Pierścień wielomianów jednej zmiennej

Obliczenia iteracyjne

Zadania do Rozdziału X

Podstawy Informatyki Maszyna Turinga

- Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S.

Wprowadzenie do złożoności obliczeniowej

Podstawy Teorii Obliczalności

Zakładamy, że maszyna ma jeden stan akceptujacy.

Przykładami ciągów, które Czytelnik dobrze zna (a jeśli nie, to niniejszym poznaje), jest ciąg arytmetyczny:

Języki formalne i automaty Ćwiczenia 1

Transkrypt:

Odmiany maszyny Turinga 1

Uniwersalna maszyna Turinga Uniwersalna maszyna U nad alfabetem A k jest to maszyna definiująca funkcje: f U, n+1 = {((w(i 1, I 2,..., I n )),y) w - opis maszyny T za pomocą słowa, zaś ((I 1, I 2,..., I n ),y) f T, n } - argument w odpowiada programowi - krotka I 1, I 2,..., I n odpowiada danym wejściowym programu 2

Przykład: A 3 = {0, 1, B} słowo w jest opisem maszyny definiującej f T, 1 = E T= {q 0,q 1 }, A 3, B, {q 0 0BRq 0, q 0 1BRq 0, q 0 BBRq 1 }, q 0 wprowadzamy porządek P na zbiorze stanów P: Q N P(q 0 ) = 1, P(q 1 ) = 2 niech S A 3 ; instrukcję qaa Dq wyrażamy: S P(q) aa D S P(q ) 3

Przykład c.d. kodujemy instrukcje T nad A 3 {S, L, R}: S0BRSS1BRSSBBRSS niech P 1 będzie porządkiem określonym dla A 3, zaś P 2 niech będzie porządkiem nad A 3 {S, L, R} P2 = P1 {(S, 4), (L, 5), (R, 6)} rozważamy funkcję K: (A k {S, L, R})* (A k )* skonstruowaną z wykorzystaniem numeracji elementów dziedziny i przeciwdziedziny 4

Przykład c.d. niech N 1 : (A 3 {S, L, R})* N oraz N 1 (S0BRSS1BRSSBBRSS)=n 1 niech N 2 : (A 3 )* N wybieramy słowo e A 3 *, którego numer porządkowy w numeracji N 2 równy jest n 1, słowo e jest kodem słowa w: K(w) = e 5

Niedeterministyczna maszyna Turinga NDTM = Q, A k, B, δ, q 0 δ: Q I A k 2 Q I A k I {L, R} Deterministyczną maszynę Turinga z dwoma stanami końcowymi q n i q y wyposażamy w moduł generujący słowa należące do A k*. 6

Niedeterministyczna maszyna Turinga Maszyna NDTM działa w dwóch etapach: 1. moduł generujący generuje słowo s A k * i umieszcza je w lewej części taśmy, począwszy od komórki -1 2. następuje sprawdzenie, czy słowo s spełnia warunki określone w postawionym pytaniu 7

Niedeterministyczna maszyna Turinga NDTM rozwiązuje problem decyzyjny π, jeżeli dla każdej instancji tego problemu wygenerowany łańcuch s powoduje, że po wykonaniu programu NDTM są spełnione warunki: jeżeli odpowiedź brzmi tak, to maszyna zatrzymuje się w stanie końcowym q y, jeżeli odpowiedź brzmi nie, to maszyna osiąga stan q n albo faza sprawdzania nie zakończy się w skończonym czasie. 8

Wielotaśmowa maszyna Turinga k-dtm = Q, Z 1, Z 2,... Z k, B, δ, q 0 δ: Q I Z 1 I Z 2 I...I Z k Q I Z 1 I Z 2 I...I Z k I {L, R} k k-ndtm = Q, Z 1, Z 2,... Z k, B, δ, q 0 δ: Q I Z 1 I Z 2 I...I Z k 2 Q I Z 1 I Z 2 I...I Z k I {L, R}k 9

Odmiany pojęcia maszyny Turinga Twierdzenie 1 Każda k-taśmowa maszyna Turinga może być symulowana przez jednotaśmową maszynę Turinga. Twierdzenie 2 Każda NDTM może być symulowana przez 3-DTM. Wniosek Każda NDTM może być symulowana przez DTM. 10

Maszyna Turinga z wyrocznią OTM = Q, A k, Σ, B, δ, q 0, q h, q c, q r A k - skończony, niepusty zbiór symboli taśmy pierwotnej Σ - skończony, niepusty zbiór symboli taśmy wyroczni δ: Q {q c, q h } I A k I Σ Q I A k I Σ I {L, R} I {L, R} q h - wyróżniony stan końcowy q c - wyróżniony stan konsultacji z wyrocznią q r - wyróżniony stan wznowienia obliczeń (po konsultacji) 11

Maszyna Turinga z wyrocznią 0 0 0 1 0 1 1 0 0 0 taśma wyroczni sterowanie 0 0 0 1 0 1 1 0 0 taśma pierwotna 12

Zasada działania maszyny Turinga z wyrocznią w stanie q 0 na taśmie pierwotnej zapisane jest słowo wejściowe, taśma wyroczni jest pusta, maszyna OTM rozpoczyna pracę jak DTM; jeśli sterowanie przejdzie do stanu q n, to obliczenia kończą się, a wynik znajduje się na taśmie pierwotnej; jeśli OTM znajduje się w stanie q Q - {q n, q 0 }, to maszyna wykonuje czynności zgodnie z δ (jak zwykła 2-DTM); 13

Zasada działania maszyny Turinga z wyrocznią jeśli OTM znajdzie się w stanie q c, to obliczana jest wartość funkcji wyroczni g: Σ* Σ*, dla słowa y zapisanego na taśmie wyroczni; niech g(y) = z, wtedy w jednym kroku następuje zmiana zawartości taśmy wyroczni na słowo z, zapisane w komórkach 1 do z, głowica przesuwa się nad komórką 1, a maszyna przechodzi do stanu q r, taśma pierwotna nie ulega zmianie. 14

Złożoność maszyny Turinga Definicja wg C. E. Shanona Miarą złożoności maszyny Turinga jest iloczyn liczby stanów przez liczbę symboli alfabetu. Q k 15

Twierdzenie Shanona * Każda maszyna Turinga P o n stanach zdefiniowana nad alfabetem o m symbolach może być symulowana przez maszynę R o dwóch stanach i alfabecie zawierającym 4nm + m symboli. Każda maszyna Turinga P o n stanach zdefiniowana nad alfabetem o m symbolach może być symulowana przez maszynę R o liczbie stanów mniejszej od 8mn i alfabecie zawierającym dwa symbole. *) Dowód można znaleźć w: Brady J. M., Informatyka teoretyczna w ujęciu programistycznym, WNT 1983. 16

Istnieje przeliczalna liczba maszyn Turinga. Niech f: N {zbiór maszyn Turinga} gdzie f(n) jest maszyną T nad A 2 = {1, B} piszącą na taśmie n jedynek istnieją również inne maszyny Turinga, więc ℵ 0 liczba maszyn Turigna (1) 17

Istnieje przeliczalna liczba maszyn Turinga. T: Q I A 2 Q I A 2 I{L, R} czyli {zbiór maszyn Turinga} = U{ T T : QxA QxA x{ L, } Q card{zbiór maszyn Turinga} = card Q card U Q { T T : QxA QxA x{ L, } 2 2 R ({ T T : QxA QxA x{ L, }) 2 2 R ( ) ( ( )) ( ) 2 2 R = 4card Q = 4n = ℵ0 (2) Q 2card Q n N 2n Q - skończony segment N 18

Problem stopu maszyny Turinga Czy w ogólnym przypadku można rozstrzygnąć, czy f T, 1 (I) dla I A k-1 jest określone? Czy funkcja H(I, y) (gdzie I jest opisem maszyny, słowo y jest argumentem f T, 1, a wartość H(I,y) = a1 jeśli f T, 1 (y) jest określone i H(I, y) = ε, gdy f T, 1 (y) jest nieokreślone) jest obliczalna? 19

Funkcje nieobliczalne Twierdzenie Istnieją funkcje nieobliczalne według Turinga. 20

Przykład funkcji nieobliczalnej Zdefiniujmy funkcję S: N N, taką, że S(n) oznacza maksymalną liczbę jedynek napisanych przez maszynę Turinga o n stanach. Maszyna zatrzymuje się po napisaniu tych jedynek. S(1) = 1 S(2) = 4 S(3) = 6 S(4) = 13 S(5) 17 S(6) 35 S(7) 22961 S(8) 8 10 44 21

Szkic dowodu (nie wprost) Załóżmy, że S(I) jest funkcją obliczalną. Zatem istnieje k-stanowa maszyna Turinga M S(I) obliczająca S(I). Jeżeli S(I) jest obliczalna, to istnieje k stanową M S(S(I)) obliczająca S(S(I)). Zdefiniujmy teraz M*, która: zapisuje słowo I na taśmie (I stanów) głowica wraca na początek słowa I (c stanów) działa jak maszyna M S(S(I)) dla słowa I. Widać, że M* posiada I + c + k stanów 22

Szkic dowodu (nie wprost) Z definicji S(I) wynika, że S(I + c + k ) S(S(I)) (bo M S(S(I)) ma tylko k stanów). Jest to jednak niemożliwe, bo dla dostatecznie dużych I na podstawie monotoniczności funkcji S(I) mamy: S(I) > I + c + k. 23

Funkcje pierwotnie rekurencyjne Za pomocą trzech schematów określamy zbiór słowowych funkcji bazowych: Funkcja ścierająca E(x) = ε, dla wszystkich x A * k Funkcja j-tego następnika, 1 j k S j (x) = x a j, dla wszystkich x A * k Rodzina funkcji projekcji P jn (x 1, x 2,...x j,..., x n ) = x j, 1 j n dla wszystkich x 1, x 2,...x j,..., x n A * k 24

Reguły tworzenia funkcji złożonych Podstawienie f(x 1, x 2,..., x n ) = g(h 1 (x 1, x 2,..., x n ), h 2 (x 1, x 2,..., x n ),..., h m (x 1, x 2,..., x n )) dla wszystkich x 1, x 2,..., x n A * k Rekursja prosta f(ε, x 2,..., x n ) = g(x 2,..., x n ) f(s 1 (x 1 ), x 2,..., x n ) = h 1 (x 1, f(x 1, x 2,..., x n ), x 2,..., x n ) f(s 2 (x 1 ), x 2,..., x n ) = h 2 (x 1, f(x 1, x 2,..., x n ), x 2,..., x n )... f(s k (x 1 ), x 2,..., x n ) = h k (x 1, f(x 1, x 2,..., x n ), x 2,..., x n ) dla dr hab. wszystkixh inż. Joanna Józefowska, x 1, x 2, prof...., PPx n A * k 25

Definicja FPR Funkcja f jest pierwotnie rekurencyjna (FPR), jeżeli można ją uzyskać z funkcji bazowych przez skończoną liczbę zastosowań schematów podstawienia i rekursji prostej. 26

Minimizacja Funkcje n-argumentową uzyskuje się z funkcji (n+1) argumentowej Ψ przez minimizację nad (a j )*, jeśli dla wszystkich x 1, x 2,..., x n A k* : Φ(x 1, x 2,..., x n ) jest określone wtedy i tylko wtedy, gdy istnieje m N, takie że dla każdego 0 p m, Ψ(a jp, x 1, x 2,..., x n ) jest określone i Ψ(a jp, x 1, x 2,..., x n ) = ε. Gdy Φ(x 1, x 2,..., x n ) jest określone (istnieje takie m), wtedy Φ(x 1, x 2,..., x n ) = a jq, gdzie q jest najmniejszym takim m. Φ(x 1, x 2,..., x n ) = min j y [Ψ(x 1, x 2,..., x n ) = ε] 27

Definicja FCR Funkcje nazywamy funkcją rekurencyjna częściową (FCR), jeśli można ją otrzymać z funkcji bazowych przez skończoną liczbę zastosowań operacji podstawienia, rekursji prostej i minimizacji. 28

Maszyna RAM (Random Access Machine) Maszyna RAM jest to wyidealizowany komputer ze swobodnym dostępem do pamięci. Ustalamy alfabet A k. Pamięć maszyny RAM składa się z nieskończonego zbioru rejestrów R1, R2,... Każdy z rejestrów może pamiętać dowolne słowo ze zbioru A k*. Maszyna RAM jest programowalna. Każdy program maszyny RAM wykorzystuje tylko skończony zbiór rejestrów. 29

Instrukcje maszyny RAM Oznaczenia: E etykieta instrukcji E zmodyfikowana postać etykiety (Ea lub Eb) Y, Z nazwy rejestrów 30

Instrukcje maszyny RAM Typ 1j. 2. 3. 4. 5. 6j. 7. Instrukcja E addj Y E del Y E clr Y E Y Z E jmp E E Y jmpj E E continue Opis działania dodanie litery a j na prawym końcu słowa w rejestrze Y usunięcie jednej litery z lewego końca słowa w rejestrze Y wymazanie zawartości rejestru Y (wpisanie ε) skopiowanie słowa z rejestru Z do Y skok do najblizszej instrukcji etykietowanej: E a (w górę) E b (w dół) skok do E, o ile słowo w rejestrze Y rozpoczyna się literą a j instrukcja pusta 31

Program maszyny RAM program maszyny RAM jest skończonym ciągiem instrukcji, w którym dla każdego skoku istnieje miejsce, do którego można skoczyć i w którym ostatnią instrukcją jest continue program zatrzymuje się, jeżeli wykonanie dochodzi do ostatniej instrukcji continue 32

Program maszyny RAM program P oblicza funkcję rekurencyjną częściową ϕ(i 1, I 2,..., I n ), o ile działanie programu rozpoczyna się od stanu, w którym zawartością rejestrów R 1, R 2,..., R n są odpowiednio słowa: I 1, I 2,..., I n, a pozostałe rejestry sa puste, program P zatrzymuje się tylko wtedy, gdy wartość ϕ(i 1, I 2,..., I n ) jest określona, jeśli P się zatrzyma, to końcową zawartością rejestru R1 jest ϕ(i 1, I 2,..., I n ). 33

Własności maszyny RAM Lemat Wszystkie funkcje podstawowe klasy funkcji pierwotnie rekurencyjnych są RAM-obliczalne. clr R 1 continue add j R 1 continue R 1 R i continue funkcja ścierająca funkcja nastepnika S j funkcja projekcji P i n 34

Własności maszyny RAM Twierdzenie Każda częściowa funkcja rekurencyjna jest RAM-obliczalna. Ponadto dla dowolnej zdefiniowanej częściowej funkcji rekurencyjnej zbudowanej z funkcji podstawowych można w sposób efektywny (stosując podstawienie, rekursję i minimalizację) podać program maszyny RAM obliczający tę funkcję. 35

Przykład programu maszyny RAM con 2 (I 1, I 2 ) = I 1 I 2, dla I 1, I 2 A k * A R 2 jmp j N jb 1 j k jmp B b N j add j R 1 del R 2 jmp A a B continue 36

Zadanie domowe Podać program maszyny RAM obliczający funkcję dell(i)=(i z opuszczoną ostatnią literą), I A k *. Program ma usuwać ostatnią literę z dowolnego słowa nad alfabetem A k. 37

Zadanie domowe Jaki jest wynik działania następującej maszyny Turinga dla ciągu wejściowego: 11110111? Jaki algorytm realizuje ta maszyna? T = (Q, A 2, 0, I, q 0 ) A 2 = {0, 1} Q = {q 0, q 1, q 10, q 11, q 100, q 101, q 110, q 111, q 1000, q 1001, q 1010 } I = {q 0 00Rq 0, q 0 11Lq 1, q 1 01Rq 10, q 1 11Lq 1, q 10 00Rq 1010, q 10 10Rq 11, q 11 00Rq 100, q 11 11Rq 11, q 100 00Rq 100, q 100 10Rq 101, q 101 00Lq 111, q 101 11Lq 110, q 110 00Lq 110, q 110 11Lq 1, q 111 00Lq 111, q 111 11Lq 1000, q 1000 00Lq 1001, q 1000 11Lq 1000, q 1001 00Rq 10, q 1001 11Lq 1, q 1010 00STOPq 0, q 1010 11Rq 1010 } 38