Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика (Автосохраненный).docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
130.86 Кб
Скачать

Машина Тьюринга

Машина Тьюринга – формальная мат. Модель работы компьютера, а так же модель алгоритмов

В модели Тьюринга и программа и сам компьютер работают по некоему алгоритму, поэтому в некотором смысле это одно и то же.

В 30е годы было разработано много различных моделей алгоритмов, т.к. появилась необходимость в оптимизации. Одна из этих моделей – машина Тьюринга.

В ней есть память и есть аналог процессора

Она состоит из след. Компонентов

УУ

Бесконечная в обе стороны лента, поделенная на сегменты. В каждом сегменте может храниться только одно значение.

  1. Устройства управления, в каждый момент времени может находиться в одном из состояний из конечного множества Q

  2. У устройства управления есть пишущая головка. В каждый момент времени она обозревает одну ячейку ленты

В зависимости от обозреваемого символа на ленте и состояния устройства управления (qn) могут быть выполнены следующие действия:

  1. на ленту может быть записан некий символ А

  2. УУ может перейти в новое состояние или остаться в прежнем состоянии, а пишущая головка может изменить свою позицию (сдвинуться вправо, влево или остаться на месте)

Среди всех состояний выделяют q1 – начальное состояние

qz – конечное состояние, в котором она прекращает работать

λ – пустой символ, в ячейке ничего не записано

Таким образом лента является аналогом памяти компьютера с хранимыми данными и устройством управления, где записано состояние

Например: обозревая символ 1 находимся в состоянии q1 записываем * переходим в состояние q2 и сдвигаемся вправо

1 q1  *q2 R

Еще один способ записи команд – табличный

По столбцам – символ на ленте

По строкам – состояния

0

1

*

λ

Q1

*q2 R

Q2

Q3

Графический способ.

Граф – Вершины, соединенные ребрами

Вершинами графа являются состояния

Ребра – все остальное

Машина Тьюринга в начале строится для каждой отдельной операции,

Т.е. Для каждого действия – своя машина Тьюринга

Сложение символов

1 1 1 1 1 + 1 1 1 1  1 1 1 1 1 1 1 1 1

Машина Тьюринга не имеет никакого отношения к двоичной арифметике, она работает с символами

Одну и ту же операцию можно сделать по разному

Возьмем самую левую единицу и поместим ее на место плюса

Q1 *  qz λ R Случай х=0

Q1  q2 λ R

Q2 1  q2 1 R (продвигаемся на 1 символ вправо по единицам Х, не меняя их)

Q2 *  q3 1 L ( после окончания работы машины Тьюринга головка должна обозревать самый левый символ)

Q3 1  q3 1 L

Q3 λ  qz λ R (машина сдвинулась и остановилась перед 1й единицей)

ДЗ – написать в табл и граф) Составить М Т , из n единиц n нулей и вернуться в начало

Написать на ассемблере прогу

If (x<=y ) z = x^2-y, else z=x^+y. X=6 y=4

1 Q1  0 Qz R

0 Q2  Q3 1 L

Q3 λ  qz λ

DSEG SEGMENT ; сегмент данных

X DB 6

Y DB 4

Z DB 0

DSEG ENDS ; конец сегмента данных

CSEG SEGMENT ; сегмент программы

ASSUME CS:CSEG, DS:DSEG, SS:SSEG ; регистры, в которые мы заносим начало каждого сегмента

START PROC FAR ; начало описания программы

PUSH DS ; DS, AX – регистры.

PUSH AX

MOV DS DSEG

CALL MAIN ; вызов главной процедуры

RET ; выход из процедуры

START ENDP ; программа старт закончена

MAIN PROC NEAR

MOV AH,6 ;загрузка программы вывода на экран содержимого регистра DL

MOV BH,x; загрузим в регистр BH значение х

MOV BL,y; в BL - y

CMP BH,BL

JL MET

MUL BH,BH ; (xx) в регистровой адресации

ADD BH,BL

MOV BL,z ; загрузили z в регистр в BL

ADD BL,BH

MOV DL,z ; печать рез-ла

JMP DONE

MET:

MUL BH,BH ; (xx) в регистровой адресации

MUL BL,-1

ADD BH,BL

MOV BL,z ; загрузили z в регистр в BL

ADD BL,BH

MOV DL,z ; печать рез-та

DONE: INT 21H; вызов ОС путем прерывания для печати символа на экран.

(int – команда ассемблера для вызова ОС)

RET

MAIN ENDP

CSEG ENDS