Тема: Автоматическая обработка информации. Машина Поста. 10 класс
учебно-методический материал по информатике и икт на тему
Презентация и подборка задач с решениями.
Скачать:
Вложение | Размер |
---|---|
urok_12_mashina_posta.pptx | 212.52 КБ |
urok_13_zadachi_mashina_posta.docx | 37.18 КБ |
Предварительный просмотр:
Подписи к слайдам:
В 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 ! Остановка машины П ример программы решения задачи на машине Поста Исходное состояние показано на рисунке. Машина должна стереть знак в текущей клетке и присоединить его слева к группе знаков, расположенных справа от каретки.
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
Источники http://images.yandex.ru/yandsearch?rpt=simage&ed=1&text=% D0%90%D0%BB%D0%B0%D0%BD%20%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3&p=11&img_url=www.mathcomp.leeds.ac.uk%2Fturing2012%2FImages%2FTuring7.jpg http://ru.wikipedia.org/wiki/ Файл: Emil_Leon_Post.jpg Семакин И.Г., Хеннер Е.К., Информатика и ИКТ 10-11. Издательство БИНОМ Лаборатория знаний, 2009
Предварительный просмотр:
Задачи для самостоятельной работы (Машина Поста):
Задача1: увеличить число 3 на единицу (изменить значение в памяти с 3 на 4). Целое положительное число на ленте машины Поста представимо идущими подряд метками, которых на одну больше, чем кодируемое число. Это связано с тем, что одна метка обозначает ноль, а уже две – единицу, и т.д. Каретка стоит слева от меток и обозревает пустую ячейку.
Задача2: Пусть задано исходное состояние каретки и требуется на пустой ленте написать две метки: одну в секцию под кареткой, вторую справа от нее.
Задача3:. На ленте имеется некоторое множество меток (общее количество меток не менее 1). Между метками множества могут быть пропуски, длина которых составляет одну ячейку. Заполнить все пропуски метками. Каретка находится слева под ячейкой с меткой.
Задача4:. На ленте проставлена метка в одной-единственной ячейке. Каретка стоит на некотором расстоянии левее этой ячейки. Необходимо подвести каретку к ячейке, стереть метку и остановить каретку слева от этой ячейки.
Задача5:На ленте задан массив меток. Увеличить длину массива на 2 метки. Каретка находится либо слева от массива, либо над одной из ячеек самого массива.
Задача6: На ленте на некотором расстоянии справа от каретки, стоящей под пустой клеткой, находится непрерывный массив меток. Требуется присоединить справа к массиву одну метку.
Задача7: На ленте имеется массив из n отмеченных ячеек. Каретка обозревает крайнюю левую метку. Справа от данного массива на расстоянии в m ячеек находится еще одна метка. Составьте для машины Поста программу, придвигающую данный массив к данной ячейке.
Задача8: Даны два массива меток, которые находятся на некотором расстоянии друг от друга. Требуется соединить их в один массив. Каретка находится над крайней левой меткой первого массива.
Задача9: На ленте заданы два массива — m и n, m > n. Вычислить разность этих массивов. Каретка располагается над левой ячейкой правого массива.
Решение №1 На доске разбирается пример.
1 -> 2
2 ? 1;3
3 <- 4
4 V 5
5 !
- Исходное состояние:
v | v | v | v |
↑
- Результат:
v | v | v | v | v |
↑
Решение №2:
- 1 v 2
- 2 → 3
- 3 v 4
- 4 !
Решение №3
- → 2
- ? 3, 1
- → 4
- ? 5, 6
- !
- ← 7
- v 1
Решение №4
Решение №5 1. ? 2; 3 (команды 1 и 2 — передвигаем каретку к массиву)
2. –> 1
3. –> 4 (команды 3 и 4 — передвигаем каретку к концу массива)
4. ? 5; 3
5. V 6 (команды 5–7 — ставим 2 метки в конце массива)
6. –> 7
7. V 8
8. !
Решение №6 1→2 2?1,3 3→4 4?5, 3 5v6 6!
Решение №7 1. X 2 (удаляем левую метку массива)
2. –> 3
3. ? 4; 2 (передвигаем каретку к концу массива)
4. V 5 (ставим справа от массива метку, раннее нами была удалена самая левая метка)
5. –> 6
6. ? 7; 10 (проверяем, передвинули ли мы уже наш массив к заданной метке)
7. <– 8
8. ? 9; 7 (идем к левой метке массива)
9. –> 1 (и начинаем все сначала)
10. !
Решение №8
Решение №9 Запишем решение алгоритма в словесной форме.
1. Ищем правый край массива m, двигаясь слева направо.
2. Стираем правую метку массива m.
3. Ищем правый край массива n, двигаясь слева направо.
4. Стираем левую метку массива n.
5. Проверяем, мы стерли последнюю метку в массиве n (в этом случае следующая справа ячейка должна быть пустой)?
6. Если стерли последнюю метку, то конец алгоритма.
7. Иначе ищем правый конец массива m, двигаясь справа налево.
8. Переход на шаг 2.
1. –> 2 (команды 1–3: ищем левую метку массива m)
2. ? 3; 1
3. <– 4
4. X 5 (стираем левую метку массива m)
5. ? 6; 7
6. –> 5
7. X 8 (стираем левую метку массива n)
8. –> 9
9. ? 12; 10 (стерли последнюю метку в массиве n?)
10. <– 11 (ищем левый край массива m)
11. ? 10; 4
12. !
Определение результата выполнения программ
В задачах при описании начального состояния ленты будем указывать то, что записано начиная с самой левой непустой ячейки и заканчивая самой правой непустой ячейкой. При этом будем использовать следующие обозначения: n подряд идущих меток будем обозначать 1n, а m пустых ячеек — 0m. При обозначении одной заполненной или пустой ячейки будем писать просто 1 или 0, соответственно.
1. Выяснить, применимы ли программы к заданным состояниям машины Поста, указать результат работы машины Поста для каждого состояния.
Ответы:
a) 1) 1110011000
2) зацикливание
3) 1001011000
b) 1) зацикливание
2) 010011
3) 01010110
c) 1) зацикливание (…111)
2) зацикливание (…1111001)
3) зацикливание (1010111…)
2. Определить состояние, в котором окажется машина Поста в результате выполнения программы при заданном начальном состоянии ленты.
Пояснение: выделенная цифра, например 1, означает, что эту ячейку каретка обозревает в начальный момент времени.
Решение. Выделенная цифра показывает, на какой ячейке остановится машина.
a) 1) 110000001
2) 11000001
b) 1) 1100101
2) 10001
3) (111111?) 1010011
По теме: методические разработки, презентации и конспекты
Обработка информации и алгоритмы. Автоматическая обработка информации
Презентация к уроку информатики для 10 класса...
Презентация к уроку Автоматическая обработка информации. Машина Поста.
Презентация состоит из теоритической части и практических заданий...
Презентация к уроку на тему:автоматическая обработка информации
Презентация содержит демонстрационный материал по теме "Автоматическая обработка информации" в 10 классе по учебнику СемакинаИ.Г., Хеннера Е.К. "Информатика 10-11" базовый уровень. В презентации рассм...
Презентация "Автоматическая обработка информации " 10 класс
Решение задач с использованием машины Поста...
Автоматическая обработка информации, презентация к уроку в 10 классе
Автоматическая обработка информации, презентация к уроку в 10 классе...
Презентация по теме: "Автоматическая обработка информации"
Для урока информатики в 10 классе...
Конспект урока информатики в 10 классе на тему: «Автоматическая обработка информации»
Цель урока: рассмотреть автоматическую обработку информации на основе машины Поста. Задачи:образовательные: формирование навыков работы с программой для машины Поста при решении простейших ...