Научная статья на тему 'Регулярная форма спецификации детерминированных автоматов в языке l'

Регулярная форма спецификации детерминированных автоматов в языке l Текст научной статьи по специальности «Математика»

CC BY
121
34
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ЯЗЫК СПЕЦИФИКАЦИИ / КОНЕЧНЫЙ АВТОМАТ / ЦИКЛИЧЕСКИЙ АВТОМАТ / СВЕРХСЛОВО / SPECIFICATION LANGUAGE / FINITE AUTOMATON / CYCLIC AUTOMATON

Аннотация научной статьи по математике, автор научной работы — Чеботарев Анатолий Николаевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Some forms for representation of deterministic FSMs specification in the language L are investigated. The use of such forms in constructing specifications decreases the possibility of errors.

Текст научной работы на тему «Регулярная форма спецификации детерминированных автоматов в языке l»

2010 Логическое проектирование дискретных автоматов №4(10)

УДК 519 713Л РЕГУЛЯРНАЯ ФОРМА СПЕЦИФИКАЦИИ

ДЕТЕРМИНИРОВАННЫХ АВТОМАТОВ В ЯЗЫКЕ L

А. Н. Чеботарев Институт кибернетики НАН Украины, г. Киев, Украина E-mail: ancheb@gmail.com

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

Ключевые слова: язык спецификации, конечный автомат, циклический автомат, сверхслово.

Введение

Формальная спецификация автомата — это совокупность утверждений, которые определяют требования к его функционированию, т. е. его темпоральные свойства. Эти утверждения формулируются в виде формул формального языка, для чего обычно используются логические языки, такие, как темпоральные логики, исчисление предикатов первого порядка и др. В работе в качестве такого языка рассматривается простой логический язык L, являющийся подмножеством языка одноместных предикатов первого порядка. Процесс построения формальной спецификации автомата начинается с осмысления всех требований к его функционированию с последующим формулированием их в виде формул языка L. Для спецификаций, рассчитанных на синтез, т. е. на использование автоматической процедуры преобразования спецификации в процедурное представление алгоритма функционирования автомата, необходимо обеспечить их полноту, состоящую в том, что должны быть приведены все ограничения на функционирование автомата. Поскольку построение спецификации — это неформальный процесс, осуществляемый человеком, построенная спецификация может содержать ошибки, устранение которых после синтеза и на последующих этапах превращается в очень сложную задачу. Поэтому необходимо так организовать процесс построения спецификации, чтобы уменьшить вероятность допущения в ней ошибки. Этого можно достичь двумя путями: 1) придерживаться строгих правил написания спецификации в четко определенной форме; 2) использовать средства формальной верификации, т. е. проверки наличия важных свойств спецификации. Обычно используется как первый, так и второй пути уменьшения количества ошибок. Настоящая работа посвящена исследованию некоторых форм представления спецификаций детерминированных автоматов и определению их свойств, которые можно просто проверять в процессе построения спецификации. Написание спецификации в рассматриваемых формах существенно уменьшает вероятность допущения ошибок, а также возможность того, что некоторые ограничения на функционирование автомата не будут учтены.

1. Язык спецификации

Язык L [1] представляет собой фрагмент логики предикатов первого порядка с одноместными предикатами и фиксированной областью интерпретации, в качестве которой выступает множество Z целых чисел (моментов времени). Спецификация в языке L имеет вид формулы VtF(t), где F(t) — формула с одной переменной t, построенная

с помощью логических связок из атомарных формул (атомов) вида p(t + j), где p — одноместный предикатный символ, t — переменная, принимающая значения из множества Z, а j —целочисленная константа, называемая рангом атома. Разность между максимальным и минимальным рангами атомов в формуле F(t) называется её глубиной. Поскольку F(t) интерпретируется на множестве целых чисел, то для произвольного целого j имеет место эквивалентность VtF(t) ^ VtF(t + j), где F(t + j) обозначает формулу, полученную из F(t) путем увеличения на j рангов всех ее атомов. Таким образом, можно ограничиться рассмотрением только таких формул F(t), у которых максимальный ранг атомов равен нулю.

При определении семантики языка L он рассматривается как формализм для задания множеств сверхслов в алфавите двоичных векторов, длина которых равна количеству предикатных символов в формуле.

Пусть Е — конечный алфавит и N+ = {z G Z : z > 0}. Отображения u: Z ^ Е и l: N+ ^ Е называются соответственно двусторонним сверхсловом (обозначается ... u(—2)u(—1)u(0)u(1)u(2)...) и сверхсловом (обозначается l(1)1 (2)...) в алфавите Е. Для двустороннего сверхслова u и n G Z определим n-суффикс u(n + 1, то) как сверхслово u(n + 1)u(n + 2)...

Пусть П = {pi,p2, . . . ,Pk} —множество всех предикатных символов, которые встречаются в формуле F(t) (сигнатура формулы). Областью интерпретации языка L является множество Z, и в формулах не интерпретированы только предикатные символы. Таким образом, интерпретация формулы VtF(t) —это набор <п1,п2,... , > опреде-

лённых на Z одноместных предикатов, соответствующих всем предикатным символам из множества П. Каждый такой предикат п можно рассматривать как двустороннее сверхслово в алфавите {0,1}, а набор k таких предикатов — как двустороннее сверхслово в алфавите Е = {0,1}k. Мы не будем различать интерпретации и соответствующие двусторонние сверхслова в алфавите Е, поэтому будем говорить об истинности или ложности формулы F(t) в позиции т (т G Z) двустороннего сверхслова u, имея в виду значения формулы F(т) при интерпретации u. Смысл понятия глубины формулы состоит в том, что значение формулы F(t) глубины r в позиции т интерпретации u определяется отрезком u^ — r, т) соответствующего двустороннего сверхслова u. Интерпретация, при которой формула VtF(t) истинна, называется моделью для этой формулы. С каждой формулой F = VtF(t) ассоциируется множество M(F) всех моделей для нее. Каждая формула F = VtF(t) определяет множество W(F) сверхслов над Е, а именно множество 0-суффиксов всех двусторонних сверхслов из M(F).

Определим автоматную семантику языка L.

Определение 1. Конечный (X-Y)-автомат A — это четвёрка <X, Y, Q,x>, где X и Y — соответственно входной и выходной алфавиты; Q — конечное множество состояний; х: QxXxY ^ 2q — функция переходов. Иногда отношение переходов удобно задавать в виде функции переходов-выходов Л: Q x X ^ 2QxY.

Автомат A называется детерминированным, если для любых x G X, q G Q верно |Л(д,ж)| ^ 1; в противном случае он называется недетерминированным.

Определение 2. (X-Y)-автомат A = <X, Y, Q,x> называется квазидетермини-

рованным, если для всяких q G Q, x G X и y G Y справедливо |x(q, x,y)| ^ 1.

Квазидетерминированный (X-Y)-автомат удобно рассматривать как детерминированный частичный автомат без выходов A = <Е^,^> с входным алфавитом Е = X x Y, с множеством состояний Q и с функцией переходов $, являющейся отображением из Q x Е в Q. Будем называть его Е-автоматом A.

Определение 3. Е-автомат А = <Е^,£> называется циклическим, если для каждого q Е Q существуют такие ^1,^2 € Q и Ст1, а2 € Е, что = £(д, о^) и q = £^2, ^2)-

Циклический Е-автомат можно охарактеризовать в терминах допустимых сверхслов.

Определение 4. Сверхслово I = а1а2 ... допустимо в состоянии q Е-автома-та А, если существует такое сверхслово состояний qoq1q2 ... , где qo = q, что для любого г = 0,1, 2,... имеет место £^г, аг+1) = qг+1- Сверхслово I допустимо для автомата А, если оно допустимо хотя бы в одном из его состояний.

Обозначим Ш(А) множество всех сверхслов, допустимых для автомата А. Формула Г специфицирует автомат А, если Ш(А) = Ш(Г). Как показано в [2], класс автоматов, специфицируемых формулами языка Ь, совпадает с классом циклических автоматов с конечной памятью [3]. Рассмотрим способ построения автомата А(Г), специфицируемого формулой Г = У£Г(¿)) [4].

Пусть П = {р1,р2,... ,рк} — сигнатура формулы Г(¿), г — её глубина и = {0,1}к. Последовательность ^051... вг векторов в0, 51,... , вг из 5л назовем состоянием глубины г, а множество Q(r, П) всех таких последовательностей — пространством состояний глубины г для формулы Г(¿). Формулу Г(¿) будем рассматривать как пропозициональную формулу от переменных р1(^), ..., рк(¿), р1(^ — 1), ... , рк(£ — 1), ... , р1(^ — г), ... , рк(£ — г). Если компоненты вектора вг в состоянии q = 5051... вг рассматривать как истинностные значения соответствующих атомов ранга г — г при определенном упорядочении множества П, то можно говорить о значении формулы Г(¿) на состоянии q.

На множестве Q(r, П) определим отношение N непосредственного следования так, что за каждым состоянием q = в0в1... вг непосредственно следуют 2к состояний вида в1... вгв, где в Е 5л. Множество всех состояний, которые непосредственно следуют за q, будем обозначать N^).

При использовании языка Ь для спецификации автоматов предикатные символы ставятся в соответствие входным и выходным двоичным каналам специфицируемого автомата. Поэтому множество предикатных символов П разбивается на два класса: входные и выходные, которые обозначаются соответственно и и Ш. Определим входной алфавит X и выходной алфавит У автомата А(Г) как множества всех двоичных векторов соответственно длины |и| и |Ш |. Каждый вектор из можно рассматривать как пару <х,у>, где х Е X, у Е У, поэтому наряду с обозначением в0 ... вг для состояния глубины г будем использовать обозначение (<х0,у0> ... <хг, уг>).

Построим вспомогательный автомат А;(Г) =< X, У, Q/,XA/ >. Множество состояний Q/ — это все те состояния из Q(г, П), на которых Г(¿) истинна. Функцию переходов этого автомата определим следующим образом. Пусть q Е Q/, х Е X и у Е У, тогда Ха/^,х,у) —это множество всех тех состояний (<х0,у0>... <хг,уг>) из N^)ПQ/, у которых хг = х и уг = у. Если таких состояний нет, то значение ха/ (q, х, у) не определено. Автомат А (Г) —это максимальный циклический подавтомат автомата А/(Г).

2. Свойства спецификаций детерминированных автоматов

Рассмотрим представление формулы Г(¿) в пространстве состояний соответствующей глубины. Будем говорить, что формула Г(¿) истинна на области пространства состояний, если она истинна хотя бы на одном состоянии этой области, и формула ложна на области, если она ложна на всех ее состояниях. Если q — состояние пространства состояний, то N^) называется областью переходов для состояния q. Часть области переходов, соответствующая символу х входного алфавита X, т. е. все такие состояния

(<х0,у0>... <хг, уг>) из N^), у которых хг = х, называется областью перехода под действием символа х.

Пусть Г (¿) —формула глубины г с сигнатурой П = {х1,... , хп, у1 , ...,ут}, где х1,... , хп — входные переменные, а у1,... , ут — выходные. Область перехода в пространстве состояний Q(r, П) задается формулой, представляющей собой конституенту единицы от переменных х1(^), ..., хп(£), х1(^ — 1), ... , хп(£ — 1), у1(^ — 1), ... , ут(£ — 1), ... , х1(^ — г), ... , хп(£ — г), у1(^ — г), ... , ут(£ — г). Заметим, что формула ложна на области переходов, задаваемой конституентой единицы /, тогда и только тогда, когда в её разложении по указанным переменным остаточная функция, соответствующая /, равна нулю.

Свойства спецификаций, соответствующие детерминированности и всюду определённости автомата, определяются свойствами областей перехода минимальной формы представления спецификации [5]. Минимальная форма спецификации Г = У£Г(¿) — это такая эквивалентная спецификация У£ шт(Г(¿)) автомата А(Г), что множество состояний пространства Q(r, П), на которых истинна формула шт(Г(¿)), совпадает с множеством состояний циклического автомата А(Г) в этом пространстве. В [5] показано, как по формуле Г(¿) построить формулу шт(Г(¿)).

Утверждение 1. Формула У£Г (¿) специфицирует детерминированный автомат тогда и только тогда, когда в каждой области перехода пространства состояний формула шт(Г(¿)) истинна не более чем на одном состоянии.

Утверждение 2. Формула У£Г(¿) специфицирует всюду определённый автомат тогда и только тогда, когда для каждой области переходов пространства состояний, на которой истинна шт(Г(¿)), она истинна на всех входящих в нее областях перехода.

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

Утверждение 3. Формула У£Г(¿) специфицирует детерминированный автомат тогда и только тогда, когда каждая остаточная функция в разложении функции шт(Г(¿)) по переменным х1(^), ... , хп(^), х1(^ — 1), ... , хп(£ — 1), у1 (£ — 1), ... , ут(£ — 1), ... , х1(^ — г), ... , хп(£ — г), у1(^ — г), ... , ут(£ — г) либо равна нулю, либо представляет собой конституенту единицы от переменных у 1 (¿),. . . ,ут (¿).

Очевидно, что такое разложение представляет собой совершенную ДНФ.

Утверждение 4. Формула У£Г(¿) специфицирует всюду определённый автомат, если и только если из того, что остаточная функция /¿(¿) в разложении шт(Г(¿)) по переменным х1(^ — 1), ... , хп(£ — 1), у1(^ — 1), ... , ут(£ — 1), ... , х1(^ — г), ... , хп(£ — г), у1 (£ — г), ... , ут(£ — г) не равна нулю, следует, что все остаточные функции в разложении /(¿) по переменным х1(^),... , хп(£) также не равны нулю.

Пусть Г(х1,... , хп, у) — булева функция от переменных х1,... , хп, у. 3-проекцией функции Г(х1,... ,хп,у) на { х1,... , хп } называется функция 3уГ(х1,... ,хп, у), которая задается формулой Г(х1,..., хп, 0) V Г(х1,... , хп, 1). Аналогично, 3-проекцией функции Г(х1,... , хп, у1,... , ут) на множество переменных { х1,..., хп } называется функция 3у1 ... 3утГ(х1, . . . ,хп,у1, . . . ,ут).

Теорема 1. Функция Г(х1,... , хп, у1,... , ут) может быть представлена в виде

г=1

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

т

Доказательство. Необходимость. Пусть Г(х1;...,хп,у1;... ,ут) имеет вид

(у1 О /1)& . . . &(ут О /т) (у1/1V—у1 —/1)& . . . &(ут/тV—ут—/т) у1 ... ут/1 . . . /mV

VУl ... -ут/1 ... —/т V- ■ -V—у1 ... -ут-/1 . . . —/т, где /1, . . . , /т — функции от переменных х1,... , хп. На каждом наборе значений переменных х1;... , хп истинно только одно из 2т произведений вида /1... /т, где /* € {/*, —/¿}. Отсюда следует, что каждая остаточная функция в разложении Г(х1;... , хп, у1,... , ут) по переменным х1;... , хп является конституентой единицы от переменных у1,... , ут.

Достаточность. Пусть Г(х1,... , хп, у1;... , ут) удовлетворяет условиям теоремы. Эти условия можно переформулировать в виде следующих свойств функции Г.

1. Совершенная ДНФ функции Г(х1;... , хп, у1;... , ут) содержит ровно 2п консти-туент единицы.

2. Каждая конституента единицы от переменных х1;..., хп является составной частью одной и только одной из конституент единицы функции Г (х1, . . . , хп, у1, ... , ут).

Этими же свойствами обладает и каждая 3-проекция функции Г(х1;... , хп, у 1,... , ут) на множество переменных {х1;... , хп, у*} (г = 1, 2, ...,т). Отсюда следует, что каждая проекция функции Г(х1,... , хп, у1,... , ут) на { х1,... , хп, у* } имеет вид /¿(х1,... , хп)у* V — /г(х1,... , хп)—у* = у* О /¿(х1,... , хп). Поскольку рассматриваемые

проекции обладают указанными свойствами, то и произведение всех этих проекций также обладает ими. Кроме того, Г(х1,... , хп, у1,... , ут) является импликантой каждой такой проекции, а следовательно, и импликантой их произведения.

Лемма 1. Если /(х1,...,хп) —импликанта функции //(х1,...,хп) и совершенные ДНФ этих функций имеют одинаковое количество конституент единицы, то /(хь ... ,хп) = //(х1,... ,хп).

Из этой леммы следует, что произведение всех т проекций функции Г (х1,... , хп, у1,... , ут) совпадает с этой функцией, что завершает вторую часть доказательства. ■

Теорема 2. Любой всюду определённый, детерминированный автомат с конечной памятью может быть специфицирован в виде

т

У Д(угС0 О

г=1

где у1,... , ут — все выходные предикатные символы спецификации и / (¿) не зависит от атомов у1(^),... , ут(£).

Доказательство. Пусть Г(¿) в спецификации У£Г(¿) такова, что все остаточные функции в её разложении по переменным х1(^), ..., хп(£), х1(^—1), ... , хп(£— 1), у1 (^— 1), ... , ут(£ — 1), ... , х1(^ — г), ... , хп(£ — г), у1(^ — г), ... , ут(£ — г) равны конституентам единицы от переменных у1(^),... , ут(£). В силу теоремы 1 она может быть представ-

т

лена в виде Д (у*(£) О /¿(¿)), где формулы /¿(¿) не зависят от атомов у1(^),... , ут(£).

*=1

Таким образом, для доказательства теоремы 2 достаточно показать, что минимальная форма спецификации детерминированного, всюду определённого автомата может быть эквивалентно преобразована в формулу, удовлетворяющую указанному выше условию. Такое преобразование состоит в том, чтобы формулу шт(Г(¿)) сделать истинной на тех областях переходов, на которых она ложна, и таким образом, чтобы в каждой области перехода она была истинна не более чем на одном состоянии. Это осуществляется путем замены в разложении функции шт(Г(¿)) по переменным х1(^), ..., хп(£), х1(* — 1), ... , хп(* — 1), у1 (^ — 1), ... , ут(* — 1), ... , х!(* — г), ... , хп(* — г), у1 (* — г),

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

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

Теорема 3. Любой детерминированный автомат с конечной памятью может быть специфицирован в виде

т

У Л(угС0 ^ дгС0)&(—у*С0 ^ ^СО),

*=1

где у1,... ,ут — все выходные предикатные символы спецификации; д*(£), ^¿(¿) не зависят от атомов у1 (¿),... , ут(£).

Доказательство. Пусть автомат задан формулой У£Г(¿) с выходными предикатными символами у1,... , ут. Согласно утверждению 3, каждая остаточная функция в разложении функции шт(Г(¿)) по всем переменным, отличным от у1 (¿), ... , ут(£), либо равна нулю, либо представляет собой конституенту единицы от переменных у1 (¿), ... , ут(¿). Рассмотрим т 3-проекций функции шт(Г(¿)) на все атомы, кроме выходных атомов нулевого ранга, отличных от у*(£) (г = 1, 2,... , т). Аналогично тому, как это сделано в доказательстве теоремы 1, можно показать, что произведение всех этих проекций совпадает с функцией шт(Г (¿)). Каждая такая проекция может быть представлена в виде уг(£)#г(£) V—у*(¿)Л,*(¿), что эквивалентно (у*(¿) ^ д*(£))&(—у*(¿) ^ ^(¿)), где д(¿), ^(¿) не зависят от атомов у1 (¿), ..., ут(£). Так как формулы У£шт(Г(¿)) и У£Г(¿) специфицируют один и тот же автомат, то теорема доказана. ■

Несложно показать, что д(¿)&^(£) = 0 (г = 1, 2,..., т).

3. Необходимые и достаточные условия

Возникает вопрос, как построить формулы д*(¿) и Л,* (¿) в спецификации детерминированного автомата? Для ответа на него проанализируем понятия необходимого и достаточного условий.

Если У£(а(£) ^ ^(¿)), то будем говорить, что 6(£) —необходимое условие истинности а(£), а а(£) —достаточное условие истинности 6(£). Таким образом, формулы д* (¿) и ^¿(¿) в спецификации детерминированного автомата — это необходимые условия соответственно истинности и ложности предиката у*(£) в момент Очевидно, что если А(£) и В(¿) —необходимые условия истинности предиката у(¿), то А(£)&В(¿) — также необходимое условие. Аналогично, если А(£) и В(¿) —достаточные условия, то А(£) V В(¿) —также достаточное условие. В силу эквивалентности формул у(¿) ^ А(£) и —А(£) ^ — у(¿) отрицание необходимого условия истинности предиката у(¿) в момент £ является достаточным условием ложности этого предиката. Поэтому возможны различные эквивалентные формы представления спецификации автомата с использованием необходимых или достаточных условий истинности (ложности) выходных предикатов. Однако если в формулах использовать произвольные необходимые или достаточные условия, то полученная таким образом спецификация может не специфицировать требуемый автомат. Поэтому следует уточнить вид этих условий.

Пусть А1, А2,..., Ап — все возможные неэквивалентные формулы определённой глубины, которые задают необходимые условия истинности некоторого предиката,

тогда формулу А1&А2& ... &Ап будем называть соответствующим полным необходимым условием. Аналогично, если формулы А1, А2,... , Ап задают достаточные условия, то формулу А1 V А2 V ■ ■ ■ V Ап будем называть полным достаточным условием. Заметим, что полные необходимые и полные достаточные условия представляют собой необходимые и достаточные условия. Использование в спецификации вида

т

У* Л (у* (*) ^ д* (*))&(—у* (*) ^ ^(¿)) в качестве д* (¿) и ^(¿) соответствующих необхо-

*=1

димых и достаточных условий гарантирует правильность спецификации.

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

Еще один пример автомата с такими же входным и выходным алфавитами. Автомат функционирует следующим образом. Если х в момент * равен единице, то у также в этот момент равен единице. Если х изменился в нуль, то со следующего момента после этого изменения у также будет равен нулю (если х в этот момент равен нулю) до того момента, когда х изменится в единицу. Кроме того, в следующий момент времени после того, как х изменится в единицу, он не может равняться нулю. Последнее утверждение определяет частичность автомата. В этом случае автомат удобно специфицировать как всюду определённый, дополнив эту спецификацию условием частичности. Так, спецификацию соответствующего всюду определённого автомата запишем как У*(у(*) О (х(* — 1) V х(*))). Действительно, всякий раз, когда у(*) равен единице, условие х(* — 1) V х(*) также равно единице, таким образом, это — необходимое условие. Кроме того, х(* — 1) и х(*) —достаточные условия истинности у(*), следовательно, х(* — 1) V х(*) —необходимое и достаточное условие. Условие частичности имеет вид У*(—х(* — 2)&х(* — 1) ^ х(*)).

Более сложный пример спецификации реактивных систем можно найти в [6].

Следует также рассмотреть спецификацию автомата в виде необходимых условий изменения (сохранения) значения выходного сигнала. Так, утверждение, что А(*) —необходимое условие изменения значения у с 0 на 1, имеет вид У*(—у(* — 1)& &у(*) ^ А(*)). Несложно показать, что спецификацию детерминированного автомата

т т

У* Л (у*(*) ^ д*(*))&( — у*(*) ^ ^(¿)) можно представить в виде У* Д Г*(*), где Г*(*) —

*=1 г=1

это конъюнкция четырёх утверждений: (у* (* — 1)&у* (*) ^ А*(*)), (у* (* — 1)&—у*(*) ^ ^ В*(*)), (—у*(* — 1)&у*(*) ^ С*(*)), (—у*(* — 1)&—у*(*) ^ А(*)). Чтобы перейти от этой формы спецификации к предыдущей, следует положить д*(*) = у*(* — 1)&А*(*) V V—у*(* — 1)&С*(*), ^(*) = у*(* — 1)&В*(*) V — у*(* — 1)&Д(*).

Рассмотрим, как для первого примера построить такую спецификацию. Запишем спецификацию этого автомата в виде У*(у(*) ^ у(* — 1)&х(*))&(—у(*) ^ (—у(* — 1) V V—х(*))). Таким образом, у(* — 1)&х(*) = у(* — 1)&А(*) V —у(* — 1)&С(*), а

(—у(* — 1) V — х(*)) = у(* — 1)&В(*) V —у(* — 1)&Д(*). Отсюда находим такие значения для А(*), в(*), С(*) и Д(*): А(*) = х(*), В(*) = — х(*), С(*) = 0, Д(*) = 1.

Если д* (*) и ^¿(¿) —необходимые и достаточные условия истинности у*(*) и — у*(*) соответственно, то полученные таким образом формулы у*(*—1)&А*(*), —у*(*—1)&С*(*),

у*(* — 1)&В*(*) и —у* (* — 1)&Д*(*) будут необходимыми и достаточными условиями истинности у*(* — 1)&у*(*), — у*(* — 1)&у*(*), и т. д. Действительно, учитывая, что у*(*) О О д*(*), а —у*(*) О Л.*(*), можно записать у*(*) О (у*(* — 1)&А*(*) V —у*(* — 1)&С*(*)), —у* (*) О (у* (* — 1)&В*(*) V —у* (* — 1)&Д*(*)). Умножив обе части этих эквивалентностей на у*(* — 1) и на — у*(* — 1), получим у*(* — 1)&у*(*) О у*(* — 1)&А*(*), — у*(* — 1)&у*(*) О О — у*(* — 1)&С*(*) и т.п. Поскольку условия А*(*), В*(*) и т.д. проще, чем условия д*(*) и ^¿(¿), то обычно такая форма спецификации более удобна для её построения.

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

Заключение

В работе показано, что спецификацию любого детерминированного автомата можно строить в стандартной форме, использующей необходимые и достаточные условия истинности и ложности каждого выходного предиката. Обычно из неформального описания требований к функционированию специфицируемого автомата можно заключить, является ли он детерминированным или вполне определённым. Это позволяет выбрать форму спецификации, удовлетворяющую формальным требованиям. Так, при спецификации детерминированного автомата в виде конъюнкции формул (у*(*) ^ А* (*))&(—у* (*) ^ В*(*)), ассоциируемых с каждым выходным предикатом у*, должно выполняться равенство А*(*)&В*(*) = 0. Причем в формулах А*(*) и В*(*) не должны встречаться выходные атомы нулевого ранга. Равенство А* (*) V В*(*) = 1 свидетельствует о полной определённости специфицируемого автомата. Заметим, что невыполнение этого равенства не всегда говорит о частичности автомата. Как показано во втором примере, спецификацию частичного автомата удобно записывать в виде конъюнкции Г1&Г2, где Г1 — спецификация всюду определённого автомата, а Г2 — спецификация условия частичности. Условия частичности — это требования к функционированию среды, с которой взаимодействует автомат. Если среду рассматривать как детерминированный автомат, то условия частичности можно записать в виде

т

У* Л (х*(*) ^ а*(*))&(—х*(*) ^ в*(*)), где х* — входные предикатные символы, а фор-

*=1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

мулы а*(*) и в* (*) не зависят от атомов нулевого ранга.

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

ЛИТЕРАТУРА

1. Чеботарев А. Н. Об одном подходе к функциональной спецификации автоматных систем. I // Кибернетика и системный анализ. 1993. №3. С. 31-42.

2. Чеботарев А. Н. Синтез недетерминированного автомата по его логической спецификации. I // Кибернетика и системный анализ. 1995. №6. С. 115-127.

3. Гилл А. Введение в теорию конечных автоматов. М.: Наука, 1966. 227с.

4. Чеботарев А. Н. Синтез алгоритма по его логической спецификации // Управляющие системы и машины. 2004. №5. С. 53-60.

5. Чеботарев А. Н., Куривчак О. И. Аппроксимация множеств сверхслов формулами языка Ь // Кибернетика и системный анализ. 2007. №6. С. 18-26.

6. Чеботарев А. Н., Алистратов А. В. Построение логической спецификации реактивного алгоритма // Проблемы программирования. 2002. №1-2. С. 154-160.

i Надоели баннеры? Вы всегда можете отключить рекламу.