Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Программная реализация. 
Достаточное условие отсутствия гамильтоновой цепи

РефератПомощь в написанииУзнать стоимостьмоей работы

На каждой итерации алгоритм пытается найти гамильтонов цикл. Если он найден, то случайным образом выбирается ребро для удаления между заданными n вершинами. Работа продолжается до тех пор, пока цикл не будет отсутствовать. Когда цикл не обнаруживается, для построения изображения графа используются исходные n вершин, со всеми оставшимися после работы алгоритма ребрами. Алгоритм поиска гамильтонова… Читать ещё >

Программная реализация. Достаточное условие отсутствия гамильтоновой цепи (реферат, курсовая, диплом, контрольная)

На основе проведённых исследований было разработано два программных продукта, генерирующих негамильтоновы графы. Первый основан на поиске гамильтонова цикла. Во втором используется достаточный признак, представленный в работе. Пример работы первого варианта программы для 8, 10, 12, 14, 17 и 20 вершин представлен на рисунке 6.

Пример работы программы (1 вариант).
Программная реализация. Достаточное условие отсутствия гамильтоновой цепи.
Программная реализация. Достаточное условие отсутствия гамильтоновой цепи.
Программная реализация. Достаточное условие отсутствия гамильтоновой цепи.
Программная реализация. Достаточное условие отсутствия гамильтоновой цепи.
Рисунок 6. Пример работы программы (1 вариант).

Рисунок 6. Пример работы программы (1 вариант).

гамильтоновый граф цепь Для генерации графов без гамильтоновых путей первым способом в программе реализован алгоритм поиска с возвратом. Метод нахождения гамильтонова пути основан на алгоритме нахождения гамильтонова цикла в графе, содержащим заданное число вершин и одну дополнительную, имеющую связи со всеми остальными в графе. При вводе пользователем числа вершин n, генерируется полный связный граф на n + 1 вершинах. Реализованный алгоритм представлен в виде блок-схемы на рисунке 7.

Блок-схема генерации негамильтоновых графов (1 вариант).

Рисунок 7. Блок-схема генерации негамильтоновых графов (1 вариант).

На каждой итерации алгоритм пытается найти гамильтонов цикл. Если он найден, то случайным образом выбирается ребро для удаления между заданными n вершинами. Работа продолжается до тех пор, пока цикл не будет отсутствовать. Когда цикл не обнаруживается, для построения изображения графа используются исходные n вершин, со всеми оставшимися после работы алгоритма ребрами. Алгоритм поиска гамильтонова цикла можно представить блок-схемой, изображенной на рисунке 8.

Второй вариант программы основывается непосредственно на достаточном признаке, изложенном в данной работе. Реализованный алгоритм представлен на рисунке 9 в виде блок-схемы.

Блок-схема генерации негамильтоновых графов (2 вариант).

Рисунок 9. Блок-схема генерации негамильтоновых графов (2 вариант).

Алгоритм поиска числа независимости работает следующим образом: сначала проходим по всем вершинам внешним циклом для того, чтобы поиск независимого множества каждый раз начинался с новой вершины.

Каждой вершине присваивается метка, что она не была посещена.

В цикле выбираем вершину и осуществляем проверку для всех соседних вершин, были ли они посещены, и если таких не находится, то текущей присваиваем метку, говорящую о том, что ее мы посетили.

После каждой итерации находим число всех посещенных вершин — это число вершин в независимом множестве, которое было получено со стартовой вершины, определяемой внешним циклом.

После того, как внешний цикл окончен, мы выбираем наибольшее число вершин, среди всех найденных множеств. И, наконец, проверяем, выполняется ли достаточное условие.

Описанный выше алгоритм представлен на рисунке 10.

Алгоритм нахождения числа независимости графа.

Рисунок 10. Алгоритм нахождения числа независимости графа.

Пример работы второго варианта программы для 5, 7, 8, 10, 15 и 18 вершин представлен на рисунке 11.

Пример работы программы (2 вариант).
Программная реализация. Достаточное условие отсутствия гамильтоновой цепи.
Программная реализация. Достаточное условие отсутствия гамильтоновой цепи.
Программная реализация. Достаточное условие отсутствия гамильтоновой цепи.
Программная реализация. Достаточное условие отсутствия гамильтоновой цепи.

Результаты сравнения двух вариантов программных реализаций по производительности представлены в таблице 1.

Таблица 1.

Результаты замеров времени генерации.

Кол-во вершин.

Затраченное время, мс.

Кол-во вершин.

Затраченное время, мс.

1 вариант.

2 вариант.

1 вариант.

2 вариант.

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

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

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

Показать весь текст
Заполнить форму текущей работой