Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RPUD-PI-Informatika-v30.doc
Скачиваний:
2
Добавлен:
27.08.2019
Размер:
604.67 Кб
Скачать

12. Графы

A) Различные методы представления графов

http://www.intuit.ru/department/algorithms/ingrth/1/

http://school29.smoladmin.ru/arbuzov/glava1.html

до некоторой степени и

http://khpi-iip.mipk.kharkiv.edu/library/datastr/book_sod/kgsu/din_0079.html

Упражнение 12.01. [0] Написать программу конвертирующую граф представленный матрицей смежности в матрицу инцидентности.

Упражнение 12.02. [0] Написать программу конвертирующую граф представленный матрицей инцидентностей в представление списком ребер.

Упражнение 12.03. [0] Написать программу которая строит матрицу инцидентности по заданному списку ребер.

Упражнение 12.04. [0] Степенью вершины называется количество ребер ей инцидентных. Вывести все вершины имеющую четную степень у заданного графа. Метод задания графа на Ваш выбор.

Упражнение 12.05. [0] Полным называется граф любые две вершины которого связаны ребром. Проверить, является ли данный граф полным. Метод задания графа на Ваш выбор.

Упражнение 12.06. [1] В неориентированном графе c ребрами неотрицательного веса, найти два связанных ребра наибольшего суммарного веса.

Упражнение 12.07. [2] Вырезать из графа путь. Если появляются вершины не связанные с другими, уменьшить матрицу. Метод задания графа - матрица смежности или матрица инцеденции.

Упражнение 12.08. [2] Построить граф из набора путей. Метод задания графа — матрица смежности или матрица инцеденции.

B) Алгоритм Флойда-Уоршелла

http://school29.smoladmin.ru/arbuzov/glava3.html

http://school29.smoladmin.ru/arbuzov/floid.html

http://habrahabr.ru/blogs/algorithm/105825/

http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D0%BB%D0%BE%D0%B9%D0%B4%D0%B0%E2%80%93%D0%A3%D0%BE%D1%80%D1%88%D0%B5%D0%BB%D0%BB%D0%B0

Упражнение 12.09. [0] Реализовать алгоритм Флойда-Уоршелла.

Упражнение 12.10. [1] С помощью модифицированного алгоритма Флойда-Уоршелла, для заданной вершины X, найти сколько шагов потребуется для достижения любой другой вершины (шаг это переход по ребру).

Упражнение 12.11. [2] Реализовать алгоритм Флойда-Уоршелла и алгоритм Дейкстры, сравнить производительность на графах различного размера.

C) Алгоритм Дейкстры

http://school29.smoladmin.ru/arbuzov/glava3.html

http://school29.smoladmin.ru/arbuzov/deikstra.html

http://www.intuit.ru/department/algorithms/ingrth/9/

http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%94%D0%B5%D0%B9%D0%BA%D1%81%D1%82%D1%80%D1%8B

http://habrahabr.ru/blogs/algorithm/111361/#habracut

Упражнение 12.12. [0] В графе со взвешенными ребрами найти разницу между двумя самыми короткими путями. Вершины начала и конца заданы. Метод задания графа на Ваш выбор.

Упражнение 12.13. [1] Дан неориентированный граф, ребра содержат веса. Найти кратчайший путь между двумя заданными вершинами. Однако, если степень вершины четная - через нее нельзя пройти.

Упражнение 12.14. [2] Дан ориентированный мульти граф, представляющий карту рейсов авиакомпании. Вершины это города, а ребра содержат информацию о рейсе - длительность перелета, время вылета. Дан города вылета и город прибытия, а так же время вылета. Необходимо найти самое раннее возможное время прибытия.

D) Поиски в ширину и глубину на графе

http://school29.smoladmin.ru/arbuzov/glava2.html

http://school29.smoladmin.ru/arbuzov/glubina.html

http://school29.smoladmin.ru/arbuzov/shirina.html

Упражнение 12.15. [1] Дан неориентированный граф, проверить является ли он связным. Метод задания графа на Ваш выбор.

Упражнение 12.16. [2] В неориентированном графе c ребрами неотрицательного веса, найти цикл наибольшего веса.

Упражнение 12.17. [2] Инфекция распространяется по городам (вершинам графа) при помощи дорог (неориентированные ребра). При этом, на каждом шаге заражаются все соседние города любого зараженного города. Дан инфицированный город, вывести список городов зараженных шаге N.

Упражнение 12.18. [2] Бродячий торговец начинает из города N (вершина графа) и идет по ребрам с помощью поиска в глубину, на каждом шаге выбирая наиболее короткую дорогу (ребро с весом), из тех что он не выбирал. Каждый город обходится только один раз. Вывести последовательность посещенных городов.

E) Алгоритм Краскала или Прима построения минимального остовного дерева

Демонстрации:

http://www.youtube.com/watch?v=vm_9-vnV7PE

http://www.youtube.com/watch?v=sl6W3_Q4HZo

Описание

http://msug.vn.ua/Posts/Details/3751

https://sites.google.com/a/labore.ru/teoria-grafov-i-ee-primenenie/novosti-obrazovania/algoritm-kraskala

Упражнение 12.19. [0] Найти минимальное остовное дерево в данном графе.

Упражнение 12.20. [1] Модифицировать алгоритм нахождения минимального остовного дерева в графе таким образом, чтобы на шаге добавления четного ребра в расчет принималось первое значение из пары, а при нечетном шаге - второе. Пара представляет собой вес ребра.

Упражнение 12.21. [2] Найти разницу между его минимальными остовными деревьями, которые не пересекаются по ребрам, если такие есть.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]