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

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

Teoretyczne podstawy informatyki

Języki, automaty i obliczenia

Hierarchia Chomsky ego Maszyna Turinga

Języki formalne i automaty Ćwiczenia 1

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Matematyczne Podstawy Informatyki

Maszyna Turinga języki

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Języki formalne i automaty Ćwiczenia 9

Języki, automaty i obliczenia

Języki formalne i automaty Ćwiczenia 3

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

Jaki język zrozumie automat?

3.4. Przekształcenia gramatyk bezkontekstowych

Efektywność Procedur Obliczeniowych. wykład 5

Maszyna Turinga (Algorytmy Część III)

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

Języki, automaty i obliczenia

Część wspólna (przekrój) A B składa się z wszystkich elementów, które należą jednocześnie do zbioru A i do zbioru B:

Elementy Teorii Obliczeń

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}

Języki formalne i automaty Ćwiczenia 7

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

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

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)

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

Języki formalne i automaty Ćwiczenia 4

Maszyna Turinga, ang. Turing Machine (TM)

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

MASZYNA TURINGA UPRASZCZANIE DANYCH

Obliczenia inspirowane Naturą

Hierarchia Chomsky ego

MODELOWANIE RZECZYWISTOŚCI

Symbol, alfabet, łańcuch

1 Automaty niedeterministyczne

Turing i jego maszyny

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

Podstawy Informatyki Maszyna Turinga

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

PROBLEMY NIEROZSTRZYGALNE

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

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

JAO - Wprowadzenie do Gramatyk bezkontekstowych

1. Reguły minimalne (optymalne) Podstawowe twierdzenia i definicje. Definicja 1 Funkcję postaci f. nazwiemy n-argumentową funkcją boolowską.

Języki, automaty i obliczenia

Niestandardowe modele obliczeń

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

Języki formalne i automaty Ćwiczenia 2

Efektywna analiza składniowa GBK

Obliczenia inspirowane Naturą

Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Imię, nazwisko, nr indeksu

Wprowadzenie do maszyny Turinga

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 formalne i automaty Ćwiczenia 6

TEORIA ZŁOŻONOŚCI PROBLEMY I ALGORYTMY OGRANICZENIE DOLNE I GÓRNE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

Logika i teoria mnogości Wykład 14

Lista zadań - Relacje

1 Zbiory. 1.1 Kiedy {a} = {b, c}? (tzn. podać warunki na a, b i c) 1.2 Udowodnić, że A {A} A =.

Pierścień wielomianów jednej zmiennej

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin

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

Rekurencyjna przeliczalność

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

Teoretyczne podstawy informatyki

Lista 5 Gramatyki bezkontekstowe i automaty ze stosem

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

Wyrażenia regularne.

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

Jȩzyki, automaty, zlożoność obliczeniowa

Teoretyczne podstawy informatyki

Matematyczne Podstawy Informatyki

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

Definicja: zmiennych zdaniowych spójnikach zdaniowych:

Równoważność automatów wielotaśmowych

V Konkurs Matematyczny Politechniki Białostockiej

Matematyka Dyskretna 2/2008 rozwiązania. x 2 = 5x 6 (1) s 1 = Aα 1 + Bβ 1. A + B = c 2 A + 3 B = d

O ROLI TEZY CHURCHA W DOWODZIE PEWNEGO TWIERDZENIA

1 Relacje i odwzorowania

Teoria obliczeń czyli czego komputery zrobić nie mogą

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

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

LX Olimpiada Matematyczna

O ALGORYTMACH I MASZYNACH TURINGA

O pewnych związkach teorii modeli z teorią reprezentacji

Zadania do Rozdziału X

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

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

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

R O Z D Z I A Ł V I I

Automaty Büchi ego i równoważne modele obliczeń

Algorytm. Krótka historia algorytmów

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Nierówności. dla początkujących olimpijczyków. Aleksander Kubica Tomasz Szymczyk

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Matematyka dyskretna. Andrzej Łachwa, UJ, 2019 Zadania 1-100

O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ

Dystrybucje. Marcin Orchel. 1 Wstęp Dystrybucje Pochodna dystrybucyjna Przestrzenie... 5

Transkrypt:

Problem Hilberta: 9 Czy istnieje ogólna mechaniczna procedura, która w zasadzie pozwoliłaby nam po kolei rozwiązać wszystkie matematyczne problemy (należące do odpowiednio zdefiniowanej klasy)? 2 Przykłady algorytmów Start Algorytm S a j i Obliczanie wielomianu Znajdowanie podzbioru o danej sumie Sprawdzanie, czy liczba jest automorficzna Wyznaczanie elementów ciągu Fibonacciego Obliczanie n! 3 function s(j:integer); real; var i, S: integer; begin S:=a[j]; i:=; while i <= j do begin S:=S*x; i:=i+ end; s:=s end. Stop NIE i < j TAK S S*x i i + czy program???? 4 Cechy algorytmu: składa się z kroków, działa na pewnych danych wejściowych, wytwarza pewne dane wyjściowe, jest dobrze określony (reguły postępowania uwzględniają wszystkie przypadki, jakie mogą wystąpić podczas wykonywania algorytmu), jest skończony (obliczenia są wykonywane w skończonej liczbie kroków) lub cykliczny (np. działanie systemu operacyjnego), jest wykonywalny (każdy krok jest tak zdefiniowany, aby człowiek mógł go skutecznie wykonać w skończonym czasie). Pojęcie algorytmu Jednoznaczny, dobrze (krok po kroku) określony przepis mechanicznego rozwiązania dowolnego konkretnego zadania z pewnej klasy zadań. W rozwiązaniu stosuje się skończoną liczbę reguł postępowania (czyli wykonywania kroków prowadzących do rozwiązania). 5 6

(dodanie do liczby zapisanej w systemie jedynkowym) Problem Hilberta: Czy istnieje ogólna mechaniczna procedura, która w zasadzie pozwoliłaby nam po kolei rozwiązać wszystkie matematyczne problemy (należące do odpowiednio zdefiniowanej klasy)? jest matematyczną idealizacją urządzenia wykonującego pewne (zdefiniowane w skończony sposób) obliczenia. 7 przeczytany symbol stany głowica dane taśma 8 Instrukcja maszyny Turinga (dodanie do liczby zapisanej w systemie jedynkowym) WE WY stan przeczytany symbol a stan zapisany symbol a kierunek ruchu Instrukcja: (, a, a,, ) zapisz zapisz wynik zapisz zapisz stop 9 Deterministyczna jednotaśmowa maszyna Turinga zapisz w prawo zapisz zapisz w prawo zapisz stop T = Q, A, B, δ, Q = {,, 2,..., p } - skończony zbiór stanów - wyróżniony stan początkowy A - skończony alfabet symboli B A-wyróżniony symbol pusty δ- funkcja przejść (zbiór instrukcji) δ : Q x A Q x A x {, } δ( i, a j ) = ( m, a n, ) składa się z następujących elementów: skończonego zbioru stanów, skończonego alfabetu symboli, nieskończonej taśmy z zaznaczonymi kwadratami, z których każdy może zawierać pojedynczy symbol, ruchomej głowicy odczytująco-zapisującej, która może wędrować wzdłuż taśmy przesuwając się na raz o jeden kwadrat, diagramu przejść między stanami zawierającego instrukcje, które powodują, że zmiany następują przy każdym zatrzymaniu się. 2 2

Teza Churcha-Turinga (936 r.) Język nad alfabetem skończonym Wszystko, co jest efektywnie obliczalne daje się wyrazić za pomocą funkcji λ-definiowalnych, funkcji rekurencyjnych lub innych formalizmów im równoważnych. W 937 roku Turing i Church (niezależnie) wykazali, że każdą obliczalną (w sensie Turinga) operację można zapisać w postaci odpowiedniego wyrażenia rachunku λ Churcha (i odwrotnie). 3 A k - alfabet złożony z k symboli (k>) zdefiniujemy operację sklejania symboli alfabetu A k następująco: A k = {ε} (słowo puste) A ki = A k A i- k, i> oznaczmy przez U Α * i k = Ak i= 4 Przykład A 3 = {a, b, c} A 3 = {ε} A 3 = {a, b, c} A 32 = {aa, ab, ac, ba, bb, bc, ca, cb, cc} A 33 = {aaa, aab, aac, aba, abb, abc, aca, acb, acc, baa, bab, bac, bba, bbb, bbc, bca, bcb, bcc caa, cab, cac, cba, cbb, cbc, cca, ccb, ccc}... 5 Język L(M) akceptowany przez maszynę M jest zbiorem wszystkich słów należących do A*, które po umieszczeniu na taśmie maszyny M (maszyna w stanie, głowica na pierwszym od lewej znaku słowa) powodują, że maszyna M przechodzi w stan końcowy. 6 Konfiguracja maszyny Turinga Konfiguracja maszyny Turinga Φ Ψ Φ Ψ a j Q sterowanie Φ A k * (, Φ, Ψ) Ψ A k *\{ε} konfiguracja początkowa (, ε, Ψ} 7 Instrukcja ( j, a j, a k,, k ) jest stosowalna do konfiguracji α = (, Φ, Ψ) jeśli = j oraz Ψ = a j Ψ dla pewnego Ψ A k *. Konfiguracja końcowa - żadna instrukcja nie jest stosowalna. j 8 3

Φ α = (, Φ, aψ ) Ψ Φ α = (, Φ c, aψ ) Ψ a c a Instrukcja: (aa R ) Instrukcja: (aa L ) 9 2 Jeżeli α = (, Φ, aψ ) nie jest konfiguracją końcową (aa ) jest instrukcją stosowalną do α to następnikiem konfiguracji α jest β: () jeżeli = R, to (a) jeżeli Ψ ε, to β = (, Φa, Ψ ) (b) jeżeli Ψ = ε, to β = (, Φa, B) (2) jeżeli = L (a) jeżeli Φ εi Φ = Φ c, to β = (, Φ, ca Ψ ) (b) jeżeli Φ = ε, to β = (, ε, Ba Ψ ) α β (β jest następnikiem α) oznaczmy przez * zwrotne i przechodnie domknięcie relacji α * β wtedy i tylko wtedy gdy α = β albo istnieje skończony ciąg konfiguracji γ, γ 2,..., γ n, taki, że: γ = α, γ n = β, γ i γ i+ dla i n 2 22 Funkcje definiowane przez maszynę Turinga T definiuje rodzinę funkcji f T,n, (gdzie n jest liczbą argumentów) nad alfabetem A k- = A k \{B}. * n * ( A k- ) k- f T, n = A f T,n = {((x, x 2,..., x n ), delete (B, yz)) istnieje Q, takie, że (, ε, x Bx 2 B...Bx n B) * (, y, z) i (, y, z) jest konfiguracją końcową} Funkcja delete(b,yz) jest funkcją usuwającą wszystkie wystąpienia symbolu B w słowie yz. Jeżeli maszyna M zatrzymuje się z taśmą zawierającą m, dla pewnego m to mówimy, że f(i, i 2, i n ) = m, gdzie f jest funkcją o n argumentach obliczaną przez tę maszynę Turinga. 23 24 4

Przykład maszyny Turinga T = (Q, A 3, B, I, ) A 3 = {a, b, B} Q = {,, 2 } I = { BBR, aar, bbr, abr, bbr, BBR 2 } b/b, R b/b, R 2 abab B/B, R a/a, R B/B, R a/b, R abbb 25 Wielotaśmowa maszyna Turinga może zapisywać na taśmie wyjściowej łańcuchy nad alfabetem A oddzielone np. znakiem #. Język G(M) generowany przez M składa się ze wszystkich słów, które pojawiają się między parą znaczników # na taśmie wyjściowej maszyny M. 26 Podsumowanie język rekurencyjnie przeliczalny funkcje częściowo rekurencyjne Jeżeli L=G(M), to L jest rekurencyjnie przeliczalny. jest modelem obliczeń. Funkcje obliczane przez maszynę Turinga nazywamy funkcjami częściowo rekurencyjnymi. Języki akceptowane przez maszynę Turinga są rekurencyjnie przeliczalne. 27 28 5