Разработка алгоритмов и программного продукта для...

Preview:

Citation preview

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ КЫРГЫЗСКОЙ РЕСПУБЛИКИ

Государственное образовательное учреждение высшего профессионально образования

КЫРГЫЗСКО-РОССИЙСКИЙ СЛАВЯНСКИЙ УНИВЕРСИТЕТ

Естественно-технический факультетКафедра информационных и вычислительных технологий

ДИПЛОМНАЯ РАБОТА

Разработка алгоритмов и программного продукта для ускорения обработки графов с использованием алгебры

графов

по специальности 230105, 552801.04 – Программное обеспечение ВТ и АС

Выполнил студент группы ИВТ-1-08 Бачевский А.Е.Руководитель дипломной работы проф. д.ф-м.н. Десятков Г.А.

Заведующий кафедрой ИВТ проф. д.ф-м.н. Десятков Г.А.

Бишкек 2013г.

Применимость данного исследования

Социальные сети1 миллиард пользователей в Facebook

Интернетнесколько триллионов страниц

МикропроцессорыНесколько миллиардов транзисторов

Постановка задачиЗадачей дипломного проектирования является

исследование способов сжатия графов с помощью алгебры графов, реализация эффективных алгоритмов сжатия, и оценка сжатия для различных типов графов.

Конечным результатом исследования должен быть:• эффективный алгоритм сжатия• оценки сжатия алгоритмом для различных типов

графов• реализованный алгоритм с интерфейсом для

получения сжатых формул по графу на входе• оценки ускорения алгоритмов на графах при

применении сжатия графов

Схема алгоритма ускорения обработки графа

|V| = 6; |E| = 9 |V| = 7; |E| = 6

Алгебра графовАлгебра графов представляет из себя кортеж , где это

множество графов, чьи вершины выбраны из алфавита .

𝐸=𝑐→ (𝑎+𝑏)+𝑑𝐸=𝑐+𝑑 𝐸=𝑐→𝑎

Описание операций + и

Примеры графов и их представлений в алгебре

Алгоритм работы программы

Алгоритм внутреннего сжатия

+

𝐸 ′=𝑑→𝑒+ (𝑎→𝑑 )→ (𝑏+𝑐 )+ (𝑒+ 𝑓 )→𝑔

𝑘=|𝐸|

¿𝐸 ′∨¿=169 ≈1,8¿

Алгоритм на основе модульной декомпозиции

𝐸 ′=𝑔→((𝑎→𝑏→𝑐→𝑑+𝑑→𝑐→𝑏→𝑎 )+𝑒+ 𝑓 )𝑘= |𝐸|

¿𝐸 ′∨¿=4411=4 ¿

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

декомпозицииТип графа Поведение оценки

Случайный граф(a) k растет с увеличением числа вершин и реберКлик(b) k растет с увеличением числа вершин

Двумерная сетка(c) k уменьшается с увеличением стороны сетки Несколько объединённых

кликов(d)k растет с увеличением числа вершин

и кликов

a b c

d

Роль сжатия в ускорении алгоритмов на графах

Оценка времени сжатия для проверки достижимости вершины:

Число ребер осталось прежним.

Введем дополнительную вершину t

Преобразовывая сжатое выражение, можно не допустить квадратичного роста ребер при добавление не более S вершин, где S – число вершин в сжатом выражение.

Результат работы программы

Сжатие алгоритмом основанным на модульной декомпозиции

Результат работы программы

Сжатие алгоритмом основанным на модульной декомпозиции с заменой

ВыводыРезультаты дипломной работы можно сформулировать в виде следующих выводов:• проведен обзор научных работ по тематике работы• разработаны различные алгоритмы сжатия• произведена оценка сжатия разработанных алгоритмов• выбран эффективный алгоритм сжатия для проведения экспериментов по

ускорению алгоритмов на графах• реализован программный продукт позволяющий производить сжатие

графов до выражений алгебры• произведены оценки сжатия алгоритма по сравнению с иными

представлениями графа Разработанный программный продукт позволяет:• производить сжатие полученного на входе графа различными алгоритмами• производить сжатие сгенерированных по заданным параметрам графов• получать на выходе сжатое выражение или граф пригодный для

дальнейшей обработки