Опубликован: 17.02.2011 | Уровень: специалист | Доступ: платный
Лекция 14:

Эксперименты по распознаванию неисправностей линейных автоматов

< Лекция 13 || Лекция 14: 12 || Лекция 15 >

Синтез тестов для нестационарных линейных автоматов

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

По аналогии со стационарными ЛА вначале рассмотрим метод синтеза тестов для синхронизируемых НЛА. Идея этого метода ничем не отличается от случая стационарного ЛА, и поэтому мы обозначим только некоторые его ключевые моменты.

Как и ранее, предполагается, что исправный и неисправный НЛА являются синхронизируемыми, однако длины минимальных СП для них не обязательно совпадают. Пусть k = max(k_1, k_2) , где k_1 и k_2 - длины минимальных СП для исправного НЛА \tilde A и неисправного НЛА \tilde {A_1} соответственно. Используя формулу (1.8) полной реакции НЛА и необходимое и достаточное условие (2.11) существования СП длины k+1, как и в случае стационарного ЛА приходим к выводу, что поиск искомой тестовой последовательности \bar u(0), \bar u(1), \dots, \bar u(k) для обнаружения заданной неисправности сводится к решению системы линейных алгебраических уравнений следующего вида

\sum_{i-0}^{k-1}[C(k)A(k-1) \dots A(i+1)B(i)-C_1(k)A_1(k-1) \dots A_1(i+1)B_1(i)] \bar u(i)+\\
+[D(k)-D_1(k)] \bar u(k)=y ( 14.18)

Здесь y - некоторый ненулевой вектор, а матрица, снабженная индексом "1", относится к неисправному НЛА.

Множество всех искомых тестов может быть получено путем решения СЛАУ (14.8) для всевозможных ненулевых правых ее частей. Поскольку этот способ требует рассмотрения множества СЛАУ, более эффективным является другой способ, основанный на поиске решения одной однородной СЛАУ, соответствующей неоднородной системе (14.8), с последующим построением с помощью "однородного" решения искомых "неоднородных".

Вообще говоря, может оказаться, что при рассматриваемом значении k система (14.8) не является совместной ни при каких правых частях. В этом случае увеличим k на единицу и будем строить новую систему вида (14.8). Этот процесс продолжается далее аналогичным образом до тех пор, пока либо не будет найдено множество всех тестов, либо величина k не достигнет верхней границы длины минимального теста. Такой границей, в частности, может служить верхняя оценка длины минимальной УП [67].

Проиллюстрируем предложенный метод на примере. Пусть n = l = m = 2 и НЛА над полем GF(2) задана следующими характеристическими матрицами:

A(0)=
\left [
\begin {matrix}
1&0\\
1&0
\end {matrix}
\right ],\\
A(1)=
\left [
\begin {matrix}
0&0\\
1&1
\end {matrix}
\right ], \\
A(2)=
\left [
\begin {matrix}
1&1\\
1&1
\end {matrix}
\right ],\\
A(i)=
\left [
\begin {matrix}
1&0\\
0&1
\end {matrix}
\right ], i= 3,4, \dots ;\\
B(0)=
\left [
\begin {matrix}
0&0\\
0&0
\end {matrix}
\right ],\\
B(1)=
\left [
\begin {matrix}
1&1\\
0&0
\end {matrix}
\right ], \\
B(2)=
\left [
\begin {matrix}
0&1\\
1&0
\end {matrix}
\right ], \\
B(i)=
\left [
\begin {matrix}
1&0\\
0&1
\end {matrix}
\right ], i=3,4, \dots ;\\
C(i)=D(i)=
\left [
\begin {matrix}
1&0\\
0&1
\end {matrix}
\right ], i=3,4, \dots.

Предположим, что неисправный НЛА задается следующими характеристическими матрицами:

A_1(0)=
\left [
\begin {matrix}
1&0\\
1&0
\end {matrix}
\right ],\\
A_1(1)=
\left [
\begin {matrix}
1&0\\
0&1
\end {matrix}
\right ],
A_1(2)=
\left [
\begin {matrix}
0&0\\
1&1
\end {matrix}
\right ],\\
A_1(i)=
\left [
\begin {matrix}
1&0\\
0&1
\end {matrix}
\right ], i= 3, 4, \dots ;\\
B_1(0)=
\left [
\begin {matrix}
0&\\
0&0
\end {matrix}
\right ],\\
B_1(1)=
\left [
\begin {matrix}
1&0\\
0&1
\end {matrix}
\right ],\\
B_1(2)=
\left [
\begin {matrix}
0&1\\
1&0
\end {matrix}
\right ],\\
B_1(i)=
\left [
\begin {matrix}
1&0\\
0&0
\end {matrix}
\right ], i=3,4, \dots ;\\
C_1(i)=D_1(i)=
\left [
\begin {matrix}
1&0\\
0&1
\end {matrix}
\right ], i=3,4,\dots.

Вычисления показывают, что A(1)A(0)=[0] и A_1(2)A_1(1)A_1(0)=[0].

Следовательно, как исправный, так и неисправный НЛА синхронизируемы и длины СП для них равны 2 и 3 соответственно. Исходя из этого, начнем построение тестов длины k = 4. Итак, вначале в качестве кандидата в тесты рассмотрим входную последовательность \bar u(0), \bar u(1), \bar u(2), \bar u(3). Выпишем реакции на эту последовательность исправного и неисправного НЛА:

\bar y(3)=C(3)A(2)A(1)A(0)\bar s(0)+C(3)A(2)A(1)B(0)\bar u(0)+C(3)A(2)B(1)\bar u(1)+C(3)B(2)\bar u(2)+D(3)\bar u(3),\\
\bar {y_1}=C_1(3)A_1(2)A_1(1)A_1(0)s(0)+C_1(3)A_1(2)A_1(1)B_1(0)\bar u(0)+\\
+C_1(3)A_1(2)B_1(1)\bar u(1)+C_1(3)B_1(2) \bar u(2)+D_1(3)\bar u(3)

Выполнив соответствующие вычисления в координатной форме с учетом того, что все операции выполняются по модулю 2, получим следующие результаты:

\bar y(3)=
\left [
\begin {matrix}
u_1(1)+u_2(1)+u_1(3)+u_2(2)\\
u_1(1)+u_2(1)+u_1(2)+u_2(3)
\end {matrix}
\right ],\\
y_1(3)=
\left [
\begin {matrix}
u_2(2)+u_1(3)\\
u_1(1)+u_2(1)+u_1(2)+u_2(3)
\end {matrix}
\right ]

Используя эти векторы, построим однородную систему, соответствующую системе (14.8):

\bar y(3)+\bar {y_1}=
\left [
\begin {matrix}
u_1(1)+u_2(1)\\
0
\end {matrix}
\right ]=
\left [
\begin {matrix}
0\\
0
\end {matrix}
\right]

Ее решениями являются все четверки векторов \bar u(0), \bar u(1), \bar u(2), \bar u(3), у которых u_1(1)=u_2(1) Отсюда следует, что искомое множество тестов составляет такие же четверки векторов, но для которых справедливо условие u_1(1) \ne u_2(1) Легко подсчитать, что всего таких векторов 128 штук.

Предложенный метод предполагает сохранение свойства синхронизируемости у неисправного НЛА, если исправный НЛА был синхронизируем. Понятно, что это не всегда выполняется. В связи с этим рассмотрим метод синтеза тестов, ориентированный на произвольные минимальные НЛА. Этот метод есть прямой аналог метода распознавания автоматов, принадлежащих исключительному классу, описанному в [18].

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

Для исправного НЛА A построим минимальную УП \bar {u_1}, которая существует в силу минимальности НЛА, и подадим ее на предъявленный для эксперимента экземпляр автомата. Естественно, что экспериментатору неизвестно, является ли этот автомат исправным или неисправным. По наблюдаемой реакции найдем конечное состояние \bar {s_f}(\tilde A), в котором должен оказаться испытываемый автомат, если бы он был исправным.

Далее построим УП \bar {u_2} для неисправного НЛА \tilde {A_1} и подадим ее на предъявленный для эксперимента экземпляр автомата. По наблюдаемой реакции найдем конечное состояние \bar {s_1}(\tilde {A_1}), в котором должен оказаться испытываемый автомат, если бы он был неисправным. Предполагается, что НЛА \tilde {A_1} представлен своей минимальной формой и потому УП для него существует.

Напомним, что в силу теоремы 2.2 если НЛА имеет хотя бы одну УП длины k, то все другие входные последовательности длины k и более также являются для этого НЛА установочными. Это свойство позволяет "наложить" друг на друга УП \bar {u_1} и \bar {u_1} и тем самым сократить длину последовательности, осуществляющей установку НЛА \tilde A и \tilde {A_1}. В самом деле, если выбрать произвольную входную последовательность \bar u длины k = \max(k_1, k_2) , где k_1 (k_2) есть длина минимальной УП для автомата \tilde A(\tilde {A_1}), то эта последовательность будет устанавливать в известное экспериментатору состояние как автомат \tilde A так и автомат \tilde {A_1}.

Для обнаружения неисправности теперь осталось ответить на вопрос, является ли испытываемый автомат автоматом \tilde A в состоянии \bar {s_1}(\tilde A) либо автоматом \tilde {A_1} в состоянии \bar {s_f}(\tilde {A_1}). Для ответа на этот вопрос подадим на вход испытываемого автомата входную последовательность, построенную на основе метода различающей функции. Синтез этой последовательности осуществим в виде пошагового процесса, делая попытки найти сначала последовательности длины 1, затем длины 2 и т. д. С этой целью сначала выпишем реакции автоматов \tilde A и \tilde {A_1} с начальными состояниями \bar {s_f}(\tilde A) и \bar {s_f}(\tilde {A_1}) на входную последовательность \bar u(0) длины 1:

\bar y(0)=C(0) \bar {s_f}(\tilde A)+D(0) \bar u(0),\\
y_1(0)C_1(0) \bar {s_f}(\tilde {A_1})+D_1(0) \bar u(0)

Теперь сформируем выражение (различающую функцию):

\bar y(0)-\bar {y_1}(0)= \bar b

где \bar b - некоторый произвольный ненулевой вектор. Это выражение будем интерпретировать как СЛАУ относительно координат \bar u(0). Решая эту систему при всевозможных ненулевых правых частях, найдем все различающие последовательности длины 1. Если эта система окажется несовместной, сформируем очередную систему

\bar y(1)-\bar {y_1}(1)=\bar b

и ищем ее решение. Указанный процесс продолжается далее аналогичным образом до тех пор, пока не будет найдена различающая последовательность. Этот процесс заведомо конечен, поскольку неисправности в НЛА предполагаются существенными, т. е. проявляющими себя в процессе функционирования. Кстати, вывод о конечности процесса построения различающей последовательности следует также и из того факта, что упомянутая последовательность есть не что иное, как ДП минимального автомата для двух допустимых начальных состояний. Такая диагностическая задача, как известно [18], всегда разрешима.

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

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

В разделе 2.3 лекции 2 было показано, что в общем случае длина минимальной УП для НЛА не ограничена сверху. Поэтому рассмотрим периодические НЛА, у которых длина УП, а следовательно, и теста, заведомо конечна.

В том же разделе 2.3 было установлено, что для периодического НЛА длина УП не превосходит \lambda n где \lambda - период главной характеристической матрицы A НЛА \tilde A, n - ее размерность. Что касается второй части теста, то ее можно рассматривать как ДП и поэтому длина ее не превосходит n. Таким образом, общая длина теста, построенного таким методом, не превышает величины \lambda n+n = (\lambda +1)n.

Сравним эту оценку с соответствующей верхней оценкой длины теста для произвольного автомата, не являющегося НЛА. Как показано в [18] , верхняя оценка длины теста в этом случае такова:

\nu \le (2q-1)^2 = O(q^2).

Здесь q - число состояний автомата. Поскольку для НЛА q = p^n, в терминах параметра q оценка длины теста для НЛА не превышает (\lambda+1)\log_pq, что значительно ниже О(q^2) .

Вопросы и упражнения

  1. Дайте определение теста, обнаруживающего заданную неисправность в ЛА.
  2. Сформулируйте определение конечной памяти глубины \mu линейного автомата и µ-определенного автомата.
  3. Приведите постановку задачи построения теста, обнаруживающего заданную неисправность.
  4. К какой математической задаче сводится задача построения теста?
  5. Опишите метод построения теста для \mu -определенного и синхронизируемого линейного автомата.
  6. Опишите метод построения теста для произвольных стационарных линейных автоматов.
  7. Чем от предыдущего метода отличается метод построения теста для нестационарных линейных автоматов?
  8. Как длина минимального теста для ЛА связана с глубиной его памяти?
  9. Для примера ЛА из раздела 2.1 лекции 2 постройте тест для обнаружения неисправности, отличающейся от заданной в разделе 2.1 тем, что вторая (единичная) строка в главной матрице неисправного ЛА заменена нулевой строкой.
< Лекция 13 || Лекция 14: 12 || Лекция 15 >
Дмитрий Степаненко
Дмитрий Степаненко
Россия
Юрий Фролов
Юрий Фролов
Украина