русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-23; просмотров: 1276; Нарушение авторских прав


 

Одно из уточнений понятий алгоритма было дано Постом и А.Тьюрингом независимо друг от друга в 1936-1937гг. Основная мысль их заключалась в том, что алгоритмические процессы – это процессы, которые может свершить подходящим образом устроенная ”машина”. Ими были описаны гипотетические (условные) устройства, которые получили название «Машина Поста»(МП) и «Машина Тьюринга»(МТ). Так как в них много общего, то впоследствии их стали называть машинами Тьюринга.

Машина Тьюринга состоит из следующих частей:

1. Информационной ленты, представляющей бесконечную память машины. Это магнитная или бумажная бесконечная лента, разделенная на ячейки. В каждой ячейке можно поместить лишь один символ, в том числе ноль.

2. Считывающей головки – чувствительного специального элемента, способного обозревать содержимое ячеек. Лента может перемещаться вдоль головки так, что в каждый момент времени головка обозревает одну ячейку.

3. Управляющего устройства (УУ), которое в каждый момент времени находится в некотором состоянии. Число состояний конечно. Одно из состояний называется заключительным.

Множество символов, которые записываются в информационной ленте {S1,S2,….,Sm}, составляют внешний алфавит МТ.

При этом S1 соответствует пустому символу.

Множество состояний, в которых может находиться УУ, обозначим {q1,q2,…,qn}. Среди состояний одно будет соответствовать значительному, при котором МТ останавливается.

Кроме того, УУ вырабатывает три команды на перемещение ленты: П, Л, Н, где

П – обозревать соседнюю справа ячейку;

Л – обозревать соседнюю слева ячейку;

Н – продолжать обозревать ту же ячейку.

Совокупность символов {q1,q2,…,qn} и {П,Л,Н} образуют внутренний алфавитМТ.

Работа машины происходит в дискретном времени. В каждый момент времени МТ, находясь в состоянии qi, обозревает на ленте символ Sk, затем переходит в состояние qj, заменяет Sk на символ Sl и передвигает ленту (либо нет) на одну ячейку.



Считывающая головка и управляющее устройство образуют логический блок, который представляет из собой (2,3) - полюсник.

 

 

qiSk qjSl П(Л,Н)

 

Таким образом, команда МТ задается пятеркой символов: qi, Sk, qj,Sl, П, а сам ЛБ является по своей сути конечным автоматом.

Структура МТ имеет следующий вид:

 

      S1 S2 Sk Sm              

 

 

Q - ячейка хранит символ состояния, а Р - ячейка - символ сдвига. В них происходит задержка данных символов до начала следующего такта.

В качестве начальной информации на ленту можно подать любую конечную последовательность символов внешнего алфавита U. Если после конечного числа тактов МТ останавливается, подавая сигнал об остановке, а на ленте оказывается информация B, то говорят, что машина применима к последовательности U и перерабатывает ее в последовательность B.

Если остановка и сигнал об остановке никогда не поступают, то говорят, что МТне применима к последовательности U.

Рассмотрим функционирование МТ на примере сложения двух чисел, которые будем изображать в виде набора единиц.

Внешний алфавит будет состоять из символов: {1, +, Ù}, где Ù - пустой символ.

Внутренний алфавит будет состоять из четырех символов {q1, q2, q3, !}, где символ q1 означает начальное состояние, а ! - заключительное состояние.

Пусть на ленте записана начальная информация:

1 2 3 4 5 6 7

    +          

 

 

МТ должна ее переработать в результирующую информацию:

1 2 3 4 5 6 7

                   

 

Состояние ленты МТ в данный момент времени назовем ее конфигурацией.

Последовательность команд, реализующих операцию сложения, будет иметь вид:

1q1 Ùq3П

1q3 1q3П

+q3 +q3П

1q3 1q3П

Ùq3 1q2H 1 2 3 4 5 6 7

        +      

1q2 1q2Л

1q2 1q2Л

+q2 +q2Л

1q2 1q2Л 1 2 3 4 5 6 7

        +      

 

Ùq2 Ùq1П

 

1q1 Ùq3П

+q3 +q3П

1q3 1q3П

1q3 1q3П

Ùq3 1q2H

1 2 3 4 5 6 7

        +    

 

1q2 1q2Л

1q2 1q2Л

1q2 1q2Л

+q2 +q2Л

Ùq2 Ùq1П 1 2 3 4 5 6 7

        +    

 

+q1 Ù!Н 1 2 3 4 5 6 7

               

 

 

Последовательность команд, реализующих операцию сложения, удобно задать таблицей, которую называют функциональной схемой алгоритма.

 

  q1 q2 q3
Ùq3П 1q2Л 1q3П
Ù Ùq1П Ùq1П 1q2H
+ Ù!Н +q2Л +q3П

 

Каждому алгоритму, реализованному на МТ, соответствует своя функциональная схема. Рассматривая функциональную схему как описание программы, можно придти к понятию универсальной Машины Тьюринга.

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

Таким образом, интуитивное понятие алгоритма получает точное определение как процесс, который может быть представлен функциональной схемой и реализован МТ.

 



<== предыдущая лекция | следующая лекция ==>
Преобразование автомата Мили в автомат Мура | Основная гипотеза теории алгоритмов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.586 сек.