Разработка сервиса, реализующего байесовские сети для решения задачи поиска ложноположительных ошибок менеджера в управлении проектами по разработке программного обеспечения
Введение 3
1 Байесовские сети как инструмент анализа данных 6
1.1 Теория: Байесовская сеть 6
1.2 Теория: Прямой вероятностный вывод 9
2 Техническая реализация Байесовских сетей в системе
поддержки принятия решений 11
2.1 Обзор исходной системы 13
2.1.1 Хранение основной структуры Байесовской сети 13
2.1.2 Хранение вероятностного вектора 15
2.1.3 Прямой вероятностей вывод в прототипе системы принятия
решений 18
2.2 Сравнительный анализ инструментов по работе с
Байесовскими сетями 20
2.3 Разработка системы для работы с Байесовскими сетями 22
2.3.1 Хранение структуры Байесовской сети 22
2.3.2 Внедрение рабочих продуктов в систему принятия решений ..
25
2.3.3 Получение вероятностного вектора 26
2.3.4 Изменение прямого вероятностного вывод 29
2.4 Оптимизации прямого вероятностного вывода в Байесовских
сетях 33
2.4.1 Сравнение языков программирования 33
2.4.1.1Горутины и как они работают 36
2.4.2 Предобработка данных 38
2.4.3 Параллелизация вычислений 39
3 Полученные результаты 42
3.1 Реализация взаимодействия с Neo4j 44
3.2 Взаимодействие с внешней системой 45
3.3 Результаты 48
Заключение 50
Список использованных источников 51
Современный общественный контекст характеризуется увеличением количества информации и растущей сложностью данных, встречающихся в различных научных и практических областях. Этот явный феномен, связанный с происходящими в мире научно-техническими прорывами, информационной революцией и всеобъемлющим проникновением цифровых технологий, имеет существенное влияние на наше понимание окружающего мира и способы его исследования. Данный феномен сталкивает нас с парадоксальным вызовом: с одной стороны, мы обладаем более широким доступом к данным, чем когда- либо прежде, благодаря расширению интернета, цифровизации информации и развитию мощных вычислительных систем; с другой стороны, возникает сложность анализа, интерпретации и использования этих обширных и разнообразных данных.
В силу постоянного роста объема информации, принятие надежных решений в современном мире представляет значительную сложность. Этот вызов в особенности актуален в контексте научных исследований и практических применений, где корректные выводы и эффективные стратегии действий сильно зависят от адекватной обработки и анализа данных.
В условиях растущей сложности и разнообразия проблем, с которыми сталкиваются современные общественные и научные дисциплины, требуется постоянное развитие и применение новых математических методов для эффективного принятия решений. Традиционные подходы и инструменты становятся недостаточными для обработки и анализа объемных данных, а также для построения надежных моделей, способных объяснять и предсказывать явления в реальном мире.
При работе с вероятностным моделированием возникают различные трудности, которые условно можно подразделить на две группы: технические сложности, такие как сложность вычислений и комбинаторных задач, и идейные проблемы, которые связаны с неопределенностью и постановой задач с точки зрения математического смысла. Для решение данной проблемы можно использовать Байесовские сети, поскольку в них можно сочетать эмпирические данные с субъективными оценками, что отличает их от других методов моделирования и придает им важные практические преимущества.
Взяв за основную математическую модель Байесовскую сеть, автор диссертации [1] предложил прототип в виде системы поддержки принятия решений, построенного на стандарте OMG Essence [2].
Предложенный инструмент позволяет рассчитать вероятность того, что менеджер допустит ложноположительную ошибку при определении текущего статуса проекта. Стандарт OMG Essence предоставляет набор утверждений, относящихся к проекту, которые менеджер оценивает на предмет их истинности или ложности в данный момент времени. Инструмент вычисляет вероятность ошибки менеджера, сравнивая их оценку с рассчитанной вероятностью истинности каждого утверждения.
В рамках прототипа была построена сеть, состоящая из 646 вершин и суммарно более 1800 связями между ними. Также в рамках прототипа была предложена система, имплементирующая байесовские сети в систему, но она не удовлетворяла требованию к скорости выполнения прямого вероятностного вывода.
По причине того, что предложенный вариант системы не подходил для реализации удобного в использовании инструмента для поддержки принятия решений в сфере разработки программного обеспечение, было принято решение реализовать новую систему, которая бы удовлетворяла данным требованиям.
Целью данной выпускной квалификационной работы является разработка сервиса, реализующего Байесовские сети для решения задачи поиска ложноположительных ошибок менеджера.
Для достижения этой цели были поставлены следующие задачи:
1. Изучить алгоритмические основы применения байесовских сетей и прямого вероятностного вывода для поиска ложноположительных ошибок менеджера.
2. Проанализировать инструменты для работы с байесовскими сетями.
3. Реализовать сервис для интеграции байесовских сетей в систему поддержки принятия решений.
4. Оптимизировать алгоритм прямого вероятностного вывода до “разумного” времени выполнения.
В данной исследовательской работе были представлены различные методы, примененные для реализации Байесовского подхода в системе поддержки принятия решений. Особое внимание было уделено методам оптимизации прямого вероятностного вывода, которые позволили достичь максимального улучшения производительности системы.
В контексте требования №1, применение графовой системы управления базами данных (СУБД) позволяет преодолеть ограничения на количество вершин в сети, что способствует удовлетворению данного требования. Кроме того, применение графовой СУБД снимает ограничение на количество родительских вершин (с точки зрения хранения) и обеспечивает быструю перестройку сети. Важным аспектом является интеграция системы, и для этого были использованы API и библиотеки для взаимодействия с Neo4j, предоставляемые разработчиком графовой СУБД.
Разработка сервера для взаимодействия с другими системами открывает возможность интеграции данного метода в различные программные системы, которые используют поддерживаемый gRPC язык программирования.
В рамках данной работы разработанная система была зарегистрирована [22] и введена в эксплуатацию.
В дальнейшем данная работа будет продолжена с целью расширения возможностей системы, включая предложение последующих итераций разработки программного обеспечения.