Машината на Тюринг като универсален разпознавач - Студопедия

Както е известно, с помощта на MT може да се дефинира много широк клас езици, наречени рекурсивно изброими.

Дефиниция. Рекурсивно изброим език е формален език, за който има машина на Тюринг (или друга изчислима функция), която ще спре и ще вземе всеки входен низ от този език.

Всички обикновени, контекстно-свободни, контекстно-чувствителни и рекурсивни езици са рекурсивно изброими.

Ако добавим неограничена външна памет към модела KA, тогава получаваме автомат, който изпълнява всеки алгоритъм. Такъв автомат се наричамашина на Тюринг(MT).

MT се състои от 2 части: лента и държавна машина. Обикновено при моделите МТ лентата е неподвижна, а главата се движи спрямо лентата под управлението на машината (ляво, дясно, стои неподвижно).

MT може да изпълнява следните команди:

1) напишете нов символ в клетката на лентата;

2) преместете една клетка наляво или надясно;

3) преминете към ново вътрешно състояние.

MT не може да направи нищо друго.

MT е дадено: T = (Q, S, Γ, δ, q0, F),

1) набор от вътрешни състояния Q=1…qm>;

2) начално състояние q0

3) набор от крайни състояния F

5) азбуката на валидните знаци на лента G

6) команди за движение на главата.

7) управляваща програма δ, която може да бъде зададена както в текстова, така и в таблична форма:

Ще приемем, че МТ, разпознаващ езика L, спира, т.е. няма следващ ход, когато се получи входен низ.

Пример. Задайте език L = .

Задаваме МT = (Q, S, Γ, δ, q0, F),

Главата е на първия знак от веригата.

MT програма δдефинирайте както следва:

1. δ(q0, 0) = (q1, X, R).

В състояние q0 символът 0 се заменя с X и машината се премества надясно в състояние q1, търсейки 1.

2. а) δ(q1, 0) = (q1, 0, R);

b) δ(q1, Y) = (q1, Y, R);

в) δ(q1, 1) = (q2, Y, L).

Оставайки в състояние q1, колата се движи надясно през всички нули (секция 2a) и блок Y (секция 2b). След като се натъкне на 1, той го заменя с Y и преминава в състояние q2, започвайки да се движи наляво (стр. 2c).

3. а) δ(q2, Y) = (q2, Y, L);

b) δ(q2, X) = (q3, X, R);

в) δ(q2, 0) = (q4, 0, L).

Оставайки в състояние q2, автомобилът се движи наляво през блок Y (секция 3a). Ако колата срещне X, докато все още е в състояние q2, тогава няма повече 0 за замяна с X и колата преминава в състояние q3, започвайки да се движи надясно, за да се увери, че няма останали 1 (Раздел 3b). Ако се срещне 0, колата преминава в състояние q4, за да продължи да се движи в търсене на най-лявата 0 (секция 3c).

4. а) δ(q4, 0) = (q4, 0, L)

б) δ(q4, X) = (q0, X, R).

Колата се движи през нулите (секция 4а). Ако се срещне X, тогава машината е преминала най-лявата нула. Тя трябва, като се движи надясно, да превърне тази 0 в X (секция 4b). Има преход към състояние q0 и процесът, току-що описан в раздели 1–4, продължава.

5. а) δ(q3, Y) = (q3, Y, R)

b) δ(q3, B) = (q5, Y, R).

Машината влиза в състояние q3, когато не остане нито една 0 (виж раздел 3b). Колата трябва да се движи надясно (стъпка 5a) през блок Y. Ако има празнина преди 1, тогава не остава 1 (стъпка 5b). В тази ситуация машината преминава в крайно състояние q5 и спира, като по този начин сигнализира за приемането на входния низ.

6. Във всички случаи, с изключение на 1–5, функцията δ не е дефинирана. MTще спре и ще отхвърли въведения низ.

Табличен запис на функцията δ.

хYIN
q0q1, X, Rресп.респ.респ.респ.
q1q1, 0, Rq2, Y, Lресп.q1, Y, Rресп.
q2q4, 0, Lресп.q3, X, Rq2, Y, Lресп.
q3респ.респ.респ.q3, Y, Rq5, Y, R
q4q4, 0, Lресп.q0, X, Rресп.респ.

Помислете за действията на машината на Тюринг върху входния низ 000111.

като

Таблицата показва конфигурациите на символния низ на лентата с маркера за състояние под сканирания знак (в конфигурации 25 и 26 маркерът за състояние е под знака за интервал).

В някои задачи MT може да се използва катоустройство с памет за съхраняване на ограничено количество информация. А именно: състоянието се записва като двойка елементи, като единият контролира, а другият съхранява символа.

Пример. Посочете език, състоящ се от низове, в които първият знак не се среща многократно в един и същи низ.

Нека построим функцията δ (програма MT), както следва:

1. а) δ([q0, B], 0) = ([q1, 0], 0, R);

b) δ([q0, B], 1) = ([q1, 1], 1, R).

Устройството съхранява сканирания знак във втория компонент за обозначаване на състоянието и се измества надясно. Първият компонент става q1.

2. а) δ([q1, 0], 1) = ([q1, 0], 1, R);

b) δ([q1, 1], 0) = ([q1, 1], 0, R).

Ако една машина запомни 0 и види 1, или обратното, запомни 1 и види 0, тогава тяпродължава да се движи надясно.

3. а) δ([q1, 0], B) = ([q1, B], 0, L);

b) δ([q1, 1], B) = ([q1, B], 0, L).

Машината влиза в крайното състояние [q1, B], ако срещне знак за интервал, преди да достигне второто копие на най-левия знак. Ако машината достигне празнина в състояние [q1, 0] или [q1, 1], тогава тя приема входния низ. За състоянието [q1, 0] и символ 0, или за състоянието [q1, 1] и символ 1, функцията δ не е дефинирана, така че ако машината някога види запаметения знак, тя спира, без да приеме.

Табличен запис на функцията δ.

IN
[q0,B][q1, 0], 0, R[q1, 1], 1, R[q0,B], B, R
[q1,0]респ.[q1, 0], 1, Rдопуснати
[q1,1][q1, 1], 0, Rресп.допуснати

В общия случай може да бъде разрешен произволен фиксиран брой компоненти, като всички освен един са предназначени за съхраняване на информация.

Не намерихте това, което търсихте? Използвайте търсачката:

Деактивирайте adBlock! и обновете страницата (F5)наистина е необходимо