- •3. Алгоритм Дейкстры.
- •4. Метод Форда-Беллмана решения задачи о кратчайшем пути в графе.
- •5. Математическая постановка задачи коммивояжера
- •6. Метод ветвей и границ решения задачи коммивояжера
- •7. Математическая постановка транспортной задачи.
- •9. Модифицированный распределительный метод транспортной задачи
- •8. Распределительный метод.
- •10. Цикломатическое число графа
- •13. Операции над графами.
- •14. Устойчивость, покрытия, паросочетания в графе.
- •15. Продолжение.
- •15. Планарные и плоские графы.
- •16. Эйлеров путь в графе.
- •17. Потоки в сетях. Теорема Форда-Фалкерсона
- •18. Связность графов. Теорема Менгера.
- •19. Раскраска вершин и ребер графа
- •20. Гиперкубы
- •21. Логика высказываний. Логические функции от двух переменных.
- •22. Минимизация булевых функций в классе днф.
- •23. Минимизация булевых функций с помощью карты карно.
- •24. Метод Квайна-Мак-Класки
- •25. Полнота логических функций.
- •26. Минимизация слабоопределнных булевых функций.
- •27. Схемы из функциональных элементов
- •28.Синтез логических схем в произвольном базисе
- •32. Продолжение.
- •29. Разложение Шеннона. Дифференц-ие булевых ф-ий
- •31 Алгоритмический этап проект-я цифрового автомата
- •33. Структурное проектирование автоматов с минимальным объемом внутренней памяти.
- •34. Структурное проектирование автоматов с максимальным объемом внутренней памяти
- •26. Минимизация слабоопределнных булевых функций.
1. Способы задания графов
1) Геометрический (графический)
Вершины изображают точками на плоскости, а ребра – линиями, соединяющими соответствующие точки. Для изображения дуги используется линия со стрелкой, указывающей направление от начала к концу дуги.
2) Теоретико-множественный
3)Матричный
а) Матрица инцидентности
n-число
вершин, m
– число дуг или ребер
Для неорграфа:
б) Матрица смежности
Неорграф:
Орграф:
2. Маршруты, цепи, циклы
Маршрутом в графе называется {x1,r1,x2,r2,…xn}
чередующиеся последовательность вершин и ребер/дуг.
Неорграф:
Цепью ρ=(r1, … rn) называется упорядоченная последовательность ребер в которой у каждого ребра ri одна из граничных вершин является граничной вершиной ri-1, а другие ri+1. Если вершины и ребра в цепи различны, то маршрут называют простой цепью. Замкнутая цепь называется циклом, а замкнутая простая цепь называется простым циклом.
Орграф:
Путем
в графе называется упорядоченная
последовательность дуг μ
= (U1,
…,
Un),
в которой конец предыдущей дуги совпадает
с началом последующей. Путь у которого
начальные и конечные вершины совпадают
– контур.
Длина
цепи –
число ребер в цепи. Граф называется
связным,
если любая пара его вершин соединены
цепью. Минимальная длина цепи, соединяющая
вершины xi
и xj
называется
расстоянием.
Максимальное расстояние между вершинами
графа называется диаметром
графа.
.
Цепь (неорграф) называют составной,
если в ней повторяется хотя бы одно
ребро; сложной,
если повторяется хотя бы одна вершина.
Простой цикл называется гамильтоновым,
если он проходит через каждую вершину
графа ровно 1 раз. В орграфе путь,
проходящий через все вершины ровно 1
раз, называется гамильтоновым,
если у него начальная и конечная вершина
совпадают, то гамильтонов контур.
3. Алгоритм Дейкстры.
Пусть l(xi) – пометка вершины xi.
Шаг 1. Присвоение начальных значений. Положить l*(s)=0 и считать эту пометку постоянной. Положить l(xi)=∞ (бесконечность) для всех xis и считать эти пометки временными. Положить р=s.
Шаг 2. Обновление пометок. Для всех вершин xiГ(р), имеющих временные пометки, изменить пометки в соответствии с выражением:
l(xi) = min{l(xi), l(p) + c(p, xi)}. (2.3)
Шаг 3. Превращение пометки в постоянную. Среди всех вершин с временными пометками найти такую, для которой l*(xi) = min{l(xi)}.
Шаг 4. Считать пометку вершины xi* постоянной и положить p = xi*.
Шаг 5. Если р=t, то l*(р) является длиной кратчайшего пути. Конец. Если рt, перейти к шагу 2.
Как только длина кратчайшего пути от s до t будет найдена [она будет постоянной пометкой вершины l*(t)], сами пути можно получить с помощью рекурсивной процедуры. Так, для вершины xk, непосредственно предшествующей вершине t в кратчайшем пути от s к t, будет соблюдаться отношение: l*(xk) + c(xk, t) = l*(t).
Таким образом, для любой вершины xi можно найти предшествующую вершину xk, принадлежащую пути (s, t), для которой справедливо:
l*(xk) + c(xk, xi) = l*(xi). (2.4)
Если существуют несколько кратчайших путей от s к t, то данное соотношение будет выполняться для нескольких вершин. В этом случае выбор пути может быть произвольным.
4. Метод Форда-Беллмана решения задачи о кратчайшем пути в графе.
Алгоритм Ф.Б. позволяет находить кратчайшие пути от источника S до любой вершины, при этом веса дуг могут быть как “+”, так и “-“.
Исходные данные: граф C помечен дугами, а результат помечен вершинами.
1) Присвоение начального значения меток
Установить номер итерации k=0, присвоить начальное значение меток следующим образом:
2) Обновление пометки вершин
Для каждой вершины Xj =Г(S) установить пометку следующим образом:
Где Tj = Г-1 множество вершины, которые входят в Xj и связан с вершиной X
3) Проверка условий окончания
Если k <= n-1 и Пк+1 (Xj) != Пк (Xj) хотя бы для 1 вершины, то переход к шагу 4 если
Пк+1 (Xj) = Пк (Xj), то конец алгоритма.
4) Подготовка к следующей итерации
Определить множество S, как множество таких X, что
Пометки П (Xi) у всех вершин графа характеризуют расстояние от источника Х1 до данной вершины.
5. Математическая постановка задачи коммивояжера
Задача коммивояжера имеет следующую формулировку. Имеется n городов, расстояния между которыми известны. Коммивояжер должен посетить все n городов по одному разу, вернувшись в тот, с которого начал. Требуется найти такой маршрут движения, при котором суммарное пройденное расстояние будет минимальным.
Сформулируем математическую модель задачи коммивояжера. Пусть имеется n городов и задана матрица С = ||cij||nn расстояний между городами. Очевидно, что сii = 0, и, возможно, что сij cji.
Введем переменные
где i, j = 1,2,…, n.
Задача поиска гамильтонова контура минимальной длины сводится к определению таких xij , обеспечивающих минимум целевой функции
(3.2)
при следующих ограничениях:
(3.3)
и
.
(3.4)
Ограничения (3.3) обеспечивают требования въезда в каждый j-й город ровно 1 раз (вхождения в j-ю вершину графа ровно одной дуги). Ограничения (3.4) обеспечивают требования выезда из каждого i-го города ровно 1 раз (выхода из i-й вершины графа ровно одной дуги). Задача представляет собой задачу дискретного программирования с псевдобулевыми переменными.
