Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

298

.pdf
Скачиваний:
1
Добавлен:
15.11.2022
Размер:
1.1 Mб
Скачать

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

В

общем

 

случае лента

может быть эластичной. При этом номер

ячейки

играет

роль адреса при

обращении к ленте (к памяти). В каждый

момент

времени

содержимым ленты является цепочка произвольной длины

х = а\а2аъ...ап, которая располагается в п верхних ячейках, по одному символу в ячейке. Остальные ячейки остаются пустыми. В режиме записи по указанному адресу (номер ячейки) весь «хвост» цепочки сдвигается вниз, а в ячейку с указанным адресом записывается указанный символ.

В режиме чтения символ на ячейке с указанным адресом считывается, затем стирается, и «хвост» цепочки смещается на одну ячейку вверх.

При записи исходная ячейка удлиняется, при чтении - укорачивается. Это все для эластичной ленты.

Структура магазинного автомата представлена на рис.2.6. Он состоит из конечного управляющего автомата, снабженного тремя каналами для работы с магазинами - входным, выходным, внутренним.

Управляющий

автомат

--------1—-------

Входной Внутренний магазин магазин

Выходной

магазин

Рис. 2.6. Структура магазинного автомата

Входной магазин работает всегда в режиме чтения (задает входной алфавит), выходной - в режиме записи (выходной алфавит), а внутренний - в режиме и чтения, и записи (алфавит внутренних состояний).

Множество А состояний управляющего автомата разбито на два непересекающихся подмножества А\ и Aj. Если состояние управляющего автомата относится к подмножеству А\, то происходит считывание из входного и внутреннего магазинов, если же оно относится к подмножеству А2, то происходит считывание только из внутреннего магазина. В этот же момент автомат переходит в новое состояние и записывает во внутренний и выходной магазины некоторые слова.

Пусть X, Уи 2 - алфавиты входного, выходного и внутреннего магазинов,

не включающие «пустой» буквы (символа),

А - множество

внутренних

состояний автомата.

 

 

 

 

 

 

 

Тогда магазинный автомат задается двумя функциями Ь\(a jj)

и 82(a,z).

 

Значение

этих функций

указывает

новое

состояние

автомата

и слова,

которые записываются во

внутренний

и

выходной

магазины

(б ,-

в

зависимости от состояния автомата (я ), входного (х)

и внутреннего

(г)

магазинов, б,

- в зависимости от состояния

автомата

(а) и

внутреннего

магазина (z)).

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

Для определения способа функционирования магазинного автомата рассмотрим понятие конфигурации.

Конфигурацией называется четверка (p,a,w ,q), гдe p e F (x )\ а е А : w е F(Z); q eF (Y ), где F(х) - цепочки из множестваX и т.д.

Конфигурация называется заключательной, если она имеет вид (l,a*,e,q).

где а* е А*, е -пустое слово.

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

-первый (входной алфавит пуст).

Вмножестве А выделяют также начальное состояние а0 и множество

заключительных состояний А*, а в множестве Z—начальный символ z0. Распознающий магазинный автомат представляет (распознает) язык,

состоящий из всех слов Р таких, что конфигурация (p,a0,z0,e) переходит в

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

(e,fl0,Z0»£) переходит в заключительную конфигурацию вида (а*,в,q).

Магазинный автомат распознает (порождает) язык, относящийся к классу контекстно-свободных языков.

2.3. Сети Петри

Автомат является математической абстракцией системы (машины, устройства) переработки информации или процесса переработки.

Автоматы, построенные из определенных компонентов по определенным

правилам, часто

представляются сетями,

т.е. графами специального вида с

дополнительной интерпретацией вершин и дуг.

Понятие конечного автомата существенно связано с понятием алгоритма и

последовательной

алгоритмической

системы. Для них характерен

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

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

Термины классической теории автоматов не могут адекватно описать такие системы. Например, некоторое число пользователей вводит информацию в ЭВМ с разных терминалов, процессор ЭВМ занят трансляцией в машинный код, одновременно идет перепись файла с диска в буфер канала, связанного с печатающим устройством и т.п.

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

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

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

Двудольным графом называется граф G , если множество его вершин V

распадается на два непересекающихся подмножества V и V

таких, что

каждое ребро графа G имеет один конец на V , а другой - на V

Двудольный

граф может быть как неориентированным, так и ориентированным.

 

Кружочками обозначены вершины, именуемые позициями (а). Вертикальными линиями-вершины, называемые переходами (/).

Множество позиций, которые соединены с определенным переходом

направленными к нему ребрами, называют входными

позициями данного

перехода.

 

Все позиции, к которым направлены ребра от

перехода, образуют

множество выходных позиций этого перехода.

 

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

Начальное распределение меток соответствует начальным условиям работы сети и называется начальной маркировкой. Таким образом, сеть Петри

/V может

быть

задана

следующей

четверкой:

 

N = {A,T,F, М0},

где

А = {аь ...,ак}

-

конечное

множество позиций;

Т = {/,,...,//}

— конечное

множество

переходов.

При

этом А (\Т = 0 ,

A \JT = 0 (т.е.

А

и Т

не

пересекаются и не объединяются).

 

 

 

 

 

 

 

 

F - это

функция, определяющая связи между позициями и переходами

так, что

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fl,

 

если а является входной (или выходной) позицией перехода/

 

F (a,t) = \

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[О в противном случае.

 

 

 

 

 

 

 

 

М{) определяет начальную маркировку сети и является К

-

мерным

вектором неотрицательных чисел {К -

число позиций), j -й элемент которого

обозначает число меток в позиции .

 

 

 

 

 

 

 

 

Для сети

Петри, приведенной на рисунке:

 

 

 

 

 

 

 

К=1=5 (количество позиций К и число переходов /),

 

 

 

 

М0 =< 1,0,0,0,0 > - только а1 имеет одну метку.

 

 

 

 

 

 

 

1

0

0

0

0

 

0

1

1

0

0

 

 

 

 

 

0

1

0

0

0

 

0

0

0

1

0

 

 

 

 

 

0

0

1

0

0

F(t,a) = 0

0

0

0

1

 

 

 

 

 

0

0

0

1

1

 

1

0

0

0

0

 

 

 

 

 

0

0

0

1

1

 

1

0

0

0

0

 

 

 

В матрице

F (aJ)

строки

-

это а , столбцы -

/

В матрице

F(t,a)

строки

-

это/, столбцы -

а

Если все входные позиции перехода /,. содержат метки, то такой переход является активным. Активный переход может быть реализован.

Иногда об активных переходах говорят как о воспламененных, а реализацию перехода называют его сгоранием.

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

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

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

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

Для нашего примера (см. рис. 2.7) в сети Петри начальная маркировка, в соответствии с которой имеется метка в позиции ах, делает активным переход /,. После реализации этого перехода метка в я, удаляется и метки помещаются в позиции а2 и a3t что соответствует распараллеливанию процесса. Затем реализуются переходы t2 и t3 и появляются метки в аА и а5. Эти события могут происходить в разные моменты времени, т.к. относятся к различным параллельно протекающим процессам. Однако ни /4, ни t5 не могут быть реализованы, пока оба эти процесса, не закончатся. Затем реализуется какойлибо из переходов /4 или t5, и сеть Петри переходит в начальное состояние.

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

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

Кроме того, сеть Петри может быть использована для описания алгоритма функционирования дискретного устройства (автомата), управляющего некоторым объектом управления (ОУ). При этом требуется определенная интерпретация элементов сети Петри. Разными авторами предлагаются различные интерпретации, выбор которых зависит как от способа реализации синтезируемого автомата (аппаратурная, программная, микропрограммная реализация), так и от свойств ОУ

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

Такие сигналы могут рассматриваться как команды, которые должны быть выполнены в управляемой системе. После выполнения команды ОУ выдает сигнал, который ставит метку в соответствующую позицию сети Петри. Эти позиции называются внешними в отличие от внутренних, которые получают метки в результате реализации переходов сети Петри. Внешние позиции могут получать метки не только от ОУ, но и от других устройств управления или от

человека-оператора. Пример фрагмента такой сети Петри приведен на рис. 2.8,

где Ах и А2 -

команды, которые должны выполняться в ОУ; я2,я4, ав ~

внешние позиции, которые получают метки извне и от ОУ

Сеть Петри

позволяет наглядно проследить, протекание процесса однако

для построения устройства управления (автомата) реализуемый им алгоритм должен быть детерминированным.

Рис. 2.8. Сеть Петри (фрагмент)

2.4. Регулярные языки и конечные автоматы

Ранее мы знакомились с понятием регулярных (автоматных) грамматик (языков). Напомним, что регулярная (автоматная) грамматика (тип 3) имеет

правила

(р ) вида А^>аВ либо А -> Ь, где А,В е N, а,Ь е Т При этом

А,В,а,Ь

являются одиночными символами (не цепочками) соответствующих

словарей (нетерминального и терминального). Язык, порожденный такой грамматикой, называется регулярным (автоматным).

Рассмотрим регулярный язык подробнее.

При описании автомата задается входной алфавит. Множество слов во входном алфавите называется событием. Этот термин стал традиционным в теории автоматов, хотя и не обязателен: можно обойтись термином просто «множество слов». Другой термин для множества слов - язык (множество всевозможных цепочек в некотором словаре).

Событие (язык) называется распознаваемым данным конечным автоматом, если оно в этом автомате представимо, т.е. если на вход автомата поступает это событие, то автомат достигает одного из своих заключительных состояний. Среди множества слов в событии может содержаться и пустое слово (цепочка) - слово нулевой длины. Пустое слово будем обозначать е. Для любого слова а еа = ае = а; таким образом, в группе слов входного алфавита,

где умножением является приписывание (конкатенация) слов друг к другу, е играет роль единицы.

Пустое слово не следует путать с пустым событием (т.е. с пустым множеством).

Автомат представляет пустое событие, если ни одно из его заключительных состояний не достижимо из начального состояния. Так как событие—это множество, то все операции под множествами справедливы для событий.

Вводим еще три операции над событиями. Пусть даны события Ех и Е2 в алфавите А. Для этих событий справедливы операции:

1. Объединение

Е хV E2 (дизъюнкция), обозначается иногда EX\JE2 -

обычное объединение множеств.

2. Умножение

(конкатенация - приписывание) ЕХЕ2\ Е = ЕХЕ2 это

множество всех слов вида сцс^, где а, е Ех, аг е Е 2 - слово сц приписывается справа к слову сц.

3. Итерация (обозначается Е\ или {i^}, или < Ех>)

Ех = e v £ , v £ 1£ 1v ...v(£ ,)/Iv ...= v El i-0

(Ex - e, El - Ex, E\ - EXEXи так далее).

Итерация —это операция, применяемая к множествам слов некоторого алфавита А, т.е. к событиям. Если Ех —некоторое событие в алфавите А, то

£ * ( { £ 1} , < £ 1 >) будет событием, содержащим пустое слово и все те слова, которые можно составить из слов события Ех, приписывая их друг другу в произвольном порядке. Например, если Ех=ab%io Е*х = e,ab,abab,ababab,...

Пусть алфавит А, над которым рассматриваются события, состоит из букв (символов) ах,а2,..., ат . Тогда событие, состоящее из одного однобуквенного слова я,(/ = 1,2 ,...,/я), будем называть элементарным и обозначать просто а{

(событие {а,}, где а, е А). К элементарным отнесем также событие е . Событие называется регулярным, если оно может быть построено на

элементарных событиях с помощью конечного числа применений операций объединения, умножения и итерации. Эти операции также назовем регулярными.

Таким образом, регулярное событие может быть описано формулой, содержащей символы образующих (е й буквы алфавита А) и знаки регулярных операций над ними. Такие формулы называются регулярными выражениями. Регулярные выражения эквивалентны, если они описывают одно и то же событие. Например, эквивалентные выражения EtEx,E 2,E3 - регулярные события, тогда:

Ех(Е2 v Е3) = ЕхЕ2 v ЕХЕЪ\ (Ех v Е2)ЕЪ= ЕхЕг v Е2Е3\

(Е{Е2Щ = Е,(Е2Ег)-(Е'У = Е ' Х = е v Е(Е)"

Операция объединения ассоциативна и коммутативна.

Отметим: множество, состоящее из одного слова а/} ...,а^,является

регулярным событием, поскольку любое выражение вида at

регулярно:

оно построено из букв с помощью конкатенации.

 

Любое конечное

множество

слов Е = {а,,..., а к}

регулярно и

описывается выражением

Е =

a 2v ...v a k, не содержащим итерации.

Если регулярное выражение

Е

не содержит итерации,

то раскрытие

скобок преобразует его к виду a, v .. .va k, т.е. Е описывает конечное событие. Если же Е содержит итерацию, то оно бесконечно, за исключением случаев, когда итерация применяется только к е (е* = е, т.е. конечно).

Регулярное выражение вида А*Е, где Е — конечное событие, не содержащее пустого слова, описывает бесконечное событие, содержащее все

слова из А*, кончающиеся словами на Е . Например:

1) событие (a v Ъv с) (a v cb) содержит все слова в алфавите {а,Ь, с}9 кончающиеся на а или cb (бесконечно);

2) событие *(* v y vz)*(y v z) содержит все слова в алфавите {*,y ,z} t

начинающиеся х и кончающиеся у или z (бесконечно).

Событие Е{ = (a v b)*с(а v b)*с(а v b)* состоит из всех слов в алфавите {а,Ь,с}, содержащих с ровно два раза.

Событие £* состоит из всех слов, содержащих с четное число раз. Регулярные события и только они представимы в конечных автоматах. Конечный автомат можно рассматривать как устройство, распознающее

некоторое множество М входных слов. Поступление на вход автомата последней буквы такого слова вызывает (в тот же момент) особую внешнюю реакцию автомата, т.е. некоторое подмножество выходных символов.

Множество всех цепочек (слов), воспринимаемых автоматом А , образует язык L(A ), представимый данным автоматом. С другой стороны, множество слов во входном алфавите называют событием.

Таким образом, язык, представимый данным автоматом, есть событие. Регулярное событие обозначает регулярный язык (или язык регулярных

событий, или язык регулярных выражений).

Конечные автоматы представляют только регулярные языки. Итак,

конечным автоматом (или

просто автоматом) называется

система

S = (Л ,д ,У ,8,\), в которой

A = {a],...,a J,Q = {q],...,qn),V =

v*},

конечные множества (алфавиты) входов, состояний и выходов автомата соответственно, а б :Q x A -> Q и \ :Q x A —>Vфункции, определенные на

утих множествах (здесь

«:» -

функция отображения, «х» - декартово

перемножение множеств).

 

 

А - входной алфавит,

V -

выходной алфавит, Q - алфавит состояний,

8 - функция переходов, X - функция выходов.

Если, кроме того, в автомате выделено одно состояние, называемое начальным (обычно считается, что это qx), то такой автомат называется инициальным и обозначается (S ,q )

Функции б и X конечны и могут задаваться либо формулами, либо таблицами (таблицы переходов, таблицы выходов, таблицы переходоввыходов).

Отображение (функция, оператор) есть закон соответствия, сопоставляющий каждому элементу множества А некоторый (единственный) элемент множества В

Обозначается (р А —» В - задано отображение А в В Декартовым (прямым) произведением А х В множеств А и В называется

множество всех пар вида (а,,6у), в которых первый компонент принадлежит

множеству А (я, е А), а второймножеству

В (Ьу

еВ ).

 

 

 

 

Конечный

автомат

может

задаваться

и

графом

переходов,

тогда

А = (UyS,o,(p, Г ), где U — входной алфавит автомата

А,

совпадающий с

терминальным алфавитом грамматики Gn, S -

множество

состояний,

о -

начальное состояние,

конечное

состояние,

Г

-

граф

переходов,

определяющий функционирование автомата.

 

 

 

 

 

 

 

 

Каждому

нетерминалу

ip

грамматики

Ga

 

соответствует

вершина

графа Г , помеченная символом

(состояния). В

графе

есть

еще

одна

вершина, помеченная символом заключительного состояния

Единственному

начальному состоянию о автомата А соответствует вершина, помеченная

аксиомой о . Далее для каждой незаключительной

продукции \р —>ат

проводится ребро, помеченное терминальным символом а е U , из вершины \р

в вершину т; для каждой заключительной продукции

а проводится ребро

а из вершины ip в вершину

Автомат функционирует следующим образом: на вход последовательно (слева направо) подаются символы цепочки х - а{ , аи ...а^ eF(U)

Движение по графу начинается с вершины а , что соответствует начальному состоянию автомата А, в котором он воспринимает символ ау Затем

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

то автомат останавливается безрезультатно. В противном случае входная цепочка х е F(U) переведет автомат А из начального состояния а в некоторое состояние т е S

Путь в графе Г , соответствующий такому переходу, называется путем из вершины а в вершину т, несущим цепочку х

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

Множество всех цепочек, воспринимаемых автоматом А , образует язык Д/4), представимый данным автоматом.

Очевидно, цепочка х воспринимается автоматом А тогда и только тогда, когда она выводима в соответствующей автоматной грамматике (языке) —так

что Ц А ) = L(Ga).

Конечные автоматы представляют только регулярные языки (события).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]