Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачи_mod_alpha 2.doc
Скачиваний:
31
Добавлен:
19.03.2016
Размер:
686.59 Кб
Скачать

19. Графы

  1. Найти все вершины графа, недостижимые из заданной.

Указание:

использовать рекурсивную процедуру проверки доступности одной вершины из другой.

  1. Раскрасить граф минимальным количеством цветов. Каждая вершина должна быть «окрашена» в цвет, отличный от цвета смежных вершин.

  2. Определить, является ли связанным заданный граф.

Указание:

использовать рекурсивную процедуру проверки доступности одной вершины из другой.

  1. Найти длину кратчайшего цикла в графе.

  2. Найти все циклы, не содержащие вершин.

  3. Определить вершину, удалением которой можно свести граф к дереву.

  4. Найти вершину заданного графа, которая принадлежит каждому пути между двумя заданными вершинами.

  5. Задана система односторонних дорог. Найти путь, соединяющий города А и Б, не проходящий через заданное множество вершин.

  6. Задана система двусторонних дорог. Найти замкнутый путь, проходящий через каждую вершину и длиной не более 100 км.

  7. Найти город в системе двусторонних дорог, у которого сумма расстояний до любого города минимальна.

  8. По системе двусторонних дорог определить, есть ли в ней город, из которого можно добраться в любой другой менее чем за 100 км. Разрешается построить дополнительно 3 дороги.

  9. По системе двусторонних дорог определить, можно ли, закрыв какие-либо 3 из них, добиться того, чтобы из города А нельзя было попасть в город Б.

  10. Задана система двусторонних дорог. N-периферией называется множество городов, расстояние от которых до выделенного города больше N. Определить N-периферию для заданного N.

  11. Определить, изоморфны ли 2 графа.

  12. Построить такой многоугольник (не обязательно выпуклый) с вершинами в заданном множестве, периметр которого максимален.

  13. Найти минимальное множество прямых, на которых можно разместить все точки заданного множества.

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

  15. Неориентированный граф называется двудольным, если его можно раскрасить в два цвета так, что концы любого ребра будут разного цвета. Составить алгоритм проверки, является ли заданный граф двудольным (число действий не превосходит N + M).

Указание:

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

Замечание

В этой задаче безразлично, производить поиск в ширину или в глубину.

  1. Решить задачу 17 для ориентированного графа (вывести все вершины, доступные из данной по дугам; граф может содержать циклы).

  2. Доказать, что алгоритм Дейкстры можно модифицировать так, чтобы для N городов и N маршрутов он требовал не более O(N +K ln N) операций.

Указание:

на каждом шаге выбрать невыделенный город с минимальной стоимостью и скорректировать цены для всех городов, в которые из него есть маршруты. Если известен города, стоимость до которого минимальна, то хватило бы O(n + k) действий. Вычисление минимального элемента в массиве обходится в множитель log n.

  1. С эйлеровыми циклами связана задача китайского почтальона, условие которой звучит так: ребрам неориентированного графа приписаны положительные веса. Необходимо найти цикл, проходящий через каждое ребро графа не менее одного раза и такой, чтобы сумма весов с учетом кратности прохождения ребер была бы минимальна.

Замечание

Эта задача часто встречается на практике. Например, при решении задач планирования проверки электрических, телефонных или железнодорожных линий, при решении задач доставки почты или продуктов питания и т. п.