• Nie Znaleziono Wyników

Elementy Teorii Oblicze´n Wykład 2 dr Andrzej Zbrzezny

N/A
N/A
Protected

Academic year: 2021

Share "Elementy Teorii Oblicze´n Wykład 2 dr Andrzej Zbrzezny"

Copied!
17
0
0

Pełen tekst

(1)

Elementy Teorii Oblicze ´n

Wykład 2

dr Andrzej Zbrzezny

Instytut Matematyki i Informatyki Akademia Jana Długosza w Cz˛estochowie

10 stycznia 2009

(2)

Maszyna Turinga – uwagi wst ˛epne

Maszyna Turinga (1936 r.) to jedno z najpi ˛ekniejszych i najbardziej intryguj ˛acych odkry´c 20 wieku. Odkrycie to stworzyło podstawy dla rozwojuinformatyki teoretycznej.

Maszyna Turinga jest prostym ale u ˙zytecznymmodelem oblicze ´n(modelem komputerów) wystarczaj ˛aco ogólnym, aby reprezentowa ´c dowolny program komputerowy.

Z powodu prostego opisu i działania maszyna Turinga poddaje si ˛e matematycznym rozwa ˙zaniom, które doprowadziły do lepszego zrozumienia istoty oblicze ´n oraz komputerów.

Jednym z najwa ˙zniejszych odkry´c teorii oblicze ´n jest fakt mówi ˛acy, ˙ze istniej ˛aproblemy obliczeniowe, które nie mog ˛a zosta ´c rozwi ˛azane na ˙zadnym komputerze, niezale ˙znie od ilo ´sci dost ˛epnej pami ˛eci i czasu.

(3)

Maszyna Turinga – komponenty

Potencjalnie niesko ´nczonata ´sma, na której umieszcza si ˛e dane wej´sciowe, wyniki po ´srednie oraz wyniki ko ´ncowe.

Ta´sma podzielona jest nakomórki.

W ka˙zdej z komórek znajduje si ˛e w danym momencie jeden z symboli sko ´nczonego alfabetu.

Głowica czytaj ˛aco-pisz ˛aca, która w danym momencie znajduje si ˛e nad jedn ˛a komórk ˛a ta ´smy zwan ˛a komórk ˛a aktywn ˛a.

W ka˙zdym kroku głowica czyta symbol z aktywnej komórki i albo pozostawia go bez zmiany albo zapisuje w komórce aktywnej inny symbol.

Ka˙zdy krok ko ´nczy si ˛e zmian ˛astanuoraz przesuni ˛eciem głowicy w lewo lub w prawo.

(4)

Maszyna Turinga – komponenty

Jednostka steruj ˛acaw postaci diagramu przej´s´c pomi ˛edzy stanami.

W zale˙zno´sci od bie˙z ˛acego stanu oraz symbolu

znajdujacego si ˛e w aktywnej komórce maszyna Turinga zapisuje na ta´smie jednoznacznie okre´slony symbol oraz przechodzi do jednoznacznie okre´slonego stanu.

Ka˙zdatranzycjawi ˛a˙ze dwa stany (nazwijmy je t oraz s) i jest etykietowana par ˛a symboli (nazwijmy je A oraz X ).

Oznacza to, ˙ze je˙zeli maszyna Turinga znajduje si ˛e w stanie t a w aktywnej komórce znajduje si ˛e symbol A, to w wyniku wykonania tej tranzycji maszyna wpisuje do aktywnej komórki symbol X i przechodzi do stanu t.

Ka˙zdy stanetykietowanyjest jednym z pi ˛eciu oznacze ´n:

L (left), R (right), Y (yes), N (no) lub H (halt).

Po wykonania przej´scia do stanu t maszyna Turinga w zale˙zno´sci od etykiet tego stanu albo przesuwa głowic ˛e (w lewo lub w prawo) albo zatrzymuje si ˛e.

(5)

Przykładowa maszyna Turinga

Example (Zamiana liczby z postaci unarnej na binarn ˛a)

(6)

Działanie maszyny Turinga

Maszyna Turinga rozpoczyna prac ˛e w wyró ˙znionym stanie nazywanym stanempocz ˛atkowym; głowica maszyny Turinga znajduje si ˛e nad wyró ˙znion ˛a komórk ˛a nazywan ˛a komórk ˛a pocz ˛atkow ˛a.

Dla ka ˙zdej pary(stan,symbol)istnieje co najwy˙zej jedna tranzycja zwi ˛azana z t ˛a par ˛a; je ˙zeli takiej tranzycji nie ma, to maszyna Turinga nie zmienia stanu i nie zmienia symbolu w aktywnej komórce.

Ka ˙zdy krok działania maszyny Turinga przebiega jak nast ˛epuje:

czyta symbol z aktywnej komórki

szuka tranzycji zwi ˛azanej z bie˙z ˛acym stanem i z przeczytanym symbolem

zmienia symbol w bie˙z ˛acej komórce zmienia stan zgodnie z tranzycj ˛a

przesuwa głowic ˛e w lewo lub w prawo lub zatrzymuje si ˛e

(7)

Działanie maszyny Turinga

Kroki maszyny Turinga powtarzane s ˛a dopóty, dopóki nie znajdzie si ˛e ona w stanie etykietowanym przez:

H (zatrzymanie), Y (akceptacja) lub N (odrzucenie).

Jest mo ˙zliwe, ˙ze maszyna Turinga nigdy si ˛e nie zatrzyma.

Zało ˙zenie o potencjalnie niesko ´nczonej ta ´smie oznacza, ˙ze maszyna Turinga jest modelemoblicze ´na nie komputerów.

Example (Symulator maszyny Turinga) Programturing.jar

(8)

Uniwersalno´s´c

Na potrzeby teorii oblicze ´n mo ˙zemy zdefiniowa ´calgorytm jako maszyn ˛e Turinga. W tym sensie maszyny Turinga odpowiadaj ˛a programom komputerowym.

Uniwersalna Maszyna Turinga(UTM) to specyficzna maszyna Turinga potrafi ˛aca symulowa ´c działanie dowolnej innej maszyny Turinga (tak˙ze samej siebie!).

UTM pozwala odpowiada ´c na pytania dotycz ˛ace innych TM (tak˙ze samej siebie!).

Pierwsz ˛a UTM opisał Alan Turing. Istnienie UTM oznacza,

˙ze istnieje TM, która potrafi wykona´c dowolny algorytm.

Kluczowa idea polega na sposobie zakodowania dowolnej TM przy pomocy słowa nad sko ´nczonym alfabetem.

(9)

Kodowanie maszyny Turinga na przykładzie

Kodowanie stanów:

0L, 1R, 2R, 3Y , 4R, 5N Kodowanie tranzycji:

01##, 201x , 400x , 120x , 13##, 141x , 25##, 45##

(10)

Kodowanie maszyny Turinga

Aby otrzyma ´c kodowanie konkretnej maszyny Turinga konkatenujemy słowa koduj ˛ace stany oraz słowa koduj ˛ace tranzycje w słowo nad alfabetem{0,1,2,3,4,5,x,#}:

0L1R2R3Y 4R5N01##201x...45##

i zapisujemy je na ta ´smie UMT. Po tym słowie

umieszczamy słowo nad alfabetem{0,1}b ˛ed ˛ace słowem wej´sciowym dla zakodowanej TM oddzielaj ˛ac je nowym symbolem.

Do tego słowa mo ˙zna równie ˙z doł ˛aczy´c stan pocz ˛atkowy oraz pocz ˛atkow ˛a pozycj ˛e głowicy.

UTM jako wej´scie otrzymuje kodowanie konkretnej TM oraz pocz ˛atkow ˛a zawarto ´s´c ta ´smy tej TM.

(11)

Uwagi na temat istniej ˛ acych UTM

Pierwsz ˛a UTM opisał Alan Turing w swojej pracy z 1937 roku: “On Computable Numbers, with an Application to the Entscheidungsproblem.”

W 1962 roku M. Minsky odkrył siedmiostanow ˛a UTM nad czteroznakowym alfabetem. Z niej mo ˙zna otrzyma ´c UTM nad dwuznakowym alfabetem, ale wymaga to 43 stanów.

Inne UTM zostały odkryte w 1996 roku przez Rogozhina.

Oznaczane s ˛a parami liczb(m,n), gdzie m to liczba stanów a n to ilo ´s´c znaków alfabetu. S ˛a to maszyny:

(24,2), (10, 3), (7, 4), (5, 5), (4, 6), (3, 10) oraz(2,18).

W 2002 roku Wolfram odkrył UTM typu(2,5).

Uwa ˙zano, ˙ze cztery TM typu(2,4)oraz czterna ´scie maszyn typu(2,3)(wszystkie odkryte przez Wolframa) s ˛a prawdopodobnie UTM, ale potrafiono tego udowodni´c.

(12)

Najmniejsza Uniwersalna Maszyna Turinga

24 pa ´zdziernika 2007 roku 20-letni brytyjczyk Alex Smith, student uniwersytetu w Birmingham, zgłosił dowód twierdzenia mówi ˛acego, ˙ze zaproponowana przez Wolframa dwustanowa maszyna Turinga u ˙zywaj ˛aca tylko trzech symboli jest uniwersaln ˛a maszyn ˛a Turinga.

Za to odkrycie Alex Smith otrzymał wcze ´sniej wyznaczon ˛a nagrod ˛e w wysoko ´sci 25000 dolarów.

Rozwa ˙zana maszyna ma w numeracji Wolframa numer 596440.

Istnieje(2∗3∗2+1)(23)=136=4826809 dwustanowych maszyn Turinga u ˙zywaj ˛acych trzech symboli (w tym symbolu pustego).

(13)

Najmniejsza Uniwersalna Maszyna Turinga

(14)

Hipoteza Churcha-Turinga

W 1936 roku Alonzo Church i Alan Turing zaproponowali niezale ˙znie od siebie ró ˙zne modele oblicze ´n: Church wymyslił rachunek lambda a Turing abstrakcyjn ˛a maszyn ˛e nazwan ˛a pó ´zniej na jego cze ´s´c maszyn ˛a Turinga.

Chocia ˙z oba formalizmy bardzo si ˛e ró ˙zni ˛a Turing udowodnił wkrótce, ˙ze s ˛a one równowa ˙zne.

W 1943 roku Stephen Kleene sformułował nast ˛epuj ˛acy wniosek zwany hipotez ˛a (równie ˙z tez ˛a) Churcha-Turinga:

Ka ˙zdy problem, który mo ˙ze by´c intuicyjnie uznany za obliczalny, jest rozwi ˛azywalny przez maszyn ˛e Turinga.

Sformułowanie “intuicyjnie uznany za obliczalny”

uniemo ˙zliwia przeprowadzenie matematycznego dowodu tej hipotezy.

(15)

Rozszerzenia maszyn Turinga

Poni˙zsze rozszerzone modele maszyn Turinga maj ˛a tak ˛a sam ˛a moc obliczeniow ˛a jak oryginalna maszyna Turinga:

Maszyny Turinga z wieloma niezale ˙znymi głowicami.

Maszyny Turinga z wieloma ta ´smami.

Maszyny Turinga z ta ´sm ˛a dwuwymiarow ˛a.

Niedeterministyczne maszyny Turinga.

Probabilistyczne maszyny Turinga.

Równowa ˙zno ´s´c powy˙zszych modeli stanowi argument przemawiaj ˛acy za prawdziwo ´sci ˛a hipotezy Churcha-Turinga

(16)

Maszyny Turinga z ograniczeniami

Poni˙zsze ograniczone modele maszyn Turinga maj ˛a tak ˛a sam ˛a moc obliczeniow ˛a jak oryginalna maszyna Turinga:

Maszyny Turinga z jednostronnie ograniczon ˛a ta ´sm ˛a.

Maszyny Turinga nad alfabetem binarnym.

Dwustanowe maszyny Turinga.

Maszyny Turinga, które nigdy nie nadpisuj ˛a zapisanych symboli.

Maszyny Turinga, dla których poprzedni stan mo ˙ze by´c zawsze jednoznacznie wyznaczony przez stan bie ˙z ˛acy oraz przez zawarto ´s´c ta ´smy.

Równowa ˙zno ´s´c powy˙zszych modeli stanowi kolejny argument przemawiaj ˛acy za prawdziwo ´sci ˛a hipotezy Churcha-Turinga

(17)

Inne modele oblicze ´n równowa˙zne z TM

Systemy formalne Posta (Emil Post 1920) – reguły zamiany słów zaprojektowane do dowodzenia twierdze ´n ze zbioru aksjomatów.

Funkcje ogólnie rekurencyjne (Kurt Gödel 1934).

Funkcje cz ˛e ´sciowo rekurencyjne (Alonzo Church 1932, Stephen Kleene 1935).

Algorytmy Markova (1960) – reguły zamiany słów w ustalonej kolejno ´sci.

Gramatyki nieograniczone (Noam Chomsky 1950) Logika klauzul Horna (Horn 1951) – system dowodzenia twierdze ´n stanowi ˛acy podstaw ˛e dla j ˛ezyka programowania Prolog.

J ˛ezyki programowania: C, C++, Java, Python, Ruby, Perl, Lisp, . . .

Cytaty

Powiązane dokumenty

Ceny mogą ulec zmianom bez uprzedniego zawiadomienia w przypadku zmian cen przez producenta, zmian podatkowych, przepisów celnych lub innych przyczyn.. Wyposażenie seryjne i

Znale´z´c zale˙zno´s´c poÃlo˙ze´n

[r]

[r]

Obowiązkowe ubezpieczenie AC oraz Bezpieczny Kredyt lub GAP oraz zawarcie umowy odkupu przez dealera.. Przedstawione parametry nie uwzględniają

Firmy powinny ujawniać swoje zaangażowania i transfery korzyści na rzecz osób wykonujących zawody medyczne i organizacji ochrony zdrowia, które potencjalnie mogą

Przy montażu instalacji wodociągowej zachować normatywne odległości przewodów od innych instalacji oraz wysokości zamontowania przyborów sanitarnych.. Instalacje wody

gdzie wraz ze ściągającymi tu resztkami hitlerowskiego apara tu bezpieczeństwa, znalazły się najprzeróżniejsze dokumenty oraz ostatnie partie fałszywych