Машина поста примеры программ

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

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

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

Ал­горитм, по которому работает машина Поста, будем на­зывать программой. Договоримся о терминологии: под словом «програм­ма» мы всегда будем понимать алгоритм, записанный по строгим правилам языка команд исполнителя — на языке программирования для данного исполнителя.

Автоматическая обработка данных. Машина Поста

Опишем архитектуру машины Поста. Име­ется бесконечная информационная лента, разделенная на позиции — клетки. В каждой клетке может либо сто­ять метка (некоторый знак), либо отсутствовать (пусто). v v v v v Вдоль ленты движется каретка — считывающее устройство. На рисун­ке она обозначена стрелкой.

Каретка может передвигаться шагами: один шаг — смещение на одну клетку вправо или влево. Клетку, под которой установлена каретка, будем называть текущей. Каретка является еще и процессором машины. С ее помощью машина может: • распознать, пустая клетка или помеченная знаком; • стереть знак в текущей клетке; • записать знак в пустую текущую клетку.

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

Назначение машины Поста — производить преобразования на инфор­мационной ленте. Исходное состояние ленты можно рассматривать как исходные данные задачи, конечное состояние ленты — результат реше­ния задачи. Кроме того, в исходные данные входит информация о началь­ном положении каретки.

Система команд машины Поста Команда Действие n ← m Сдвиг каретки на шаг влево и переход к выполнению команды с номером m n → m Сдвиг каретки на шаг вправо и переход к выполнению команды с номером m n v m Запись метки в текущую пустую клетку и переход к выполнению команды с номером m n ↕ m Стирание метки в текущей клетке и переход к выполнению команды с номером m n ! Остановка выполнения программы n ? m,k Переход в зависимости от содержимого текущей клетки: если текущая клетка пустая, то следующей будет выполняться команда с номером m , если непустая – команда с номером k

Информатика. Машина Поста.

П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки. v v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины

П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки. v v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины V V V V

Читайте также:
В какой программе инфографика

П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки. v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины

П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки. v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины

П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки. v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины

v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки.

v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки.

v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки.

v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки.

v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки.

Читайте также:
Программа wodo как работает

v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины v П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки.

v v v v v Команда Действие 1 ↕ 2 Стирание метки; переход к следующей команде 2 → 3 Сдвиг вправо на один шаг 3 ? 2 , 4 Если клетка пустая, то переход к команде 2, иначе – к команде 4 4 ← 5 Сдвиг влево на шаг (команда выполнится , когда каретка выйдет на первый знак группы) 5 v 6 Запись метки в пустую клетку 6 ! Остановка машины П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположен­ных справа от каретки.

В процессе выполнения приведенной программы многократно повторя­ется выполнение команд с номерами 2 и 3. Такая ситуация называется циклом. Напомним, что цикл относится к числу основных алгоритмичес­ких структур вместе со следованием и ветвлением.

Домашнее задание: Учебник стр. 74 №1, 2

Источник: nsportal.ru

Машина Поста

Моя будущая профессия. Программист

Машина Поста (МП) – абстрактная
вычислительная машина, предложенная
Эмилем Леоном Постом, которая
отличается от машины Тьюринга большей
простотой.
Обе машины эквиваленты
Эмиль Леон Пост (11.02.1897 (Польша) -21.04.1954) –
американский математик и логик

3.

Машина Поста состоит из каретки
(считывающей и записывающей головки) и
ленты, разбитой на ячейки (лента условно
бесконечна)

4.

Каждая ячейка ленты может быть пустой (0)
или содержать метку (1)

5.

За один такт машина Поста может:
— сдвинуть каретку на одну позицию влево
или вправо
— поставить или стереть метку в ячейке,
обозреваемую машиной
— проверить наличие метки в обозреваемой
ячейке и перейти к команде с заданным
номером

6.

Работа машины Поста определяется
программой, состоящей из конечного числа
строк

7.

Всего шесть команд:
N. , J
— сдвиг вправо
N. , J
— сдвиг влево
N. 1, J
— запись метки
N. 0, J
— удаление метки
N. ?, J1, J0
— если в ячейке метка, то
перейти к команде J1,
если ячейка пуста –
к ячейке J0
N. Stop
— остановка
При этом: N – порядковый номер команды
J – номер следующей команды

8.

Для работы машины Поста нужно задать
программу и ее начальное состояние
(состояние ленты и позицию каретки)

9.

В ходе работы машины Поста может произойти
следующее:
1) Будет выполнена команда Stop и получен результат
работы алгоритма
2) Встречается невыполнимая команда (стирание
несуществующей метки или запись в ячейку с меткой)
3) Машина будет работать бесконечно

10.

Замечание
Определяя машину Поста и машину Тьюринга
авторы пытались задать исполнителя и
алгоритмический процесс как можно проще –
так, чтобы можно было показать несуществование
алгоритма для решения какой-нибудь задачи
Исходя из этого определялись элементы и
принципы работы машин Поста и Тьюринга

11.

Пример
Составить машину Поста для вычисления
функции S(x, y) = x + y
Решение

12.

Пример
Составить машину Поста для вычисления
функции S(x, y) = x + y
Применить программу:
1 = 01110110; 2 = 01100; 3 = 00110;

Источник: ppt-online.org

§ 10. Автоматическая обработка информации

В качестве примера автомата, выполняющего обработку информации, рассмотрим машину Э. Поста (1897-1954). Алгоритм, по которому работает машина Поста, будем называть программой.

Договоримся о терминологии: под словом «программа» мы всегда будем понимать алгоритм, записанный по строгим правилам языка команд исполнителя — на языке программирования для данного исполнителя.

Опишем архитектуру машины Поста (рис. 2.3). Имеется бесконечная информационная лента, разделенная на позиции — клетки. В каждой клетке может либо стоять метка (некоторый знак), либо отсутствовать (пусто).

Читайте также:
Продлили ли программу аварийного жилья

Рис. 2.3. Модель машины Поста

Вдоль ленты движется каретка — считывающее устройство. На рисунке 2.3 она обозначена стрелкой. Каретка может передвигаться шагами: один шаг — смещение на одну клетку вправо или влево. Клетку, под которой установлена каретка, будем называть текущей.

  • распознать, пустая клетка или помеченная знаком;
  • стереть знак в текущей клетке;
  • записать знак в пустую текущую клетку.

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

Назначение машины Поста — производить преобразования на информационной ленте. Исходное состояние ленты можно рассматривать как исходные данные задачи, конечное состояние ленты — как результат решения задачи. Кроме того, в исходные данные входит информация о начальном положении каретки.

Теперь рассмотрим систему команд машины Поста (табл. 2.1). Запись всякой команды начинается с ее порядкового номера в программе — n. Затем следует код операции и после него — номер следующей выполняемой команды программы — m.

Таблица 2.1. Система команд машины Поста

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

2.2.

Таблица 2.2. Программа для машины Поста

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

А теперь научим машину Поста играть в интеллектуальную игру, которая называется «Игра Баше»: Опишем правила игры.

Играют двое. Перед ними 21 (или 16, или 11 и т. д.) фишка. Игроки берут фишки по очереди. За один ход можно взять от 1 до 4 фишек. Проигрывает тот, кто забирает последнюю фишку.

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

Роль фишек на информационной ленте машины Поста будут выполнять метки (знаки). Машина играет с человеком. Человеку предоставляется возможность стирать метки (брать фишки) первым. Машина будет вступать в игру второй. Исходная обстановка: на ленте массив из 21 клетки содержит метки.

Каретка установлена на крайней слева клетке этого массива. Стирать метки можно только подряд. Выигрышным результатом должна быть одна оставшаяся метка перед очередным ходом человека.

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

Программа управления машиной Поста в игре Баше против человека приведена в табл. 2.3.

Таблица 2.3. Программа игры Баше

Действуя по данной программе и начиная стирать метки второй после человека, машина всегда будет выигрывать, если правильно задано начальное число меток, которое должно быть равно 5n + 1, где n — любое натуральное число. В противном случае машина может проиграть.

  1. информация представлена в формализованном виде — в конечном алфавите некоторой знаковой системы;
  2. реализован исполнитель, обладающий конечной системой команд, достаточной для построения алгоритмов решения определенного класса задач обработки информации;
  3. реализовано программное управление работой исполнителя. Машина Поста — пример автоматического исполнителя обработки информации с ограниченными возможностями. Компьютер удовлетворяет всем вышеперечисленным свойствам. Он является универсальным автоматическим исполнителем обработки информации.

Система основных понятий

Вопросы и задания

    На информационной ленте машины Поста расположен массив из N меток. Каретка находится под крайней левой меткой. Какое состояние установится на ленте после выполнения следующей программы?

Источник: tepka.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru