Определение формальной грамматики.
Пусть задано конечное множество символов A, называемое алфавитом.
Конечные последовательности символов называют словами в данном алфавите.
Алфавит состоит из множеств нетерминальных символов <T> и терминальных
{a1, …, an, …}. Один из нетерминальных символов называется начальным;
Заданы правила вывода, обозначаемые, например, как
<S> := w
где K - некоторый нетерминальный символ, а w - слово (в него могут входить
и терминальные, и нетерминальные символы). Эта запись означает, что вместо
символа S может быть подставлено слово w, например, если S встречается в составе
слова
xSy,
то применение правила вывода трансформирует это слово в следующее:
xwy. В этом случае говорят, что грамматика порождает слово xwy. (Такие грамматики
называются контекстно-свободными, это означает, что правило подстановки может
применяться к любому символу независмо от контекста окружающих символов.)
Пример.
<S> := a<S>
порождает слова вида:
a, aa, aaa, …
Множество всех слов, порождаемых грамматикой, называем языком,
порождаемым грамматикой.
Говорят, что грамматика распознает слово w если это слово содержится среди
множества цепочек, порождаемых грамматикой (т.е. это слово принадлежит языку
L)
Мы будем рассматривать случай, когда слова алфавита представляют события реального
мира.
Например, в гипермаркете происходит событие a = "покупателю плохо со сердцем". Грамматика "реакция на события" генерирует событие типа "действие", например, "вызвать скорую" или "оказать первую помощь".
<S>:= a< реакция на события >
< реакция на события >:= <ничего не делать>| < оказать первую
помощь > | < вызвать "Скорую помощь">
Эта грамматика распознает лишь одно событие a = "покупателю
плохо со здоровьем".
Легкая модификация с помощью добавления правил типа
<S>:= a1 < реакция на события 1 > | a2 < реакция
на события 2 > |…| an < реакция на события n >
< реакция на события 2 > := <вызвать пожарную команду>
< реакция на события n > := <действие n>
создает новую грамматику, распознающую несколько критических ситуаций и генерирующую множество ответных действий.
Если мы умеем генерировать цепочку событий, которые привели
к негативным последствиям, то мы можем по наблюдаемой цепочке решить, приводят
ли они к негативным последствиям.
Постоянный адрес статьи в Интернет: http://www.ispl.ru/Modelirovanie_incidentov_v_slozhnyh_organizacionno-tehnicheskih_sistemah-2.html
Ключевые слова: грамматики, формальные грамматики, алфавит, терминальный символ, нетерминальный символ, контекстно-свободные грамматики, язык
Управление на основе событий
Главная
(C) Е.Крылов