Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОДГОТОВКА К ЭКЗАМЕНУ ДИСКРЕТНАЯ МАТЕМАТИКА.docx
Скачиваний:
57
Добавлен:
09.05.2020
Размер:
2.72 Mб
Скачать

31. Метод ветвей и границ для решения задачи коммивояжера.

Задача коммивояжёра (англ. Travelling salesman problem, сокращённо TSP) — одна из самых известных задач комбинаторной оптимизации, заключающаяся в поиске самого выгодного маршрута, проходящего через указанные города хотя бы по одному разу с последующим возвратом в исходный город. В условиях задачи указываются критерий выгодности маршрута (кратчайший, самый дешёвый, совокупный критерий и тому подобное) и соответствующие матрицы расстояний, стоимости и тому подобного. Как правило, указывается, что маршрут должен проходить через каждый город только один раз — в таком случае выбор осуществляется среди гамильтоновых циклов.

  1. Построение матрицы с исходными данными.

  2. Нахождение минимума по строкам.

  3. Редукция строк.

  4. Нахождение минимума по столбцам.

  5. Редукция столбцов.

  6. Вычисление оценок нулевых клеток.

  7. Редукция матрицы.

  8. Если полный путь еще не найден, переходим к пункту 2, если найден к пункту 9.

  9. Вычисление итоговой длины пути и построение маршрута.

32. Эйлеровы маршруты на графах. Теорема Эйлера.

Эйлеров путь (эйлерова цепь) в графе — это путь, проходящий по всем рёбрам графа и притом только по одному разу.

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

Эйлеров граф — граф, содержащий эйлеров цикл.

Полуэйлеров граф — граф, содержащий эйлеров путь.

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

33. Алгоритм Флери и алгоритм элементарных циклов нахождения эйлерова маршрута на графе.

Алгоритм Флери:

Пусть задан эйлеров граф{\displaystyle G=(V,E)}. Начинаем с произвольной вершины{\displaystyle p\in V} и вычеркиваем каждое пройденное ребро, если оно не является мостом. Проходим по мосту, если других путей нет. Число шагов алгоритма совпадет с к-вом ввершин в графе.

Алгоритм элементарных циклов нахождения эйлерова маршрута на графе.

  1. найти все элементарные циклы

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

повтор этого до тех пор пока все ребра графа не окажутся окрашенными

в р-те имеем последовательность элементарных циклов

  1. начинать движение по первому циклу вдоль его ребер до пересечения с каким-то другим циклом

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

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

  1. Алгоритм построения оптимального эйлерова мультиграфа.

Эйлеров мультиграф – мультиграф, содержащий эйлеров цикл.

  1. на данном не эйлеровом графе выделяют вершины нечетной степени V’ ∈ V.

Их к-во |V’| = n’ и строится соответсвующий єтим вершинам n’-вершинный граф K n

  1. ребра полученного полного графа взвешиваются весами равными длине кратчайшего пути между парой вершин V1 , V2 инцидентных соотвутсвующему ребру (V1 , V2 ) в полном графе K n

  2. в полном графе K n ищется совершенное паросочетание минимального веса.

  3. полученое совершенное паросочетание указывает пары вершин и кратчайшие между ними пути вдоль которых необходимо продублировать ребра.

35. Паросочетания. Задача о нахождении оптимального совершенного паросочетания в графе.

В теории графов паросочетание или независимое множество рёбер в графе — это набор попарно несмежных рёбер.

Максимальное паросочетание — это такое паросочетание в графе, которое не содержится ни в каком другом паросочетании этого графа, то есть к нему невозможно добавить ни одно ребро, которое бы являлось несмежным ко всем рёбрам паросочетания.

Наибольшее паросочетание (или максимальное по размеру паросочетание)— это такое паросочетание, которое содержит максимальное количество рёбер.

Совершенным паросочетанием - -паросочетание, в котором участвуют все вершины графа.

36.    Сеть - связный орграф без петель.

          Поток в сети - некоторая функция, которая ставит в соответствие дуге некоторое число - вес дуги.

Поток полный, если в нём любой путь полный.

Алгоритм форда фалкерсона:

а) ищем любую цепь из истока графа в сток;

б) каждой дуге приписываем возможный больший поток из истока в сток (записываем его через дробь с весом дуги; при этом поток не может превысить вес дуги, но может быть ему равен);

в) если поток становится равен весу дуги, то эта дуга является насыщенной, то есть через нее нельзя пройти при рассмотрении цепей в графе;

г) так перебираем все возможные цепи, пока станет невозможно попасть из истока в сток;

д) поток в сети будет равен сумме потоков всех дуг, инцидентных стоку графа (следует заметить, что сумма потоков всех дуг, инцидентных стоку графа равна сумме потоков всех дуг, инцидентных истоку графа).

37. Алгоритм плоской укладки графа

1. Инициализация. Выберем любой простой цикл C исходного графа G; изобразим его на плоскости в виде грани, которую примем за уже уложенную часть G′; сформируем сегменты Si; если множество сегментов пусто, то перейти к п. 3. В противном случае перейти к п.2.

2. Общий шаг:

a. Для каждого сегмента S найти множество Г(S).

Если существует сегмент S, для которого |Г(S)| = 0, то граф не планарный, конец.

b. Выбираем один из сегментов с минимальным числом, вмещающих его граней.

c. Выбираем одну из подходящих граней для выбранного сегмента.

d. В данном сегменте выбираем цепь между двумя контактными вершинами и укладываем ее в выбранной грани. Учтем изменения в структуре сегментов, и если множество образовавшихся сегментов не пусто, перейдем к п. a).

В противном случае перейдем к п.3.

3. Завершение. Построена плоская укладка G′ исходного графа G, конец.