Список литературы
1. Ивутин А.Н., Дараган Е.И. Основные подходы к верификации программного обеспечения реального времени // Известия ТулГУ. Технические науки 2011. Вып. 2. С. 563-567
2. Hoffman L. Talking Model-Checking Technology // Communications of the ACM. 2008. Vol. 51. № 07/08. P.110-112
3. Касьянов В. Н., Мирзуитова И. Л. Реструктурирующие преобразования: Алгоритмы распараллеливания циклов.: Программные средства иматематические основы информатики. Новосибирск: ИСИ СО РАН, 2004 С.142-188.
4. Кларк Э.М., Грамберг О., Пелед Д. Верификация моделей программ: Model Checking. пер. с англ.; под ред. Р. Смелянского. М.:МЦНМО, 2002. 416 с.
A.N. Ivutin, E.I. Daragan
APPLICATION OF PETRI NETS AND METHODS GRAPHING INFORMATION DEPENDENCIES FOR SOLVING PARALLEL COMPUTING AND VERIFICATION
The basic aspects of parallel software are considered. Examples of the application of a technique of constructing a graph of information dependencies, as well as the possibility of its use for the construction of Petri nets are presented.
Key words: software, Petri nets, graph information dependencies, parallel computing.
Получено 16.09.11
УДК 004.412
А.Н. Ивутин, канд. техн. наук, доц.,
(4872) 33-24-45, [email protected] (Россия, Тула, ТулГУ),
А.А. Суслин, асп., (960) 599-99-91, [email protected] (Россия, Тула, ТулГУ)
ПОСТРОЕНИЕ БАЙЕСОВСКОЙ СЕТИ ДОВЕРИЯ ДЛЯ ОЦЕНКИ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОСНОВАНИИ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ
Описываются принципы функционирования статистических моделей байесовских сетей доверия, методика генерации их структуры по экспериментальным выборкам значений переменных показателей с целью применения полученной модели для оценки надежности программного обеспечения.
Ключевые слова: байесовские сети доверия, байесовский вывод, надежность программного обеспечения, оценка надежности, информационная безопасность, статистические модели надежности.
Несмотря на постоянные усилия исследователей в области оценки надежности программного обеспечения в последние десятилетия, разработчики так и не получили эффективного инструмента прогнозирования
226
надежности продукта до его запуска в эксплуатацию. Предложено большое количество моделей надежности, ни для одной из них не была доказана универсальность, то есть нет модели, удовлетворяющей всем возможным случаям и областям применения. Более того, как правило, даже незначительное отклонение от типовых параметров для таких моделей способно разбалансировать ее показания. Проблема состоит в том, что для каждого из подходов существует ряд корректных допущений, отступление от которых сразу делает теорию несостоятельной.
Универсальным математическим инструментом, позволяющим моделировать сложные причинно-следственные связи в автоматизированных системах и делать статистические выводы, являются байесовские сети доверия и теория Байеса в общем. Корректно заданная структура сети и вероятностные показатели позволяют придать модели универсальность, высокую точность и объективность прогнозирования надежности [1].
Байесовские сети доверия (далее - БСД) предоставляют исследователям возможность использовать удобное графическое представление многомерных статистических распределений. Теорема Байеса, лежащая в основе БСД, позволяет определить вероятность того, что произошло какое-либо событие (гипотеза) при наличии лишь косвенных тому подтверждений (данных), которые могут быть неточны, и определяет формулу Байеса:
= рщгу),
Р(В)
где Р(А) - априорная вероятность гипотезы А; Р(В) - вероятность наступления события В; Р(В|А) - вероятность наступления события В при истинности гипотезы А; Р(А|В) - вероятность гипотезы А при наступлении события В (апостериорная вероятность).
Формула Байеса позволяет по известному факту события вычислить вероятность того, что оно было вызвано данной причиной. События, отражающие действие «причин», обычно называют гипотезами, так как они -предполагаемые события, повлекшие данное. Безусловную вероятность справедливости гипотезы называют априорной (насколько вероятной причина вообще), а условную с учетом факта произошедшего события - апостериорной (насколько вероятна оказалась причина учетом данных о событии) [2].
Важным следствием формулы Байеса является формула полной вероятности события, зависящего от нескольких несовместных гипотез:
N
Р( В) = I Р( А) Р( В | а ), /=1
где Р(Аг) - вероятность 1-й гипотезы; Р(В|Аг) - вероятность наступления события В при истинности гипотезы Аг-.
Байесовская сеть доверия - это графическое представление условных вероятностных связей, заданное парой В>, где G - это ациклический направленный граф, узлы которого являются случайными переменными, а рёбра - обозначают вероятностные зависимости; В - это множество параметров, то есть распределений, определяющих уровень условных связей между переменными в БСД. Таким образом, БСД является моделью представления вероятностных зависимостей.
Если на графе БСД ребро выходит из вершины А в вершину В, то А называют родителем В, а В называют потомком А. Совместное распределение значений в вершинах можно удобно расписать как результат локальных распределений в каждом узле и его предках:
Р(XI,X2,...,Xn) = ПР(Xl | parents(Xi)), (1)
г =1
где Хг - вероятность события в вершине г; рагеп1Б(Х) - множество вершин-предков вершины X.
Если у вершины Хг нет предков, то его локальное распределение вероятностей называют безусловным, иначе условным. Если значение в узле получено в результате опыта, то вершину называют свидетелем (обозначенное вершиной событие - свидетельством).
Таким образом, БСД позволяют точно формализовать причинно-следственные связи, протекающие внутри любой системы, в том числе описывая процесс разработки программного обеспечения. Например, известны успешные попытки применения БСД в различных областях: медицинской диагностике, контроле транспортного движения, распознавание речи, и т.д.
Основной задачей при построении БСД, моделирующей реальный процесс, является установление структуры взаимосвязей показателей. При этом результатом наблюдения таких процессов является набор значений экспериментальных данных (обучающая выборка):
В = {^, й2,..., йп}, й = [хп, Хг 2,..., XiN},
где й1, й2, ..., йп - наблюдения за состоянием показателей; п - количество наблюдений; хг1, хг2, ..., х^ - состояние переменных показателей 1-го наблюдения; N - количество показателей, участвующих в наблюдении.
Решением такой задачи мог бы стать полный перебор всего множества нециклических моделей, и выбор из них наиболее соответствующей обучающей выборке. Однако такой метод имеет №-трудную вычислительную сложность - количество моделей для проверки:
п(п-1)
Nмоделей = 3 2 — кц,
где п - количество вершин (эквивалентно количеству переменных показателей); кц - количество циклических моделей.
Для вычисления количества нециклических моделей воспользуемся следующим рекурсивным соотношением (формула Робинсона) [3]:
n ■ 1 ■ , .4
f (n) = Z (-1)'+1 • С • 2 (n• f (n - i),
i=1
f (0) = 1,
где n - количество вершин (эквивалентно количеству переменных показателей); C'n - количество сочетаний из n по i.
Нетрудно посчитать, что количество моделей при полном переборе при увеличении числа вершин стремительно растет. Так уже при n = 7,
f (n) = 1138779265, а при n = 10, f (n) превышает 4 -1018. Следовательно, метод перебора моделей при подборе структуры байесовской сети является несостоятельным, так как для получения объективной картины такого сложного процесса, как надежность программного обеспечения, требуется анализ значительно большего количества показателей.
Таким образом, построение байесовской сети необходимо производить эвристическим методом. Для этого в первую очередь необходимо определить структуру взаимосвязей вершин, установив их взаимное влияние в контексте анализируемого процесса. Вторым этапом построения является обучение сети - то есть присвоение весов взаимосвязям, установление условных вероятностей.
Решением первой задачи могло бы стать построение структуры байесовской сети с использованием опыта экспертов в данной области знаний. Сбор мнения экспертов о взаимных связях показателей и их влиянии на надежность проводится в виде анкетирования и совместного построения графической модели по результатам анкетирования. Очевидно, что человеческий фактор негативно влияет на точность оценки, и, несмотря на достаточное количество методик повышения объективности полученных данных, они могут использоваться лишь для построения черновика графа взаимосвязей байесовской сети [4].
Для оценки степени взаимосвязанности пар переменных во множестве показателей надежности удобно использовать значение обоюдной информации, которое связано с понятиями энтропии и условной энтропии. Для дискретной случайной величины энтропия с функцией распределения p(x) = p(X = x) определяется как
H (X) = -Z p( x)log p( x).
x
В свою очередь, условная энтропия для пары дискретных случайных величин Y и X при известном X определяется как
H(Y | X) = Z p(x)H(Y | X = x) = -Z p(x)Z p(УI x) log p(y | x) =
x x y
= -ZZ p( x, y )log p( y1 x).
x y
Легко доказать, что H(Y\X) = 0 в случаях, когда Y связан с X функциональной зависимостью, например, Y = g(X). Для всех x: p(x) > 0, значение Y определяется как y = g(x), с вероятностью p(y\x) = 1.
Обоюдная информация (в зарубежных источниках - mutual information) показывает количество информации, которую одна случайная переменная содержит о другой. Для двух случайных переменных X и Y с совместной функцией распределения p(x, y) обоюдная информация MI(X, Y) -это относительная энтропия, фактически аналог корреляции, но для информационных показателей [5]
MI ( X, Y ) = XI p( x, y ) log P( ^ У\ = H (Y ) - H (Y \ X ) = H ( X ) - H ( X \ Y ).
x y p(x)p(y)
MI = 0 в том случае, когда оцениваемые показатели (вершины графа БСД) являются независимыми друг от друга, так как
p( x, y) = p( x) • p( y),
log
p( x y) p( x) • p( y )
log
p( x) • p( y)
log(1) = 0.
Р(х) ■ Р(у).
Таким образом, М1 > 0 показывает наличие обоюдной информации, или информационной зависимости, между вершинами. Подсчитать р(х) для каждой из вершин по имеющейся экспериментальной выборке несложно, при росте объема данных точность увеличивается.
В случае, если БСД состоит из N вершин, для вычисления М1 между всеми парами вершин потребуется выполнить (N ■ (N — 1)) / 2 вычислений, при этом М1(х, у) = М1(у, х).
Полученные с помощью вычислений результаты совместно с построенным по результатам экспертного анализа «каркасом» БСД позволяют получить корректный граф, отражающий статистические взаимосвязи показателей с надежностью ПО.
Первоначальные условные вероятности для вершин задаются на основании рекурсивной формулы (1). Их корректировка на более поздних этапах возможна, когда в результате сбора показателей получается новая полностью заполненная выборка В ходе последующей работы сети граничные маргинальные вершины, соответствующие измеримым в ходе оценки метрикам, максимизируют значения вероятностей, соответствующих измеренным показателям (то есть для вершины г рг(х/) = 1 в случае, когда X = х/).
Таким образом, используя описанную методику построения и обучения байесовской сети, для получения объективной оценки надежности программного обеспечения исследователям остаётся лишь собрать достаточное количество экспериментальных данных. Сгенерированная модель позволяет получать прогнозы надежности высокой степени доверия и объективности.
Список литературы
1. Ивутин А.Н., Суслин А. А. Подход к оценке надежности ПО на основе сетей Байеса // Перспективы развития телекоммуникационных систем и информационные технологии: сборник научных трудов международной конференции. СПб, 2008. 484 с.
2. Heckerman D. A tutorial on learning with Bayesian networks. The MIT Press, Cambridge, Massachusetts, 1998.
3. Robinson R.W. Counting unlabeled acyclic digraphs // Proceeding of Fifth Australian on Combinatorial Mathematics. Melbourne, 1976.
4. Kahneman D., Slovic P., Tversky A. Judgment Under Uncertainty: Heuristics and Biases. Cambridge: University Press, Cambridge, 1982.
5. Chow C.K., Liu C.N. Approximating discrete probability distributions with dependence trees // IEE Transactions on information theory. Vol. IT-14. № 3. 1968.
A.N. Ivutin, A.A. Suslin
SOFTWARE RELIABILITY EVALUATION BAYESIAN NETWORK BUILDING USING EXPERIMENTAL DATA
The general principles of Bayesian trusted network functioning are reviewed. The method of its structure generation using experimental data is described. The usage of models in complex software reliability estimation is offered.
Key words: Bayesian trusted networks, Bayesian solution, software reliability, reliability estimation, information security, statistical reliability models.
Получено 16.09.11
УДК 004.421:004.43:378
В.Ю. Преснецова, ассист., (4862) 41-98-34, alluvian@mail .ru (Россия, Орел, ОрёлГТУ)
АЛГОРИТМ ПОСТРОЕНИЯ ЛЕПЕСТКОВОЙ ДИАГРАММЫ ДЕЯТЕЛЬНОСТИ УНИВЕРСИТЕТА НА ОСНОВЕ ИСПОЛЬЗОВАНИЯ ВОЗМОЖНОСТЕЙ ЯЗЫКА СКРИПТОВ PHP
Предложен алгоритм, который позволяет в режиме реального времени на основе данных о деятельности каждого преподавателя построить лепестковую диаграмму, отражающую выполнение вузом аккредитационных показателей.
Ключевые слова: профессорско-преподавательский состав, автоматизированная информационная система, динамика развития университета, PHP, алгоритм, лепестковая диаграмма.
В современных условиях пользователи, выбирая профессию и вуз и оценивая динамику развития его деятельности, в первую очередь обращают внимание на кадровый профессорско-преподавательский состав (1111С). Совершенствование работы образовательных учреждений предполагает