Научная статья на тему 'К описанию прогрессивных решений параллельного автоматного уравнения'

К описанию прогрессивных решений параллельного автоматного уравнения Текст научной статьи по специальности «Математика»

CC BY
133
34
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
КОНЕЧНЫЙ АВТОМАТ / ПАРАЛЛЕЛЬНАЯ КОМПОЗИЦИЯ / АВТОМАТНОЕ УРАВНЕНИЕ / ПРОГРЕССИВНОЕ РЕШЕНИЕ

Аннотация научной статьи по математике, автор научной работы — Бушков Виктор Георгиевич

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

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

DESCRIBING PROGRESSIVE SOLUTIONS TO A PARALLEL FSM EQUATION

We consider the problem of deriving a component X that combined with the known part of system C, called the context, conforms to a given overall specification S. Many problems of logic synthesis and analysis can be reduced to solving a parallel Finite State Machine (FSM) equationC ◊ X=S. However, not each solution to the equation is of practical use. In this paper, we are interested in progressive solutions, i.e. solutions which have no livelocks without exit when composed with the context. We propose a novel algorithm for deriving a largest progressive solution by removing non-progressive strings from the largest solution to the equation. Since, in general, the number of such strings is infinite, we show that a proposed algorithm terminates

Текст научной работы на тему «К описанию прогрессивных решений параллельного автоматного уравнения»

ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА

2008 Прикладная теория автоматов № 1(1)

ПРИКЛАДНАЯ ТЕОРИЯ АВТОМАТОВ

УДК 519.7

К ОПИСАНИЮ ПРОГРЕССИВНЫХ РЕШЕНИЙ ПАРАЛЛЕЛЬНОГО АВТОМАТНОГО УРАВНЕНИЯ1

В.Г. Бушков

Томский государственный университет E-mail: bushkov@sibmail.com

Работа посвящена нахождению наибольшего прогрессивного решения параллельного автоматного уравнения C ◊ X = S, где C и S - конечные полностью определенные автоматы, на основе удаления непрогрессивных последовательностей из наибольшего решения уравнения. Именно прогрессивные решения, в композиции которых с автоматом C отсутствуют заведомо тупиковые ситуации, интересны с практической точки зрения.

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

Многие задачи синтеза и анализа систем логического управления сводятся к решению автоматного уравнения C 0 X = S, где C и S - конечные автоматы, 0 - операция параллельной композиции, которая соответствует поочередной работе автоматов-компонент [1]. Известно, что разрешимое уравнение имеет наибольшее решение, которое можно рассматривать как резервуар для выбора наилучшего в некотором смысле решения. Однако не каждое решение интересно с практической точки зрения. Особый интерес представляют так называемые прогрессивные решения, т.е. решения, в композиции которых с автоматом C отсутствуют тупики и осцилляции. В работе [2] наибольшее прогрессивное решение строится для случая, когда компоненты уравнения являются полуавтоматами, и предлагается алгоритм нахождения такого решения на основе расщепления состояний наибольшего решения. В данной работе мы предлагаем другой подход к построению наибольшего прогрессивного решения, который основан на удалении из наибольшего решения так называемых не прогрессивных входо-выходных последовательностей. Поскольку в общем случае число последовательностей в наибольшем решении бесконечно, то нетривиальным является вопрос о сходимости предлагаемого алгоритма, и мы показываем, что предложенный алгоритм сходится.

1. Основные определения

Алфавитом A называется непустое конечное множество символов. Обозначим через A* множество всех конечных слов над алфавитом A. Подмножество L с A называется языком. Рассмотрим непустое подмножество Ai множества A и отображение h: A ^ A1 и {s}, где s - пустое слово. Мы полагаем, что h(a) = а для всех a е Al и h(a) = s для всех а е A\A1, причём h расширяется на слова по правилу: h(aP) = h(a)h(P) и h(s) = s. Тогда язык L^ ^ = {h (в): Ре L} называется ограничением языка L на алфавит A1. Пусть теперь язык L

определен над алфавитом A2 = A\A1. Рассмотрим отображение у: A2 ^ 2A*, такое, что у(а) = {уаР: у, Р е A1*}. Тогда язык L\\a = {у(Р): Р е L} есть распространение языка L на алфавит A. По определению, распространение пустого языка есть пустой язык. Пусть язык L1 определен над алфавитом A1, язык L2 определен над алфавитом A2, A = A1 u A2 и S - непустое подмножество множества A. Параллельной композицией L1 ◊ S L2 называется язык (L]f\A П L2ftA)uS. Для языка L над алфавитом A через Init(L) = {a e A* | Эр e A*,aP e L} обозначим язык, состоящий из всех префиксов всех слов языка L.

Автоматом называется пятёрка S = (S, I, O, TS, s0), где S - конечное множество состояний, I - конечный входной алфавит, O - конечный выходной алфавит, T с I х S х S х O - отношение переходов, s0 - начальное состояние. Автомат называется полностью определенным, если V(i, s) е I х S 3(sо) е S х O ((i, s, sо) е T); иначе автомат называется частичным. Рассмотрим автоматы S = (S, I, O, TS, s0) и Q = (Q, X, Y, Tq, q0). Если

1 Работа частично поддержана грантом РФФИ 06-08-89500.

множества I П X и O П Y не являются пустыми, то пересечением автоматов 5 П ф называется наибольший связный подавтомат автомата ^ х Q, I П X, O П Y, H, s0qo), в котором отношение H определено следующим образом: (г, sq, s'q', o) е H ^ (г, s, s', o) е Т5 & (г, q, q', o) е Тд.

Полуавтоматом называется пятёрка М = (М, I, Тм т0, Q), где М - конечное множество состояний, I - конечный алфавит, Т с I х S х S - отношение переходов, т0 - начальное состояние, Q с М - подмножество финальных состояний. Языком полуавтомата Ь с / называется множество всех последовательностей, которые переводят полуавтомат из начального состояния в одно из финальных состояний. Любой автомат 5 = ^, I, О, Ts, so) можно представить полуавтоматом М5, «растягивая» каждый переход в автомате на два перехода, один из которых помечен входным, а другой - выходным символом. Формально, Ms = ^ и S х I, I и О, А, s0, S), где (г,я,(я,г)) е Ал (о,(я,г ),я') еД^ (г,^,^',о) е Т в- Финальными объявляются состояния из множества S. Языком автомата 5 называется язык соответствующего полуавтомата М, т.е. языком автомата 5 называется множество входо-выходных последовательностей, допустимых в начальном состоянии автомата. Далее язык полуавтомата М обозначается М. Полуавтомат Ыи(М) с языком Ыи(М) получается из полуавтомата М удалением всех состояний, в которых генерируется пустой язык, и объявлением всех оставшихся состояний финальными. Полностью определенные автоматы А и В называются эквивалентными (А = В), если их языки совпадают, т.е. А = В ^ Ь(А) = Ь(В). Автомат В называется редукцией автомата А (В < А), если язык автомата В содержится в языке автомата А, т.е. В < А ^ Ь(В) с Ь(А). Если из контекста понятно, является рассматриваемый объект автоматом или полуавтоматом, то для простоты изложения автомат и соответствующий ему полуавтомат обозначаются одним символом.

Пусть II, I2, V, и, О\, О2 - попарно непересекающиеся конечные множества, некоторые из которых могут быть пустыми. Параллельной композицией автоматов А с входным алфавитом Д и V и выходным алфавитом О1 и и и В с входным алфавитом !2 и и и выходным алфавитом О2 и V называется автомат А ◊Ех1 В, далее просто А ◊ В, язык которого есть (Ь(А) ◊Ех1 Ь(В)) П (Ю)* , далее просто (Ь(А) ◊ Ь(В)) П (Ю)*, где I = Ь и I2,

0 = О1 и О2, Ех( = I и О1. Автоматным уравнением называется выражение вида СО X = 5, где С = (С, ^ и V,

01 и и, Тс, с0), 5 = (S, I и !2, О1 и О2, Т5, s0) - конечные автоматы, которые соответственно называются контекстом и спецификацией [2], Х= (X, ^ и и, О2 и V, Тх, х0) - неизвестный автомат, О - операция параллельной композиции, и = - отношение эквивалентности. Как обычно, полностью определенный автомат В называется решением уравнения С О X = 5, если С О В = 5. Решение Муравнения называется наибольшим, если каждое решение уравнения есть редукция автомата М. Известно, что если уравнение С О X = 5 разрешимо, то уравнение имеет наибольшее решение, которое в общем случае является недетерминированным частичным автоматом с языком (Ь(С)()Ех( (Ь( Б) П (10)*) П ((!2 и и)(О2 и V))*. В данной работе в качестве коэффициентов уравнения, автоматов С и 5, и его решения мы рассматриваем только полностью определенные автоматы, поскольку любая физическая реализация является полностью определенной. Соответственно из наибольшего решения мы итеративно удаляем состояния, в которых не определен хотя бы один переход, и получаем наибольшее полностью определенное решение уравнения [1].

Рис. 1

В качестве примера рассмотрим композицию автоматов на рис. 1. Если поведение композиции описано автоматом 5 = ({ я}, {г}, {о}, я), где 7^={ (г, я, я, о)}, и фрагмент композиции, поведение которого описано автоматом С = ({ с}, {г, у}, {о, и}, Тс, с), где Тс={ (г, с, с, и), (у, с, с, о)}, уже синтезирован, то неизвестный

фрагмент композиции можно синтезировать как автомат В = ({ Ь}, { и}, { у}, Тв, Ь), где Тв ={ (и, я, я, у)}, который есть решение автоматного уравнения С О X = 5.

1 В выходной алфавит О композиции можно добавить символы из внутренних алфавитов и и V, но в данной работе без ограничения общности мы полагаем, что О = О1 и О2.

Решение So 7 автоматного уравнения CО X= S называется прогрессивным, если So7 полностью определенный автомат, и для любого слова а из языка Init(L(C))^/2) п Init(L(Sol))^/iuO[)n Init(IO) ft(uuf) существует продолжение в языке (Ь(€)\\пи02 П (L(So7)wI1u01 n (IO)* ft(uuf). Таким образом, решение So7 называется прогрессивным, если из каждого состояния полуавтомата ) n 5o7^(/iUO[)n (IO)* достижи-

мо финальное состояние, и в каждом финальном состоянии существует переход по каждому символу из алфавита I.

2. Алгоритм нахождения наибольшего прогрессивного решения

Постановка задачи. Даны полностью определенные автоматы C = (C, Ii u V, O1 u U, TC, c0) и S = (»Я Ii u O1 u O2, TS, s0) и разрешимое уравнение C О X = S. Необходимо найти наибольшую редукцию Prog(So7) наибольшего решения So7 уравнения, которая является прогрессивным решением. Если такой редукции не существует, то уравнение C О X = S не имеет прогрессивных решений. Если такая редукция существует, то Prog(So7) есть наибольшее прогрессивное решение уравнения.

Алгоритм 1. Построение наибольшего прогрессивного решения (если прогрессивные решения существуют)

Вход: Полностью определенное наибольшее решение So7 уравнения C О X = S.

Выход: Наибольшая полностью определенная редукция Prog(So7) наибольшего решения, которая является прогрессивным решением (если прогрессивные решения существуют).

1. Положим j: = 1 и P] = So 7.

2. Построим полуавтомат Rj ^ n uO[) n (IO)* fí(uuf) и положим R: = Rj .

3. Удалим в полуавтомате R все состояния (и переходы в эти состояния), в которых генерируется пустой язык. Если в полученном полуавтомате из каждого финального состояния есть переходы по всем внешним входным символам, то обозначаем полученный полуавтомат В] и Шаг 5. Иначе Шаг 4.

4) Удаляем из Вj финальные состояния (и переходы в эти состояния), из которых нет перехода хотя бы для одного внешнего входного символа. Если удаляется начальное состояние, то прогрессивного решения не существует, КОНЕЦ. Иначе обозначаем полученный полуавтомат R и Шаг 3.

5) Находим проекцию полуавтомата ((Init(C\^ O ) nInit(PJ)^(/iuOi) n Init(IO)* ft(uuf) )\Init (B i)) на

алфавиты решения и вычитаем ее из полуавтомата PJ . Полученный полуавтомат представим автоматом Pj+1. Если автоматы Pj+1 и Pj эквивалентны, то автомат Pj есть наибольшее прогрессивное решение, КОНЕЦ. Иначе в автомате Pj+1 итеративно удалим состояния (и переходы в эти состояния), из которых нет перехода хотя бы для одного входного символа. Если удаляется начальное состояние, то прогрессивного решения не существует, КОНЕЦ. Иначе увеличиваем j на 1, и Шаг 2.

Теорема 1. Автомат, построенный по алгоритму 1, является наибольшим прогрессивным решением. Доказательство. На Шаге 5 алгоритм заканчивает работу, если и только если из языка полуавтомата Pj не было удалено ни одной последовательности, т.е. PJ соответствует полностью определенному автомату, такому, что в полуавтомате C^t ) n P/iuO[) п (IO)* ^(ииv) отсутствуют состояния, из которых не

достижимо финальное состояние, и из каждого финального состояния есть переходы по всем внешним входным символам, т.е. PJ есть прогрессивное решение.

Покажем, что для любого j, j > 0, язык L каждого прогрессивного решения уравнения содержится в языке P+1 автомата Pj+1. По определению наибольшего решения, L с P1 = So7.

Предположим, что L с P для некоторого j > 1. Покажем, что L с P+1. Так как Le P , то R = Init(C)fí(/2UÜ2} n Init(L)fí(/iuO) n Init(IO)* ft(UuV) с Init(C)^} n Init(p)ft(/iuOi} n Ый(Ю)* ft(UuV).

Пусть = Init(С)fí(l2 ¡uO^) n Init(Pj )^(/i uO[ ^ n Init(IO)* ft(uuf). Ниже представлены соотношения, которые

показывают, что L n (Q1 \ Init(B1 ))^(/2 uV) = 0 . Мы пользуемся равенством

(Ll П L2) ^ и02) L¡ uFuO2) П L2 U(I2 uüuFuO2),

так как язык uOi) обладает свойством

)u(z2 uO2 uU uF) )fí(/j uO[) = uO)

и свойством (!П(Jiu01))U(/2u02uy) = L [1].

Таким образом,

Я с 1пЫ(В7') с 27' ^

Яп(2] \ЫН(В7')) = 0^

(1пЫ(с)^(/2 и02) п 1пЫи01 )) п (1пЫ(с)^(/2 и02) п 1пИ(рр )^(^ ) п 1пИ{10) ^иг)) п 1п^(В'/ ) = 0 ^

/ш?{£)П(/1 ^0) п ^{с)П(/2ио2) п /пг'г(р )П(/1 ио) п/пй(/0)*П(ииг)) п Ш{В) = 0 ^ ио) п 2 п 1п^{В^) = 0 ^

Ч/,ио) п (27' \ ^п^{В')) = 0.

Так как I с р7 , I п (б7 \ 1пИ(В7 ))и( 12 и02 ^) = 0 и р1+1 = р1 \(° \ 1пИ(В1 ))и(ии/2и02), то

£ с Р7+1. ■

Теорема 2. Алгоритм 1 сходится.

Доказательство. Доказательство основывается на том факте, что язык каждого финального состояния полуавтомата Я] можно представить как конечное число объединений конечного числа пересечений языков (и их дополнений) состояний полуавтомата Я1, т.е. количество попарно не эквивалентных автоматов, т.е. автоматов с попарно различными языками, которое может быть сгенерировано на Шаге 5 алгоритма, является конечным. Поскольку на каждой итерации язык полуавтомата /?+1 строго содержится в языке полуавтомата Я', то на некоторой итерации полуавтомат Р+1 будет эквивалентен полуавтомату Р , т.е. алгоритм сходится.

Для простоты изложения мы только демонстрируем вышеизложенный факт на примере полуавтомата Я2, т.е. показываем, что язык каждого финального состояния Я2 может быть представлен как конечное число объединений конечного числа пересечений языков (и их дополнений) состояний полуавтомата Я1.

Рассмотрим языки Я1 = СП(/2 и02) п р1П(/1 и01) и Я = сй(/2и02) п Р\(/1 и01), где (^, р\ Р2 есть соответственно языки полуавтоматов С, Р1, Р2. Пусть = 1тХ(С)^ и0,2 ^ п /иг?(Р1 ) п 1пИ(10) А(иик). Выразим Я2

через Я1:

о2 _ с ^ р2 —

Л СЙ(/2 и02) 1 р А(^иО^

_ СЙ(/2и02) 1 [Р \ 1п^(В ))и(/2иииГи02)]Й(/1и01) _

_ СЙ(/2 и02) 1 [Р 1 (в \ (В ))и(/2иииГи02) ]Й(/1и01) _

_ СЙ(/2 и02) 1 Р Й(/1 и01) 1 ((в \ 1пг'?(В ))и(/2иииГи02) )Й(/1 и01) _

_ о 1 1 ((в \ Ш(В1 ))и(/2 иииГи02) )П(/1и01) •

Заметим, что при построении Я2 мы вновь воспользовались равенством (Ь1 П Ь2) ^^и0[) =

= 11 П(I ^0) П^2 П(I ^0).

Рассмотрим конструктивные шаги, ведущие от языка Я1 к языку Я2:

• Язык (21 \ /иг?(В1)) есть язык полуавтомата М = (/иг?(С)^ иС,2 ^ п /иг?(Р1)^ и0[) п 1пЫ(Ю)* ^(ииг))

\ /иг? (В1), каждое финальное состояние которого представляет язык ¿(г1), который представлен состоянием г1 полуавтомата Я1.

• Язык (д1 \ 1пП(В1 ))и(/2и02) )й(/1и01) есть язык полуавтомата М^(ии/2 и02), каждое финальное состояние которого представляет язык ¿(г1) /2 и02 ) .

• Язык Я п ((2 \ ЫН (В ))^(/2 ио2) )й (/1 ^0) есть язык полуавтомата Я1 п (М^(и/2и02))^(/^).

Для того чтобы найти дополнение М^(ииГи/2 ^0 ^ , необходимо детерминизировать полуавтомат

^1 , , ,

М\\(и иу и 12 ио2). Каждое состояние т у = (дай е М | А е Hj с / } детерминированного полуавтомата будет представлять язык ¿(ту) = ПйеН1 = у1 ¿(т],)и(ии/2и02) = ПйеН1 = / Цг1 )и(ии/2и02) , где ^ = {1,-, \М},

М - множество состояний полуавтомата М^ц^ 1 и0 ). Кроме того, к полуавтомату добавляется безразличное состояние {^с}, которое представляет язык Ц{^с}), полученный дополнением объединения языков, представленных финальными состояниями детерминированного полуавтомата:

L({dc}) = U L(m) = П L(mj) = П П L(rh)ü(

(U UV U12 UO2 )

jeJ

jeJ

jeJ

heHj с J1

= П U L(rh )u,

(U uV u 12 UO2)

= U П L(rk )u,

jeJ

heHj с J1

KeKc 2*

j1 keK

(U uV u 12 UO2)

где У = {1,...,|м|} и М есть множество состояний детерминированного полуавтомата.

Полуавтомат М^(ииГи/2^0^ ^ получается из детерминированного полуавтомата переключением финаль-

2 .

ных и нефинальных состояний. Каждое финальное состояние г. = (г., т р) полуавтомата

Я2 = Я1 п и02 ^ /1и0[) представляет язык Ь(г2), который можно выразить в следующей форме:

если mp Ф {dc} , то

если mp = {dc}, то

Hr)) = L(rj) n П (L(rh )Ul

he H) = Jj

(U uV и Z2 uO2 y H( Zj uO)) ’

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

)fí(_

L(rj ) L{rj ) n [ y П L(rk )^(uuVu/2 uO2) Л(/ u0 )] U [L(r/ ) П П L(rk )U(UuVu/2 uO2) Л(/

-- - 2J1 *-K ( 1 0) keK=2J feK ( 1

uOl )J

KeK=2j

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

Рассмотрим уравнение CO X = S для автоматов, представленных на рис. 2, a и b. Автомат, соответствующий наибольшему прогрессивному решению So7, показан на рис. 2, с. Непосредственной проверкой нетрудно убедиться, что полностью определенная редукция наибольшего прогрессивного решения, показанная на рис. 2, f не является прогрессивным решением уравнения. Полуавтомат, соответствующий композиции наибольшего прогрессивного решения и контекста, показан на рис. 2, d; полуавтомат, соответствующий композиции контекста и полностью определенной редукции Red наибольшего прогрессивного решения, показан на рис. 2, е.

"/v2

"/v2

Рис. 2 Контекст C (a); спецификация S (b); наибольшее прогрессивное решение Sol (c); полуавтомат 1 uO ) n So/^ 1 wO^) (d); полностью определенная редукция Red наибольшего прогрессивного

решения, которая не является решением (e); полуавтомат C^ uO ) n Red^ f

e

Заключение

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

ЛИТЕРАТУРА

1. Yevtushenko N., Villa T., Brayton R.K., et al. Sequential synthesis by language equation solving // International Workshop on Logic Synthesis. June, 2000.

2. El-Fakih K., Yevtushenko N., Buffalov S., Bochmann G. V. Progressive solutions to a parallel automata equation // Theoretical Computer Science. October, 2006. P. 17 - 32.

3. Yevtushenko N., Villa T., Brayton R.K., et al. Compositionally Progressive Solutions of Synchronous FSM Equation // Discrete Event Dynamic Systems. January, 2008. P. 51 - 89.

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