3 Maszyna Turinga

background image

Automaty abstrakcyjne

maszyna Turinga

Wykład nr 3 z Podstaw Informatyki

background image

Maszyna Turinga

Abstrakcyjna maszyna zdolna wykonywać
algorytmy (Alan Mathison Turing – On Com-
putable Numbers
, 1936)

Obecnie stosowana głównie do udowadnia-
nia nierozstrzygalności problemów matema-
tycznych

background image

Elementy tworzące

maszynę Turinga

Nieskończenie długa taśma podzielona na
pola (z zapisanymi w nich symbolami)

Ruchoma głowica czytająco-pisząca znajdu-
jąca się w jednym z m możliwych stanów
wewnętrznych

Φ Φ b a b Φ Φ Φ

G

background image

Program dla maszyny Turinga

Aktualny stan maszyny S

ij

= ( s

i

, q

j

)

s

i

symbol na taśmie pod głowicą

q

j

wewnętrzny stan głowicy

Ruch maszyny R

ij

= ( s

k

, K, q

l

)

s

k

nowy symbol zapisany na taśmie

K kierunek ruchu głowicy

q

l

nowy wewnętrzny stan głowicy

Program to zbiór reguł (rozkazów) postaci
R

ij

 = T( S

ij

) zwany tablicą charakterystyczną

background image

Tablica charakterystyczna

T

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

q

1

q

2

q

j

q

m

s

1

R

11

R

12

R

1j

R

1m

s

2

R

21

R

22

R

2j

R

2m

s

i

R

i1

R

i2

R

ij

R

im

s

n

R

n1

R

n2

R

nj

R

nm

background image

Twierdzenie Turinga

Każdy algorytm może być realizowany przez
odpowiednio zaprogramowaną maszynę Tu-
ringa

background image

Przykład 1

Na taśmie zapisano 3-literowy ciąg złożony
z symboli: a, b i c.

Tylko napis abc jest poprawny

Podać algorytm rozpoznawania tego napisu

background image

Przykład 1 – algorytm

1. Pobierz symbol. Jeżeli jest nim a to przejdź

do 2, w przeciwnym przypadku przejdź do 4.

2. Przesuń głowicę w prawo, pobierz symbol,

jeżeli jest nim b to przejdź do 3, jeśli nie
– przejdź do 4.

3. Przesuń głowicę w prawo, pobierz symbol,

jeżeli jest nim c to przejdź do 5, jeśli nie
– przejdź do 4.

4. Sygnalizuj nieprawidłowy napis. Koniec.
5. Sygnalizuj napis prawidłowy. Koniec.

background image

Przykład 1 – tablica charaktery-

styczna

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5


a a c

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5


a a c

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5

a a c

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5

a a c

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5

a a c

background image

Automat kończy pracę w stanie q

4

.

Napis niepoprawny

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5


a b c

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5


a b c

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5

a b c

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5

a b c

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5

a b c

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5

a b c

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5

a b c

background image

Przykład 1 – algorytm

a

b

c

q

1

q

2

q

3

q

4

q

5

aPq

2

aNq

4

aNq

4

aNq

4

aNq

5

bNq

4

bPq

3

bNq

4

bNq

4

bNq

5

cNq

4

cNq

4

cNq

5

cNq

4

cNq

5

Automat kończy pracę w stanie q

5

.

Napis poprawny

background image

Przykład 2 – inkrementacja liczby

Na taśmie umieszczono liczbę całkowitą ze
znakiem zapisaną w zapisie uzupełnienio-
wym do 2

W miejsce tej liczby wpisać liczbę o 1 więk-
szą (dodać jedynkę)

Głowica znajduje się na prawo od liczby na
symbolu pustym Φ

background image

Binarna reprezentacja liczby całkowitej bez
znaku:

a

6

∙2

6

+a

5

∙2

5

+a

4

∙2

4

+a

3

∙2

3

+a

2

∙2

2

+a

1

∙2

1

+a

0

∙2

0

a

6

∙64+a

5

∙32+a

4

∙16+a

3

∙8+a

2

∙4+a

1

∙2+a

0

∙1

Binarna reprezentacja liczby

background image

Binarna reprezentacja liczby całkowitej bez
znaku:

a

6

∙2

6

+a

5

∙2

5

+a

4

∙2

4

+a

3

∙2

3

+a

2

∙2

2

+a

1

∙2

1

+a

0

∙2

0

a

6

∙64+a

5

∙32+a

4

∙16+a

3

∙8+a

2

∙4+a

1

∙2+a

0

∙1

Np. 23

23 = 16 + 4 + 2 + 1

23 = 0∙64+0∙32+1∙16+0∙8+1∙4+1∙2+1∙1

Binarna reprezentacja liczby

background image

Binarna reprezentacja liczby całkowitej bez
znaku:

a

6

∙2

6

+a

5

∙2

5

+a

4

∙2

4

+a

3

∙2

3

+a

2

∙2

2

+a

1

∙2

1

+a

0

∙2

0

a

6

∙64+a

5

∙32+a

4

∙16+a

3

∙8+a

2

∙4+a

1

∙2+a

0

∙1

Np. 23

23 = 16 + 4 + 2 + 1

23 = 0∙64+0∙32+1∙16+0∙8+1∙4+1∙2+1∙1

23 ≡ 0010111

Binarna reprezentacja liczby

background image

Znak reprezentowany w postaci dodatkowe-
go bitu zwanego bitem znaku

Liczba dodatnia – 0, liczba ujemna – 1

3 formy zapisu:

znak moduł

uzupełnieniowy do 1

uzupełnieniowy do 2

Co zrobić ze znakiem ?

background image

Z lewej strony liczby binarnej umieścić bit
znaku

Np. 23

Liczba dodatnia w zapisie U2

background image

Z lewej strony liczby binarnej umieścić bit
znaku

Np. 23

0 0 1 0 1 1 1

Liczba dodatnia w zapisie U2

background image

Z lewej strony liczby binarnej umieścić bit
znaku

Np.

+

23

0

0 0 1 0 1 1 1

Liczba dodatnia w zapisie U2

background image

Znaleźć reprezentację liczby przeciwnej

Zanegować wszystkie bity

Dodać jedynkę

Liczba ujemna w zapisie U2

background image

Znaleźć reprezentację liczby przeciwnej

Zanegować wszystkie bity

Dodać jedynkę

Np.

-

23

0

0 0 1 0 1 1 1 (+23)

Liczba ujemna w zapisie U2

background image

Znaleźć reprezentację liczby przeciwnej

Zanegować wszystkie bity

Dodać jedynkę

Np.

-

23

0

0 0 1 0 1 1 1 (+23)

1

1 1 0 1 0 0 0

Liczba ujemna w zapisie U2

background image

Znaleźć reprezentację liczby przeciwnej

Zanegować wszystkie bity

Dodać jedynkę

Np.

-

23

0

0 0 1 0 1 1 1 (+23)

1

1 1 0 1 0 0 0

+ 1

Liczba ujemna w zapisie U2

background image

Znaleźć reprezentację liczby przeciwnej

Zanegować wszystkie bity

Dodać jedynkę

Np.

-

23

0

0 0 1 0 1 1 1 (+23)

1

1 1 0 1 0 0 0

+ 1

1

1 1 0 1 0 0 1 (-23)

Liczba ujemna w zapisie U2

background image

Dodawanie jedynki do liczby parzystej

0 1 1 0 1 1 0 0 (+108)

+ 1

0 1 1 0 1 1 0 1 (+109)

Inkrementacja liczb binarnych

background image

Dodawanie jedynki do liczby parzystej

0 1 1 0 1 1 0 0 (+108)

+ 1

0 1 1 0 1 1 0 1 (+109)

1 1 1 1 0 1 1 0 (-10)

+ 1

1 1 1 1 0 1 1 1 (-9)

Inkrementacja liczb binarnych

background image

Dodawanie jedynki do liczby parzystej

Inkrementacja liczby nieparzystej

0 0 0 0 1 0 1 1 (+11)

+ 1

0 0 0 0 1 1 0 0 (+12)

Inkrementacja liczb binarnych

background image

Dodawanie jedynki do liczby parzystej

Inkrementacja liczby nieparzystej

Sytuacje szczególne

1 1 1 1 1 1 1 1 (-1)

+ 1

0 0 0 0 0 0 0 0 (0)

Inkrementacja liczb binarnych

background image

Dodawanie jedynki do liczby parzystej

Inkrementacja liczby nieparzystej

Sytuacje szczególne

0 1 1 1 1 1 1 1 (+127)

+ 1

1 0 0 0 0 0 0 0 (-128)

Inkrementacja liczb binarnych

background image

Dodawanie jedynki do liczby parzystej

Inkrementacja liczby nieparzystej

Sytuacje szczególne

0 1 1 1 1 1 1 1 (+127)

+ 1

1 0 0 0 0 0 0 0 (-128)

Inkrementacja liczb binarnych

background image

Dodawanie jedynki do liczby parzystej

Inkrementacja liczby nieparzystej

Sytuacje szczególne

0 1 1 1 1 1 1 1 (+127)

+ 1

0 1 0 0 0 0 0 0 0 (-128)

Inkrementacja liczb binarnych

background image

Przesuwaj się od prawej do lewej i zamieniaj
wszystkie jedynki na zera aż do napotkania
zera, które należy zamienić na jedynkę

Dodatkowo sprawdzaj czy zamienione na
jedynkę zero nie było bitem znaku. Jeśli tak
rozszerz liczbę o nowy bit znaku.

Algorytm inkrementacji liczb binar-

nych

background image

Stan q

1

– poszukiwanie najmniej znaczącego

bitu liczby

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

1Nq

4

0Lq

2

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

1Nq

4

1Lq

3

0Lq

2

0Lq

2

Stan q

2

– zamiana jedynek na zera aż do napo-

tkania zera i zamiana go na jedynkę

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

1Nq

4

1Lq

3

0Nq

4

0Lq

2

0Lq

2

1Nq

4

Stan q

3

– sprawdzenie czy nie zmieniono zna-

ku liczby

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Stan q

4

– stan końcowy

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 0 1 0 1 1 1 1 Φ Φ

47

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 0 1 0 1 1 1 1 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 0 1 0 1 1 1 1 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 0 1 0 1 1 1 1 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 0 1 0 1 1 1 0 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 0 1 0 1 1 0 0 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 0 1 0 1 0 0 0 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 0 1 0 0 0 0 0 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 0 1 1 0 0 0 0 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 0 1 1 0 0 0 0 Φ Φ

48

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 1 1 1 1 Φ Φ

15

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 1 1 1 1 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 1 1 1 0 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 1 1 0 0 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 1 0 0 0 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 0 0 0 0 0 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ Φ 1 0 0 0 0 Φ Φ

background image

Przykład 2 – tablica charaktery-

styczna

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

Φ 0 1 0 0 0 0 Φ Φ

16

background image

Przykład 3 – obliczanie wartości

bezwzględnej liczby

Na taśmie umieszczono liczbę całkowitą ze
znakiem zapisaną w zapisie uzupełnienio-
wym do 2

W miejsce tej liczby wpisać jej wartość bez-
względną

Głowica znajduje się na lewo od liczby na
symbolu pustym Φ

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1. Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1. Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. + 11

background image

Przykład 3 – algorytm

1.

Czy liczba na taśmie jest liczbą nieujemną ?
Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1. Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. + 11

0

0 0 0 1 0 1 1

background image

Przykład 3 – algorytm

1.

Czy liczba na taśmie jest liczbą nieujemną ?
Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1. Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. - 11

1

1 1 1 0 1 0 1

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1.

Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. - 11
1 1 1 1 0 1 0 1

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1.

Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. - 11

0

1 1 1 0 1 0 1

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1.

Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. - 11

0

0

1 1 0 1 0 1

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1.

Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. - 11

0

0

0

1 0 1 0 1

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1.

Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. - 11

0

0

0

0

0 1 0 1

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1.

Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. - 11

0

0

0

0

1

1 0 1

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1.

Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. - 11

0

0

0

0

1

0

0 1

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1.

Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. - 11

0

0

0

0

1

0

1

1

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1.

Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Np. - 11

0

0

0

0

1

0

1

0

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1. Zaneguj wszystkie bity liczby

2.

Dodaj jedynkę

Np. - 11
0 0 0 0 1 0 1 0
+ 1

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1. Zaneguj wszystkie bity liczby

2.

Dodaj jedynkę

Np. - 11
0 0 0 0 1 0 1

1

background image

Przykład 3 – algorytm

1. Czy liczba na taśmie jest liczbą nieujemną ?

Jeżeli tak – STOP, jeśli nie – idź do 2

2. Oblicz liczbę przeciwną:

1. Zaneguj wszystkie bity liczby

2. Dodaj jedynkę

Każdy fragment algorytmu można zrealizować
niezależnie a potem połączyć uzyskane roz-
wiązania w jedno.
Założenie: głowica z lewej strony liczby

background image

q

1

– szukanie bitu znaku

q

2

– stan końcowy, liczba dodatnia

q

3

– stan końcowy liczba ujemna

Przykład 3 – testowanie bitu znaku

Φ

-

-

0

-

1

-

q

1

q

2

q

3

ΦPq

1

0Nq

2

0Nq

2

1Nq

3

1Nq

3

background image

q

1

– szukanie początku liczby

q

2

– zamiana bitów

q

3

– stan końcowy

Przykład 3 – negowanie bitów

Φ

0

-

1

-

q

1

q

2

q

3

ΦPq

1

ΦNq

3

ΦNq

3

1Pq

2

1Pq

2

0Pq

2

0Pq

2

background image

Przykład 3 – inkrementacja

Φ

0

1

q

1

q

2

q

3

q

4

ΦLq

1

ΦNq

4

0Nq

4

ΦNq

4

1Nq

4

1Lq

3

0Nq

4

0Nq

4

0Lq

2

0Lq

2

1Nq

4

1Nq

4

background image

Przykład 3 – całe zadanie

Φ

-

-

0

-

1

-

q

1

q

2

q

3

ΦPq

1

0Nq

2

0Nq

2

1Nq

3

0Nq

3

Badanie znaku liczby

background image

Przykład 3 – całe zadanie

Φ

-

-

0

-

1

-

q

1

q

2

q

3

ΦPq

1

0Nq

2

0Nq

2

1Nq

3

0Nq

3

2 stany końcowe:

q

2

– liczba dodatnia

q

3

– liczba ujemna

background image

Przykład 3 – całe zadanie

Φ

-

-

0

-

1

-

q

1

q

2

q

3

ΦPq

1

0Nq

2

0Nq

2

1Nq

3

0Nq

3

W miejsce stanu q

3

wstawiamy tablicę z nega-

cją bitów

background image

Przykład 3 – całe zadanie

Φ

-

0

1

-

q

1

q

2

q

3

q

4

q

5

ΦPq

1

ΦPq

3

ΦNq

5

ΦNq

5

0Nq

2

0Nq

2

1Pq

4

1Pq

4

0Nq

5

1Nq

3

0Pq

4

0Pq

4

1Nq

5

Negowanie bitów

background image

W miejsce stanu końcowego q

5

wstawiamy ta-

blicę inkrementującą.

Przykład 3 – całe zadanie

Φ

-

0

1

-

q

1

q

2

q

3

q

4

q

5

ΦPq

1

ΦPq

3

ΦNq

5

ΦNq

5

0Nq

2

0Nq

2

1Pq

4

1Pq

4

0Nq

5

1Nq

3

0Pq

4

0Pq

4

1Nq

5

background image

Przykład 3 – całe zadanie

Φ

-

0

1

-

q

1

q

2

q

3

q

4

q

5

q

6

q

7

q

8

ΦPq

1

ΦPq

3

ΦNq

5

ΦLq

5

ΦLq

8

0Lq

8

ΦLq

8

0Nq

2

0Nq

2

1Pq

4

1Pq

4

1Lq

8

1Lq

7

0Lq

8

0Lq

8

1Nq

3

0Pq

4

0Pq

4

0Lq

6

0Lq

6

1Lq

8

1Lq

8

Inkrementacja liczby

background image

Przykład 3 – całe zadanie

Φ

-

0

1

-

q

1

q

2

q

3

q

4

q

5

q

6

q

7

q

8

ΦPq

1

ΦPq

3

ΦNq

5

ΦLq

5

ΦLq

8

0Lq

8

ΦLq

8

0Nq

2

0Nq

2

1Pq

4

1Pq

4

1Lq

8

1Lq

7

0Lq

8

0Lq

8

1Nq

3

0Pq

4

0Pq

4

0Lq

6

0Lq

6

1Lq

8

1Lq

8

Dwa stany końcowe:

q

2

– gdy liczba była nieujemną

q

8

– gdy była liczba ujemna

background image

Podsumowanie

Elementy tworzące maszynę Turinga

Tablica charakterystyczna jako zapis pro-
gramu dla maszyny Turinga

Przykłady algorytmów i zaprogramowania
ich na maszynie Turinga

Twierdzenie Turinga o realizowalności algo-
rytmów


Wyszukiwarka

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

więcej podobnych podstron