BigEdu.ru
» » » Разработка программы нахождения всех полных подграфов (клик) данного графа
Вернуться назад

Разработка программы нахождения всех полных подграфов (клик) данного графа

Курсовая работа

По предмету

"Программирование на языке высокого уровня"

Тема: "Разработка программы нахождения всех полных подграфов (клик) данного графа"


Содержание

Введение

1. Описание алгоритма нахождения клик

2. Разработка структуры программы

2.1 Постановка задачи

2.2 Структура программы

2.3 Описание классов

2.3.1 Класс vertexmatrix

2.3.2 Класс graph

2.3.3 Класс from1

2.3.4 Классtoolwindow

2.3.5 Класс MatrixWindow

2.3.6 Класс cliqueswindow

3. Реализация на C#

3.1 Реализация алгоритма Брона-Кербоша

3.2 Использование нестандартных компонентов

3.3 Реализация алгоритма удаления ребра графа мышью

3.4 Тестирование реализации алгоритма Брон-Кербоша

3.5 Системные требования

Заключение

Список использованной литературы и источников

Приложение


Введение

Клика – полный подграф неориентированного графа. Другими словами, клика графа есть подмножество его вершин, такое, что между каждой парой вершин этого подмножества существует ребро и, кроме того, это подмножество не принадлежит никакому большому подмножеству с тем же свойством.

Подграф графа — граф, содержащий некое подмножество вершин данного графа и некое подмножествоинцидентных им рёбер.

Граф – совокупность непустого множества вершин и множества пар вершин.

Неориентированный граф – упорядоченная пара G: = (V,E), для которой выполнены следующие условия:

V это непустое множество вершин или узлов

E это множество пар (в случае неориентированного графа неупорядоченных) вершин, называемых ребрами.

К примеру, для графа на рисунке 1 кликами будут являться следующие множества вершин: {1,2,3},{4,2,5},{2,3,5},{3,5,6}. Порядок следования вершин значения не имеет.

Рисунок 1 – неориентированный граф из шести вершин.


1. Описание алгоритма нахождения клик

В качестве алгоритма поиска клик был выбран алгоритм Брона-Кербоша ("Algorithm 457: Finding All Cliques of an Undirected Graph".), заявленный как один из самых быстрых алгоритмов поиска клик (Cazals, F.; Karande, C. (2008),"A note on the problem of reporting maximal cliques"). Алгоритм разработан голландскими математиками Броном и Кербошем (Bron and Kerbosh) в 1973 году.

Алгоритм использует тот факт, что всякая клика в графе является его максимальным по включениюполным подграфом. Начиная с одиночной вершины (образующей полный подграф), алгоритм на каждом шаге пытается увеличить уже построенный полный подграф, добавляя в него вершины из множества кандидатов. Высокая скорость обеспечиваетсяотсечениемпри переборе вариантов, которые заведомо не приведут к построению клики, для чего используется дополнительное множество, в которое помещаются вершины, которые уже были использованы для увеличения полного подграфа.

На листинге 1.1 приведена реализация алгоритма псевдокодом. M – текущее независимое множество, K – множество кандидатов (вершин, способных образовать клику. На начальном этапе это множество содержит все вершины графа), P – множество отсеянных вершин, которые не могут более добавляться в M, v – просматриваемая вершина, G(i) – множество вершин, смежных с i.

Листинг 1.1 – реализация алгоритма Брона-Кербоша псевдокодом

while K != 0 or M != 0:

if K != 0:

v = K.first

push M, K, P, v

M = M + {v}

K = K – G(v) – {v}

P = P – G(v)

else:

if P == 0:

print M

pop v, P, K, M

K = K – {v}

P = P + {v}


2. Разработка структуры программы

2.1 Постановка задачи

Задачей программы ставится нахождение всех полных подграфов (клик) данного неориентированного графа. Помимо этого программа должна обладать следующими возможностями:

– Создание и редактирование неориентированного графа.

– Загрузка и сохранение графа в файл, как в виде матрицы смежности, так и в собственном формате файла программы.

– Обеспечивать интерактивность графа (граф можно создавать/изменять при помощи мыши, изменения в графе сразу же отображаются на экране).

– Обладать средствами экспорта изображения графа в графические файлы формата png и bmp (формат jpg мало подходит для этих целей, так как на однородном фоне хорошо заметны артефакты конверсии изображения).

– Предоставлять средства просмотра найденных в графе клик, а также экспорта их в графические файлы или сохранения в матричном или графовом формате.

– Обладать средствами генерации отчета о найденных кликах.

– Предоставлять возможность распечатать созданный граф.

2.2 Структура программы

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

Для реализации операций над графом и его матрицей смежности было создано два класса: Graph и VertexMatrix, реализующие все операции применимые к графу в данном приложении.

2.3 Описание классов

2.3.1 Класс VertexMatrix

Конструкторы класса

VertexMatrix(int dimension) - создает заполненную нулями матрицу смежности порядка dimension.

Также класс имеет статический метод-конструктор для создания матрицы из текстового файла:

stati

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Курсовые работы по информатике и программированию Курсовая работа По предмету "Программирование на языке высокого уровня" Тема: "Разработка программы нахождения всех полных
Оценок: 1001 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru