Казанский государственный университет
Факультет вычислительной математики и кибернетики
Кафедра теоретической кибернетики
В.С. Кугураков, Р.К. Самитов, Р.Б. Ахтямов, В.Р. Байрашева
Практикум работы на ЭВМ.
Задание 3. Представление данных и методы разработки алгоритмов.
Казань 2007.
УДК (075.8) 004.3
Кугураков Владимир Сергеевич
Самитов Ринат Касимович
Ахтямов Рауф Баграмович
Байрашева Венера Рустамовна
Практикум работы на ЭВМ. Задание 3. Представление данных и методы разработки алгоритмов. Казань: КГУ. 2007 - с.
Пособие предназначено для студентов, обучающихся по специальности «Прикладная математика и информатика» и направлению «Информационные технологии», а также для преподавателей, ведущих практические занятия по информатике, алгоритмическим языкам и программированию.
Компьютерная верстка и дизайн обложки: Ахтямова Светлана Станиславовна.
1 Т и п о в ы е з а д а ч и
1.1 Моделирование автомата
Автоматом называется некоторое устройство, которое математически описывается тремя множествами X, Y, S и диаграммой D работы:
X = {x1, x2, … , xn} – множество входных символов;
Y = {y1, y2, … , ym} – множество выходных символов;
S = {s1, s2, … , sk} множество состояний.
Диаграмма строится так. Рисуется К кружков и внутри каждого из них помещается по символу из множества S. Из каждого кружка выводится n стрелок, которые доводятся до кружков (стрелка может выйти из кружка и зайти в него же, две стрелки могут соединять одну и ту же пару кружков). Около каждой стрелки пишется пара символов а/b, где а X и bY, с единственным условием: разные стрелки, выходящие из одного (любого) кружка, помечаются парами с разными символами из X. Таким образом, = {X, Y, S, D}.
Работа автомата складывается из тактов (номер такта обозначается буквой t , t = 1, 2, 3, …). На каждом такте на вход автомата подается один из входных символов: на первом такте символ а1 X, на втором – а2 X и т.д. Последовательность входных символов a1, a2, …, a r называется входным словом и обозначается через A. В ответ на входное слово автомат вырабатывает (на своем выходе) последовательность b1, b2, … , br символов из Y, т.е. образуется выходное слово, обозначаемое через B.
Выходное слово образуется так. Перед первым тактом автомат устанавливается в состоянии c0 S. В общем случае – перед тактом t автомат оказался в состоянии ct-1 S. Тогда в диаграмме находится кружок с символом ct-1 и выходящая из него стрелка с парой, содержащей символ at . Второй символ из пары – это и есть выходной символ bt , а к следующему (t + 1) – му такту автомат оказывается в том состоянии (ct S), к которому приводит эта стрелка.
Задание. Построить программу, моделирующую работу конкретного автомата и решающую для этого автомата задачу М.
Исходные данные
I. Автомат :
а) X = {0, 1}, Y = {*, +, }, S = {s1, s2, s3, s4, s5}
б) X = {+, }, Y = {0, 1, 2, 3, 4}, S = {s1, s2, s3, s4, s5, s6}
в) X = {, , }, Y = {1, 4, 7}, S = {s1, s2, s3}
г) X = {, }, Y = {, , , , }, S = {s1, s2, s3, s4}
д) X = {0, 1, 2, 3} , Y = {, }, S = {s1, s2, s3}
е) X = {*, +, }, Y = {, }, S = {s1, s2, s3, s4}
ж) X = {0, 1}, Y = {2, 3}, S = {s1, s2, s3, s4, s5, s6, s7}
з) X = {, }, Y = {, , }, S = {s1, s2, s3, s4, s5, s6}
II. Задача М. При заданном начальном состоянии c0 S и заданном входном слове A длины r определить:
а) количество символа y1 в выходном слове B;
б) количество «подслов» вида y1 y2 y2 в выходном слове B;
в) сколько раз автомат, работая, окажется в состоянии S1 и выдаст на выходе при этом символ y 1;
г) выдаст ли автомат на выходе символ y 1 в такты t = 10, 20, 30 (т.е. будет ли b10 = y1 b20 = y1 b30 = y1);
д) максимальную длину подслов B , состоящих только из символа y1 (т.е. максимальную длину повторения символа y1);
е) тот такт, на котором автомат впервые окажется в состоянии S2 , и выдаст при этом на выходе символ y2 ;
ж) окажется ли автомат в своей работе хотя бы по одному разу в каждом из своих состояний и в выходном слове будут ли представлены все символы из y;
з) сколько раз каждый из символов множества y окажется в выходном слове B .
1.2. Моделирование машины Тьюринга.
Всякая машина Тьюринга M состоит из:
- ячейки с бесконечным в обе стороны числом разрядов …, x-2 , x-1 , x0 , x1 , x2 , … В каждом разряде может быть записан один из n символов множества A = a0, a1, … , an-1, причем символ a0 называется пустым (n 2);
- устройство, которое в каждый момент времени обозревает один из разрядов ячейки, а само может находиться в состояниях {q0, q1, … , qm-1} = Q; состояние q0 называется «стоп-состояние»;
- программы работы – это таблица из n строк и m1 столбцов. Строки соответствуют символам из множества A , столбцы – символам из Q; в каждой клетке помещен один из символов A, один из символов Q и одна из букв Л, П, Н.
Машина предназначена для переработки информации в ячейке. Переработка совершается тактами, номер такта обозначается буквой t (t = 1,2,3, …). Перед первым тактом устройство устанавливается в состояние q1 на обозревание разряда x0, а начальная информация записывается в ячейку так, что в разрядах x0, x1, … , xk – не пустые символы, в остальных разрядах – пустой символ a0.
В общем случае – если перед тактом t устройство оказалось в состоянии q Q и обозревает разряд xl , то работа одного такта сводится к следующему:
- если q = q0, то машина останавливается и информация в ячейке считается результатом работы машины;
- если q q0, то берется символ a из разряда xl и находится клетка в программе, соответствующая символу a и состоянию q, - в этой клетке три символа (a , q , R);
- в разряд xl помещается символ a (вместо a); устройство переходит в состояние q и начинает обозревать разряд xl+1 , если R = П, или xl1, если R = Л, или xl , если R = Н.
По завершении такта t машина автоматически переходит к выполнению действий такта t+1.
Задание. Построить программу, моделирующую работу конкретной машины Тьюринга М и решающую для этой машины задачу Г. В каждой задаче рассматривать работу машины в течение не более заданного числа Т тактов.