3 maszyna turinga

background image

Modele komputerów, maszyna

Turinga

„…Otóż moglibyśmy skonstruować maszynę,
która wykonałaby pracę tego komputera…” A.
Turing

Sławomir Nowak

Podstawy informatyki

background image

„computers” – ludzie którzy

liczą…

computer

http://www.digital-rights.net/?p=1640

background image

„computers”

Komputer służy do liczenia to przecież oczywiste!

Skuteczność komputerów cyfrowych w ich liczeniu opiera się na

matematycznej idei

mówiącej, że

każdy poprawnie sformułowany problem ma

swoje rozwiązanie poprzez jego obliczenie

Maszyna Turinga - od ''komputera'' do komputera, Computerworld, 5 październik 1998, Marek Hetmański

background image

„computers”

Obliczeniem

jest mechaniczna procedura wykonania

zadania w skończonej liczbie kroków. Inaczej

mówiąc, obliczenie jest wykonalne, jeśli istnieje dla

niego

algorytm

.

U podstaw matematyki, logiki i informatyki toczyła

się dyskusja nad

obliczalnością

problemów na

podstawie mechanicznych (algorytmicznych)

procedur.

Maszyna Turinga - od ''komputera'' do komputera, Computerworld, 5 październik 1998, Marek Hetmański

background image

Rozstrzyganie problemów

matematycznych

Znaleźć skończony zbiór reguł i
aksjomatów, pozwalający rozstrzygnąć
dowolny problem matematyczny (idea
Hilberta)

Pewnych problemów matematycznych
nie da się rozstrzygnąć. Problem zdań
typu:

to zdanie jest fałszywe

”. Nie sposób

uniknąć paradoksów (twierdzenie Godla)

background image

Alan Turing

(1912-1954),

matematyk, kryptolog,

neurolog, wizjoner, sportowiec

, prekursor sztucznej

inteligencji, twórca teorii automatów, dziedziny

stanowiącej matematyczne podstawy teorii obliczeń.

Największe znaczenie dla rozwoju informatyki miały jego

prace teoretyczne, w szczególności praca podająca

teoretyczny model komputera (

„automat Turinga”

).

TIME zaliczył Turinga do
Największych postaci XX w.

background image

ENIGMA i COLLOSUS

• W czasie wojny Turing należał do grupy ekspertów

zaangażowanych

w odcyfrowywanie niemieckich szyfrów ENIGMA.

Niemałą rolę w tej pracy grał polski wywiad.

• Dla potrzeb deszyfracji zbudowano imponującą maszynę liczącą

o nazwie Collossus. Analizowała ona tysiące wiadomości

dziennie poszukując właściwego klucza (zmienianego trzy razy

dziennie), dzięki któremu Enigma mogła odcyfrować wiadomości.

• Jeden ze współpracowników Turinga tak powiedział komentując

jego rolę w programie łamania szyfrów:

„Nie powiem, że dzięki Turingowi wygraliśmy wojnę ale

śmiem powiedzieć, że bez niego moglibyśmy ją

przegrać”.

background image

1954

• Samobójstwo Turinga

Źródło: http://www.egrafik.pl/tutoriale-photoshop/inne-efekty/nagryzione-jablko/

background image

Maszyna Turinga

Turing pracował na problemem rozstrzygalności

i obliczalności zadań matematycznych;

Rozważył obliczanie od strony czynności, które

wykonuje rachmistrz, a nawet każde dziecko, gdy
na kartce papieru, etap po etapie, przeprowadza
obliczenia.

http://www.sxc.hu/pic/m/b/br/brokenarts/187211_hands_1_writing_hand_.jpg

background image

Maszyna Turinga

Na działanie „komputera” (rachmistrza) składają się

zatem skończone instrukcje przechodzenia
między poszczególnymi kratkami (częściowymi
obliczeniami) na kartce wraz z wykonaniem
pewnych działań – odczytywaniem i
zapisywaniem.

http://www.sxc.hu/pic/m/b/br/brokenarts/187211_hands_1_writing_hand_.jpg

background image

Maszyna Turinga

Wobec każdego problemu, wykonywanego przez

rachmistrza istnieje maszyna uniwersalna, która
może imitować jego obliczenia.

http://www.sxc.hu/pic/m/b/br/brokenarts/187211_hands_1_writing_hand_.jpg

„…Otóż moglibyśmy skonstruować maszynę,
która wykonałaby pracę tego komputera…”

A.

Turing

background image

Maszyna Turinga

Maszyna Turinga składa się z:

• Nieskończonej taśmy zawierającej komórki z

symbolami

• Ruchomej głowicy zapisująco-odczytującej.
• Układu sterowania głowicą.

http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

background image

Maszyna Turinga

Taśma

Nieskończona taśma dzieli się na komórki, w
których umieszczone zostały symbole,
(przetwarzane znaki).
MT odczytuje symbole z kolejnych komórek i
przetwarza na inne symbole. Wyniki obliczeń są
zapisywane w komórkach taśmy.

http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

, Graf. taśma: wikipedia

A

A

C

C

D

1

4

A

B

background image

Maszyna Turinga

Głowica

Głowica odczytuje i zapisuje symbole na taśmie.

Głowice zawsze znajduje się nad jedną z komórek
taśmy. Może ona odczytywać zawartość tej komórki
oraz zapisywać do niej inny symbol (przetwarzanie
danych). Pomiędzy odczytami głowica porusza się w
prawo i w lewo do sąsiednich komórek. W ten sposób
może się ona przemieścić do dowolnie wybranej
komórki taśmy.

Przed rozpoczęciem pracy głowica jest zawsze

ustawiana nad komórką taśmy zawierającą pierwszy
symbol do przetworzenia.

http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

background image

Maszyna Turinga

Układ sterowania

(odpowiednik procesora)

Zarządza przetwarzaniem informacji. Odczytuje za

pomocą głowicy symbole z komórek taśmy,
przesyła do głowicy symbole do zapisu w
komórkach oraz steruje jej przemieszczaniem.

Podstawą działania MT są stany układu sterowania.

Stan układu sterowania określa jednoznacznie
jaką operację wykona MT gdy odczyta z taśmy
określony symbol

.

http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

background image

Maszyna Turinga

Układ sterowania

Zatem operacje wykonywane przez układ sterowania

zależą od dwóch czynników:

• symbolu odczytanego z komórki na taśmie.
• bieżącego stanu układu sterującego.

Stany będziemy określać kolejnymi nazwami: q

0

, q

1

, q

2

,

... ,q

n

, gdzie q

0

jest

stanem początkowym

http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

background image

Maszyna Turinga

Instrukcje MT

Instrukcje składają się z piątki symboli:

http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

background image

Maszyna Turinga

Instrukcje MT

S

0

i q

i

są tzw.

częścią identyfikacyjną

instrukcji. MT

wykonuje tyle różnych instrukcji, ile zdefiniujemy
części identyfikacyjnych.

W programie nie może być dwóch różnych instrukcji

o identycznej części identyfikacyjnej.

http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

background image

Maszyna Turinga

Instrukcje MT

S

z

, q

j

i L/P są tzw.

częścią operacyjną

, która określa

jakie działanie podejmuje dana instrukcja.

Części operacyjne różnych instrukcji mogą być takie

same. Oznacza to, iż instrukcje te wykonują
dokładnie to samo działanie.

http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

background image

Maszyna Turinga

Przykład

Instrukcja:

(

A, q

0

, B, q

0

, P)

 
Jeżeli odczytanym przez głowicę symbolem z taśmy

będzie A, a układ sterowania znajduje się w
stanie q

0

, to głowica zamieni ten symbol na B,

stan wewnętrzny nie zmieni się (pozostanie dalej
q

0

), a głowica przesunie się do sąsiedniej komórki

po prawej stronie (P – prawo).

http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

background image

Przykładowe programy MT

http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

Program zamiany bitów

0,q0,1,q0,L bit 0 zamień

na 1

1,q0,0,q0,L bit 1 zamień

na 0

background image

Przykładowe programy MT

http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

?

1

0

1

1

0

?

?

1

0

1

1

1

?

?

1

0

1

0

1

?

?

1

0

0

0

1

?

?

1

1

0

0

1

?

?

0

1

0

0

1

?

symbol nierozpoznany - koniec

background image

Bardziej złożone programy składają się z wielu instrukcji,

dlatego wygodniej zapisywać je w postaci tzw.

tablicy

charakterystycznej MT

, gdzie każdy ruch R (instrukcja)

związany jest z odczytanym symbolem s

i

oraz stanem q

j

,

czyli

R

ij

= (s

k

, K, q

l

)

Interpretacja tej tabeli jest następująca: Jeżeli będąc w stanie q

j

głowica odczytała symbol s

i

, to należy zapisać na taśmie

symbol s

k

, przesunąć taśmę w kierunku określonym przez K,

a głowica ma przejść do stanu q

l

.

Maszyna Turinga

Na podst. Wykłady z podstaw informatyki prof.. Stefana Węrzyna, wyd. Pol. Śl. Gliwice 2003

background image

Maszyna Turinga

Na podst. Wykłady z podstaw informatyki prof.. Stefana Węrzyna, wyd. Pol. Śl. Gliwice 2003

background image

Maszyna Turinga

Przykład: W zbiorze napisów trójliterowych utworzonych z liter

a, b, c

tylko napis

abc

jest poprawny. Zapisać dla MT program rozpoznawanie

takiego zapisu.

Jaki jest

algorytm

?

1. Pobierz symbol. Jeżeli jest nim a, to pobierz następny

symbol i idź do 2, w przeciwnym przypadku idź do 4.

2. Jeżeli pobranym symbolem jest b, to pobierz następny

symbol
i przejdź do 3, jeżeli nie, idź do 4.

3. Jeżeli pobranym symbolem jest c, idź do 5, w przeciwnym

przypadku idź do 4.

4. Sygnalizuj nieprawidłowy napis.
5. Sygnalizuj napis poprawny.

Ciąg
poprawny

Ciąg
niepoprawny

Na podst. Wykłady z podstaw informatyki prof.. Stefana Węrzyna, wyd. Pol. Śl. Gliwice 2003

background image

Maszyna Turinga

Przykład: Zaprojektować maszynę Turinga obliczającą sumę dowolnej
liczby zapisanej w systemie dziesiętnym i liczby 1.

Aby do dowolnej liczby dodać 1, należy przeanalizować jej

ostatnią cyfrę.

Jeżeli jest nią któraś z cyfr 0 – 8, to dodanie jedynki sprowadzi

się do zapisu w tym miejscu danej cyfry zwiększonej o
jeden, tzn. jednej
z cyfr 1 – 9.

Jeśli ostatnią cyfrą jest cyfra 9, to należy w jej miejscu

napisać cyfrę 0, a następnie dodać 1 do cyfry
przedostatniej lub napisać jedynkę, jeżeli cyfra nie
występuje.

Na podst. Wykłady z podstaw informatyki prof.. Stefana Węrzyna, wyd. Pol. Śl. Gliwice 2003

background image

Maszyna Turinga

Przykład: Zaprojektować maszynę Turinga obliczającą sumę dowolnej
liczby zapisanej w systemie dziesiętnym i liczby 1.

Algorytm

(głowica maszyny Turinga powinna być ustawiona na ostatniej cyfrze):
1. Jeżeli cyfra z zakresu 0 – 8 pisz odpowiednio 1 – 9 i idź do 3, w

przeciwnym przypadku pisz 0, przesuń głowicę w lewo i idź do 2.

2. Jeżeli miejsce puste ∅ pisz 1, idź do 3, jeśli nie idź do 1.
3. Sygnalizuj

koniec

.

Przykład działania dla liczby 89:

background image

Maszyna Turinga

Przykład: Zaprojektować maszynę Turinga obliczającą sumę dowolnej
liczby zapisanej w systemie dziesiętnym i liczby 1.

Tablica charakterystyczna MT:

(przejścia dla liczby 89)

Koniec

Na podst. Wykłady z podstaw informatyki prof.. Stefana Węrzyna, wyd. Pol. Śl. Gliwice 2003

background image

Podsumowanie

Jakie znaczenie ma w Informatyce maszyna Turinga?

Twierdzenie: Każdy algorytm może być

realizowany przez odpowiednio zaprogramowaną
(za pomocą tablicy charakterystycznej) maszynę
Turinga.

W postaci MT dokonało się przejście od ery

automatycznych kalkulatorów do komputerów
sterowanych algorytmami.

background image

Podsumowanie

Można rozważać bardzo wiele różnych wariantów

maszyny Turinga. Istnieją maszyny Turinga
wielotaśmowe lub niedeterministyczne (gdzie
jednej parze (symbol, stan) może odpowiadać
kilka instrukcji).

background image

Podsumowanie

Program dla maszyny Turinga jest

tablicą instrukcji

.

Kolejność instrukcji w tablicy jest zupełnie dowolna.
Program kończy się, jeśli program nie definiuje
działania dla bieżącego symbolu wejściowego i
stanu wewnętrznego.

Praktyczne zastosowanie koncepcji Turinga jest trudne

ze względu na słabą skalowalność programów, a
także ich nieczytelność i trudność modyfikacji.

We współczesnych komputerach program składa się

z

ciągu kolejno wykonywanych instrukcji

.

background image

Podsumowanie

Jeden z wielu symulatorów MT:

http://www.maszynaturinga.info/

background image

Architektura Von Neumana

Maszyna Turinga jest jednym z matematycznych

modeli komputerów.

Praktyczny model komputera podał

John von

Neuman

.

Margittai Neumann János Lajos
(ur. Budapeszt 1903)

Johann von Neumann (Niemcy)

John von Neumann (USA)
(zm. 1957 r.)

background image

Zasady von Neumana:

1. instrukcje i dane mają być identycznie reprezentowane w

maszynie;

2. program i dane muszą mieścić się w tej samej wewnętrznej

pamięci (operacyjnej) komputera;

3. dzięki jednakowej reprezentacji danych i instrukcji maszyna

powinna móc wykonywać operacje na instrukcjach i całym
programie.

background image

Architektura Von Neumana

W architekturze Von Neumana wyróżniamy:

Pamięć, jednostkę sterującą (procesor), jednostkę

arytmetyczno-logiczną oraz układ wejścia/wyjścia

Taką architekturę komputera nazywano

sterowaną

programem

.

Wobec tak sformułowanej definicji komputera ENIAC

wszystkie poprzedzające go maszyny nie były
komputerami wg. modelu Von Neumana.

background image

Architektura Von Neumana

We współczesnych komputerach architektura uległa pewnym

modyfikacjom. Ogólny schemat jest następujący:

Elementy

:

• procesor (wraz z
ALU)

• zegar

• magistrala danych

• magistrala adresowa

• magistrala sterująca

• pamięć

• sterowniki we/wy

Na podst: http://www.neurosoft.edu.pl/akozioro/Maszyna_Turinga.pdf

background image

Architektura Von Neumana

Procesor

układ dokonujący operacji na danych zgromadzonych w

pamięci lub pochodzących z urządzeń we/wy, sterowany
programem, którego kod znajduje się w pamięci. Do
przechowywania swojego wewnętrznego stanu procesor
wyposażony jest w pewną ilość

rejestrów

.

Rejestry to komórki pamięci o niewielkich rozmiarach

(najczęściej 4/8/16/32/64/128 bitów) służące do
przechowywania tymczasowych wyników obliczeń,
adresów lokacji w pamięci operacyjnej itd. Większość
procesorów przeprowadza działania wyłącznie w oparciu
o wewnętrzne rejestry, kopiując do nich dane z pamięci i
po zakończeniu obliczeń odsyłając wynik do pamięci.

Na podst: http://www.neurosoft.edu.pl/akozioro/Maszyna_Turinga.pdf

background image

Architektura Von Neumana

Zegar

odmierza cykle wykonywania instrukcji programu,

synchronizuje podzespoły komputera

Na podst: http://www.neurosoft.edu.pl/akozioro/Maszyna_Turinga.pdf

background image

Architektura Von Neumana

Magistrale

służą do przesyłania danych i synchronizacji elementów komputera:

1. Magistrala danych służy do przesyłania danych między pamięcią,

układami we/wy, a procesorem. Ilość użytych tutaj linii
(szerokość szyny) jest równa długości słowa maszynowego i jest
równa rozmiarowi komórki pamięci, lub jest jego wielokrotnością.

2. Magistrala adresów służy procesorowi do wysyłania numerów

komórek pamięci lub rejestrów we/wy na których będzie
dokonane następne przesłanie danych. Ilość użytych tutaj linii
decyduje
o wielkości pamięci jaką można zaadresować.

3. Magistrala sterująca służy do wzajemnej synchronizacji oraz

przekazywania i potwierdzania przyjęcia/wykonania zleceń.

Na podst: http://www.neurosoft.edu.pl/akozioro/Maszyna_Turinga.pdf

background image

Architektura Von Neumana

Pamięć

przechowuje dane i kod programu.

Jeżeli jej konstrukcja umożliwia oprócz odczytu dokonywanie w

niej modyfikacji nazywamy ją

RAM

, jeśli jej konstrukcja

pozwala jedynie na odczyt nazywana jest

ROM

.

Pamięć dzieli się na komórki, z których każda jest w stanie

przechować liczbę całkowitą z ustalonego dla danej
architektury zakresu (słowo bitowe). Każda komórka
pamięci posiada unikalny numer zwany

adresem fizycznym

,

który służy procesorowi do odwoływania się do niej.

Na podst: http://www.neurosoft.edu.pl/akozioro/Maszyna_Turinga.pdf

background image

Podsumowanie

Maszyna von Neumanna była komputerem w pełni

automatycznym, cyfrowym i uniwersalnym,

z wczytywanym programem.

Jej wewnętrzna architektura stała się wzorem dla

komercyjnych maszyn następnej generacji i w

znacznym stopniu pozostaje aktualna do dziś.

background image

Podsumowanie

Innym rodzajem architektury jest

architektura

harwardzka

.

W odróżnieniu od architektury von Neumanna,

pamięć danych programu jest oddzielona od pamięci

rozkazów.

Jest to podstawowa architektura komputerów zerowej

generacji i początkowa komputerów pierwszej

generacji.

Budowa ta często przekłada się na większą szybkość

działania dlatego jest często wykorzystywana

w procesorach sygnałowych oraz jednoukładowych.


Document Outline


Wyszukiwarka

Podobne podstrony:
ćw1 Maszyna turinga
Maszyna Turinga
Maszyna Turinga
MASZYNA TURINGA A UMYSŁ LUDZKI
maszyna Turinga id 281783 Nieznany
3 Maszyna Turinga
Kubity i kot Schrödingera Od maszyny Turinga do komputerów kwantowych
złożoność obliczeniowa algorytmu Maszyny Turinga
maszyna Turinga przyklady id 28 Nieznany
ćw1 Maszyna turinga
Maszyna Turinga
Maszyna Turinga,v1 1

więcej podobnych podstron