русс | укр

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

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

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

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


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

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


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


 

При написании этого раздела использовались материалы курсы лекций [1].

 

Неформально, машина Тьюринга (далее МТ) представляет собой автомат с конечным числом состояний и неограниченной памятью, представленной бесконечной лентой (в общем случае набором лент). Лента поделена на бесконечное число ячеек, и на ней выделена стартовая ячейка.

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

На ленте имеется головка чтения-записи, и она подсоединены к «управляющему модулю» МТ — автомату с конечным множеством состояний .

Имеется выделенное стартовое состояние и состояние завершения .

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

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

1) посылает головке символ для записи в текущую ячейку каждой ленты;

2) посылает головке одну из команд «LEFT», «RIGHT», «STAY»;

3) выполняет переход в новое состояние (которое, впрочем, может совпадать с предыдущим).

На рисунке 1 представлена схема машины Тьюринга.

 

 

 

Определение 4. Машина Тьюринга — это набор

· - алфавит, - пустой символ;

· - конечное множество состояний, , - выделенные состояния : запуск машины и завершения работы;

· - произвольные отображения:

- задает новое состояние,

-символ для записи на ленте,

- определяет перемещение головки.

 

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



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

 

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

 

Таким образом память МТ – конечное множество состояний (внутренняя память) и лента (внешняя память).

Данные МТ – слова в алфавите машины. Через обозначим исходное слово.

Элементарные шаги машины – считывание и запись символов, сдвиг головки на ячейку вправо, влево, на месте, а также переход управляющего устройства в следующее состояние.

«Программа управления» МТ это задание записанное системой правил (команд) вида:

(- направление сдвига головки )

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

Альтернативным способом описания «программы управления» является диаграмма переходов, представленная в виде ориентированного графа, вершинами которого являются состояния , дуги помечены переходами вида .

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

 

Пример 1. Сложение. Рассмотрим задачу сложения 2 натуральных чисел. Договоримся представлять натуральные числа в единичном (унарном) коде , например, для числа х справедливо: . Положим, что для всех числовых функций либо .

Тогда числовая функция правильно вычислима по Тьюрингу, если существует машина Т такая, что , когда и Т работает бесконечно, начиная с , когда не вычислима.

Рассмотрим сложение 2 чисел a и b () это слово необходимо переработать в , т.е. удалить разделитель и сдвинуть одно из слагаемых, скажем первое, к другому.

Это преобразование осуществляет машина с 4 состояниями и следующей системой команд:

В табличной форме программа управления выглядит так

 

  *
 
 
 

 

Диаграмма переходов описывается графом, представленном на рисунке 2.

 

 

 
 
Рис. 2. Диаграмма переходов операции сложения МТ
 
 

 

 




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


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


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

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

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


 


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

 
 

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

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