русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Цепи и циклы в графах


Дата добавления: 2014-05-01; просмотров: 12661; Нарушение авторских прав


Двигаясь по ребрам графа G(X,U), можно переходить из вершины в вершину. Любая последовательность ребер, получаемая при этом, называется маршрутом, то есть последовательность (x0,x1)(x1,x2)…(xn,xn-1), в которой любые два соседних ребра смежные - маршрут.

Цепь– маршрут, в котором все ребра различны.

Простая цепь – цепь, в которой все вершины различны.

Цикл - цепь, в которой совпадают начальная и конечная вершины.

Дерево - связный граф без циклов. В дереве любые две вершины связаны единственной цепью. Дерево, построенное на n вершинах, имеет n-1 ребер.

Лес- совокупность деревьев.


 


Пример:

 

В графах выделяют два замечательных цикла: эйлеров и гамильтонов.

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


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

Задача состоит в следующем: осуществить прогулку по городу таким образом, чтобы, пройдя ровно по одному разу по каждому мосту, вернуться в то же место, откуда начиналась прогулка. Решая эту задачу, Эйлер изобразил Кенигсберг в виде графа, отождествив его вершины с частями города, а ребра - с мостами, которыми связаны эти части.

Эйлеру удалось доказать, что искомого маршрута обхода города не существует.

Ответ может быть получен на основе следующей теоремы.

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

Как следует из рисунка, у графа, моделирующего схему мостов, все вершины имеют нечетную степень. Следовательно, эйлерова цикла в этом графе не существует.




Пример графа, имеющего эйлеров, цикл показан на рис. 1.9.

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

В полном графе с числом вершин n»2 всегда существует гамильтонов цикл. Пример такого цикла приведен на рис. 1.10 - (x1,x4) (x4,x2) (x2,x5) (x5,x3) (x3,x1).


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

Графическая модель задачи коммивояжера состоит из гамильтонова графа, вершины которого изображают города, а ребра - связывающие их дороги. Кроме того, каждое ребро оснащено весом, обозначающим транспортные затраты, необходимые для путешествия по соответствующей дороге, такие, как, например, расстояние между городами или время движения по дороге. Для решения задачи необходимо найти гамильтонов цикл минимального общего веса.



<== предыдущая лекция | следующая лекция ==>
Классификация графов | Описание графов матрицами


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.