Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
125
Добавлен:
16.04.2015
Размер:
761.33 Кб
Скачать

Универсальная машина Тьюринга

m

m

 

ccc блок 1 cc блок 2 cc ... cc блок N ссс110...

программа

данные

Универсальная машина Тьюринга U будет моделировать движения, которые бы предпринимала Tm T на входной цепочке, представленной как данные на ленте машины U, следующим образом.

21

Универсальная машина Тьюринга

m

[1] ссс 0с0с11R0сс

[2] 111L1c111L1c11R1cc

[3] 1111R0c1111R0c111L1cc

m

[4] 0с0с0ссc110 ...

U

1. Машина U передвигает свою головку вправо, пока она не обнаружит маркер в области данных над входным символом, ска- нируемым машиной T.

22

Универсальная машина Тьюринга

m

[1] ссс 0с0с11R0сс

U(1)

[2]111L1c111L1c11R1cc

[3]1111R0c1111R0c111L1cc

m

[4]0с0с0ссc110 ...

2. Этот символ, назовем его A, запоминается в конечном управлении ма- шины U, которая с этого момента начинает движе- ние влево, пока не достигнет маркера, регистрирую- щего текущее состояние машины T (отмечающего соответствующий блок в коде таблицы машины T ).

23

Универсальная машина Тьюринга

3. Машина U удаляет этот

mm1

[1]ссс 0с0с11R0сс

U

[2]111L1c111L1c11R1cc

[3]1111R0c1111R0c111L1cc

m

[4]0с0с0ссc110 ...

30

маркер (заменяет его символом B), передвигается вправо к подблоку, соответствующему символу A (=1), и помещает маркер над первым символом S в этом подблоке при условии, что S = 1. В последующем этот маркер подблока будем называть m1.

Если же S = 0, то машина U останавливается, поскольку у машины T нет никакого следующего движения.

24

Универсальная машина Тьюринга

m2 m1

[1] ссс 0с0с11R0сс

U

[2]111L1c111L1c11R1cc

[3]1111R0c1111R0c111L1cc

m

[4]0с0с0ссc110 ...

4. Предположим,

что

S = 1.

 

 

Тогда

машина

U

движется

влево, пока

не

находит цепочку ссс. Затем машина U

движется вправо, помечая крайнее правое из этих трех с. Этот маркер назовем m2.

25

Универсальная машина Тьюринга

 

m2

m1

[1]

ссс 0с0с11R0сс

[2]

111L1c111L1c11R1cc

[3]

1111R0c1111R0c111L1cc

 

 

m

[4]0с0с0ссc110 ...

5. После этого машина U входит в подпрограмму, которая попеременно передвигает маркер m1 на один символ ‘1’ вправо, а маркер m2 — на один блок вправо.

Чтобы различать эти маркеры (т. к. оба есть m) машина U будет запоминать в своем конечном управлении: m2 левее или правее m1.

26

Универсальная машина Тьюринга

m2 — маркер следующего

состояния

m1 m2

[1] ссс 0с0с11R0сс

[2] 111L1c111L1c11R1cc

m

[3] 1111R0c1111R0c111L1cc

6. Когда машина U сдвигает m1 на символ, который не является ‘1’, т. е. он есть L или R, маркер m2 располагается над символом ‘с’, который как раз перед

[4]0с0с0ссc110 ... блоком, соответствующим

следующему состоянию машины T.

27

Универсальная машина Тьюринга

m m

[1]ссс 0с0с11R0сс 2

[2]111L1c111L1c11R1cc

[3]1111R0c1111R0c111L1cc1

m

[4]0с0с0ссc110 ...

U(R0)

7. В этой точке машина U удаляет маркер m1 и записывает в своем конечном управлении направление (R), в котором машина T будет двигать свою головку ленты, и символ (0), который машина T должна печатать.

Затем машина U снова движется вправо в область данных и находит маркер, который указывает место головки ленты машины T.

28

Универсальная машина Тьюринга

[1]

m2

ссс 0с0с11R0сс

[2]

111L1c111L1c11R1cc

[3]

1111R0c1111R0c111L1cc

 

m

[4]0с0с0ссc 1010 ...

U(R0)

8. Символ, находящийся под маркером, заменяется на символ, запомненный в конечном управлении (0), а маркер сдвигается на одну ячейку в направлении, также зафиксированном в конечном управ- лении (R).

Таким образом машина U смоделировала одно движение машины T.

29

Универсальная машина Тьюринга

m2

[1] ссс 0с0с11R0сс

U(1)

[2] 111L1c111L1c11R1cc

[3] 1111R0c1111R0c111L1cc

m

[4]0с0с0ссc 0 10 ...

U

Далее машина U запоминает новый символ (1), сканируемый машиной T, в своем конечном управлении, начинает двигаться влево, пока не достигнет маркера m2, регистрирующего текущее состояние машины T, и повторяет процесс, который был только что описан (см. п.3).

30

Соседние файлы в папке lectures