Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дипломы / Диплом окончательный.docx
Скачиваний:
112
Добавлен:
30.03.2015
Размер:
1.64 Mб
Скачать

3 Аспекты программной реализации в системе имитационного моделирования Simbigraph

Разработанный алгоритм реализован в системе моделирования SIMBIGRAPH, ориентированный на моделирование больших сетей. Ориентированность системы согласуется с выводами Европейского сообщества по развитию агентных вычислений AgentLink III, в соответствии с которыми приоритетным направлением развития теории агентного моделирования является разработка сетевых структур взаимодействия между агентами. В SIMBIGRAPH такие структуры реализуются и поддерживаются разнообразными графовыми моделями среды взаимодействия агентов. Система SIMBIGRAPH используется для анализа сложных процессов в сетях. Архитектура системы основывается на имеющихся в области имитационного моделирования подходах и разработках российских и зарубежных исследователей. Аналогами системы моделирования SIMBIGRAPH являются такие известные системы имитационного моделирования, как SWARM, ASCAPE (Бруклинский институт, США), МАSON (Университет Джорджа Мейсона), NETLOGO (Северо-западный университет, США), RepastLogo (Чикагский университет, Аргонская национальная лаборатория, США), а также система имитационного моделирования AnyLogic (XJ Technologic, Россия). Все перечисленные аналоги обеспечивают некоторый уровень работы со структурами взаимодействия агентов, как правило, позволяя задавать такие структуры, как случайные графы и решетки.

Как и большинство перечисленных систем моделирования языком написания системы, а также внутренним языком разработки агентных моделей в разрабатываемой системе имитационного моделирования Simbigraph является язык программирования высокого уровня Java. Для программирования агентов приложений пользователю доступны классы сторонних библиотек: JAVA3D, JUNG, JFreeChart.

В отличие от перечисленных систем агентного моделирования сетевых структур SIMBIGRAPH предоставляет:

– широкий набор средств моделирования решёток (реализованы взаимодействия агентов в гексагональной, квадратной, треугольной, кубической решетках);

– широкий набор генераторов случайных графов,  средства калибровки генерируемых графовых моделей по имеющимся статистическим данным о моделируемых реальных сетях;

– импорт/экспорт файлов с использованием широко распространенных форматов представления графов,  широкий набор методов для анализа характеристик графов.

На рисунке 9 представлена диаграмма пакетов системы имитационного моделирования системы Simbigraph. Представлены следующие пакеты:

1) engine – пакет, содержащий календарь событий для управления модельным временем имитации;

2) graphs – пакет для поддержки моделирования случайных графов;

3) gui – пакет, реализующий основные графические интерфейсы;

4) core – пакет для реализации базовых математических функций (случайные величины);

5) projections – пакет для реализации иерархий проекций.

Рисунок 9 – Диаграмма классов (пакет projection) в системы Simbigraph, сгенерированная в среде разработки BlueJ

На рисунке 10 представлена диаграмма, сгенерированная для пакета, содержащего Проекции системы Simbigraph. Интерфейс Projection отвечает за конкретное представление структуры взаимодействия, с которым работает система. Это Проекции для работы с сетевыми структурами, генерируемыми в результате триангуляции Делоне (TriangulationDelaneyProjection), для работы с решетками (Lattice2D, Lattice3D), графами Кроннекера (KronnekerGraphProjection), графами предпочтительного связывания (ProjGraphPA) и другими типами случайных графов (NetworkProjection).

Рисунок 10 – Диаграмма классов (пакет projection) в системы Simbigraph, сгенерированная в среде разработки BlueJ

Разработанный алгоритм можно внедрить  как отдельный тип генератора в проекцию ProjGraphPA или путем модификации ProjGraphPA, с заменой используемого генератора графов предпочтительного связывания на новый генератор, который использует калибровку по коэффициенту кластеризации, а в остальном работает как оригинальный генератор. Был выбран 2-й вариант. На рис. 11 представлена диаграмма классов пакета graph.generators, в котором содержатся классы основных генераторов графов в системе Simbigraph.

Рисунок 11 – Диаграмма классов Simbigraph пакета generators

Класс GeneratorClastPA, который реализует алгоритм генерации графа представлен на рисунке 12. Интерфейс Factory передается в конструктор класса GeneratorClastPA и используется для создания узлов и рёбер. Интерфейс Map используется для хранения значений пар смежных узлов, со степенями связности, которые хранятся в объектах класса Para.

Рисунок 12 – Диаграмма классов Simbigraph для разработанного класса

Моделирование сетей в SIMBIGRAPH удобно описать с позиций двухэтапного подхода: на первом этапе формируется графовая модель, а на втором сформированная графовая модель используется для организации имитационного моделирования, т.е. моделирования передачи информации, ресурсов и так далее.

Первый этап – генерация графовых моделей сетей осуществляется путем генерации случайных графов и задания размеров и типов грида (рисунок 13). Именно здесь представлены модели сл.г. с НППС, граф Эрдеша–Реньи, граф Эпштейна и т.д. На втором этапе происходит непосредственное моделировани.

Правило предпочтительного связывания инкапсулируется в реализациях интерфейса PrefferentialAttachment. Пример правила предпочтительного связывания для реализации линейного правила представлено ниже.

class prefRule implements PrefferentialAttachment {

public double f(int k) {

return k;

}

}

Рисунок 13 – Диаграмма классов Simbigraph для разработанного класса

Соседние файлы в папке Дипломы