УДК 004.94
А.А. Зуенко
ФГБУН Институт информатики и математического моделирования технологических процессов КНЦ РАН
Кольский филиал ПетрГУ
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМОВ ЛОГИКО-ВЕРОЯТНОСТНОГО АНАЛИЗА НА ОСНОВЕ МАТРИЧНЫХ И МЕТРИЧЕСКИХ СВОЙСТВ АК-ОБЪЕКТОВ*
Аннотация
В статье рассматривается разработанный автором модуль расчета надежности структурно сложных систем. Методы логико-вероятностного анализа программно реализованы с применением структур алгебры кортежей. Модуль может быть использован как самостоятельное приложение, а также выполнять роль сервера при распределенных вычислениях.
Ключевые слова:
алгебра кортежей, логико-вероятностный анализ, СOM-интерфейсы.
A.A. Zuenko PROG RAM IMPLEMENTATION OF LOGICAL AND PROBABILISTIC ANALYSIS BASED ON MATRIX AND METRIC PROPERTIES OF THE NTA-OBJECTS
Abstract
In the article implementation of a program module developed for logic and probabilistic analysis is considered. Methods of logic and probabilistic analysis are programmed using n-tuple algebra's structures. The module could be used as a standalone application, or act as a server for distributed computing.
Key words:
n-tuple algebra, logic and probablistic analysis, ^M interfaces.
Введение
Современные методы логико-вероятностного анализа (ЛВА) созданы с ориентацией на работу с системами, узлы которых могут находиться лишь в двух состояниях [1, 2, 3]. И, хотя существуют отдельные работы, где предлагаются методы расчета надежности систем со многими состояниями, унифицированного подхода к решению обозначенной проблемы до сих пор не существовало.
В алгебре кортежей (АК), основы которой подробно изложены в [4, 5, 6], разработаны методы расчёта надёжности структурно сложных систем с множеством состояний, представленным в виде [7]:
• пары элементов («работоспособен»/ «неработоспособен»);
• конечного множества элементов;
* Работа выполнена при финансовой поддержке РФФИ (проекты №№ 11-08-00641, 12-07-00550-а, 12-07-00689-а, 13-07-00318-а), ОНИТ РАН (проект 2.3 в рамках текущей Программы фундаментальных научных исследований) и Президиума РАН (проект 4.3 Программы № 16).
• набора пересекающихся интервалов.
Данная работа посвящена рассмотрению программной реализации алгоритмов логико-вероятностного анализа таких систем с использованием методов АК [8, 9]. Эти методы базируются на представленных ниже теоремах о метрических свойствах АК-объектов.
Теорема 1. Мера некоторой компоненты С-кортежа равна сумме мер значений, формирующих эти компоненту.
Например, пусть в пространстве Х\ х Х2, где Х\ = [а, Ъ, с, ё}, Х2 = {1, 2, 3, 4}, задан С-кортеж С = [{а,Ъ,с}{1, 2, 3}]. Обозначим первую компоненту этого С-кортежа как хь а вторую - х2. Тогда ц(хі) = ц(а) + ц(Ъ) + ц(с), а ц(х2) = ц(1) + М(2) + М(3).
Теорема 2. Если каждая компонента С-кортежа имеет конечную меру, то мерой С-кортежа является произведение мер его компонент.
Пользуясь результатами предыдущего примера вычислим меру ц^): ц(С0 = ц(хО * ц(^2).
Из представленных теорем непосредственно следует.
Теорема 3. Мера ортогональной С-системы равна сумме мер содержащихся в ней С-кортежей.
Из теоремы 3 вытекает, что мера произвольной ^-системы может быть вычислена, если преобразовать ее дискретное представление в ортогональную С-систему. Для произвольной С-системы, используя соотношения АК, можно разработать алгоритм преобразования такой С-системы в ортогональную. Но во многих случаях проще вычислить дополнение этой С-системы, преобразовать полученную ^-систему в ортогональную С-систему и вычислить меру исходной С-системы, используя соотношение:
ц(С) = ц(Ц) - ц( С ), где ц(С) - мера исходной С-системы, ц(^) - мера универсума, ц,( С ) - мера АК-объекта, дополнительного к исходному.
Мера универсума для множества атрибутов {Хь Х2, ..., Х„} вычисляется как произведение ц(Хі) * ц(Х2) * ... * ц(Х„).
Отметим следующие очевидные свойства АК-объектов, погруженных в вероятностное пространство или в любое другое нормированное пространство, в котором мера каждого атрибута равна 1:
1) мера полной компоненты в С-кортежах и С-системах равна 1;
2) мера любого частного универсума равна 1;
3) мера любого АК-объекта есть число в интервале [0, 1];
4) мера пустого АК-объекта равна 0;
5) для АК-объекта А мера его дополнения равна 1 - ц(А);
6) для пары (А, В) АК-объектов ц(А и В) = ц(А) + ц(В) - ц(А п В);
7) в любом АК-объекте после элементаризации мера каждой компоненты равна сумме мер соответствующих квантов, содержащихся в этой компоненте [4].
Далее рассматриваются особенности программной реализации алгоритмов логико-вероятностного анализа в АК.
Программная реализация разработанных алгоритмов
Алгоритм расчета вероятностной меры для компоненты С-системы. Блок-схема данного алгоритма приведена на рис. 1.
Рис. 1. Блок-схема алгоритма расчета вероятностной меры компоненты С-системы
Пример 1. Пусть есть некоторый домен D = {1,2,3,4,5,6} и для его элементов определено вероятностное распределение.
Вероятностное распределение для значений домена D
Таблица I
Элемент a b c d e f
Вероятность 0.1 0.1 0.15 0.15 0.2 0.2
Необходимо посчитать вероятность для компонент следующего С-кортежа С1= [{a,b,c} {a,c,e} {a,b,c,d,ef}]. Первую компоненту обозначим x1={a,b,c}, вторую - x2= {a,c,e}, третью x3 = {a,b,c,d,ef}, соответственно.
Тогда: ^(x1)=p[1]+p[2]+p[3]=0.1+0.1+0.15=0.35; .P(x2)=p[1]+p[3]+p[5]=0.1+0.15+0.2=0.45;
Дхз)=р[1]+р[2]+р[3]+р[4]+р[5]+р[6]=0.1+0.1+0.15+0.15+0.2+0.2=1. Рассмотрим по шагам обработку элемента x2.
Элементы, содержащиеся в x2, могут быть представлены в виде битового вектора Ь = (1, 0, 1, 0, 1, 0). Элементами, содержащимися в компоненте, считаются те элементы, для которых соответствующий бит установлен в единицу. В процессе перебора идёт просмотр всех значений битового вектора с обработкой тех, для которых установлен необходимый бит.
Последовательность действий алгоритма тогда будет выглядеть таким образом: P = 0. Номер элемента
i = 1; P = P + ЬИ * p[i] = 0 + 1*0.1 = 0.1; i = i + 1 = 2; P = P + ЬИ * p[i] = 0.1 + 0*0.1 = 0.1;
i = i + 1 = 3; P = P + Ь[/] * p[i] = 0.1 + 1*0.15 = 0.25;
i = i + 1 = 4; P = P + Ь[/'] * p[i] = 0.25 + 0*0.15 = 0.25;
i = i + 1 = 5; P = P + Ь[/'] * p[i] = 0.25 + 1*0.25 = 0.45;
i = i + 1 = 6; P = P + Ь[/'] * p[i] = 0.45 + 0*0.25 = 0.45;
Выход из цикла, результат: P = 0.45.
Алгоритм расчета вероятностной меры для всей С-системы.
На рис 2. представлена блок-схема алгоритма подсчета вероятностной меры для всей С-системы.
Назначением алгоритма является определение вероятности, которая соответствует некоторому событию, описанному с помощью некоторой ортогональной С-системы
Выполнение алгоритма состоит из последовательного вычисления вероятностей всех включенных в систему строк. Конечный результат равен сумме вероятностей всех строк. Вероятность каждой строки, в свою очередь, равна произведению вероятностей всех входящих в неё элементов.
Пример 2. Пусть есть некоторая система A, определённая в схеме U = D\ х D2, для которой определено вероятностное пространство (табл. 1 и 2).
Таблица 2
Вероятностное распределение для значений домена D2
Элемент 1 2 3 4 5 6
Вероятность 0.1 0.1 0.15 0.15 0.2 0.2
{1} в, /}
{2,3} {Ь, с, ё, в, /}
{4,5,6} {а}
Вероятность каждой компоненты будет равна:
р[1] р[2] + р[3] р[4] + р[5] + р[6]
Р[ё ] + р[в] + р[/]
Р[Ь] + р[с] + р[ё ] + р[в] + р[/] р[а]
' 0.1 0.15 + 0.1 + 0.1 " " 0.1 0.35"
0.1 + 0.15 0.2 + 0.05 + 0.15 + 0.1 + 0.1 = 0.25 0.6
0.15 + 0.2 + 0.2 0.4 0.55 0.4
Вероятность всей системы тогда будет равна: (0.1*0.35)+(0.25*0.6)+(0.55*0.4) = 0.405.
Рис. 2. Проведение процедуры ЛВА над отдельной С-системой
Пример расчета надежности системы со многими состояниями
С помощью представленного ранее алгоритма можно выполнять сравнение надёжности различных вариантов конфигурации технической системы и осуществлять выбор между несколькими вариантами действий.
Очевидно, что каждое множество состояний системы, которым соответствует некоторый выбор может быть представлен с помощью АК-объекта, в котором в качестве строк будут некоторые случаи или множества случаев, а в качестве столбцов - координаты ситуационного вектора.
Каждой такой системе сопоставляется некоторая вероятность, вычисляемая методами логико-вероятностного анализа и означающая “предпочтительность” прецедента (варианта выбора).
Процедура выбора между предоставленными вариантами тогда будет следующей:
1 Выделение случаев и построение на их основе С-систем, описывающие множества случаев, которым они соответствуют.
2 Определение числовых значений, соответствующих степени истинности каждого значения лингвистических переменных.
3 Процедура логико-вероятностного анализа для каждой системы
4 Сравнение получившихся значений; выбор прецедента с максимальным значением.
Рассмотрим летательный аппарат [10], состояния которого описаны некоторым вектором, составленным из переменных, каждая из которых определена на конечном множестве значений (табл. 3).
Таблица 3
Прецеденты иллюстрационного примера
№ Координаты ситуационного вектора Вариант
п/п ^2 Xз X,
1.1 Выс. Выс. Выс. Выс.
1.2 Выс. Ср. Ср. Выс.
2.1 Выс. Ср. Выс. Мл. Й2
2.2 Ср. Выс. Ср. Ср.
Пусть каждому значению каждой переменной соответствует некоторое значение вероятности, причем, все значения переменной образуют полную группу событий (табл. 4).
Таблица 4
Вероятностные пространства для лингвистических переменных
Вероятность\Состояние Малая Средняя Высокая
Х1 0.3 0.3 0.4
Х2 0.2 0.3 0.5
Хз 0.5 0.5 0.2
Х4 0.1 0.6 0.3
Используем имеющиеся данные, чтобы осуществить выбор между вариантами d1 и d2 и сравнить получившиеся в результате значения. Предпочтительным будет вариант с наибольшим значением получившейся вероятности.
В табл. 5 представлены расчеты, обосновывающие выбор в пользу прецедента й\, на основе представленных ранее алгоритмов ЛВА.
Таблица 5
Использование метода ЛВА при анализе прецедентов
№ Координаты ситуационного вектора Произв. Сумма
п/п Х2 Хэ Х4
1.1 0.4 0.5 0.5 0.3 0.0300 0.0372
1.2 0.4 0.3 0.2 0.3 0.0072
2.1 0.4 0.3 0.5 0.1 0.0060 0.0150
2.2 0.3 0.5 0.2 0.3 0.0090
Основные классы и методы
Программная реализация использует библиотеку созданную ранее. Библиотека предоставляет базовые операции над АК-объектами и включает в себя следующие возможности и элементы [11]:
• структуры данных для хранения АК-объектов;
• алгоритмы, реализующие операции над АК-объектами;
• возможность чтения и записи используемых данных в хт1-файл.
Основные классы библиотеки:
• акБотат, акГОотат — классы для представления АК-домена;
• акАййЬШе — класс для представления АК-атрибута;
• акСотропей — класс для представления компоненты;
• акСо1итп — контейнер для хранения значений столбца некоторой системы;
• ак8сЬете — класс для представления АК-схемы;
• акС8у81ет, аШ8у81ет, акКу81ет — классы для хранения АК-систем;
• акМат — контейнер, используемый для хранения всех используемых в программе АК-объектов.
Методы библиотеки:
• создание, удаление, редактирование используемых в библиотеке классов;
• операции объединения, пересечения, дополнения, минимализации АК-систем;
• операция ортогонализации АК-систем;
• обработка сложных составных операций над АК-объектами.
Для реализации методов ЛВА и хранения значения вероятностей событий были созданы классы, позволяющие осуществлять хранение и обработку метрических (вероятностных) характеристик АК-объектов. Диаграмма классов разработанного программного модуля представлена на рис. 3.
Рис. 3. Диаграмма классов разработанного программного модуля
Основные классы разработанной библиотеки:
• AttributeChancesContamer — контейнер, описывающий вероятности одной отдельной системы событий. Каждый экземпляр класса сопоставлен некому экземпляру класса akAttribute;
• akSchemeChancesContainer— контейнер, соответствующий некоторому вероятностному распределению и содержащий в себе несколько экземпляров AttributeChancesContamer. Каждому экземпляру класса сопоставлен экземпляр akScheme. Содержит в себе непосредственно алгоритм подсчёта вероятности некоторой С-системы для заданного вероятностного распределения;
• ChancesMetaContainer — контейнер, хранящий в себе все экземпляры akSchemeChancesContainer. Обычно существует только один экземпляр контейнера, который соответствует экземпляру класса akMain.
Также был разработан класс akIntervalBounds. Класс содержит в себе основные методы работы с интервальными доменами, также его цель состоит в хранении всех взаимоотношений между интервальными АК-объектами: класс хранит все домены и атрибуты, получающиеся при квантовании. Так как при квантовании одного и того же домена или атрибута получаются всегда идентичные домены/атрибуты, это предоставляет возможность вместо создания новых объектов использовать старые. Описание соответствий реализовано с помощью STL-контейнера «map», что позволяет быстро находить потенциально возможные для повторного использования АК-объекты или же убеждаться в факте их отсутствия.
COM-интерфейсы, разработанного модуля
Система допускает возможность использования своих функций внешними программами посредством встроенных COM-интерфейсов.
Допускается, что внешняя программа-клиент может формировать XML-файлы с данными о вероятностных пространствах и используемых АК-объектах, или знает об их расположении и содержании.
Интерфейс AKAutomation
Интерфейс AKAutomation является объектом OLE автоматизации и предоставляет функции работы с АК-объектами и ЛВА в общем виде. Взаимодействие с интерфейсом осуществляется с помощью трёх основных методов:
• OpenAKFile(BSTR filename) — является командой серверу открыть файл с описанием используемых АК-объектов, расположенный по адресу filename;
• OpenChancesFile(BSTR filename) — является командой серверу открыть файл с описанием используемых вероятностных пространств, расположенный по адресу filename;
• ProcessSystem(BSTR SystemName, BSTR ProbabilitySpaceName) — команда серверу произвести вероятностный анализ системы с именем SystemName в вероятностном пространстве с названием ProbabilitySpaceName.
Интерфейс AKDetailedAutomation
Интерфейс AKDetailedAutomation также является объектом OLE автоматизации и предоставляет функции работы с АК-объектами и ЛВА. Взаимодействие осуществляется с помощью следующих функций:
• NewFile() — создать новый пустой документ на сервере;
• CreateDomain(BSTR name, long domtype) — создаёт домен с именем name, тип домена передаётся в параметре domtype;
• AddElementToDomain(BSTR domname, VARIANT element) — добавляет в домен с названием domname элемент element, так как домены могут содержать элементы разных типов данных, передача с помощью встроенного типа Variant;
• CreateAttribute(BSTR name, BSTR domname) — создаёт атрибут с названием name над доменом с названием domname;
• CreateScheme(BSTR name) — создаёт схему с названием name;
• AddAttributeToScheme(BSTR schemename, BSTR attributename) — добавляет в схему с названием schemename атрибут с названием attributename.
• CreateCSystem(BSTR name, BSTR scmname) — создаёт С-систему с названием name в схеме scmname;
• CreateDSystem(BSTR name, BSTR scmname — создаёт D-систему с названием name в схеме scmname;
• AddRowToSystem(BSTR systemname) — добавляет строку в систему;
• SetComponent(BSTR systemname, long row, long column, BSTR bitset) — устанавливает значение элемента столбца column строки row системы systemname в значение битового массива, переданном в строке bitset;
• DeleteDomain(BSTR name) — удаляет домен name;
• DeleteAttribute(BSTR name) — удаляет атрибут name;
• DeleteScheme(BSTR name) — удаляет схему name;
• DeleteSystem(BSTR name) — удаляет систему name;
• NewOperation(BSTR expr, BSTR result) — осуществляет выполнение выражения, описанного с помощью строки expr, записывает результат в систему result;
• CreateProbabilitySpace(BSTR name, BSTR schemename) — создаёт вероятностное пространство с именем name над схемой schemename;
• SetChance(BSTR ProbabilitySpaceName, BSTR AttributeName, int Element, double Value) — в вероятностном пространстве ProbabilitySpaceName в атрибуте AttributeName присваивает элементу с номером Element значение Value;
• ProcessSystem(BSTR SystemName, BSTR spacename) — осуществляет процедуру ЛВА над системой SystemName с помощью вероятностного пространства spacename.
Пользовательский интерфейс
Интерфейс приложения представляет собой оконное приложение с возможностями проводить различные операции с АК-объектами (рис. 4 а,б).
В ходе работы над приложением в интерфейс были добавлены следующие возможности (рис. 5):
• ^поставление элементам доменов значений вероятностей;
• логико-вероятностный анализ событий, представленных С-системами;
• квантование интервальных доменов.
Рис. 4а. Вкладки для работы с атрибутами, схемами и системами
Рис. 4б. Вкладки для работы с атрибутами, схемами и системами
Для работы с вероятностными распределениями предусмотрена отдельная вкладка в главном окне. Вкладка содержит кнопки для создания и удаления вероятностного пространства, кнопки для сохранения и загрузки вероятностных пространств из файла, список выбора вероятностного пространства, список выбора атрибута выбранного вероятностного пространства и таблицу для редактирования значений вероятностей.
Рис. 5. Вкладка для работы с вероятностными распределениями
Логико-вероятностный анализ систем осуществляется в отдельной вкладке главного окна. Вкладка содержит список для выбора схемы, в которой будут находиться системы и вероятностные пространства, списки для выбора систем, кнопку для проведения вероятностной оценки систем.
Рис. 6. Вкладка для проведения вероятностного анализа
Из рис. 6 видно, что одну и ту же С-систему можно погрузить в различные вероятностные пространства. С другой стороны, созданную вероятностную схему можно использовать для расчета нескольких С-систем, что обеспечивает поддержку многовариантных расчетов.
Заключение
В процессе работы над приложением выполнены следующие задачи:
• разработаны и реализованы классы для представления вероятностей систем, узлы которых могут находиться во многих состояниях;
• реализован алгоритм квантования доменов, значения которых заданы как система пересекающихся интервалов;
• разработан и запрограммирован алгоритм пересчёта компонент АК-объектов с учётом квантования доменов;
• реализованы алгоритмы унифицированного метода расчёта надёжностей структурно-сложных систем;
• создан эргономичный пользовательский интерфейс, позволяющий использовать вышеперечисленные возможности;
• разработан COM-интерфейс для доступа к функциям программы из внешних приложений.
Таким образом, разработанная система может быть использована как самостоятельно, так и в качестве внешнего программного модуля (сервера), предоставляющего функции работы с АК-объектами и методы ЛВА для других программных приложений.
Литература
1. Рябинин, И.А. Надежность и безопасность структурно-сложных систем. / И .А. Рябинин. - СПб., Политехника, 2000. - 248 с.
2. Рябинин, И.А. Логико-вероятностные методы исследования надежности структурно-сложных систем. / И. А. Рябинин, Г. Н.Черкесов. - М,. Радио и связь, 1981. - 264 с.
3. Соложенцев, Е.Д. Сценарное логико-вероятностное управление риском в бизнесе и технике / Е.Д. Соложенцев. - СПб., Издательский дом "Бизнес-пресса", 2004. - 432 с.
4. Кулик, Б.А. Алгебраический подход к интеллектуальной обработке данных и знаний / Б.А. Кулик, А.А. Зуенко, А.Я. Фридман. - СПб.: Изд-во Политехн. ун-та, 2010. - 235 с.
5. Зуенко, А.А. Матрицеподобные вычисления в задачах удовлетворения ограничений /А.А. Зуенко // Шестая Всероссийская мультиконференция по проблемам управления, 30 сентября - 5 октября 2013 г., г. Геленджик, с. Дивноморское: материалы мультиконференции в 4 т. - Ростов-на-Дону: Изд-во Южного федерального университета, 2013. -Т.1. - C.30-34.
6. Зуенко, А.А. Реализация комбинированных методов логико-семантического анализа с использованием алгебры кортежей / А.А. Зуенко, Б.А. Кулик, А.Я. Фридман // Тринадцатая национальная конференция по искусственному интеллекту с международным участием, 16-20 октября 2012г., г. Белгород: труды конференции. - Белгород: Изд-во БГТУ, 2012. -Т.2. - С.67-75.
7. Кулик, Б.А. Вероятностная логика на основе алгебры кортежей. / Б. А. Кулик // Известия РАН. Теория и системы управления. 2007. - № 1. - С.118-127.
8. Kulik, B. Modified Reasoning by Means of N-Tuple Algebra / B. Kulik, A. Zuenko, A. Fridman // Pattern Recognition and Information Processing (PRIP'2011): Proceedings of the 11th International Conference, 18-20 May, Minsk, Republic of Belarus). - Minsk: BSUIR, 2011. - P.271-274.
9. Kulik, B. Logical Analysis of Intelligence Systems by Algebraic Method / B. Kulik, A. Fridman, A. Zuenko // Cybernetics and Systems 2010: Proceedings of Twentieth European Meeting on Cybernetics and Systems Research (EMCSR 2010). - Vienna, Austria, 2010. - P.198-203.
10. Федунов, Б.Е. Вывод по прецеденту в базах знаний бортовых интеллектуальных систем / Б.Е. Федунов, М.Д. Прохоров // Искусственный интеллект и принятие решений, 2010. - Вып. 3. - С.63-72.
11. Зуенко, А.А. Реализация библиотеки АК-объектов / А.А. Зуенко, С.В. Баженов // Труды Кольского научного центра РАН. Информационные технологии. -Вып. 3. -4/2012(11). - Апатиты: Изд-во КНЦ РАН, 2012. -С.207-217.
Сведения об авторе
Зуенко Александр Анатольевич - к.т.н, научный сотрудник,
е-mail: zuenko @iimm.kolasc .net.ru
Alexander A. Zouenko - Ph.D. (Tech. Sci.), Researcher