- •Нижегородский государственный университет им. Н.И. Лобачевского
- •1.Предисловие
- •2.Замечания по терминологии
- •3.Кибернетика и информатика
- •4.Предпосылки информатики
- •4.1.Мечта человека об искусственном человеке
- •4.2.Усилители физической и умственной деятельности человека
- •4.3.Ключевые проблемы информатики
- •5.Формализация естественного языка как средства общения.
- •6.Формализация физических характеристик среды обитания
- •6.1.Дискретные и непрерывные множества
- •6.2. Понятия измерительной шкалы, числа и измерения
- •6.3.Натуральное число
- •6.4.Позиционная система счисления
- •6.5.Натуральная числовая прямая
- •6.6.Целые числа (положительные и отрицательные)
- •6.7.Вещественные числа
- •7.Формализация физических зависимостей
- •7.1.Функции
- •7.2.Элементарные функции
- •7.3.Элементарная алгебра, аналитические и численные вычисления
- •8.Аналоговые и цифровые вычислители
- •9.Простейшие вычислители
- •9.1.Аналоговые вычислительные линейки
- •9.2.Цифровой абак и русские счеты
- •9.3.Цифровые механические арифмометры
- •9.4.Хронология событий.
- •10.Аналитические машины Чарльза Беббиджа.
- •11.Формализация рассуждений
- •11.1.Логика рассуждений
- •11.2.Логические функции и алгебра логики
- •11.3.Алгебра логики и алгебра релейно - контактных схем
- •12.Накануне компьютерной эры
- •12.1. Зарождение цифровых систем управления
- •12.2.Перфокарточные сортировальные машины
- •12.3.Методология моделирования
- •13.Теоретические модели вычислений
- •13.1.Алгоритм и его свойства
- •13.2.Проблема слов в ассоциативном исчислении
- •13.3.Нормальный алгоритм Маркова
- •13.4.Рекурсивные функции
- •13.5.Машина Тьюринга
- •13.6.Равнодоступная адресная машина
- •14.Пионеры зарубежной компьютеризации
- •15.Становление информатики в России. Борьба за признание
- •16.Два типа электронных вычислительных машин
- •16.1.Аналоговая вычислительная машина (авм)
- •16.2.Цифровая электронная вычислительная машина (компьютер, эвм)
- •16.3.Аналог или цифра
- •17.Пионеры отечественной компьютеризации
- •18.Становление информатики в России. Начальный период
- •19.Оригинальные отечественные серийные эвм (компьютеры)
- •19.1.Эвм Стрела
- •Элементная база
- •Программное обеспечение
- •Описание машины
- •Технико-эксплуатационные характеристики
- •Особенности эвм
- •19.2.Семейство эвм "м-20"
- •Структура эвм
- •Элементная база
- •Программное обеспечение
- •Технико-эксплуатационные характеристики
- •Особенности машины
- •Об использовании эвм м-20
- •Описание машины
- •Элементная база
- •Программное обеспечение
- •Технико-эксплуатационные характеристики
- •Особенности эвм
- •19.3.Семейство эвм "бэсм"
- •19.3.1.Бэсм-1
- •Структура эвм
- •19.3.2.Бэсм-2
- •Структура эвм
- •19.3.3.Бэсм-4
- •Структура эвм
- •Элементная база
- •Программное обеспечение
- •Технико-эксплуатационные характеристики
- •19.4.Семейство эвм "Минск"
- •19.4.1.Минск-1
- •19.4.2.Минск-2
- •19.4.3.Минск -22
- •19.4.4.Минск-23
- •19.4.5.Минск-32
- •Описание машины
- •Программное обеспечение
- •Технико-эксплуатационные характеристики
- •Особенности эвм
- •19.5.Семейство эвм "Урал"
- •19.5.1.Урал-1, Урал-2, Урал-3, Урал-4
- •Описание машины
- •Элементная база
- •Программное обеспечение
- •Основные эксплуатационно-технические данные
- •Особенности эвм
- •Элементная база
- •19.5.2.Урал-11, Урал-14, Урал-16
- •Описание машины
- •Программное обеспечение.
- •Основные эксплуатационно-технические данные машины “Урал-11”
- •Особенности эвм
- •19.6.Эвм "Весна" и "Снег"
- •19.7.Эвм бэсм-6
- •Описание машины
- •Элементная база
- •Программное обеспечение
- •Технико-эксплуатационные характеристики
- •Особенности машины
- •19.8.Многопроцессорные вычислительные комплексы "Эльбрус"
- •Описание машины.
- •Элементная база
- •Программное обеспечение
- •Типовые комплектации
- •Производительность
- •19.9.Управляющие эвм
- •20.Эволюция элементарной базы и поколения эвм
- •20.1.Базисные логические элементы
- •20.2.Элементы регистровой памяти
- •20.3.Элементы памяти на магнитных сердечниках.
- •20.4.Интегральные схемы
- •20.5.Поколения эвм
- •21.Американская система ibm-360
- •22.Семейство Ряд "ес эвм"
- •22.1.Хронология создания
- •22.2.Ес эвм. Крупнейший промах или всеобщее счастье?
- •23.Автоматизация программирования
- •23.1.От двоичных кодов к ассемблерам - языкам символьного кодирования
- •Ассемблеры
- •Программы - загрузчики
- •23.2.Языки программирования высокого уровня
- •23.3.Трансляция программ
- •24.Первые компьютеры Сарова
- •25.Начало компьютеризации Нижегородского госуниверситета
- •26.Они были первыми
- •26.1.Конрад Цузе
- •26.2.А лан Тьюринг
- •26.3.Джон Маулчи и Джон Эккерт
- •26.4.Джон фон Нейман
- •26.5.А ксель Берг
- •26.6.В иктор Глушков
- •26.7.Сергей Лебедев
- •26.8.Исаак Брук
- •26.9.Николай Матюхин
- •26.10.Михаил Карцев
- •26.11.Юрий Базилевский
- •26.12. Башир Рамеев
- •26.13.Георгий Лопато
- •26.14. Всеволод Бурцев
- •27.Приложения
- •27.1.Основные черты кибернетики
- •27.1.1.Общенаучное значение кибернетики
- •27.1.2.Электронные счетные машины и нервная система
- •27.1.3.Прикладное значение кибернетики
- •27.2."Сигнал" Игоря Полетаева
- •27.3.Хронология компьютеростроения
- •Литература
- •Оглавление
13.5.Машина Тьюринга
Вне зависимости от модели, вычисление функций подразумевает символьную запись набора исходных данных и также символьную запись императива преобразования этих данных.
В случае нормального алгоритма Маркова, в качестве набора исходных данных выступает слово P в алфавите A, а императивом преобразования P в Q служат правила подстановки, специфичные для каждого алгоритма.
В случае рекурсивных функций, набором исходных данных служат символьные записи значений функции, а императивом преобразования служит набор операций (подстановок, определения по индукции и минимизации) специфический для каждой функции.
Обратим внимание, что, как для записи алгоритма Маркова, так и для записи рекурсивной функции необходим исполнитель, реализующий императивы, содержащиеся в этих записях. Кроме того, изящные теоретические конструкции, как в первом, так и во втором случае чрезвычайно сложны в их практической реализации при массовом решении конкретных прикладных задач. Следствием этого является факт использования алгоритмов Маркова и формализма рекурсивных функций только на теоретическом уровне, но не для инженерной реализации автоматических вычислителей.
Существенный шаг по направлению создания технических средств автоматизации вычислений сделал Алан Тьюринг, предложив в 1936-м году концепцию машины преобразования данных, которая известна как "машина Тьюринга".
Машина Тьюринга - очень простое вычислительное устройство. Она имеет ленту бесконечной длины, разделенную на ячейки. Лента может двигаться влево и вправо, сдвигаясь на одну ячейку за один шаг. Каждая ячейка может быть пустой или содержать символ, выбираемый из некоторого конечного алфавита. Также машина Тьюринга имеет головку, которая в каждый момент времени может читать и изменять содержимое доступной ячейки.
Рис. 49. Машина Тьюринга
В каждый момент времени машина находится в одном из возможных состояний, которое представляется целым числом q0 qMax. Одно из состояний, как правило, состояние q1, определяется как исходное состояние, также определяется состояние останова, как правило, q0.
Поведение машины определяется устройством управления, которое функционирует на основании таблицы управления. Таблица управления определяет действия, которые будет выполнять машина в текущий дискретный момент времени.
Действие, которое совершает машина в текущий дискретный момент времени, зависит только от текущего состояния машины и символа в доступной ячейке, который считывает головка машины. На основе этой информации (состояния и считанного символа), машина Тьюринга может выполнить одно из трех действий:
записать символ в ячейку (возможно тот же самый, который в ней уже находился );
оставить ленту на месте или передвинуть ее на одну ячейку вправо - влево;
перейти в следующее состояние (возможно, то же самое, в котором машина находится в данный момент).
Для решения каждой конкретной задачи создается конкретная управляющая таблица, пример которой приведен на (Рис.50).
|
q0 |
q1 |
q2 |
0 |
0,q0,С |
0,q1,П |
1,q0,С |
1 |
1,q0,С |
0,q2,П |
1,q2,П |
+ |
- |
- |
1,q0,С |
Рис. 50. Пример управляющей таблицы
В боковике таблицы записываются символы алфавита, в шапке таблицы записываются допустимые состояния машины. В каждом поле таблицы записывается команда, формат которой приведен ниже:
<символ, заменяющий текущий символ на входной ленте>,<следующее состояние машины>,<движение ленты: Лево, Право, Стоп>
Устройство управления в каждый дискретный момент времени считывает символ из доступной ячейки входной ленты, и выполняет команду, записанную в поле [<текущий символ>, <текущее состояние>] управляющей таблицы.
Приведенная на рис.50 управляющая таблица записана для решения задачи сложения двух натуральных чисел. Числа представляются в примитивной системе счисления.
Семантика состояний машины приведена ниже:
q0 - состояние останова;
q1 - считывались только нули;
q2 - считана хотя бы одна единица.
Императив движения ленты обозначается как: П – движение на одну ячейку вправо, Л – движение на одну ячейку влево, С – оставить ленту на месте.
Команды машины интерпретируются следующим образом:
["0",q1]: <0,q1,П> – пропускает "0" перед записями чисел;
["1",q1]: <"0",q2, П> - первая единица убирается, так как где - то следом должен быть +;
["0", q2]: <"1",q0,C> - второго числа нет, останов.
["1",q2]: <"1",q2,П> - пропускаются единицы до знака сложения;
["+",q2]: <"1",q0,C> - заменяетcя плюс на единицу и машина останавливается.
Две команды столбца qo реализуют динамический останов машины. Две пустые клетки управляющей таблицы – нереализуемые ситуации.
Трассировка процесса сложения двух натуральных чисел на машине Тьюринга приведена ниже.
0 |
0 |
1 |
1 |
1 |
+ |
1 |
1 |
0 |
0 |
q1 |
|
|
|
|
|
|
|
|
|
0 |
0 |
1 |
1 |
1 |
+ |
1 |
1 |
0 |
0 |
|
q1 |
|
|
|
|
|
|
|
|
0 |
0 |
1 |
1 |
1 |
+ |
1 |
1 |
0 |
0 |
|
|
q1 |
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
1 |
+ |
1 |
1 |
0 |
0 |
|
|
|
q2 |
|
|
|
|
|
|
0 |
0 |
0 |
1 |
1 |
+ |
1 |
1 |
0 |
0 |
|
|
|
|
q2 |
|
|
|
|
|
0 |
0 |
0 |
1 |
1 |
+ |
1 |
1 |
0 |
0 |
|
|
|
|
|
q2 |
|
|
|
|
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
|
|
|
|
|
|
q0 |
|
|
|
В настоящее время управляющую таблицу машины Тьюринга записывают на языке графов (Рис.51) в виде графа переходов машины Тьюринга как детерминированного конечного автомата
Рис. 51. Граф переходов для машины Тьюринга
В этом случае дуги определяют направления смены состояний, каждой дуге поставлена в соответствие пара: (текущий символ, команда). Команда, поставленная в соответствие дуге, имеет формат: <записываемый на ленту символ>, <следующее состояние машины>.
Машина Тьюринга может иметь две ленты: входную и выходную. Однако это не расширяет класс решаемых на машине задач.
[Айзерман, Л.А. Гусев и др.Гос. изд-во ф.м. л-ры, М.: 1960]
