ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ
ТЕХНИКА
УДК 007:519.816
В. В. Девятков, И. М. Сидякин
МУЛЬТИАГЕНТНАЯ СИСТЕМА АНАЛИЗА ТЕЛЕМЕТРИЧЕСКОЙ ИНФОРМАЦИИ
Рассмотрены теоретические и прикладные аспекты создания мультиагентной системы анализа телеметрической информации, включающие задачи анализа, принципы формирования и использования онтологий для ответа на запросы, а также мультиагентная архитектура программной системы, позволяющей осуществлять распределенный анализ телеметрической информации. Приведены иллюстративные примеры.
В последние годы все большую популярность получают датчико-вые сети [1] в самых различных областях применения, например, в городском хозяйстве, экологии, строительстве, интеллектуальных зданиях и т. п. В развитых странах ведутся интенсивные исследования датчиковых сетей [2]. Беспроводные датчики становятся все дешевле, что позволяет расставлять их в самых экзотических местах и в большом количестве. Число датчиков может достигать нескольких тысяч [3]. Датчики становятся интеллектуальнее. Области применения таких датчиков расширяются от таких традиционных, как анализ освещенности, температуры, движения, контроль доступа на объекты, до весьма экзотических, например контроль состояния мобильного телефона, автомобиля, личного кошелька с деньгами, наблюдения за детьми на детской площадке или за поведением собак. Обработка распределенной информации с удаленных датчиков может быть централизованной, децентрализованной или комбинированной. При большом числе датчиков централизованная обработка становится слишком трудоемкой, поэтому предпочтительнее децентрализованная и комбинированная обработка информации.
Данные, снимаемые с датчиков, образуют поток данных, называемых обычно в русскоязычных источниках телеметрическими. Такие применения датчиковых сетей, как мониторинг, слежение или наблюдение, требуют постоянного анализа непрерывно поступающих телеметрических данных, с целью ответить на запросы относительно ситуаций, возникающих в среде, охваченной датчиковой сетью.
Приведем примеры таких запросов.
1. Некоторая территория городской застройки охвачена датчико-вой сетью, предназначенной для измерения уровня дождевых осадков. Среди датчиков сети имеются датчики, измеряющие скорость ветра (скорость движения дождевых облаков), направление ветра и степень загрязнения. Запросы пользователей касаются области загрязнения, которую создают дождевые осадки. Пользователя интересует, какая область в пределах территории, охваченной датчиками, была загрязнена за определенное время.
2. Движущиеся объекты фиксируются множеством видеокамер. Каждый объект однозначно идентифицируется различными видеокамерами. Запросы пользователей касаются скорости движения отдельных объектов за определенное время или разницы скоростей одних объектов по отношению к другим.
Анализ телеметрической информации осуществляется агентами. Агенты могут находиться в различных узлах сети и общаться друг с другом: собирать, передавать и обрабатывать телеметрическую информацию. Они также обслуживают различных потребителей, которые обращаются к ним с запросами с целью получить сведения о среде, где расположены датчики. Иными словами, запрос пользователя требует ответа, характеризующего ситуацию, в которой находится среда. Под ситуацией здесь понимается некоторое выводимое (устанавливаемое) в процессе анализа телеметрической информации свойство среды в определенное время или в определенном месте. Знания, на основе которых формируются ответы на запросы, называются онтологией [4]. Далее рассматриваются структура телеметрической информации (ТМИ), поступающей на вход мультиагентной системы анализа, задачи анализа ТМИ, принципы формирования и использования онтологий для ответа на запросы, касающиеся ТМИ, иллюстративные примеры, мультиагентная архитектура программной системы, позволяющей осуществлять распределенный анализ ТМИ на основе разработанных принципов.
Постановка задачи анализа телеметрической информации.
Введем несколько понятий. Показания (данные), снимаемые с ¿-го датчика уг, г = 1,...,т, в некоторый момент времени t назовем отсчетом у(). Последовательность п+1 отсчетов 0,£п] = (Уг(^о), уг(£ 1), Уг(^2), ..., Уг(Ъп)}, снимаемых с одного датчика в течение нескольких подряд идущих моментов времени £0, Ь1, £2, ..., £п (в течение временного интервала [£0,£п]) назовем сигналом. Множество отсчетов К(£) = |у1(^), у2(£),... ,ут(£)}, снимаемых одновременно с т датчиков в момент времени £ назовем кадром. Последовательность кадров К(£0), К(£1),... ,К(£п), снимаемых с т датчиков в течение нескольких подряд идущих моментов времени £0, £1, £2, ..., £п ( в течение
временного интервала [Ь0,Ьп]) назовем потоком кадров. Совокупность п+1 сигналов У1[Ь0, Ьп], У2[Ь0,Ьп],..., Уп[Ь0,Ьп], относящихся к одному временному интервалу [Ь0,Ьп] назовем потоком сигналов. В реальных системах, вследствие необходимости экономить время и память, выполнять анализ в реальном масштабе времени, удовлетворять ограниченной пропускной способности каналов передачи данных, число отсчетов в кадрах может быть меньше числа опрашиваемых датчиков. В этом случае приходится иметь дело не с одним потоком кадров и сигналов, а с несколькими. Для простоты рассмотрения основных принципов, излагаемых в настоящей статье, положим, что мы имеем дело с одним потоком кадров и соответствующим ему одним потоком сигналов.
Сопоставим каждый отсчет у: (Ьг) одного и того же сигнала с состоянием Ь: (Ьг) конечного автомата Mj. Введем функцию выходов р конечного автомата М:
р(ь:1 (и)) = Уj (и).
Введем также функцию переходов автомата М:
/(Ь:(и), (и+г)) = Ь:(и+1).
Таким образом, каждый отсчет является значением функции выхода у:(Ь) = р(Ь::(Ь)) автомата М:, каждый сигнал является последовательностью значений функций выхода у: (Ь) = (у: (ь0),уу:: (Ь1),...,у: (Ьп)) одного и того же автомата М), каждый кадр является набором у(Ь) = = (у1(Ь) ,...,ут(Ь)) значений функций выхода различных автоматов М1,М2,...,Мт, поток сигналов представляется набором последовательностей значений функций выхода у1 (Ь),у2(Ь),...,ут(Ь) соответственно конечных автоматов М1,М2,...,Мт, поток кадров — последовательностью кадров у(Ь0),у(Ь1),... ,у(Ьп). Поскольку значение функции выхода уу: (Ь) однозначно определяется функцией выхода у:(Ь) = р(Ь:(Ь)), то наряду с введенными обозначениями будем также использовать следующие:
последовательность состояний Ь::(Ь) = (Ь::(Ь0),Ь::(Ь1),...,Ь::(Ьп)) автомата М:, соответствующую сигналу;
макросостояние Ь(Ь) = (Ь1(Ь),...,Ьт(Ь)) автоматов М1 ,М2,... ...,Мт, соответствующее кадру;
множество последовательностей состояний Ь1(Ь),Ь2(Ь),...,Ьт(Ь) автоматов М1 ,М2,...,Мт, соответствующих потоку сигналов;
последовательность макросостояний Ь(Ь0),Ь(Ь1),...,Ь(Ьп) автоматов М1,М2,...,Мт, соответствующую потоку кадров.
Нас интересует решение следующих задач анализа сигналов, кадров, потоков сигналов и кадров: распознавание потоков, выявление их характерных свойств; проверка свойств правильного поведения агентов, анализирующих потоки; эквивалентные преобразования потоков.
Исходными данными для решения этих задач являются потоки сигналов и кадров (отдельный сигнал или кадр рассматривается как частный случай соответствующих потоков), представляемые автоматами М1 ,М2, ...,Мт, потоки и агенты, обрабатывающие эти потоки. В дальнейшем, говоря о потоках, будем иметь в виду также представляющие их автоматы, не повторяя это каждый раз. Задачами агентов являются следующие.
Распознавание потоков осуществляется путем сравнения по определенным критериям потоков с эталонными потоками, которые заранее сформированы.
Выявление характерных свойств потоков осуществляется путем формального вывода (доказательства) наличия определенных отношений на потоках. В настоящей статье не рассматриваются процедуры вывода, а приводятся только принципы формирования онтологий и формулировки запросов на выявление характерных свойств потоков.
Проверка свойств правильного поведения агентов. При формулировке свойств правильного поведения объектов используются те же принципы, что и при формулировке характерных свойств потоков. Каждый из агентов является процессом, имеющим дело с потоками и другими агентами. Процессы выполняются параллельно или квази-параллельно и должны удовлетворять определенным свойствам правильного поведения. Проверка свойств правильного поведения осуществляется путем формального доказательства наличия этих свойств. В настоящей статье приведены наиболее типичные формулировки свойств правильного поведения, образующих элементы онтологий.
Эквивалентные преобразования потоков состоят в минимизации, композиции и кодировании состояний автоматов, представляющих собой потоки М1 ,М2, ...,Мт. Эти преобразования не рассматриваются в настоящей статье. Основой этих преобразований может служить метод, изложенный в работе [4].
Распознавание потоков. Представим автомат М сигнала его графом переходов (рис. 1). Каждая вершина графа помечена символом Ьг, г = 0,1,..., 12 (вершины обозначены кружками). Каждая пара соседних вершин 6г,6г+1, г = 0,1,2,..., 11, соединена дугой, направленной от вершины г к вершине г + 1. Дуги, направленные от вершины г к вершине г + 1, помечены символом в алфавите Т = {£0,£1, £2,£3,...,£т-1}. Если выписать обозначения
ta 't h t3 и U U h U h ' 10 Рис. 1. Граф переходов сигнала
всех дуг слева направо, то получим последовательность символов ¿0^1 ¿2^4¿5^7¿в^э^ю^и- Эта последовательность может рассматриваться как слово или предложение некоторого языка Ь = Ь(й), порождаемого автоматной грамматикой й = { V, Т, Р, Б = 60}, V = {Ь1,Ь2, 6з,64,
65,66, 67,68,69, Ь10,Ь11 ,Ь12}, Т={^0,^1,^2,^3, ¿9,^10,^11 ,^12},
Р = {60 ^ ¿1&1, &1 ^ ¿262, 62 ^ ¿зЬз, 63 ^ ¿464, 64 ^ ¿5^5, 65 ^ ¿66б, Ьб ^ ¿767, 67 ^ ¿8^ ¿969, 69 ^ ¿10610, 610 ^ ¿11611, 611 ^ ¿12612}.
Для того чтобы перейти к представлению текущих и общих свойств сигналов, построим по четкой грамматике С нечеткую грамматику, базируясь на следующих принципах.
Каждой дуге графа соответствуют две инцидентные вершины 6^ и 6г+1 = 6^ (рис.2). Координатами вершины 6^ являются ^ и <(6^)) = = Уг(и), а координатами вершины 6^ — и <(6^(¿^)) = у3(¿^). Допустим, что координаты обеих вершин вследствие погрешности измерений или каких-либо других причин могут отклоняться по оси У в пределах областей, приведенных на рис. 2 с шагами соответственно . Такое допущение означает, что вместо одной вершины 6^ с координа-
Рис. 2. Функции принадлежности вершин синтаксического графа
60 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. "Приборостроение". 2005. № 4
тами Ьг, уг будем иметь множество вершин Ьгг € В (Ьг) с координатами, изменяющимися в пределах области у+ — у-, причем мощность множества В (Ьг) будет
(у+ — у—
v =
Sy
Вместо одной вершины Ь: с координатами Ь:, у: при тех же отклонениях значений параметров и тех же значениях 8У будем иметь множество вершин Ь3: € В (Ь:) с координатами, изменяющимися в пределах области у+ — у-. В результате вместо одной дуги Ь:, ведущей из вершины Ьг в вершину Ь:, будем иметь множество дуг Ь: € Т(Ь:) = {(Ьгг,Ьз:)\Ьгг € В(Ьг), Ь3: € В(Ь:)} и соединяющих каждую вершину множества В (Ьг) с каждой вершиной множества
В(Ь:).
Зададим две треугольные функции принадлежностей цг(у), ц:(у), которые заданы на универсуме У тройками значений соответственно в точках {у—,уг,у+}, {у-,у:,у+} (см. рис.2). Каждая из этих функций определяется следующим выражением:
vb) = <
У _--еслиук^ у^ ук,
к — У к Ук — У к
—y У+ +
+-+ —> если ук < у < yj.
{ У+ — Ук У+ — Ук
Здесь к = 1,]. Эти функции определяют меру близости координат вершин графа к "наилучшим координатам", которым соответствует значение функций принадлежности, равное 1.
Будем полагать, что функция принадлежности каждой дуги Ь: € Т(Ь:), инцидентной вершинам Ьгг € В (Ьг) и Ь8: € В (Ь:), определяется следующим образом:
Цт(ь3)(Ь1:) = mm{цl(yrг), ц:(у8:)}.
Нечеткая грамматика йр = {У,Тр,Рр,Бр} получается из четкой грамматики й = {У,Т,Р, Б} следующим образом:
Тр = и Т (Ь:).
:
Единственный начальный нетерминальный символ четкой грамматики заменяется множеством начальных нетерминальных символов:
Бр = В (Ь0).
Множество правил Рр нечеткой грамматики йр будет следующим:
Рр = {6гг ^ ¿13 6у, ^(6)гг ^ ¿¡3 6у = ^{^(¿Ц), ¿¡3 € Т (¿у),
= 1,...,п I < V}.
Нечеткая автоматная грамматика Ср порождает нечеткий язык
Ь(Ср) = {Г|Г = ¿11 ,¿12,...,¿^¿3 € т(¿3), I < V},
) = )(ПА*1 =
= ¿^¿^...^¿у € т&), »ь{аР)(1*) = тт (^¿гз)}.
С учетом введенных понятий распознавание по эталонным сигналам может быть организовано следующим образом. Для каждого эталонного сигнала осуществляется построение эталонной нечеткой грамматики. Грамматик будет столько, сколько имеется эталонных сигналов. Если ограничиться синтаксическим уровнем распознавания по нечетким эталонным грамматикам, то процесс распознавания сигнала состоит в следующем.
1. Выбирается один из эталонных сигналов (точнее, соответствующая ему нечеткая эталонная грамматика).
2. Распознаваемый сигнал обрабатывается с теми же шагами дискретизации, что и выбранный эталонный.
3. Осуществляется синтаксический разбор распознаваемого сигнала с помощью нечеткой эталонной грамматики выбранного эталонного сигнала.
4. Если синтаксический разбор оказывается безуспешным, то выбирается следующий эталонный сигнал из числа нерассмотренных сигналов и все повторяется с п. 2.
5. Если синтаксический разбор оказался успешным, то вычисляется функция принадлежности разобранного распознаваемого сигнала и запоминается.
6. Если еще не все эталонные сигналы рассмотрены, то выбирается следующий эталонный сигнал из их числа и все повторяется с п. 2.
7. Если нерассмотренных эталонных сигналов не осталось, и не было ни одного успешного синтаксического разбора, то распознавание сигнала заканчивается неудачей (сигнал не был распознан).
8. Если были удачные синтаксические разборы, то распознавание закончилось успешно, и распознаваемый сигнал относится к классу того эталонного сигнала, при разборе которого с помощью грамматики функция принадлежности распознанного сигнала оказалась максимальной.
Известно [3], что правила любой грамматики легко представить правилами адекватного исчисления. Первоначальное построение грамматики является удобной формой хорошо формализуемого способа перехода от графического представления эталонных сигналов к описанию эталонных онтологий в нечетком исчислении. В случае автоматных грамматик легко организовать вывод на основе вычисления с помощью эталонных автоматов.
Свойства потоков. Характерные свойства могут выявляться для сигналов, потоков сигналов, кадров и потоков кадров. Рассмотрим наиболее типичные свойства для потока сигналов, представляемого множеством автоматов М1 ,М2,...,Мт. О процедуре выявления характерных свойств речь пойдет ниже. А пока рассмотрим логическую формулировку наиболее типичных из этих свойств.
Инвариантные свойства. Свойства, которые всегда должны выполняться для потока сигналов, называются инвариантными свойствами. Они выражаются модальной формулой вида
1Ь Пт,
которая означает, что формула т должна быть всегда истинна для потока сигналов, определяемого начальными условиями этой формулы.
Корректное завершение. Это свойство имеет значение только для автоматов М:, ] = 1, 2,...,т, каждый из которых содержит терминальное состояние (состояние, из которого не выходит ни одна дуга). Такие автоматы назовем терминальными в отличие от нетерминальных автоматов, которые не содержат терминальных состояний. Пусть Ь(Ь) = {Ь:1(Ь),...,Ь:к(Ь)} — множество состояний различных терминальных автоматов {М:1 ,...,М:к} С {М1 ,М2,...,Мт}, называемое начальным внутренним макросостоянием; у:(Ь) = ((Ь:(Ь)), у(Ь) = {у:1 (Ь),...,уу:к(Ь)}, в(Ь(Ь)) — предикат, принимающий истинное значение, когда автоматы находятся в макросостоянии Ь(Ь), ф(х(Ь)) — отношение на множестве переменных х, не являющихся отсчетами, (р(х(Ь), у(Ь)) —утверждение о частичной корректности, т.е. отношение, которое должно установиться между множеством переменных х(Ь) и выходным макросостоянием у(Ь) = (у:1(Ь),...,у:к(Ь)). Используя введенные обозначения, свойство частичной корректности записывается следующим образом:
1Ь (в(Ь(и)) Л ф(х(Ь0))) Э П(в(Ь(Ье)) Э (р(х(Ье), у(Ье))).
Эта формула означает, что если выполняется предусловие в(Ь(Ь0))Л Лф(х(Ь0)) в начальном состоянии Ь(Ь0), то в терминальном макросостоянии Ь(Ье), достижимом из начального состояния Ь(Ь0), имеет место ((х(Ье), у(Ье)). Например, это может быть равенство х(Ье) = у(Ье).
Чистое поведение. Свойство чистого поведения обусловливает выполнение определенных условий — (ж^г), у^)), если г пробегает множество значений г € I С{1, 2,...,Т}. Используя введенные обозначения, свойство чистого поведения записывается следующим образом:
1Ь ^(¿0)) Л Ф(ж^))) Э □ Л (в(6&)) Э -(»(¿г), у (¿г)))-
Например, с помощью свойства чистого поведения можно указать, что значения у3 (¿г) не должны превосходить определенный порог, иметь общий делитель и т.п
Глобальная инвариантность. Очень часто некоторые инвариантные свойства не зависят от какого-либо конкретного внутреннего состояния или макросостояния. Свойство глобальной инвариантности в общем виде выглядит следующим образом:
^□^(¿)) Э □^(»(¿), у(^).
т.е. всегда, когда имеетместо ф(ж^)), имеет также место и <(ж^), y(¿)).
Сигнальное взаимное исключение. Понятие сигнального взаимного исключения связано с понятием сигнальной критической секции. Напомним суть этого понятия применительно к предмету нашего рассмотрения. Как уже говорилось, каждый отсчет является значением функции выхода у3 (¿) = <(63 (¿)) автомата М3, каждый сигнал является последовательностью значений функций выхода у3(¿) = (у3(¿0),у3(¿1),...,у3(¿е)) одного и того же автомата М3. Рассмотрим любую пару автоматов {Мг, М* } С {М1 ,М2,...,Мт}. Пусть автоматы Мг , М* достигли одновременно состояний 6г (¿) ,6^ (¿). Назовем последовательности состояний ДБг = (6г(¿),...,6г^ + г)) и ДБ* = (6*(¿),...,6^ + в)) взаимно исключающими, если какие-либо условия не должны выполняться, когда автоматы находятся в каких-либо состояниях этих последовательностей. Обозначим п(ДБ3) условие, которое истинно, если автомат М3 находится в одном из состояний последовательности . Тогда свойство сигнального взаимного исключения ДБг и ДБ* может быть представлено следующим образом:
1Ь 8(6^)) Э □ 1 (п(ДБг) Л п(ДБ*)) Л ¿ > ¿0.
Иначе его можно переписать следующим образом:
1Ь 8(6^)) Э □-[(в(6г(^)) V ... V 8(6г(¿ + г))) Л ^(6*(¿)) V ...
... V 8(6* (¿ + г)))] Л ¿ > ¿0.
Кадровое взаимное исключение. Каждый кадр — это набор у(Ь) = = (у1(Ь),...,ут(Ь)) значений функций выхода различных автоматов М1,М2,...,Мт, определенный на внутреннем макросостоянии Ь(Ь), т.е. у(Ь) = (р(Ь(Ь)). Поток кадров является последовательностью кадров. Назовем последовательности макросостояний БК] = = (Ь](Ь1),...,Ь(Ь1 + г)) и БКк = (Ьк(Ь2),...,Ьк(Ь2 + в)), где {(Ь1 + г) — Ь1 }П{(Ьь2 + в) — Ь2} = 0, взаимно исключающими, если какие-либо условия не должны выполняться, когда автоматы находятся во внутренних макросостояниях этих последовательностей. Обозначим п (ОК:) условие, которое истинно, если автоматы М1 ,М2 ,...,Мт находятся в одном из макросостояний последовательности ОК:. Тогда свойство кадрового взаимного исключения может быть представлено следующим образом:
1Ь в^и)) Э П-[п (Ь] (Ь1),...,Ь] (Ь1 + г)) Л п (Ьк (Ь2),...
...,Ьк (Ь2 + 8))] Л (Ь1 + Г <Ь2).
Свойства осуществимости. Эта категория свойств выражается общей формулой
т1 Э ♦т2,
означающей, что если формула т1 для некоторого потока сигналов или кадров в какой-то момент времени станет истинной, то т2 должна, в конце концов, также стать истинной. В отличие от свойств инвариантности, которые описывают только сохранение определенных свойств, свойства осуществимости говорят о том, что некоторые события, в конце концов, должны осуществиться. Эта формула в определенном смысле задает цель т2, которая обязательно должна быть достигнута после истечения некоторого, в общем случае, неизвестного времени.
Абсолютная корректность. Это свойство похоже на свойство корректного завершения и имеет смысл только для терминальных автоматов. Абсолютная корректность выражается следующим образом:
1Ь НЦи)) Л (р(х(Ь0), у(Ь0))] э ОвЦЬе)) Э (р(х(Ье), у(Ье))],
Это означает, что если имеется поток, для которого в момент времени Ь0 имеет место истинность вф^)) Л (р(х(Ь0), у(Ь0)), то позднее обязательно наступит время Ье, когда все автоматы окажутся в терминальных состояниях и будет иметь место отношение ((х(Ье), у(Ье)) (будет истинна формула ((х(Ье), у(Ье))).
Например, если в момент времени Ь0 среднее значение всех функций выхода (отсчетов), входящих в у(Ь0), не более определенной величины, то в конце концов в момент времени Ье оно станет равным
среднему значению отсчетов в момент времени ¿е, а все автоматы окажутся в терминальных состояниях.
Гарантированное осуществление. Свойства осуществимости позволяют выразить причинно-следственную связь между любыми двумя событиями, возникающими в потоках сигналов или кадров, а не только между их началом и окончанием. Такая возможность особенно существенна, когда потоки являются циклическими. Общий вид формулы, выражающей свойство гарантированного осуществления, следующий:
1Ь (^(¿)) Л ^(¿), у^))) Э 0[в(6(¿'')) Л <(у(0, »(¿')) Л ¿' > ¿].
Свойства предшествования. Третий класс рассматриваемых свойств составляют свойства, которые называются свойствами предшествования и выражаются с помощью оператора U ("до тех пор, пока") и дополнительного оператора предшествования P ("предшествует"), который можно рассматривать как частный случай оператора ^ В простейшем случае свойства предшествования описываются следующим выражением:
Это выражение означает, что для потока сигналов или кадров в будущем наступит такое время, когда формула станет истинной, причем до этого времени формула была ложной, а была истинной и перестанет быть таковой с наступлением этого времени.
Для оператора предшествования P выражение эквивалентно
выражению — (—Цш2). Из определения оператора U следует смысл оператора P: не может быть такой ситуации, когда формула была ложной и стала истинной, а формула —была до этого истинной (т.е. была ложной) и стала ложной после этого. Это означает, что если когда-либо станет истинной, то это произойдет не раньше, чем истинной станет . Выражение Pw2 читается как предшествует
Рассмотрим некоторые из свойств предшествования, использующих операторы U и P.
Безопасность. Свойство безопасности, использующее оператор ^ является уточнением свойства гарантированного осуществления:
1Ь (^(¿)) Л ^(¿), y(¿))) Э 0[в(6(¿'')) Л <(у(^), ж(0) Л ¿' > ¿],
используемого, чтобы выразить достижение потоком некоторого состояния 6'(¿'), в котором формула <(у^'), »(¿')) будет истинна, если
во время ¿ поток находился в состоянии 6^) и формула ф была истинна. Состояние ^(¿') при этом не обязательно достигается в первый раз.
В отличие от свойства гарантированного осуществления свойство безопасности
1Ь [^(¿)) Л ф(ж^), y(¿))] Э [(—8(6'(¿0)^8(6'(¿')) Л ф'уф, «(¿)])]
означает следующее: если поток находится в состоянии 6^) и формула ф(ж^)) истинна, то через некоторое время поток должен достичь состояния 6' (¿') и при первом же приходе в это состояние формула ф' должна стать истинной.
Предусмотренная реакция. Свойства, выражаемые формулой
Э 0^2, относятся к числу свойств, которые гарантируют, что в случае истинности формулы истинной станет формула Часто желательно дополнить это свойство требованием, чтобы формула никогда не становилась истинной, если этому не предшествует истинность формулы Это свойство в общем случае выразимо с помощью оператора предшествования, но требует в каждом конкретном случае тщательного выбора времени наблюдения. Хорошим примером выражения, задающего свойство предусмотренной реакции, является следующее:
1Ь [8(6^0)) Э Pw2] Л [(^2 Л ^^2) Э N(^^2)].
Этот пример иллюстрирует тщательный выбор времени наблюдения, когда предшествование по отношению к может быть наблюдаемым либо из начального состояния, либо во время, когда истинна и изменяет свое значение на ложное в следующий момент времени (здесь N означает "в следующий момент времени"). В большинстве практических случаев имеется дополнительная информация о формулах и , которая помогает сформулировать требования в более простой форме.
Справедливая реакция. Во многих ситуациях предшествование двух событий <1 и <2 связано с более ранними событиями ф1 и ф2, такими, что ф1 предшествует событию ф2. Такую ситуацию будем называть условным предшествованием. Она представляется выражением
1Ь (ф^ф2) Э (<^<2).
Оно означает, что если ф1 предшествует ф2, то <1 предшествует <2. Вместе с выражениями
1Ь ф1 э 0<1,
Ib Ф2 D 0(2
выражение условного предшествования называется справедливой реакцией. Иначе говоря, если 1Ь ф1 Э 0(1 и 1Ь ф2 Э 0(2 интерпретируются, как ответ (г на требование фг, то справедливая реакция дополнительно требует: если ф1 предшествует ф2, то ответ на ф1, а именно (1, должен предшествовать ответу на ф2, а именно (2.
Свойства агентов. Агенты — это интеллектуальные параллельно работающие процессы. Поэтому проверка свойств поведения агентов — это, по существу, проверка определенных свойств этих процессов. Практически все из рассмотренных свойств потоков несколько в иной интерпретации применимы и для проверки свойств поведения объектов. Чтобы это было более очевидным, будем полагать, что вычислительной моделью процессов являются конечные автоматы. В отличие от автомата М::, представляющего поток, функции перехода и выхода агента А:: имеют следующий вид:
((Ь: (Ьг)) = с: (tl),
f (Ь: (tl), а(Ьг+1)) = Ь: (Ьг+1).
Здесь с: (Ьг) является значением функции выхода (, а значением функции выхода в общеупотребительном смысле теории автоматов а (Ьг+1) — входное условие при истинном значении которого происходит переход из состояния Ь: (Ьг) в состояние Ь: (Ьг+1), являющееся значением функции переходов f. Далее те свойства поведения агентов, которые с точностью до обозначений совпадают со свойствами потоков, только перечислим в новых обозначениях. Большее внимание уделим свойствам поведения агентов, не имеющим аналогов среди свойств потоков.
Инвариантные свойства.
Корректное завершение
1Ь (в(Ь(Ь0)) Л ф(х(Ь0))) Э П[в(Ь(Ье)) Э ((х(Ье), с(Ье))].
Чистое поведение
1Ь (в(Ь(Ь0)) Л ф(х(Ь0))) Э П Л (в(Ь(и)) Э ф(х(Ьг), с(Ьг))).
Глобальная инвариантность
1Ь П(в(Ь(Ь)) Л ф(х(Ь))) Э П(((х(Ь), с(Ь))).
Взаимное исключение критических секций. Каждый агент А: является процессом Р:. Если процессы Р, Рк, являющиеся автоматами,
одновременно достигли состояний 6г (¿), 6* (¿), требующих одного и того же ресурса на период обработки состояний соответственно в диапазонах Дг = (^(¿),...,6;(¿ + г)) и Д* = (6*(¿),...,6*(¿ + 8)), то только один процесс из указанных двух может получить доступ к ресурсу для обработки своего диапазона состояний. Эти диапазоны называются критическими секциями. Только один из процессов может обрабатывать свою критическую секцию. Это и называется взаимным исключением критических секций. Взаимное исключение критических секций, таким образом, необходимо, когда двум или более процессам необходим доступ к распределяемым переменным или ресурсам, таким, например, как диски, и нам необходимо защититься от взаимовлияния этих процессов или от попыток других процессов получить доступ к тому ресурсу, с которым данный процесс уже имеет дело. Обозначим п(Д3) условие, которое истинно, если процесс Р3 находится в одном из состояний критической секции Д3. Тогда свойство взаимного исключения критических секций Дг и Д* может быть представлено следующим образом:
1Ь ф(ж^)) Э □—(п(Дг) Л п(Д*)) Л ¿ > ¿0.
Это свойство означает, что всегда, когда процесс Рг обрабатывает состояния автомата Аг из секции Дг, то процесс Р* не может обрабатывать состояния автомата А* из секции Д*. Если ввести предикат: 8(6^)) — истинный, когда автомат находится в состоянии 6^), то свойство сигнального взаимного исключения можно выразить иначе:
1Ь ф(ж^)) Э □— [(8(6г^)) V ... V 8(6г(¿ + г))) Л (8(6*(¿)) V ...
... V 8(6* ^ + г)))] Л ¿ > ¿0.
Свойства осуществимости.
Абсолютная корректность. Это свойство похоже на свойство корректного завершения и имеет смысл только для терминальных автоматов. Абсолютная корректность выражается следующим образом:
1Ь ф(ж^0)) Э 0<(6&), Фе)).
Гарантированное осуществление 1Ь ^(¿)) Л ф(ж^))] Э 0[8(6(О) Л <(с(0) Л ф(ж(0)] Л ¿' > ¿.
Доступность. Рассмотрим снова процесс Р3, который имеет критическую секцию Д3. При изучении свойства взаимного исключения было показано, как установить защиту для такой секции от вмешательства со стороны других процессов. Продолжающим и дополняющим
свойством к свойству взаимного исключения является свойство доступности, означающее следующее: если процесс желает войти в свою критическую секцию, он, в конечном счете, попадает туда и не будет неопределенно долго удерживаться механизмом защиты. Очевидно, что защитный механизм является бесполезным, если он не позволяет, в конце концов, процессу войти в его критическую секцию.
Пусть Ь(Ь0) — состояние перед критической секцией. Тот факт, что процесс находится в Ь(Ь0), отражает намерение войти в критическую секцию О:. Тогда свойство доступности выглядит следующим образом:
1Ь в(Ь(Ь0)) Э П[п(Б:) Л Ь > Ц.
Правильные конструкции критических секций должны гарантировать выполнение двух полезных свойств: взаимного исключения и доступности.
Беступиковость
1Ь 0-в(Ь:(Ь)),
или
1Ь -Пв(Ь:(Ь)).
Отзывчивость. Важными классами являются бесконечные процессы (например, циклически бесконечно повторяющиеся или настолько длинные, что могут считаться бесконечными). Они не имеют терминальных состояний. Остановка этих процессов является ошибочной. Следовательно, свойства корректного завершения или абсолютной корректности для таких процессов неприменимы. Вместо них используется свойство отзывчивости. Для описания свойства отзывчивости одной формулы недостаточно, так как помимо процессов, обрабатывающих потоки, в этом процессе участвует диспетчер (операционная система). Кроме того, свойства отзывчивости зависят от принципов взаимодействия процессов с диспетчером.
Рассмотрим один из вариантов такого взаимодействия и соответствующее ему описание свойства отзывчивости.
Предположим, что диспетчер О взаимодействует с процессами Р1 ,...,Ра, распределяя между ними ресурсы.. Ресурсами могут быть жесткие диски, главная память, каналы передачи информации и т.д. Процессы взаимодействуют с диспетчером, запрашивая ресурсы через пропозициональные переменные {г:, д:}, ] = 1,...,А. Переменная г: устанавливается истинной процессом Р:, чтобы сигнализировать о запросе ресурса. Переменная д: устанавливается истинной диспетчером О, сообщающим, тем самым, процессу Р:, что он может взять ресурс. После использования ресурса процесс Р: возвращает ресурс обратно
диспетчеру С, присваивая переменной г, ложное значение. Диспетчер признает освобождение ресурса присвоением переменной д, ложного значения.
Суммируя сказанное, имеем:
Р, выдает запрос Э г,: = истина;
С предоставляет ресурс Э д,: = истина;
Р, освобождает ресурс Э г,: = ложь;
С признает освобождение Э д,: = ложь.
Утверждением, означающим, что диспетчер справедливо реагирует на запрос процесса Р,, является
г, Э Од,,
т.е. когда бы г, не стала истинной, в конце концов д,будет истинной.
Подобным образом необходимо обеспечить подтверждение освобождения ресурса диспетчером установкой д, в ложь:
:-г, Э О(—д,).
Более того, диспетчер не может работать нормально, если не будет обеспечено должного взаимодействия между процессами. Например, диспетчер не может обещать процессу Р, предоставления, в конце концов, ресурса, если процесс р, который в это время занимает его, в конце концов, его не освободит. Следовательно, требуется, чтобы поведение процесса Р, удовлетворяло определенным условиям, а именно:
д, Э О(-г,).
Это утверждение говорит о том, что в случае предоставления процессу Р, ресурса г,, этот ресурс, в конце концов, будет освобожден. К сформулированным утверждениям обычно добавляются утверждения, гарантирующие правильное непрерывное поведение диспетчера С. Одним из таких утверждений является следующее:
ЩЬ д, <1 '
\,=1 /
означающее, что в любое время на интервале [¿0, ¿е] диспетчер предоставляет ресурс самое большее одному процессу.
Описание корректного поведения диспетчера С в целом будет выглядеть следующим образом:
£ = Д (г, Э Од,) Л .л (6,:—г, Э О(-д,)) л □ ( X, д, < 1).
\,-=1 /
Описание корректного поведения процессов Р: имеет вид
:=т
( = Л (д: Э 0(-г:)).
:=1
Общая формулировка свойства отзывчивости может быть получена, исходя из следующих соображений. Переменные г: и д: являются соответственно входными и выходными переменными диспетчера. Значения переменных г: устанавливаются процессами Р1 ,...,Ра.
Тогда свойство отзывчивости выглядит следующим образом:
1Ь П( Э П£
Свойства предшествования.
Предусмотренная реакция
1Ь (в(Ь(и) Э т^Рт^) Л [(т2 Л N^2) Э Щт^)].
Пример. Распределение ресурсов. Вернемся к рассмотренному ранее примеру с диспетчером О, который распределяет ресурс между процессами Р1 ,...,Р1. Простейший протокол взаимодействия между процессом Рг и диспетчером определяется следующими четырьмя выражениями:
1Ь (гг Л-дг) Э N Гг. (1)
Это выражение говорит о том, что если гг истинна, а дг ложна, т.е. запрос на ресурс со стороны Рг имеется, но он еще не предоставлен, то процесс Рг обязан настаивать на своем требовании, подтверждая значение ггв следующем такте.
1Ь (гг Л дг) Э Ngг. (2)
Это выражение означает, что если ресурс был предоставлен процессу Рг, то диспетчер не имеет права отнять его до тех пор, пока пользователь не присвоит гг ложное значение.
1Ь (гг Л дг) Э N-4. (3)
Это утверждение означает, что если диспетчер еще не признал отказа от ресурса пользователя Рг, то Рг не может выставлять нового требования.
(-гг Л -дг) Э ^д^ (4)
Это утверждение означает, что если ресурс не занят процессом Рг и не затребован им, то ресурс не предоставляется процессу, который его не требует. Все это и есть описание свойства предусмотренной реакции. Выполнение перечисленных свойств вместе со следующими дополнительными выражениями гарантирует правильное поведение программы:
II r» d Og»;
lb g» D O—r»;
I —r» d O-g»
'г-
(5)
(6) (7)
Четыре первых утверждения характеризуют поведение программы в соседние моменты времени или состояния. В более глобальном стиле свойства предусмотренной реакции можно выразить следующими выражениями:
Эти выражения заменяют все остальные. Утверждение (а) говорит о том, что если г истинно, то оно должно оставаться истинным до тех пор, пока д» истинно. Утверждение (6) говорит о том, что если ресурс предоставлен, то он остается предоставленным до тех пор, пока от него не откажутся. Утверждение (с) говорит о том, что если от ресурса отказались, то он не может быть затребован до тех пор, пока отказ от него не будет признан. Утверждение (¿) говорит о том, что если д» в данный такт не назначено, то его следующему значению должен предшествовать запрос.
Справедливая реакция
1Ь (ф^) э (р^); 1Ь ф1 э 0^1;
1Ь 02 Э 0^2.
Пример. Распределение ресурсов. Рассмотрим снова обслуживаемые диспетчером процессы. Наложим на них требование условного предшествования: 1Ь (г^г^) Э (д»Pg^), которое означает, что если процесс Р» поместил свой запрос раньше процесса Р^, то он раньше и будет обслужен. Однако здесь необходимо быть осторожным, ставя жесткие условия. Например, если д» истинно, в то время, как оба г» и г^ ложны, то может иметь место ситуация, когда нельзя обещать, что д» будет предшествовать д^. Для исключения такой ситуации необходимо исходить из ложности д^. Тогда выражение условного предшествования будет выглядеть следующим образом:
Пример формулировки свойств правильного поведения агентов. Имеется к агентов. Агент А1 является отправителем кадров, агенты А2, — передатчиками кадров. Агент А1 помещает кадры
I r» D [r»U(g» Л r»)];
II g» D [g»U(—r» Л g»)];
I —r» D [r»U(—g» Л —r»)];
II g» D (r»Pg»).
(a)
(b)
(c)
(d)
II (—g^) D [(r»Pr^) D (g»Pg^)].
в буфер, а агенты А2,А3,...,Ак берут их из него и рассылают потребителям. Все агенты являются процессами и функционируют параллельно. Наша задача — формулировать свойства их правильного поведения. Прежде чем рассматривать механизм взаимодействия агентов, напомним, что такое семафорные переменные. Семафорными переменными являются особые переменные, используемые для синхронизации работы параллельных процессов (в нашем случае агентов). Над каждой из этих переменных х могут выполняться только две команды: занять (х) и освободить (х). Переменная может быть занята, если ее значение не равно 0. Если переменная занята, то до ее освобождения никто ее занять не может. При занятии значение семафорной переменной увеличивается на 1, при освобождении — уменьшаться на 1 (указывается в комментариях). Команда освободить может выполняться и над незанятой семафорной переменной, изменяя ее значение. Никакие другие операции над семафорными переменными не допускаются. Процесс, достигший команды занять (х), будет выполняться дальше только в том случае, если нет ни одного другого процесса, который уже занял эту переменную и еще не освободил. После освобождения переменной она может быть занята любым другим процессом. При попытке занятия свободной семафорной переменной сразу несколькими процессами занять ее может один из них. Для синхронизации взаимодействия агентов А1 ,А2,...,Ак введем три семафорных переменных:
• переменную х1, используемую для исключения одновременного доступа агентов в буфер;
• переменную х2, указывающую число свободных мест в буфере. Она защищает буфер от переполнения. Отправитель не может положить кадр в буфер, если х2=0. Значение переменной х2 увеличивается на 1 после каждого помещения отправителем кадра в буфер. В начале работы агента А1 значение х2 = N. Отправитель не может положить в буфер более, чем N кадров. Каждый потребитель уменьшает х2 на 1 после взятия одного кадра;
• переменную х3, содержащую текущее количество кадров в буфере; ее начальное значение равно 0; оно увеличивается отправителем на 1 всякий раз, когда он кладет туда кадр, и уменьшается передатчиком на 1 всякий раз, когда он берет из буфера кадр. Эта переменная используется для того, чтобы потребитель никогда не пытался взять кадр из пустого буфера.
Агенты используют буферВ, который имеет N ячеек памяти В(I), I = 1,...^. Буфер может быть пуст и тогда переменная х3 = 0. Если х3 =0, то в буфере содержится х3 кадров в ячейках В(1),..., В(х3). Ячейка памяти В (1) в этом случае называется головной и обознача-
ется голова(В). Ячейка памяти В(х3) буфера В называется хвостом и обозначается хвост(В).
Агент А1 при желании поместить кадр в буфер ведет себя следующим образом. Сначала он пытается занять семафорную переменную х2. Если ему это удается и значение семафорной переменной х2 не равно 0, то это означает, что агент А1 может поместить кадр с в буфер, поскольку там есть свободное место. Для того чтобы это сделать, он должен занять семафорную переменную х1. Если ему удается ее занять, то сначала содержимое каждой ячейки В(]), ] = 1,...,х3, перемещается в ячейку В (] + 1), затем агент А1 помещает кадр в освободившуюся ячейку голова(В), семафорная переменная х1 освобождается, значение переменной х2 уменьшается на 1, а значение переменной х3 увеличивается на 1. Такую комплексную операцию будем обозначать голова(В) + В. Каждый из агентов Ар, р = 2,...,к, при желании взять кадр из буфера ведет себя следующим образом. Он пытается занять семафорную переменную х3. Если ему удается это сделать (переменная не равна 0), то это означает, что буфер не пуст и из него можно взять кадр. Тогда агент Ар переходит к попытке занять семафорную переменную х1. Если ему и это удастся сделать, то он забирает содержимое ячейки хвост(В). Такую операцию будем обозначать В — хвост(В)_. Затем агент освобождает сначала переменную х1, а затем переменную х2. После этого он производит ряд вычислений, для того, чтобы получить значение шр времени передачи извлеченного из буфера кадра (сек) передатчиком Ар.
Таким образом, поведение агентов А1 и Ар может быть представлено следующей программой.
Программа "Отправитель-передатчики"
х1 = 1, ^семафорная переменная доступа к буферу* х2 = N, *семафорная переменная числа пустых ячеек буфера* х3=0, *семафорная переменная числа заполненных ячеек буфера* V = С, *переменная пропускной способности канала передачи кадров (бит/с)*
т = Т, *переменная максимально допустимого времени передачи кадра (с)*
в = 0, * переменная числа бит в кадре*
е = 0, *переменная времени записи кадра в буфер (с)*
5 = 0, *переменная времени извлечения кадра из буфера (с)*
шр = 0, * переменная времени передачи извлеченного из буфера кадра
(с) передатчиком Ар*
Отправитель А1
Ь1: Вычислить у1 = <р[Ь(Ь)];
62
63
64
65
66
67
68 61
610: Перейти на 61;
Передатчик A?
6? 6?
6?
63
6?
64
Вычислить € = е[у1 ]; Занять(х2); *х2: = х2 — 1* Занять(х 1); *х1: = х1 — 1* голова(В ):=у1; В: = голова(В) + В; Освободить(х1); *х1: = х1 + 1* Освободить(х3); *х3: = х3 + 1* Вычислить € = €[у1];
Занять(х3); *х3: = х3 + 1* Занять(х1); *х1: = х1 — 1* у2: = хвост(В); В: = В — хвост(В); Освободить(х1); *х1: = х1 + 1* Освободить(х2); *х2: = х2 + 1* Вычислить в = в [у2]; Вычислить 5 = 5 [у2]; Вычислить ш? = в^ + 5 + €; 6?0: Перейти на 6?.
ьр
bP
ь?
ьр ьр
Остальные передатчики имеют аналогичные программы. Очевидно, что в рассмотренной программе секции Д = {6^,65,6,!;} агента А1 и Д? = {6?,6?,6?} агента А? являются критическими. Для того чтобы получить корректный результат, необходимо гарантировать для них выполнение свойства взаимного исключения:
ф(х) Э □-(п(А) Л п(£?)),
где
ф(х) = 8(61) Л в(6р) Л В = 0 Л х1 = 1 Л х2 = N Л хз = 0.
Эта программа будет свободна от зависания, если выполняется условие:
□{[(8(62) Л 8(6?)) Э (х1 > 0 Л х2 > 0)]; Л [(8(62) Л 8(6?)) Э (х1 > 0 Л х > 0)]; Л [(8(63) Л 8(6?)) Э (х > 0 Л х2 > 0)]; Л [(8(63) Л 8(6?)) Э (х > 0)]}.
Свойство доступности программы будет следующим:
[з(Ь2) Э Оз(Ь1)] Л [8(ЬР) Э Озт.
Доказательство свойств. Известно, что для того чтобы иметь возможность проверять наличие тех или иных свойств агентов и потоков из числа рассмотренных или каких-либо иных дедуктивным способом, необходимо иметь некоторый адекватный решаемым задачам проверки свойств агентов и потоков язык исчисления и формулировки на этом языке:
— базовых общезначимых аксиом (если они необходимы);
— аксиом, описывающих общие свойства моделей мультиагентной системы (программы, состоящей из параллельных процессов), не зависящие от конкретного типа системы. Эти аксиомы назовем общими агентскими аксиомами;
— аксиом, описывающих свойства конкретной модели мультиагент-ной системы, зависящей от решаемой ею задачи. Эти аксиомы назовем частными агентскими аксиомами. Частные агентские аксиомы описывают графы переходов агентов;
— аксиом, описывающих общие свойства моделей потоков, не зависящие от конкретного типа потоков. Эти аксиомы назовем общими потоковыми аксиомами;
— аксиом, описывающих свойства конкретной модели потоков. Эти аксиомы назовем частными потоковыми аксиомами. Частные потоковые аксиомы описывают графы переходов потоков;
— правил вывода, состоятельных для данного исчисления.
Аксиомы образуют базу знаний или онтологию, а свойства (теоремы), которые требуется доказать, являются запросами к этой базе знаний.
Онтология хранится в определенных форматах и может быть распределена между агентами. Каждый из агентов решает некоторую частную задачу в соответствии со своей ролью. Часть из них решает общую задачу ответа на запрос. Каждый агент имеет входной и выходной порты, собственную базу знаний (онтологию) и решатель, или машину вывода, которая использует правила вывода. Через входной порт агент получает сообщения и запросы от других агентов, а также информацию из других источников, не являющихся агентами в указанном смысле. Через выходной порт агент выдает сообщения и запросы другим агентам, а также информацию получателям, не являющимися агентами.
При описании свойств потоков и агентов использовалась некоторая версия временной модальной логики. Эти описания носят теоретический характер, и использование напрямую рассмотренного языка
временной модальной логики нецелесообразно. Для конкретных реализаций может быть использован более выразительный язык ситуационного модального нечеткого исчисления [5], где синтаксическое описание служит средством обмена между агентами и представляет собой онтологию на формальном языке ситуационного модального нечеткого исчисления. Семантическое описание используется агентами для вычислений и представляет онтологию на языке нечетких отношений. Его можно рассматривать как формальную систему со своим языком, правилами вывода и интерпретацией. Вывод заключений делается на семантическом уровне. Связь между синтаксическим и семантическим уровнями осуществляется посредством процедуры семантической трансляции, которая выполняет перевод текста, представленного на синтаксическом уровне, на язык нечетких отношений, и процедуры лингвистической аппроксимации, которая выполняет перевод заключений, полученных на семантическом уровне, на язык синтаксического уровня. Агенты обмениваются информацией на синтаксическом уровне.
Запрос является теоремой о наличии у потоков или агентов некоторых свойств. Установление наличия этих свойств осуществляется с помощью процедуры вывода (доказательства) в нечетком исчислении. Подробно вариант исчисления и процедура вывода описаны в работе [5]. Для осуществления вывода агенты, отвечающие за обработку потоков, формируют и помещают по мере необходимости факты в онтологии. В процессе вывода могут участвовать несколько агентов, обменивающихся друг с другом сообщениями. Архитектура мультиа-гентной системы сбора, обработки и передачи потоков телеметрической информации кратко рассмотрена в следующем разделе.
Архитектура мультиагентной системы сбора, обработки и передачи потоков телеметрической информации. Общая архитектура мультиагентной системы сбора, обработки и передачи потоков телеметрической информации, которую кратко будем называть МАСТИ (Мультиагентной Системой Телеметрической Информации), представляет собой множество программных агентов. Каждый агент решает определенную задачу в системе.
Существует два возможных типа конфигураций МАСТИ:
• локальная конфигурация, включающая все программные компоненты, расположенные на отдельной рабочей станции;
• распределенная конфигурация, включающая системные компоненты, расположенные на нескольких рабочих станциях, объединенных в вычислительную сеть. Сеть может включать локальные или глобальные каналы связи. Каждая рабочая станция имеет собственную локальную конфигурацию, структура которой определяется ролью, от-
Рис. 3. Архитектура МАСТИ
веденной рабочей станции в системе.
Распределенная конфигурация использует сеть для передачи потоков и команд между рабочими станциями. Поддержка сетевых операций обеспечивается сетевыми агентами, включаемыми в локальные конфигурации. Архитектура МАСТИ для проверки свойств потоков и агентов построена на основе использования доски объявлений (рис. 3).
Планировщик системы выделяет агентам время для работы. Используется режим квазипараллельной работы агентов. Агенты получают для исполнения периодически короткие интервалы времени. На доску объявлений помещается текущая информация о состоянии агентов и потоков, используемая планировщиком для вызова (активации) соответствующих агентов.
Вся система и отдельные локальные подсистемы на каждой рабочей станции могут быть реконфигурированы при необходимости для решения различных задач по сбору, обработке и анализу свойств потоков и агентов. Различные конфигурации могут быть созданы на основе заданного набора агентов. Каждый агент имеет собственные настройки и панель управления, поддерживает COM интерфейс обмена данными и программный интерфейс, управляемый командами JScript. Коллекция агентов может быть расширена. В настоящее время агенты разрабатываются на языке C++. В качестве средства проектирования используется Microsoft Visual Studio .NET. Шаблон проекта агента создается с помощью дизайнера проектов Microsoft .NET Project Wizard.
С помощью программных инструментов, входящих в состав системы, можно создавать пользовательский интерфейс. Пользователь взаимодействует с системой через графический интерфейс, создание которого является составной частью процесса проектирования конфигурации. Каждый агент реализует две компоненты пользовательского интерфейса: панель управления и окно редактирования настроек. Эти компоненты являются основой для построения пользовательского интерфейса.
Кадры потоков имеют фиксированное число слов и, как правило, передаются с постоянной частотой. Частота формирования кадра определяет частоту опроса передаваемых в кадре параметров. На рис. 4 показан формат кадра ТМИ.
На рис. 5 показан формат заголовка кадра ТМИ. Признак достоверности кадра используется для указания сбоев кадровой синхронизации. Признак устанавливается аппаратурой.
На рис. 6 показана последовательность размещения телеметрических слов в кадре. Каждое слово содержит значение одного из каналов. Адрес канала определяется номером канала локального коммутатора (ЛК) и номером канала основного коммутатора (ОК). Например, слово Л3К1 содержит показание датчика, подключенного к первому каналу
Рис. 4. Формат кадра ТМИ
Признак достоверности Зарезервировано Длина кадра Время
Заголовок кадра (8 байт)
Рис. 5. Заголовок кадра
П1К1 Л2К1 ПЗК1 Л8К1 J11K2 пгкг Л1К64 Л8КВ4
Слова ТМИ (1024 байт)
Рис. 6. Порядок слов в кадре
15 - 12 не исп. 11 маркер OK 10 маркер OK 9 чётность 0-1 значение 0 шум
Слово ТМИ (16 бит)
Рис. 7. Формат слова в кадре
локального коммутатора, который, в свою очередь, подключен к третьему каналу основного коммутатора (см. также рис. 1 и 2).
На рис. 7 показан формат слова в кадре. Бит 11 содержит признак маркера основного коммутатора. Он устанавливается в каждом восьмом слове. Бит 10 содержит признак маркера локального коммутатора. Он устанавливается в последних восьми словах кадра. Оба признака указывают на конец кадра. Маркеры обеспечивают кадровую синхронизацию. Бит 9 содержит дополнение до четности. Он используется для обнаружения битовых ошибок. Биты с 1 по 8 используются для хранения значения канала. Бит 0 не используется и принимает случайное значение.
МАСТИ должна обеспечивать правильную обработку потоков в рамках заданной конфигурации на всех рабочих станциях, а также передачу потоков между отдельными рабочими станциями в режиме реального времени. Для передачи потоков между рабочими станциями используются каналы с ограниченной пропускной способностью. В ряде случаев пропускная способность канала может быть недостаточна для передачи полного потока в темпе поступления от аппаратуры. Выходом из этой ситуации является оптимизация объема передаваемой информации, в частности на основе эквивалентных преобразований потоков, о которых упоминалось выше.
В заключение рассмотрим пример выявления характерных свойств сигналов с использованием нечеткого модального исчисления.
Координаты объекта определяются двумя датчиками. Датчики выдают периодические сигналы X(Ь) и С(Ь) с периодом 3, определяющие в каждый момент времени Ь координаты объекта соответственно по осям абсцисс и ординат. Будем считать их лингвистическими переменными. Универсумы и (х) и и (с) сигналов X (Ь) и С (Ь) будем считать одинаковыми для всех Ь. Для всех Ь на универсуме и(х) заданы одинаковые функции принадлежности ц (х), цс(х), цг (х), на универсуме и (с) — функции принадлежности ц (с), цс (с), цг (с). Будем полагать, что этим функциям принадлежности оответствуют лингвистические значения Слева__Х (Ь), В_центре_Х (Ь), Справа_Х (Ь); Слева__С(Ь), В_центре_С(Ь), Справа_С(Ь) лингвистических переменных X (Ь) и С(Ь). Нечеткими грамматиками, соответствующими значе-
ниям сигналов Х(¿) и С(¿) в моменты времени ¿о + кД^ ¿о + (к + 1)Д^ где к = 1,3, 5,..., являются соответственно Сх = {Кх,Ах,Рх,Вх}, Сс = {К,АС,РС,ВС}, где К = {61,62}, Ах = {¿о = ¿о + кД4, ¿1 = ¿о + (к + 1)Д*}, Рх = {Вх ^ ¿о61, 61 ^ ¿162}, К = {А1,А2}, Ас = {¿о = ¿о+кД;, ¿1 = ¿о+(к + 1)Д4}, Рс = {В ^ ¿оА1, А1 ^ М2}.
Эти правила можно представить следующими формулами нечеткого исчисления, изложенного в работе [5], каждая из которых задает свойство, относящееся только к одному сигналу (показаны только правила для сигнала X (¿)),
(£ есть ¿о) э (6х есть Вх),
(6х есть Вх) э ((Х(¿о) есть Слева_Х(¿о)) V (Х(¿о) есть В_центре_Х(¿о)) V (Х(¿о) есть Справа_Х(¿о))), (6х есть Вх) э к = 1, (6х есть Вх)&(£ есть ¿о) э (6х есть 61). (6х есть 61) э ((Х(¿1) есть Слева_Х(¿1)) V (Х(¿1) есть В_центре_Х(¿1)) V (Х(¿1) есть Справа_Х(¿1))), (6х есть 61)& (£ есть ¿1) э (6х есть 62), (6х есть 62) э к = к + 1, (6х есть 62) э 62 есть Вх, (6х есть 62) э к = к + 1.
Кроме этих свойств, могут быть известны свойства, относящиеся к обоим сигналам, например следующие:
(Х(¿) есть Слева_Х(¿) э С(¿) есть Справа_С(¿)), (Х(¿) есть В_центре_Х(¿) э С(¿) есть В_центре_С(¿)), (Х(¿) есть Справа_Х(¿) э С(¿) есть Слева_С(¿)). Все перечисленные правила для отдельных сигналов и потока из двух сигналов образуют онтологию. Правила вывода, рассмотренные в работе [5], вместе с онтологией образуют теорию. Используя теорию, требуется найти ответ на запрос, содержательная суть которого следующая: "Если известна онтология, то где находится объект в момент времени ¿?". Формально этот запрос с использованием модальностей может быть задан следующей формулой:
(А1Х(¿) есть Слева_Х(¿)& (А2Х(¿) есть В_центре_Х(¿)& А3Х(¿) есть Справа_Х(¿)))&(п1 С(¿) есть Слева_С(¿)& (п2С(¿) есть В_центре_С(¿)& п3 С(¿) есть Справа_С(¿)))?
В этом выражении надо определить значения модальностей А1, А2, А3, характеризующих расположение объекта по оси Х и модальностей п1, п2, п3, характеризующих расположение объекта по оси С.
Выводы. Распределенные беспроводные и комбинированные сети интеллектуальных датчиков и связанные с ними системы сбора, обработки и передачи информации становятся новой областью исследова-
ний. В статье были рассмотрены принципы представления и использования информации, собираемой с датчиков, для анализа свойств потоков и свойств мультиагентной системы, обрабатывающей эти потоки. Проверка свойств осуществляется путем запросов к базам знаний (он-тологиям). Онтологии хранятся не обязательно централизованно. Они могут быть распределены по агентам, каждый из которых отвечает за свою часть анализа свойств потоков или мультиагентной системы. Для формирования онтологий предлагается использовать нечеткое модальное ситуационное исчисление. Все свойства представляются на языке этого исчисления как теория, ответ на запросы является выводом в этом исчислении.
Изложенные принципы были частично апробированы в описанной мультиагентной системе анализа потоков.
Настоящая работа частично была выполнена по теме "Интегрированный телекоммуникационный узел сбора, обработки и анализа телеметрической информации для удаленного предоставления результатов анализа службам городского хозяйства" в рамках государственного контракта на выполнение работ по федеральной целевой программе "Интеграция науки и высшего образования России на 20022006 годы".
СПИСОК ЛИТЕРАТУРЫ
1. E s t г i n D., Govindan R., Heidemann J., Kumar S. Next century challenges: Scalable coordination in sensor networks. ASM MOBICOM, 1999.
2. Bonnet P., Gehrke J. E., Seshadri P. Towards sensor database systems. ASM Mobile Data Management. 2001.
3. Akyildiz F., Su W., Sankarasubramaniam Y., Cayirci E. A servey on Sensor Networks / Ieee Communication Magazine, August 2002, p. 102-114.
4. Девятков В. В., Мак-Кормик М. Формирование алгоритмов управления по элементам их поведения / Вестник МГТУ им. Н.Э. Баумана. Серия "Приборостроение". - 1995. - № 1. - C. 14-23.
5. Д е в я т к о в В. В., Р у м б е ш т В. В. Динамическое прогнозирование и распознавание ситуации на основе аппарата нечеткой логики и конечно-автоматной модели представления временных последовательностей / Вестник МГТУ им. Н.Э. Баумана. Серия "Приборостроение". - 1995. - № 1. - C. 66-74.
6.Девятков В.В. Онтологии и их применение / Программные продукты и системы. - 2000. - № 3.
7. Д е в я т к о в В. В. Системы искусственного интеллекта. -М.: Изд-во МГТУ им. Н.Э. Баумана, 2001.-350 с.
8. Девятков В. В. Румбешт В. В. Нечеткое модальное ситуационное исчисление для анализа сложных объектов / Вестник МГТУ им. Н.Э. Баумана. Серия "Приборостроение". - 2001. - № 3. - C. 3-22.
9. Д е в я т к о в В. В. Мультиагентное иерархическое распознавание на основе нечеткого ситуационного исчисления // Тр. ИПУ РАН. - Т.ХХ. - 2003. - С. 78-99.
10. Девятков В. В. Нечеткий логический анализ телеметрической информации // Труды шестого международного симпозиума "Интеллектуальные системы" INTELS'2004. - М.: РУСАКИ, 2004. - С. 72-79.
11.Девятков В. В. Мультиагентная архитектура обслуживания запросов к базам данных удаленного восприятия. Проблемы управления и моделирования в сложных системах // Тр. VI Международной конференции: Под. ред. акад. Е.А. Федосова, акад. Н.А. Кузнецова, проф. В.А. Виттиха. - Самара: Самарский научный центр РАН, 2004. - С. 282-293.
Статья поступила в редакцию 26.05.2005
В издательстве МГТУ им. Н.Э. Баумана в 2004 г. вышла в свет книга
Зенкевич С.Л., Ющенко А.С.
Основы управления манипуляционными роботами: Учебник для вузов. - 2-е изд., исправ. и доп. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2004. -480с.: ил. (Робототехника /Под. ред. С.Л.Зенкевича, А.С.Ющенко).
Рассмотрены вопросы теории манипуляционных роботов и методы управления ими. Приведены основные кинематические соотношения, позволяющие определять положение манипуляционного механизма робота в рабочем пространстве, а также решать задачи о скоростях и ускорениях движения его звеньев. Подробно описаны способы и алгоритмы кинематического управления манипуляторами. Приведены основные ведения о динамике манипуляционных механизмов, математические модели движения и методика их анализа. Рассмотрены методы динамического управления, позволяющие организовать движение манипулятора с учетом сил и моментов, реально действующих на него в процессе работы, практические методы исследования и расчета исполнительной системы манипуляционного робота, а также логическое управление сложными робототехническими системами с использованием теории сетей и конечных автоматов. Даны примеры применения рассматриваемых методов, в конце каждой главы приведен список контрольных вопросов и заданий. Книга содержит основные математические сведения, необходимые для понимания материала учебника и выходящие за рамки обычной программы технического университета по математике и теоретической механике.
Содержание учебника соответствует курсу лекций, который авторы читают в МГТУ им. Н.Э. Баумана.
Для студентов технических университетов, обучающихся по специальности "Роботы и робототехнические системы" и другим специальностям, связанным с управлением сложными механизмами. Представляет интерес для аспирантов, преподавателей и специалистов.
По вопросам приобретения обращаться по тел. 263-60-45; e-mail: [email protected]