Разработка программного обеспечения для анализа и моделирования взвешенных сетей
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
p;
Рис. 8. Иллюстрация модели WGP
2. Проектирование и реализация
Сложные сети реального мира содержат множество узлов и ребер. Для их моделирования и анализа необходимо специальное программное обеспечение. Для пользователя важно, чтобы приложение обладало определенным набором функций. Таким образом, можно выделить основные требования к системе.
2.1 Общие требования к интерфейсу
Пользовательский интерфейс представляет собой совокупность методов и средств, при помощи которых пользователь взаимодействует с множеством элементов системы. Требования к пользовательскому интерфейсу можно разбить на две группы:
1.Требования к внешнему виду и формам взаимодействия с пользователем;
2.Требования по доступу к внутренней функциональности системы при помощи пользовательского интерфейса.
К системе должно прилагаться руководство пользования - документ, предоставляющий помощь в использовании системы.
Пользовательский интерфейс должен быть интуитивно понятным. Под этим подразумевается, что пользователь обращается к руководству не чаще, чем раз в десять минуть на этапе обучения и что доступ к любой функции системы осуществляется не более чем за пять щелчков мыши.
2.2 Функциональные требования
Приложение должно иметь возможности:
.генерировать сети;
.вычислять основные характеристики:
.1.распределение степеней;
.2.коэффициент кластеризации;
.3.распределение сил узлов;
.строить графики зависимостей основных характеристик;
.сохранять и загружать смоделированные сети;
.сохранять результаты анализа сетей.
2.3 Выбор среды разработки
Для разработки был выбран объектно-ориентированный язык C#. Используемый в нем механизм наследования позволяет описывать классы на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом. Это позволяет структурировать объекты системы, тем самым облегчая доступ к полям и функциям наследуемых объектов.
Язык C# содержит богатый инструментарий для создания многофункционального пользовательского интерфейса, поэтому, в настоящее время, широко используется в разработке оконных приложений.
Выбранная среда разработки накладывает следующие требования к ЭВМ:
1.Операционная система Windows XP или более поздняя версия;
2.Для работы приложения необходима установленная программная платформа.NET Framework версии 3.5 или выше.
Структура приложения
Рис. 9. Контекстная диаграмма
Разрабатываемое приложение позволяет моделировать взвешенные и невзвешенные сети, а также дает возможность проводить их анализ. Для этого пользователю нужно ввести необходимые параметры, которые зависят от выбранной модели. Моделирование проводится по 4 алгоритмам:
1.алгоритм модели Эрдеша-Реньи:
1)в начальный момент времени в сети изолированных вершин;
)с некоторой вероятностью вершины сети связываются между собой.
2.алгоритм модели Альберта-Барабаси:
1)в начальный момент времени в сети изолированных вершин, ;
)на каждом шаге добавляется новый узел t с m ребрами, ;
)новая вершина связывается с уже существующими с вероятностью, пропорциональной числу связей узлов в сети:
(7)
матрица смежность программный веспиньяни
Алгоритм модели BBV (Баррат-Бартелэмью-Веспиньяни)
В начальный момент времени в сети связанных вершин, каждая связь имеет начальный вес ;
На каждом шаге добавляется новый узел t с m ребрами, который присоединяется к существующей вершине i, согласно механизму группового предпочтения:
(8)
где - сила узла;
1)появление нового ребра вносит изменения в веса всей сети. Перераспределение весов между узлами совершается по определенному правилу,
(9)
где и [4].
Алгоритм модели взвешенного предпочтительного присоединения:
1)в начальный момент времени в сети связанных вершин, каждая связь имеет начальный вес ;
)на каждом шаге добавляется новый узел t с m ребрами, который присоединяется к существующим m вершинам, согласно распределению вероятности:
(10)
где - сила узла;
3)появление нового ребра вносит изменения в веса всей сети. Перераспределение весов между узлами совершается по определенному правилу,
(11)
где и [4].
Смоделированную сеть можно сохранить в текстовый файл в виде списка вершин и их соседей. В дальнейшем, сохраненные сети можно загрузить в приложение для анализа.
Анализируются основные характеристики: распределение степеней, распределение весов, кластеризация. Полученные данные также можно сохранить в виде списка и визуализировать. Для распределений степеней и весов графики строятся по логарифмической шкале.
Особенностью приложения является его открытость. Это означает, что оно имеет возможность добавления новых моделей, характеристик для расчета и модулей.
На рисунке 10 показана детализация работы приложения.
Рис. 10. Детализация работы системы
Главное окно программы содержит строку меню, прижатую к верхней части окна, и рабочую область (см. рис. 11). В рабочей области представлены выбор моделей, поля для ввода параметров, а также кнопки для визуализации интересующих величин.
Строка меню содержит 3 пункта: Файл, Модули и Справка. Пункт Файл дает