
- •Введение
- •Анализ предметной области. Постановка задачи на разработку
- •Комплектация помещений
- •Перечень технических устройств
- •Рабочая программа дисциплины «мис»
- •Описание лабораторной работы
- •Пример решения задачи
- •Критерии оценки при выполнении лабораторной работы
- •Постановка задачи на разработку и требования к системе
- •Выбор средств разработки приложения
- •Язык программирования
- •Разработка программного приложения для выполнения лабораторных работ
- •Архитектура приложения
- •Разработка базы данных
- •Пользователи и алгоритмы их работы
- •Проверка результатов
- •Разработка пользовательского интерфейса
- •Реализация пользовательского интерфейса и тестирование приложения
- •Реализация интерфейса преподавателя
- •Реализация пользовательского интерфейса модуля «Алгоритм Косарайю»
- •Реализация пользовательского интерфейса модуля «Метод к-средних»
- •Тестирование разработанного приложения
- •Заключение
- •Список использованных источников
Описание лабораторной работы
В рассматриваемой сети передачи информации, состоящей из 25 подсетей (Рис. 1.2.), каждая подсеть обслуживается отдельным интернет-провайдером. Граничные маршрутизаторы, отвечающие за взаимодействие своих подсетей, могут обмениваться данными как напрямую, так и через другие маршрутизаторы, что усложняет прогнозирование трафика на конкретном маршрутизаторе в определённый момент времени. В результате, на одном маршрутизаторе могут возникать пиковые нагрузки, тогда как другие узлы могут функционировать с низкой загруженностью. Для обеспечения выполнения обязательств провайдеров перед клиентами по межсетевому обмену в соответствии с уровнями обслуживания необходимо сгруппировать узлы в кластеры. Для решения данной задачи студентам рекомендуется применить алгоритм Косарайю для нахождения сильных компонент графа, что позволит более эффективно организовать взаимодействие между узлами и оптимизировать распределение нагрузки в сети.
Рисунок 1.2 — Схема сети
В рассматриваемой сети информация передаётся между маршрутизаторами с различной интенсивностью, что связано с особенностями её конфигурации и закономерностями распределения трафика. Например, если от маршрутизатора 1 к маршрутизатору 2 передаётся большой объём данных, а обратный поток менее значителен, это создаёт естественную асимметрию в связи между узлами. Преобразование такой сети в граф позволяет формализовать взаимодействие маршрутизаторов, где направление рёбер отражает преобладающие потоки данных, а вес рёбер может учитывать объём передаваемой информации. Такой подход предоставляет наглядное представление сети, что позволяет проводить анализ её структуры, определять маршруты и выявлять узкие места в процессе передачи данных.
Решением задачи алгоритма Косарайю является нахождение сильных компонент ориентированного графа, что позволяет выявить максимальные подмножества вершин, в которых каждая вершина достижима из любой другой вершины данного подмножества.
На первом этапе алгоритма выполняется
обход в глубину (DFS) по исходному графу.
В процессе этого обхода для каждой
вершины определяется порядок её
завершения, который сохраняется в стек.
Этот порядок является критически важным
для второго этапа, так как он отражает
последовательность, в которой вершины
могут быть обработаны. Формально, если
,
— направленный граф, то порядок завершения
вершин можно обозначить как
.
На втором этапе создаётся транспонированный
граф
,
где все направления рёбер инвертированы:
если в исходном графе существует ребро
то
в транспонированном графе будет ребро
.
Затем выполняется второй обход в глубину
по транспонированному графу с
использованием порядка вершин из стека
,
которые были получены на предыдущем
этапе. Каждая группа вершин, достигнутая
за один проход DFS по
,
образует сильную компоненту.
Сильные компоненты могут быть формально
определены как подмножества вершин
,
такие что для любых двух вершин
существует путь из
в
и обратно.
Переходя к методам кластеризации, следует отметить, что как алгоритм Косарайю, так и метод К-средних служат для анализа структур данных, но они преследуют различные цели и используют разные подходы.
В рамках сети передачи данных метод К-средних может быть применен для кластеризации узлов со схожими характеристиками, такими как пропускная способность, задержка, время работы и интенсивность обработки пакетов. Перед началом кластеризации необходимо установить набор объектов, которые будут объединены в кластер (1):
X =
|
(1) |
где
– соответствует объекту;
–
соответствует признаку.
После определения координат и характеристик
точек задаётся количество кластеров
,
которые требуется сформировать, а также
выбрать метрику расстояний между данными
точками
,
1
,
.
Для построения кластера, нужно установить
его центр (центроид), который может быть
определён как детерминировано, так и
случайным образом. Пусть центроид
кластера -
,
где
.
Центроид представляет собой точку из
множества
,
совпадающую с
.
На следующем шаге выполняется процесс
создания кластеров, который реализуется
пошагово. В каждом итерационном цикле
определяется расстояние
,
показывающее, на каком удалении находится
каждый элемент
от центроида
,
используя заданную метрику D (
).
Затем находится минимальное значение
этого расстояния, что выражается
следующей формулой (2):
|
(2) |
где
—
номер кластера, к которому отнесён
объект
;
— объект, для которого рассчитывается расстояние до центроидов;
— центроид α-го кластера;
—
расстояние между объектом
и центроидом
;
— индекс кластера, при котором
расстояние минимально;
— номер объекта.
После этого обновляются координаты центров для каждого кластера, что определяется следующей формулой (3):
|
(3) |
где
— координата центроида для кластера α;
— вектор признаков объекта i;
—
номер кластера, к которому отнесён
объект i;
— индикаторная функция, равная 1, если
объект i принадлежит
кластеру α, и 0 в противном случае;
— множество всех кластеров;
— общее количество объектов.
Этот процесс продолжается до тех пор, пока позиции центроидов не достигнут стабильности. Алгоритм гарантированно завершится благодаря теоретическому обоснованию, которое утверждает, что расположение центров кластеров будет сходиться к равновесному состоянию независимо от исходых данных и размерности пространства признаков при заданной метрике.
Для выполнения лабораторной работы каждому студенту предоставляются входные данные, соответствующие его номеру варианта. После получения этих данных студент выполняет следующие шаги:
Изучение основ алгоритмических подходов и методов, лежащих в основе алгоритмов Косарайю и K-средних. Ознакомление с функциональными возможностями программного обеспечения, предназначенного для реализации указанных алгоритмов.
Выполнить группировку узлов в сети с использованием алгоритма Косарайю и метода К-средних. Расчеты производятся вручную, максимально допустимое средство вычислительной техники на данном этапе является калькулятор. Для расчетов будут задействованы следующие параметрические модели кластеризации:
Координаты узлов, представленные в виде числовых значений (евклидово расстояние);
Параметры сетевых характеристик (пропускная способность, задержка, интенсивность обработки пакетов).
Ввод исходных данных в специализированную программную среду, выполнение алгоритмов Косарайю и K-средних, а также комплексный анализ полученных результатов кластеризации с их сравнением с результатами аналитических расчетов.