- •Введение
- •1 Общие организационно—методические указания по выполнению курсовой работы
- •2 Выполнение расчетно-графических работ
- •3 Оформление расчетно-графических работ и курсовой работы
- •4 График выполнения курсовой работы
- •5 Методические указания по выполнению расчетно-графической работы №1 на тему: «Расчет числовых характеристик графов»
- •Задание на расчетно-графическую работу №1
- •Расчет числа компонент связности æ(g)
- •Расчет цикломатического числа λ(g) графа g
- •Расчет хроматического числа γ(g) графа g
- •Расчет плотности (g) графа g
- •Расчет неплотности ε(g) графа g
- •5.2.9 Расчет внешней устойчивости ψ(g) графа g
- •5.2.10 Расчет числа внутренней устойчивости (g) графа g
- •6 Методические указания по выполнению расчетно-графической работы № 2 на тему: «Нахождение кратчайшего остова неориентированного графа по алгоритму Дейкстра»
- •6.1 Задание на расчетно-графическую работу № 2
- •6.2 Пример расчетов по алгоритму Дейкстра
- •6.2.1 Построение таблицы обозначений
- •6.2.2. Шаг «0» расчетов
- •6.2.3 Шаг «1» расчетов
- •6.2.4 Шаги «2 — 6» расчетов
- •6.2.5 Выводы
- •7 Методические указания по выполнению расчетно-графической работы №3 на тему: «Поиск кратчайших путей на неориентированном графе по алгоритму Флойда»
- •Задание на расчетно-графическую работу №3
- •7.2 Пример расчета кратчайших путей на неориентированном графе
- •7.2.1 Построение матрицы путей и матрицы переходов графа g
- •7.2.2 Шаг 0 расчетов по алгоритму Флойда
- •Шаг 1 расчетов по алгоритму Флойда
- •Шаг 2 расчетов по алгоритму Флойда
- •7.2.5 Шаг 3 расчетов по алгоритму Флойда
- •7.2.6 Шаг 4 расчетов по алгоритму Флойда
- •7.2.7 Шаг 5 расчетов по алгоритму Флойда
- •7.2.8. Шаг 6 расчетов по алгоритму Флойда
- •7.3 Проверка результатов расчетов по алгоритму Флойда
- •7.4 Использование результатов расчетов по алгоритму Флойда
- •8 Методические указания по выполнению расчетно-графической работы № 4 на тему: «Расчет максимального потока в сети с ограниченной пропускной способностью по алгоритму Форда-Фалкерсона»
- •8.1 Задания на выполнение расчетно-графической работы №4
- •8.2 Обозначения
- •Краткие теоретические сведения
- •8.4 Пример выполнению расчетов по алгоритму Форда-Фалкерсона
- •8.4.1 Итерация 1 расчетов по алгоритму Форда-Фалкерсона
- •8.4.2 Итерации 2—6 расчетов по алгоритму Форда-Фалкерсона
- •9 Методические указания по выполнению расчетно-графической работы № 5 на тему: «Расчеты по алгоритмам управления проектом»
- •9.1 Задание на расчетно-графическую работу № 5
- •9.2 Обозначения и краткие теоретические сведения
- •Пример расчетов по алгоритмам управления проектом
- •9.3.1 Выполним нумерацию вершин графа
- •9.3.2 Рассчитаем ранние моменты наступления событий
- •9.3.3 Рассчитаем поздние моменты наступления событий
- •9.3.4 Рассчитаем резерв времени событий
- •9.3.5 Расчет фиктивных работ
- •Рассчитаем полный резерв времени на работы и определим критический путь
- •Рассчитаем свободный, независимый и гарантированный резервы времени
- •Анализ полученных результатов
- •10 Методические указания по выполнению расчетно-графической работы № 6 на тему: «Логическое проектирование схемы, реализующей минимальную булеву функцию»
- •10. 1 Задание на расчетно-графическую работу № 6
- •10.2 Пример выполнения расчетов по конструированию схемы для минимизированной булевой функции
- •Функции четырех переменных
- •10.2.1 Совершенная дизъюнктивная нормальная форма функции,
- •10.2.2 Совершенная конъюнктивная нормальная форма функции, заданной
- •10.2.3. Минимизация булевой функцию методом Квайна
- •10.2.4 Минимизация булевой функции методом карт Карно
- •10.2.5 Сравнение результатов минимизации булевой функцию методами Квайна и карт Карно
- •10.2.6 Разработать схему, реализующую минимальную булеву функцию, используя элементы на два входа и один выход
- •10.2.8 Проверка правильности работы схемы устройства
- •11 Методические указания по выполнению расчетно-графической работы № 7 на тему: «Нахождение всех гамильтоновых циклов на ориентированном графе»
- •11.1 Задание на расчетно-графическую работу № 7
- •11.2 Краткие теоретические сведения
- •11.3 Пример выполнения расчетов по поиску всех гамильтоновых циклов
- •Литература
- •Содержание
11.2 Краткие теоретические сведения
Простой цикл проходящий через все вершины графа называется гамильтоновым. Простая цепь проходящая через все вершины графа называется гамильтоновой. Задача нахождения гамильтоновых циклов актуальна в связи практической значимостью задачи о коммивояжере, в которой из множества гамильтоновых циклов на графе определяется кратчайший.
Существует только достаточные условия существования гамильтоновых циклов на графе. Приведем несколько таких признаков.
Граф, обладающий гамильтоновым циклом, будем называть гамильтоновым.
Теорема Дирака. Граф гамильтонов, если степень любой его вершины удовлетворяет неравенству , где n — число вершин графа.
Теорема Оре. Граф гамильтонов, если степень любых двух его несмежных вершин и удовлетворяет неравенству .
Для нахождения всех гамильтоновых циклов на гамильтоновом гарфе будем использовать алгебраический подход. Его суть состоит в следующем
Пусть граф G задан своей булевой матрицей смежности H. Заменим малоинформативные единицы в этой матрице на имена соответствующих вершин. Возведение в степень такой модифицированной матрицы даст уже больше информации о маршрутах. Введем, таким образом, модифицированную матрицу B следующим правилом: элемент матрицы B равен , если существует путь из вершины в вершину . Далее последовательно находим матрицы , где под произведением вершин понимается некоммутативная бинарная операция, заданная на множестве слов. Слово — это упорядоченная последовательность вершин (букв). Произведение слова и слова есть слово . Оператор , действующий на элементы матрицы, вычеркивает (обнуляет) те элементы, в которых содержатся вершины или . Такие элементы указывают на контуры, замыкающиеся на или . Для упрощения расчетов можно обнулять главную диагональ матрицы , кроме последней , т.к. ее диагональ и содержит все искомые гамильтоновы циклы, без начальной и конечной вершины, которые необходимо добавить.
11.3 Пример выполнения расчетов по поиску всех гамильтоновых циклов
на ориентированном графе
Пусть в результате удаления нескольких дуг на исходном графе (рис. 11.1) получен следующий граф G (рис. 11.2).
Определяем гамильтонов или негамильтонов граф G. Для этого рассчитываем степени его вершин и используем теорему Дирака (теорему Оре применить нельзя, так как все вершины графа попарно смежны друг другу). Результаты расчетов сведены в табл. 11.2.
Табл. 11.2 – Определение наличия гамильтоновых
циклов на графе G
Характеристика графа G |
Вершины графа G |
||||
a |
b |
c |
d |
g |
|
|
4 |
2 |
3 |
3 |
2 |
|
2 |
5 |
3 |
3 |
3 |
+ |
6 |
7 |
3 |
6 |
5 |
|
да |
да |
да |
да |
да |
Анализ данных из табл. 11.2 позволяет сделать вывод, что граф гамильтонов.
Находим все гамильтоновы циклы на графе G. Матрица H графа G показана на рис. 11.2. На рис. 11.3 показана модифицированная матрица смежности B графа G.
H
a
b
c
d
g
a
0
1
1
1
1
b
0
0
1
0
1
c
1
1
0
1
0
d
1
0
1
0
1
g
0
1
0
1
0
B
a
b
c
d
g
a
0
b
c
d
g
b
0
0
c
0
g
c
a
b
0
d
0
d
a
0
c
0
g
g
0
b
0
d
0
Рис. 11.2 — Матрица H
смежности графа G
Рис. 11.3 — Модифицированная матрица B
смежности графа G
Умножаем матрицу B на матрицу H = . Получаем матрицу (рис. 11.4, обозначения строк и столбцов удалены).
М
c+d
c+g
b+d
c+g
b+d
c
c+g
0
c+g
0
d
a
a+b+d
0
a
a+b+d
0
c
a+c+g
a
a+c+g
a
d
0
b+d
0
b+d
Рис. 11.4 — Матрица
П
0
c+g
b+d
c+g
b+d
c
0
0
c+g
0
d
a
0
a
a+b+d
0
c
a+c+g
a
0
a
d
0
b+d
0
0
Рис. 11.5 — Матрица
Умножаем матрицу B на матрицу , получаем матрицу (рис. 11.6).
bc+cd+dc+gd
ca+da+dc+dg
da+gb+gd
bc+bg+ca
ca+cb+cd+da
cd+gd
ca
gb+gd
ca
ca +cb+cd
bc+dc
ac+ag+da+dc+dg
ab+ad+da
ac+ag+bc+bg
ab+ad+da
cd+gd
ac+ag+ca
ab+ad+gb+gd
ac+ag+ca
ab+ad+ca+cb+cd
bc+dc
da+dc+dg
da
bc+bg
da
Рис. 11.6 — Матрица
Применяем к матрице оператор . Получаем матрицу (рис. 11.7).
0
dc+dg
gb+gd
bc+bg
cb+cd
cd+gd
0
gd
ca
ca +cd
0
ag+da+dg
0
ag+bg
ab+ad+da
0
ac+ag+ca
ab+gb
0
ab+ca+cb
bc+dc
da+dc
da
bc
0
Рис. 11.7 — Матрица
Н
0
сdg+gbc
bgd+dgb
cbg+gbc
bcd+dcb
gdc
0
gda
cag
cad +cda
bgd
adg+dag
0
abg
dab
gbc
cag
agb
0
acb+cab
bcd
dac+dca
dab
bca
0
Рис. 11.8 — Матрица
М
bgdc+cbgd+ +dgbc+gbcd
0
0
0
0
0
cadg+cdag+ +gdac+gdca
0
0
0
0
0
abgd+adgb+ +bgda+dagb
0
0
0
0
0
acbg+agbc+ +cabg+gbca
0
0
0
0
0
bcad+bcda+ +dacb+dcab
Рис. 11.9 — Матрица
К полученным слагаемым в элементе матрицы добавляем в начале или в конце (в данном примере в начале) по вершине (рис. 11.10).
abgdc+acbgd+adgbc+agbcd
bcadg+bcdag+bgdac+bgdca
cabgd+cadgb+cbgda+cdagb
dacbg+dagbc+dcabg+dgbca gbcad+gbcda+gdacb+gdcab
Рис. 11.10 — Диагональные элементы
матрицы
с
добавленными в начале слагаемых
вершинами
Выполним круговую перестановку в каждом слагаемом диагональных элементов матрицы с добавленными в начале вершинами (кроме первой строки на рис. 11.10). Правило круговой перестановки: «Фиксируем в слагаемом положение вершины а. Она должна стоять крайней слева. Берем в слагаемом первую слева вершину от а и переносим ее на место после последней вершины в слагаемом. Если вершина а все еще не крайняя слева, то берем в слагаемом первую вершину слева от а и переносим ее на место после последней вершины в слагаемом и т.д. до тех пор, пока вершина а не станет крайней слева в слагаемом». Получим список на рис. 11.11.
abgdc+acbgd+adgbc+agbcd
adgbc+agbcd+acbgd+abgdc
abgdc+adgbc+agbcd+agbcd
acbgd+agbcd+abgdc+adgbc
adgbc+agbcd+acbgd+abgdc
Рис. 11.11 — Диагональные элементы
матрицы
с
добавленными в начале слагаемых
вершинами
Удаляем из списка на рис. 11.11 одинаковые слагаемые. Получаем список гамильтоновых циклов графа G (рис. 11.12).
abgdс , adgbcc,
agbcd, acbgd
Рис. 11.12 — Список гамильтоновых циклов
графа G
На этом расчеты закончены.