Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
§ 8.2. Случай, когда задание перечисляет требуемые соответствия между входными и выходными последовательностямиПусть требуется синтезировать последовательностную машину, условия работы которой определены следующим образом. Задано конечное число лент (имеющих, быть может, разные, но конечные длины) с незаполненной строкой для Требуется синтезировать П-машину, которая, отправляясь от заданного начального состояния При таком задании пока остается открытым вопрос о том, каковы остальные ленты (при других входных последовательностях) этой же П-машины. Условимся считать, что если по этому поводу нет никаких указаний, то это значит, что другие входные последовательности не могут появляться или, что то же самое, иные ленты могут быть произвольными. В иных случаях задание может быть как-либо доопределено, например условием, что любая иная лента должна содержать в строке Таблица 8.1
Таблица 8.2
Таблица 8.3
Таблица 8.4
В приведенном примере, когда заданы четыре ленты, представленные в табл. 8.1 -8.4, такое доопределение означало бы, что синтезируемая П-машина должна иметь, например, ленты, указанные в табл. 8.5, 8.6 и 8.7. Такты, начиная с которых появляется символ на этих таблицах отделены жирной линией. Таблица 8.5
Таблица 8.6
Таблица 8.7
В связи с тем, что по условию в заданных лентах в первом столбце в строке Рассмотрим, например, следующие две ленты (табл. 8.8 и 8.9). Ясно, что не существует П-машины, имеющей обе эти ленты, так как она должна была бы, исходя из одного и того же начального состояния Задания такого рода назовем противоречивыми. Таблица 8.8
Таблица 8.9
Прежде, чем приступить к решению задачи синтеза, надо проверить, не. является ли задание противоречивым. С этой целью надо просмотреть все отрезки, которые получаются из заданных лент, если обрезать их на любом такте так, как это показано на примере ниже. Задание непротиворечиво тогда и только тогда, когда среди этих отрезков не найдется двух таких, у которых входные последовательности полностью совпадают, а выходные последовательности различны. Так, в приведенном выше примере двух противоречащих лент (табл. 8.8 и 8.9) выделение отрезков таково:
Рисунок (см. оригинал) Здесь противоречие выявляется для отрезков лент, начиная с 3-ого такта. Допустим теперь, что задание непротиворечиво. Тогда требуется построить соответствующую П-машину, т. е. указать основную таблицу ее конечного автомата и таблицу преобразователя. Если бы в заданных лентах были заполнены и строки к, то непосредственно по этим лентам, выделяя триады, можно было бы выписать заполнение по крайней мере части клеток основной таблицы автомата и таблицы преобразователя, обеспечивающих реализацию заданных лент. Остальные клетки можно было бы заполнить произвольно (в случае, если никаких дополнительных требований на машину не налагается) или иным образом, если соответствующие дополнительные требования предъявлены. Таким образом, задача о синтезе П-машины сводится к непротиворечивому заполнению строк к. Если поставленное задание непротиворечиво и может быть выполнено какой-либо П-машиной А, то оно может быть выполнено и любой П-машиной, замещающей машину А. Если требуется построить хоть какую-либо машину, выполняющую задание, т. е. если на синтез П-машины никаких дополнительных требований не накладывается, то задача синтеза решается тривиально, например одним из следующих двух способов: а) заполнением строк б) Построением автомата с выходным преобразователем, который представляет определенные события, «записанные» в заданных лентах. Для этого надо по заданным лентам выписать множество Последовательностные машины, построенные любым из этих двух приемов, хотя и реализуют заданные ленты, но обычно имеют чрезмерно большое число состояний. Часто ставится задача значительно более трудная: синтезировать последовательностную машину, реализующую поставленное задание и имеющую наименьшее число k состояний и по сравнению с любой иной машиной, которая также выполняет это задание. Решение такой задачи обычно разбивается на два этапа: 1) синтез хоть какой-либо исходной машины, выполняющей задание, и 2) минимизация ее, т. е. нахождение, исходя из этой исходной, другой П-машины, которая также выполняет это задание, но имеет минимально возможное число состояний. Задача, решаемая на втором этапе, носит название задачи минимизации. Ей посвящена гл. IX. Применение методов, которыми решается эта задача в гл. IX, сильно осложняется, если исходная П-машина, синтезируемая на первом этапе, имеет много состояний. Именно поэтому указанные выше два приема, тривиально решающие задачу первого этапа, неудобны, так как часто можно синтезировать исходную П-машину, имеющую хотя и не минимальное, но заведомо меньшее число состояний. Мы опишем один прием такого рода. Начнем со следующего примера. Пусть требуется синтезировать П-машину, которая, исходя из одного и того же начального состояния Подготовим для заполнения форму основной таблицы автомата и таблицы преобразователя. Поскольку число состояний нам пока неизвестно, число строк в этих таблицах не определено и мы введем пока лишь одну строку — для хо (табл. 8.12 для автомата и табл. 8.13 для преобразователя). Таблица 8.10
Таблица 8.11
Вписывая далее символы Таблица 8.12. Автомат
Таблица 8.13. Преобразователь
Начнем с рассмотрения первой ленты (табл. 8.10). В строке Этот же символ Замечаем, что ничто не мешает нам этот же символ Таблица 8.14. Лента
Таблица 8.15. Основная таблица автомата
Таблица 8.16. Таблица преобразователя
До сих пор вписывание символа Теперь, обращаясь к следующей (пятой) клетке ленты, снова попытаемся вписать символ Перемещаясь так вдоль ленты (табл. 8.14), заполняем ее строку Окончив заполнение первой ленты, обращаемся ко второй и аналогичным образом заполняем ее строку Заполненные таким образом ленты рассматриваемого примера и соответствующие таблицы автомата и преобразователя имеют вид табл. 8.17 — 8.20. Таблица 8.17. Первая лента
Таблица 8.18. Вторая лента
Таблица 8.19. Основная таблица автомата
Таблица 8.20. Таблица преобразователя
Заметим, что мы получили основную таблицу автомата и таблицу преобразователя, в которых заполнены не все клетки. Пустые клетки могут быть заполнены произвольно, так как по условию произвольны ленты, полученные при входных последовательностях, отличающихся от заданных. Приведенный пример был специально подобран так, что при выполнении описанного процесса заполнения строк Рассмотрим, однако, две другие ленты (табл. 8.21 и 8.22). Мы просим читателя в этом случае попытаться заполнить ленты и составить таблицы автомата и преобразователя с помощью описанной выше процедуры. Таблица 8.21. Первая лента
Таблица 8.22. Вторая лента
Приступая к заполнению первой ленты, мы можем вписать символы Попытка вписать символ Теперь обращаемся ко второй ленте. Сочетание Заполненные для этого примера таблицы имеют вид табл. 8.23 — 8.26. Возвращаясь к этому примеру, заметим, что в третью клетку первой ленты мы могли бы попытаться вписать вместо Таблица 8.23. Первая лента
Таблица 8.24. Вторая лента
Таблица 8.25. Основная таблица автомата
Таблица 8.26. Таблица преобразователя
Продемонстрированный способ заполнения строк Опишем теперь регулярный прием, который позволяет единообразно и относительно экономично (в смысле получающегося числа состояний) строить П-машины, реализующие любую званную непротиворечивую совокупность конечного Заполняя в соответствии с описанным ниже алгоритмом пустые клетки лент, мы будем, подобно тому как это делали раньше, одновременно постепенно заполнять заранее заготовленные таблицы автомата и преобразователя, увеличивая по мере введения новых символов к число строк в этих таблицах. Пусть часть пустых клеток заданных лент и таблиц автомата и преобразователя уже заполнена. Будем говорить, что произведенное до сих пор заполнение лент и таблиц является правильным, если выполнены следующие три условия: 1) Заполнение лент и таблиц согласовано между собой, т. е. заполненная часть лент не содержит противоречивых триад автомата и преобразователя, а в таблицах автомата и преобразователя заполнены те и только те клетки, которые соответствуют триадам, встречающимся в уже заполненной части лент. 2) Последним тактам заполненной части каждой из лент соответствуют такие пары символов ( 3) Если среди этих, упомянутых в условии 2) пар символов ( Так, например, заполнение, показанное В табл. Таблица 8.27. Первая лента
Таблица 8.28. Вторая лента
Таблица 8.29. Основная таблица автомата
Таблица 8.30. Таблица преобразователя
Заполнения в следующих трех примерах не являются правильными. Пример 1 (табл. 8.31-8.34) Таблица 8.31. Первая лента
Таблица 8.32. Вторая лента
Таблица 8.33. Основная таблица автомата
Таблица 8.34. Таблица преобразователя
Пример 2 (табл. 8.35-8.38) Таблица 8.35. Первая лента
Таблица 8.36. Вторая лента
Таблица 8.37. Основная таблица автомата
Таблица 8.38. Таблица преобразователя
Пример 3 (табл. 8.39 — 8.41) Таблица 8.39. Первая лента
Таблица 8.40. Вторая лента
Таблица 8.41. Третья лента
Неправильность заполнения в примерах 1—3 обусловлена соответственно нарушением условий 1), 2) и 3) приведенного определения термина «правильное заполнение». Заметим теперь, что исходные заданные нам ленты, у которых по условию задания в строку Предположим, что имеется некоторое (не обязательно начальное) правильное заполнение. Пусть в этом заполнении участвуют символы Дальнейшее вписывание Опишем теперь предлагаемый алгоритм вписывания символов 1. Обращаемся к первой незаполненной еще клетке строки 2. Обращаясь к таблице автомата, дополненной теперь новой клеткой в соответствии с п. I, выясняем, нельзя ли продвинуть далее заполнение первой ленты (без того чтобы заполнять новые клетки таблицы автомата). Если это возможно, продолжаем заполнять ленту, следя за тем, не вступаем 3. Допустим, что в результате применения п. 1 и 2 алгоритма мы остановились на символе Возвращаясь к правильному заполнению, от которого мы начали применение алгоритма, обратим внимание на пару символов Тогда возвращаемся к п. 1 алгоритма, отказываемся от символа 4. Проверяем, является ли полученное заполнение лент правильным с точки зрения третьего условия правильности заполнения. В случае положительного результата проверки вновь получено правильное заполнение и применение алгоритма может быть повторено. В случае же В качестве примера использования алгоритма рекомендуем читателю с его помощью синтезировать автомат, реализующий указанные ниже три ленты (табл. Таблица 8.42. Первая лента
Таблица 8.43. Вторая лента
Таблица 8.44. Третья лента
В результате шестикратного применения алгоритма в этом примере получается заполнение лент, показанное в табл. 8.45-8.47, и синтезируется основная таблица автомата (табл. 8.48) и преобразователь (табл. 8.49). Таблица 8.45. Первая лента
Таблица 8.46. Вторая лента
Таблица 8.47. Третья лента
Таблица 8.48. Основная таблица автомата
Таблица 8.49. Таблица преобразователя
Заметим, что этот же алгоритм решает задачу и в том случае, когда условия синтеза более легкие: задано конечное число лент конечной длины и требуется построить Я-машину, которая реализует эти ленты, но уже не обязательно исходя из одного и того же начального состояния. Более того, в этом случае не возникает необходимость проверять, противоречиво ли задание, и начальное правильное заполнение выписывается сразу соответствующим выбором подходящих начальных состояний для каждой ленты. Основная идея описанного алгоритма состоит в том, чтобы на каждом этапе заполнения лент предельно использовать уже введенные ранее состояния и лишь в том случае, когда это невозможно, вводить новые состояния. Разумеется, это, вообще говоря, не приводит к минимальной П-машине, так как может оказаться, что на некотором этапе выгоднее ввести новое состояние (хотя и можно воспользоваться каким-нибудь старым состоянием!), чтобы уменьшить число необходимых новых состояний на последующих этапах. Все содержание настоящего параграфа жестко основывается на предположении, что число пар входных и выходных последовательностей конечно и что в задании все они перечислены. В следующем параграфе мы перейдем к рассмотрению общей задачи синтеза, когда не предполагается конечность числа заданных соответствий между входными и выходными последовательностями.
|
1 |
Оглавление
|