Вы находитесь на странице: 1из 3

Структурные автоматы

Краткое напоминание

До сих пор мы говорили о конечных автоматах, никак не описывая их


устройство. Таково наиболее общее их описание, в этом его ценность. Однако,
реальные автоматы состоят из определённых элементов. Более подробный уровень
описания – представить конечный автомат как совокупность конечных автоматов
(как правило, более элементарных), соединённых так, что выходы одних
соединяются со входами следующих. Будем называть такое описание «структурным
автоматом». Замечание: в некоторых источниках вы можете встретить определение
«структурного автомата», как двоичного автомата, состоящего из логических
элементов и элементов памяти, но мы будем обсуждать здесь структурные автоматы
в определении выше,
Пример:

Здесь автомат состоит из трёх внутренних автоматов, выход первого соединён со


входом второго, выход второго со входом третьего, сигналы с входа автомата как
целого подаются на вход первого автомата, а выход третьего – на выход автомата
как целого.
Сразу же видно, что выходной алфавит каждого внутреннего автомата должен
совпадать со входным алфавитом следующего. Обычно принимается, что входные и
выходные алфавиты всех автоматов совпадают.
Отметим также, что в обычном определении «конечного автомата» у автомата
один вход и один выход, так что обычные для электронных и логических схем
элементы с несколькими входами или выходами непосредственно описанию
структурного автомата не соответствуют, но могут быть к нему преобразованы.
Например, логический элемент «или-не» может быть представлен как автомат,
принимающий на вход символ из алфавита {00, 01, 10, 11} и выдающий на выход
символ из алфавита {0, 1} по известной таблице. Известно, что для того, чтобы
сделать из элемента «или-не» элемент «не», нужно просто объединить его входы.
Такое объединение может тоже быть описано на языке автоматов – принимает на
вход символ из алфавита {0, 1} и выдающий из алфавита {00, 11}.
Одним из важных требований к структурному автомату является отсутствие
циклов, т.е. замкнутых цепочек из автоматов. Требование понятно, например,
рассмотрим простейший цикл из одного автомата – логического элемента «не»:

Если на входе такого автомата окажется 0, то на выходе должно быть 1, но


тогда на входе окажется 1 и на выходе должно быть 0, так что же должно быть на
выходе? Возникает неоднозначность.
Для структурного автомата это недопустимо. Однако, если в цикле есть
элемент, обеспечивающий задержку, такое соединение может использоваться.
Реальные схемы работают с задержкой, выход меняется не сразу, а через некоторое
время после изменения входа. Тогда, если в автомате выше на входе окажется 0,
то через время на выходе окажется 1, она окажется на входе, и через время
на выходе окажется 0… Получится генератор импульсов (если 1 – это наличие
напряжения, а 0 – отсутствие) с периодом , так же устроен, например, зуммер –
простейший электрический звонок.
С точки зрения логики, кстати, такое циклическое соединение соответствует
парадоксу («Если брадобрей бреет всех, кто не бреет себя сам, бреет ли брадобрей
себя?», или ещё короче: «Я сейчас лгу» - если утверждение истинно, то я лгу и оно
ложно, а если ложно…),
Подвидом структурных автоматов можно назвать взаимодействующие
автоматы.
Например, в теории игр рассматривается взаимодействие стратегий. Допустим
есть два участника некого взаимодействия, в котором каждый из них может проявить
либо эгоизм, либо альтруизм. Взаимодействие устроено так, что если оба проявят
альтруизм, то оба получат очков больше, чем если оба проявят эгоизм, но если один
проявит альтруизм, а другой эгоизм, то эгоист получит больше очков, чем в любом из
предыдущих случаев, а альтруист – меньше. Например, таблица получаемых очков
может быть такой:

Участники 1↓ 2→ 0 (эгоизм) 1 (альтруизм)


0 (эгоизм) 1, 1 5, 0
1 (альтруизм) 0, 5 3, 3

Первое число в ячейке – очки, получаемые первым участником, другое – другим.


Во время совершения хода участники не знают, что выбирает другой, но могут
запоминать сделанные ранее ходы противника. «Стратегией» называется описание
того, как участник меняет своё поведение в зависимости от сделанных ходов
противника. Например, если участник учитывает только последний ход противника,
таблица ответов может быть такой:

Последний ход противника 0 1


Ответ 0 1

Т.е. «око за око, зуб за зуб». Легко понять, что есть четыре варианта ответов
(варианта нижней строки таблицы) при учёте только последнего хода: (0,0), (0,1),
(1,0), (1,1).
«Игра» состоит в обмене ходами таких стратегий, нужно найти, сколько очков
получит каждая из стратегий за n ходов. После проведения «игр» в разных парах
стратегий можно выяснить, какая стратегия выгоднее.
Любую такую стратегию (любую заданную таблицу ответов) можно воплотить в
виде конечного автомата, а передавая сигналы с выходов автоматов на входы
противников, можно моделировать взаимодействие. Совокупность двух этих
автоматов с передатчиком ответов (с задержкой, иначе возникнет цикл), который
также может подсчитывать очки и останавливать игру после n ходов, образует
структурный автомат.
Задачи

1. Описать в виде конечного автомата (таблица и диаграмма) элемент «или-не» и


элемент «объединение проводов» с алфавитами входа и выхода, описанными
выше.

2. Составить структурный автомат «не» из автоматов выше – изобразить схему


соединения, перечислить состояния входов и выходов каждого из внутренних
автоматов и автомата в целом при подаче на вход 0 и 1.

3. Пусть в цепочку соединены автоматы-повторители (выдающие на выход то, что


подали на вход), работающие с задержкой – меняющие своё состояние на выходе
через время после изменения входа. Пусть в начале на всех входах и выходах 0.
Опишите, что произойдёт, если подать на вход первого 1? А что будет происходить,
если начать менять сигнал на входе первого элемента сигнал с 0 на 1 и обратно с
периодом ? А если подать 1 на время , затем 0 на 3 , затем снова 1 на и
т.д.?

4. Выбрать любую из четырёх таблиц для стратегии, учитывающей только последний


ход противника, и описать такую стратегию в виде конечного автомата (на вход
поступает прошлый ход противника, на выходе должен появляться текущий ход
стратегии).

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

Вам также может понравиться