Двумерная кластеризая по предельному расстоянию. Дискретная математика
Изучение основных вопросов теории графов и области ее применения на практике. Разработка алгоритма кластеризации по предельному расстоянию и построение минимального остовного дерева каждого кластера. Результаты тестирований работы данного алгоритма.
Рубрика | Математика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 24.11.2010 |
Размер файла | 362,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
17
Федеральное агентство по образованию
ГОУ ВПО "ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ"
Кафедра «Автоматизированные системы обработки информации и управления»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К КУРСОВОМУ ПРОЕКТУ
по дисциплине «Дискретная математика»
ДВУМЕРНАЯ КЛАСТЕРИЗАЦИЯ ПО ПРЕДЕЛЬНОМУ РАССТОЯНИЮ
Омск - XXX
Реферат
Отчёт 14с., 1ч., 12рис., 0табл., 3источника, 0прил.
ГРАФ, КЛАСТЕР, МИНИМАЛЬНОЕ ОСТОВНОЕ ДЕРЕВО.
Предметом курсового проекта является кластеризация.
Цель работы - разработка алгоритма кластеризации по предельному расстоянию и построение минимального остовного дерева каждого кластера.
В ходе работы был разработан алгоритм кластеризации.
В результате работы было написан алгоритм, решающий данные задачи.
Введение
Часто бывает полезно и наглядно изображать некоторую ситуацию в виде рисунка, состоящего из точек (вершин) и линий (рёбер), соединяющих некоторые вершины. Такие изображения получили названия графа.
Теория графов получила широкое применение на практике. Она применяется в гражданском строительстве, электротехнике, социологии и экономике и в других областях.
Одной из задач теории графов является кластеризация и построение минимального остовного дерева. Эти задачи часто возникают на практике: при группировке результатов поиска, проектировании компьютерных систем, соединении городов, составлении электрических цепей.
Целью данной работы является разработка алгоритма, выполняющего данные задачи.
Отчет содержит четыре раздела:
- постановка задачи курсового проектирования - это раздел, в котором описывается задача курсового проекта;
- схемы алгоритмов - это раздел, в котором описывается алгоритм и его схема;
- теоретический анализ - теория, необходимая для выполнения поставленной задачи;
- результаты тестирования - это раздел, в котором описываются результаты тестирований на правильность работы разработанного алгоритма.
1 Постановка задачи курсового проектирования
Реализовать алгоритм кластеризации заданного набора точек по предельному расстоянию d. После кластеризации граф каждого кластера редуцировать до минимального остовного дерева.
2 Теоретический анализ
Граф G - это математический объект, состоящий из множества вершин X = {x1, x2,..., xn} и множества ребер A = {a1, a2,..., ak}.
Связный граф -- такой граф, в котором между любой парой вершин существует по крайней мере один путь.
Взвешенный граф -- граф, каждому ребру которого поставлено в соответствие некоторое значение (вес ребра).
Вес ребра -- значение, поставленное в соответствие данному ребру взвешенного графа. Обычно вес -- вещественное число и его можно интерпретировать как «длину» ребра.
Если ребрам графа приданы направления от одной вершины к другой, то такой граф называется ориентированным. Ребра ориентированного графа называются дугами. Если направления ребер не указываются, то граф называется неориентированным (или просто графом).
Подграф исходного графа -- граф, содержащий некое подмножество вершин данного графа и некое подмножество инцидентных им рёбер.
Матрица смежности графа G с конечным числом вершин n (пронумерованных числами от 1 до n) -- это квадратная матрица A размера n, в которой значение элемента ai j равно числу ребёр из i-й вершины графа в j-ю вершину.
Матрица смежности простого графа является бинарной матрицей и содержит нули на главной диагонали.
Кластерный анализ -- задача разбиения заданной выборки объектов (ситуаций) на подмножества, так, чтобы каждый кластер состоял из схожих объектов, а объекты разных кластеров существенно отличались.
Кластер -- группа элементов, характеризуемых общим свойством.
В данном случае в кластеры объединяются точки, находящиеся на расстоянии меньше предельного d.
Лес -- неориентированный граф без циклов. Компонентами связности леса являются деревья.
Дерево -- это связный граф, не содержащий циклов.
Минимальное остовное дерево (или минимальное покрывающее дерево) в связанном, взвешенном, неориентированном графе -- это остовное дерево, имеющее минимальный возможный вес. Вес дерева -- сумма весов входящих в него рёбер.
В данном курсовом проекте для построения минимального остовного дерева используется алгоритм Краскала. Рёбра графа упорядочиваются в порядке не убывания их весов и последовательно добавляются к графу. Если добавление нового ребра приведёт к образованию цикла, то это ребро пропускается. Подграф данного графа, содержащий все его вершины и найденное множество рёбер, является его остовным лесом минимального веса.
3 Схемы основных алгоритмов
3.1 Пошаговый алгоритм
Шаг 1. Заполнение матрицы весов T.
Шаг 2. Создание матрицы смежности С.
Шаг 2а. Если расстояние между двумя точками s > d, то в матрицу заносится 0, иначе 1.
Шаг 2б. Повторение шага 2 N раз;
Шаг 3. Создание матрицы минимального остовного дерева ТТ;
Шаг 3а. Если ttii = 0, ttjj = 0, то ttij = tij, ttii = k, ttjj = k, k = k +1, где tij - минимальный положительный элемент матрицы T;
Шаг 3б. Если ttii = 0, ttjj ? 0, то ttij = tij, ttii = ttjj;
Шаг 3д. Если ttii ? 0, ttjj = 0,то ttij = tij, ttjj = ttii;
Шаг 3е. Если ttii ? 0, ttjj ? 0, ttii ? ttjj ,то ttij = tij, ttii = l, ttjj = l, где l - наименьшее из ttii и ttjj;
Шаг 3ж. Если ttii ? 0, ttjj ? 0, ttii = ttjj, то tij = -1;
Шаг 4. Проверка диагональных элементов матрицы ТT;
Шаг 4б. Если ttzz = 1, то повторить шаг 4. Иначе m = 0;
Шаг 5. Повторять алгоритм с шага 3 до тех пор, пока m ? 1;
3.2 Схема алгоритма.
Решение данной задачи состоит из нескольких этапов: кластеризации и построения минимального остовного дерева. Схемы этих алгоритмов, изображены на рисунках 2 - 4. Общая схема алгоритма изображена на рисунке 1.
Рисунок 1 - Схема основного алгоритма
Рисунок 2 - Алгоритм кластеризации
Рисунок 3 - Алгоритм построения минимального остовного дерева
Рисунок 4 - Алгоритм построения минимального остовного дерева (продолжение)
4 Результаты тестирования
Было проведено 3 различных эксперимента.
4.1 Тест первый.
Пусть граф содержит 8 вершин, координаты которых заданы случайным образом, а взвешенная матрица Т представлена на рисунке 5. Предельное расстояние d = 5;
Рисунок 5 - Тест первый (часть 1)
Шаг 1. Обнуление матрицы дерева ТТ.
Шаг 2. Составляем матрицу смежности С.
Шаг 2а. Если расстояние между двумя точками s > d, то в матрицу заносится 0, иначе 1.
Шаг 2б. Повторение шага 2 8 раз. Полученная в результате матрица смежности представлена на рисунке 6.
Рисунок 6 - Тест первый (часть 2)
Шаг 3. Составляем матрицу дерева ТТ.
Шаг 3а. Первоначально в матрице на главной диагонали все нули, значит
tt11 = tt22 = ... = tt88 = 0, k = 1;
Шаг 3б. Находим минимальный элемент матрицы Т - t12 = 0,5. Включаем данное ребро в матрицу ТТ и увеличиваем значение счётчика k = k + 1 = 2;
Шаг 3г. Находим следующий минимальный элемент и повторяем все действия из шага 3б. Таким образом перебираем всю матрицу.
Шаг 4. На главной диагонали матрицы ТТ находятся все 1. Полученная матрица представлена на рисунке 7.
Рисунок 7 - Тест первый (часть 3)
4.1 Тест второй.
Результат выполнения алгоритма с 20-ю вершинами, заданными случайными координатами и предельным расстоянием равным 2,5 представлен на рисунке 8.
Рисунок 8 - Тест второй (часть 1)
На данном рисунке видно, что граф был разбит на 8 кластеров. Увеличим предельное расстояние до 3. Из рисунка 9 видно, что количество кластеров сократилось до 4.
Рисунок 9 - Тест первый (часть 2)
Продолжая постепенно увеличивать предельное расстояние, увидим, что в итоге граф будет представлять собой один кластер. Минимальное остовное дерево этого кластера представлено на рисунке 10.
Рисунок 10 - Тест первый (часть 3)
Из этого теста видно, что с увеличением предельного расстояния количество кластеров уменьшается. Минимальное остовное дерево строится верно. Значит, в данном тесте программа работает верно.
4.3 Тест третий
Составим граф из 7 вершин, координаты которых и предельное расстояние представлены на рисунке 11.
Рисунок 11 - Тест второй (часть 1)
Построим данный граф. Остовное дерево данного графа, а так же матрицы смежности, расстояний и остовного дерева представлены на рисунке 12.
Рисунок 12 - Тест второй (часть 2)
Заключение
При рассмотрении данной задачи был изучен один из разделов теории графов кластеризация и построение минимального остовного дерева по алгоритму Краскала.
Результатом курсового проекта является алгоритм, выполняющий необходимые задачи.
Список использованных источников
1 Канева О.Н. Дискретная математика. - Омск: ОмГТУ, 2009. -87с.
2 Кристофидес Н. Теория графов. Алгоритмический подход.- М.: Мир, 1978.-433с.
3 Новиков Ф.А. Дискретная математика для программистов. - СПб: Питер, 2000. -304с.
Подобные документы
Алгоритм построения минимального остовного дерева. Последовательность выполнения алгоритма Прима, его содержание и назначение. Процедура рисования графа. Порядок составления и тестирования программы, ее интерфейс, реализация и правила эксплуатации.
курсовая работа [225,0 K], добавлен 30.04.2011Минимальное остовное дерево связного взвешенного графа и его нахождение с помощью алгоритмов. Описание алгоритма Краскала, возможность строить дерево одновременно для нескольких компонент связности. Пример работы алгоритма Краскала, код программы.
курсовая работа [192,5 K], добавлен 27.03.2011Нахождение минимального пути от фиксированной до произвольной вершины графа с помощью алгоритма Дейкстры, рассмотрение основных принципов его работы. Описание блок-схемы алгоритма решения задачи. Проверка правильности работы разработанной программы.
курсовая работа [495,4 K], добавлен 19.09.2011Теория случайных графов, модели сетей (графы Барабаши-Альберт, Эрдеша-Реньи, Уотса-Строгатса и др.) Разработка ускоренного алгоритма калибровки больших сетей по коэффициенту кластеризации на языке Java в среде Eclipse. Анализ экспериментальных данных.
дипломная работа [2,0 M], добавлен 19.11.2013Граф как множество вершин (узлов), соединённых рёбрами, способы и сфера их применения. Специфика теории графов как раздела дискретной математики. Основные способы преобразования графов, их особенности и использование для решения математических задач.
курсовая работа [1,8 M], добавлен 18.01.2013Общая характеристика распространенных проблем поиска величины максимального потока в сети при помощи алгоритма Форда-Фалкерсона. Знакомство с задачами по дискретной математике. Рассмотрение особенностей и этапов постройки дерева кратчайших расстояний.
контрольная работа [740,3 K], добавлен 09.03.2015Вид графов, используемых в теории электрических цепей, химии, вычислительной технике и в информатике. Основные свойства деревьев. Неориентированный граф. Алгоритм построения минимального каркаса. Обоснование алгоритма. Граф с нагруженными ребрами.
реферат [131,8 K], добавлен 11.11.2008Остовное дерево связного неориентированного графа. Алгоритм создания остовного дерева, его нахождение. Сущность и главные особенности алгоритма Крускала. Порядок построения алгоритма Прима, вершина наименьшего веса. Промежуточная структура данных.
презентация [140,8 K], добавлен 16.09.2013Способы решения задач дискретной математики. Расчет кратчайшего пути между парами всех вершин в ориентированном и неориентированном графах с помощью использования алгоритма Флойда. Анализ задачи и методов ее решения. Разработка и характеристика программы.
курсовая работа [951,4 K], добавлен 22.01.2014Понятие и содержание теории графов. Правила построения сетевых графиков и требования к ним. Сетевое планирование в условиях неопределенности. Теория принятия решений, используемые алгоритмы и основные принципы. Пример применения алгоритма Дейкстры.
курсовая работа [1,0 M], добавлен 26.09.2013