Что такое метод графов Часть1

advertisement
Что такое метод графов?
Слово «граф» в математике означает картинку, где нарисовано несколько
точек, некоторые из которых соединены линиями. Прежде всего, стоит
сказать о том, что графы, о которых пойдет речь, к аристократам былых
времен никакого отношения не имеют. Наши «графы» имеют корнем
греческое слово «графо», что значит «пишу». Тот же корень в словах
«график», «биография».
В математике определение графа дается так: графом называется конечное
множество точек, некоторые из которых соединены линиями. Точки
называются вершинами графа, а соединяющие линии – рёбрами.
Схема графа, состоящая из «изолированных» вершин, называется нулевым
графом. (рис.2)
Графы, в которых не построены все возможные ребра, называются
неполными графами. (рис.3)
Графы, в которых построены все возможные ребра, называются полными
графами. (рис.4)
Граф, каждая вершина которого соединена с ребром любой другой вершины,
называется полным.
Заметим, что если полный граф имеет n вершин, то количество ребер будет
равно
n(n-1)/2
Действительно, количество ребер в полном графе с n вершинами
определяется как число неупорядоченных пар, составленных из всех n точекребер графа, т. е. как число сочетаний из n элементов по 2:
Граф, не являющийся полным, можно дополнить до полного с теми же
вершинами, добавив недостающие ребра. Так, например, на рисунке 3
изображен неполный граф с пятью вершинами. На рисунке 4 ребра
превращающие граф в полный граф изображены другим цветом,
совокупность вершин графа с этими ребрами называется дополнением графа
.
Степени вершин и подсчет числа ребер.
Количество рёбер, выходящих из вершины графа, называется степенью
вершины. Вершина графа, имеющая нечётную степень, называется нечетной,
а чётную степень – чётной.
Если степени всех вершин графа равны, то граф называется однородным.
Таким образом, любой полный граф — однородный.
рис.5
На рисунке 5 изображен граф с пятью вершинами. Степень вершины А
обозначим
Ст.А.
На рисунке : Ст.А = 1, Ст.Б = 2, Ст.В = 3, Ст.Г= 2, Ст.Д= 0.
Сформулируем некоторые закономерности, присущие определенным графам.
Закономерность 1.
Степени вершин полного графа одинаковы, и каждая из них на 1 меньше
числа вершин этого графа.
Доказательство:
Эта закономерность очевидна уже после рассмотрения любого полного
графа. Каждая вершина соединена ребром с каждой вершиной, кроме самой
себя, т. е. из каждой вершины графа, имеющего n вершин, исходит n—1
ребро, что и требовалось доказать.
Закономерность 2.
Сумма степеней вершин графа число четное, равное удвоенному числу ребер
графа.
Эта закономерность справедлива не только для полного, но и для любого
графа.
Доказательство:
Действительно, каждое ребро графа связывает две вершины. Значит, если
будем складывать число степеней всех вершин графа, то получим удвоенное
число ребер 2R (R — число ребер графа), т. к. каждое ребро было подсчитано
дважды, что и требовалось доказать
ТЕОРЕМА
Число нечетных вершин любого графа четно.
Доказательство:
Рассмотрим произвольный граф Г. Пусть в этом графе число вершин, степень
которых 1, равна К1; число вершин, степень которых 2, равно K2; ...; число
вершин, степень которых n, равно Кn. Тогда сумму степеней вершин этого
графа
можно
записать
как
K1
+
2К2
+
ЗК3
+
...+
nКn.
С другой стороны: если число ребер графа R, то из закономерности 2
известно, что сумма степеней всех вершин графа равна 2R. Тогда можно
записать
равенство
K1
+
2К2
+
ЗК3
+
...
+
nКn
=
2R.
(1)
Выделим в левой части равенства сумму, равную числу нечетных вершин
графа
(К1
+
К3
+
...):
K1 + 2К2 + ЗК3 + 4К4 + 5К5 + ... + nК = 2R,
(К1 + К3 + К5 +...) + (2K2 + 2Х3 +4K4 + 4К5 + ...)=2R
Вторая скобка- четное число как сумма четных чисел. Полученная сумма
(2R) четное число. Отсюда (К1 + К3 + К5 +...)-четное число.
Рассмотрим теперь задачи, решаемые с помощью графов:
Задача. Первенство класса. В первенстве класса по настольному теннису 6
участников: Андрей, Борис, Виктор, Галина, Дмитрий и Елена. Первенство
проводится по круговой системе – каждый из участников играет с каждым из
остальных один раз. К настоящему моменту некоторые игры уже проведены:
Андрей сыграл с Борисом, Галиной и Еленой; Борис, как уже говорилось, с
Андреем и еще с Галиной; Виктор – с Галиной, Дмитрием и Еленой; Галина с
Андреем и Борисом; Дмитрий – с Виктором и Елена – с Андреем и
Виктором. Сколько игр проведено к настоящему моменту и сколько еще
осталось?
Обсуждение. Изобразим данные задачи в виде схемы. Участников будем
изображать точками: Андрея – точкой А, Бориса – точкой Б и т.д. Если двое
участников уже сыграли между собой, то будем соединять изображающие их
точки отрезками. Получается схема, показанная на рисунке 1.
Точки А, Б, В, Г, Д, Е - вершины графа, соединяющие их отрезки – ребра
графа.
Заметим, что точки пересечение ребер графа не являются его вершинами.
Число игр, проведенных к настоящему моменту, равно числу ребер, т.е. 7.
Во избежание путаницы вершины графа часто изображают не точками, а
маленькими кружочками.
Чтобы найти число игр, которые надо провести, построим еще один граф с
теми же вершинами, но ребрами будем соединять тех участников, которые
еще не играли друг с другом (рис.2) Ребер у этого графа оказалось 8, значит,
осталось провести 8 игр: Андрей – с Виктором и Дмитрием; Борис – С
Виктором, Дмитрием и Еленой и т.д.
Попробуем построить граф для ситуации, описанной в следующей задаче:
Задача. Кто играет Ляпкина – Тяпкина? В школьном драмкружке решили
ставить гоголевского «Ревизора». И тут разгорелся жаркий спор. Все
началось с Ляпкина – Тяпкина.
- Ляпкиным – Тяпкиным буду я! – решительно заявил Гена.
- Нет, я буду Ляпкиным – Тяпкиным, возразил Дима.- С раннего детства
мечтал воплотить этот образ на сцене.
- Ну, хорошо, уступить эту роль, если мне дадут сыграть Хлестакова, проявил великодушие Гена.
- …А мне – Осипа, - не уступил ему в великодушии Дима.
- Хочу быть Земляникой или Городничим,- сказал Вова.
- Нет, Городничим буду я, - хором закричали Алик и Боря. – Или
Хлестаковым, добавили они одновременно.
Удастся ли распределить роли так, чтобы исполнители были довольны?
Обсуждение. Изобразим юных актеров кружками верхнего ряда: А – Алик, Б
– Борис, В – Вова, Г – Гена, Д – Дима, а роли, которые они собираются
играть, - кружками второго ряда (1 – Ляпкин – Тяпкин, 2 – Хлестаков, 3 –
Осип, 4 – Земляника, 5 – Городничий). Затем от каждого участника проведем
отрезки, т.е. ребра, к ролям, которые он хотел бы сыграть. У нас получиться
граф с десятью вершинами и десятью ребрами (рис.3)
Чтобы решить задачу, нужно из десяти выбрать пять ребер, не имеющих
общих вершин. Сделать это легко. Достаточно заметить, что в вершины 3 и 4
ведут по одному ребру, из вершин Д и В соответственно. Это означает, что
Осипа (вершина 3) должен играть Дима (кто же еще?), а Земляничку – Вова.
Вершина1 – Ляпкин – Тяпкин – соединена ребрами с Г и Д. Ребро 1 – Д
отдает, так как Дима уже занят, остается 1 – Г, Ляпкина – Тяпкина должен
играть Гена. Остается соединить вершины А и Б с вершинами 2 и 5,
соответствующими ролям Хлестакова и Городничего. Это можно сделать
двумя способами: либо выбрать ребро А -5 и Б – 2, либо ребро А -2 и Б -5. В
первом случае Алик будет играть Городничего, а Боря – Хлестакова, во
втором случае наоборот. Как показывает граф, других решений задача не
имеет.
Тот же граф получится при решении следующей задачи:
Задача. Сварливые соседи. Жители пяти домов поссорились друг с другом и,
чтобы не встречаться у колодцев, решили поделить их (колодцы) так, чтобы
хозяин каждого дома ходил к «своему» колодцу по «своей» тропинке.
Удастся ли им это сделать?
Возникает вопрос: так ли нужны были графы в разобранных задачах?
Разве нельзя прийти к решению чисто логическим путем? Да, можно. Но
графы придали условиям наглядность, упростили решение и выявили
сходство задач, превратив две задачи в одну, а это уже не так уж мало. А
теперь представьте себе задачи, графы которых имеют 100 или более
вершин. А ведь именно такие задачи приходиться решать современным
инженерам и экономистам. Тут без графов не обойтись.
III. Графы Эйлера.
Теория графов – наука сравнительно молодая: во времена Ньютона такой
науки еще не существовало, хотя и были в ходу «генеалогические деревья»,
представ-ляющие собой разновидности графов. Первая работа по теории
графов принадлежит Леонарду Эйлеру, и появилась она в 1736 году в
публикациях петербургской Академии наук. Начиналась эта работа с
рассмотрения следующей задачи:
а)Задача о кенигсбергских мостах. Город Кенигсберг (ныне Калининград)
расположен на берегах и двух островах реки Прегель (Преголи).Различные
части города были соединены семью мостами, как показано на рисунке. В
воскресные дни горожане совершают прогулки по городу. Можно ли выбрать
такой маршрут, чтобы пройти один и только один раз по каждому мосту и
потом вернуться в начальную точку пути?
Прежде чем рассмотреть решение данной задачи, мы введем понятие
«Эйлеровы графы .
Попробуем граф, изображенную на рис.4, обвести одним росчерком, то есть,
не отрывая карандаша от листа бумаги и не проходя по одной и той же части
линии более одного раза.
Фигура эта, такая простая на вид, оказывается, имеет интересную
особенность. Если мы начнем движение из вершины В, то у нас это
обязательно получится. А что будет, если мы начнем движение из вершины
А? Легко убедиться, что обвести линию в этом случае нам не удается: у нас
всегда будет оставаться не пройденные ребра, добраться до которых уже
невозможно.
.
На рис. 5 изображен граф, который вы, наверное, умеете рисовать одним
росчерком. Это звезда. Оказывается, хотя она и выглядит значительно более
сложной, чем предыдущий граф, обвести ее можно, начав с любой вершины.
Графы, начерченные на рис.6 также можно начертить одним росчерком пера.
Теперь попробуйте вычертить одним росчерком граф, изображенный на
рис.7
Вам это сделать не удалось! Почему? Вы не можете найти нужную вершину?
Нет! Дело не в этом. Этот граф вообще нельзя вычертить одним росчерком
пера.
Проведем рассуждения, которые убедят нас в этом. Рассмотрим узел А. Из
него выходят три вершины. Начнем вычерчивать граф с этой вершины.
Чтобы пройти по каждому из этих ребер, мы должны выйти из вершины А по
одному из них, в какой – то момент обязательно вернуться в него по второму
и выйти по третьему. А вот снова войти уже не сможем! Значит, если мы
начнем вычерчивание с вершины А, то закончить в нем не сможем.
Допустим теперь, что вершина А не является началом. Тогда в процессе
вычерчивания мы должны войти в него по одному из ребер, выйти по
другому и снова вернуться по третьему. А так как выйти из него мы не
сможем, то вершина А в этом случае должен являться концом.
Итак, вершина А должен быть или началом, или конечным узлом
вычерчивания.
Но про три другие вершины нашего графа можно сказать то же самое. Но
ведь и начальной вершиной вычерчивания может быть только одна вершина,
и конечной вершиной также может быть только одна вершина! А значит,
вычерчивать этот граф одним росчерком невозможно.
Граф, который можно нарисовать, не отрывая карандаша от бумаги,
называется эйлеровым (рис.6).
Такими графы названы в честь учёного Леонарда Эйлера.
Закономерность1.
(вытекает
из
рассмотренной
нами
теоремы).
Невозможно начертить граф с нечетным числом нечетных вершин.
Закономерность 2.
Если все вершины графа четные, то можно не отрывая карандаш от
бумаги («одним росчерком»), проводя по каждому ребру только один раз,
начертить этот граф. Движение можно начать с любой вершины и
закончить его в той же вершине.
Закономерность 3.
Граф, имеющий всего две нечетные вершины, можно начертить, не
отрывая карандаш от бумаги, при этом движение нужно начать с одной из
этих нечетных вершин и закончить во второй из них.
Закономерность 4.
Граф, имеющий более двух нечетных вершин, невозможно начертить
«одним росчерком».
Фигура (граф), которую можно начертить, не отрывая карандаш от бумаги,
называется уникурсальной.
Граф называется связным, если любые две его вершины могут быть
соединены путем, т. е. последовательностью ребер, каждое следующее из
которых начинается в конце предыдущего.
Граф называется несвязным, если это условие не выполняется.
рис.7
рис.8
На рисунке 7, очевидно, изображен несвязный граф. Если, например, на
рисунке между вершинами Д и Е провести ребро, то граф станет связным.
(рис.8)
Такое ребро в теории графов (после удаления которого граф из связного
превращается в несвязный) называется мостом.
Примерами мостов на рисунке 7 могли бы служить ребра ДЕ, A3, ВЖ и
др., каждое из которых соединяло бы вершины «изолированных» частей
графа.(рис.8)
Несвязный граф состоит из нескольких «кусков». Эти «куски»
называются компонентами связности графа. Каждая компонента связности
является, конечно, связным графом. Отметим, что связный граф имеет одну
компоненту связности.
ТЕОРЕМА.
Граф является эйлеровым тогда и только тогда, когда он связан и имеет не
более двух нечетных вершин.
Доказательство:
Рисуя граф каждую вершину, за исключением начальной и конечной, мы
войдём столько же раз, сколько выйдем из неё. Поэтому степени всех вершин
должны быть чётными, кроме двух, а значит, эйлеров граф имеет не более
двух нечётных вершин.
Вернемся теперь к задаче о кенигсбергских мостах.
Обсуждение задачи. Обозначим различные части города буквами А, В, С,
Д, а мосты – буквами а, b, c, d, e, f, g – мосты, соединяющие
соответствующие части города. В этой задаче существуют лишь переходы
через мосты: переходя через любой мост, мы всегда из одной части города
попадаем в другую, И, наоборот, переходя из одной части города в другую,
мы непременно пройдем по мосту. Поэтому, изобразим план города в виде
графа, вершины которого А, В, С, Д (рис.8) изображают отдельные части
города, а ребра a, b, c, d, e, f, g – мосты, соединяющие соответствующие
части города. Ребра зачастую оказываются удобнее изображать удобнее не
прямолинейными отрезками, а криволинейными – «дугами».
Если бы существовал маршрут, удовлетворяющий условию задачи, то
существовал бы замкнутый непрерывный обход этого графа, проходящий
один раз по каждому ребру. Иными словами этот граф должен вычерчиваться
одним росчерком. Но это невозможно – какую бы вершину мы ни выбрали за
исходную, нам придется проходить через остальные вершины, и при этом
каждому «входящему» ребру (мосту, по которому мы вошли в эту часть
города) будет соответствовать «выходящее» ребро мост, которым мы и
воспользуемся затем, чтобы покинуть эту часть города): число ребер,
входящих в каждую вершину, будет равно числу ребер, выходящих из нее, т.
е. общее число ребер, сходящихся в каждой вершине, должен быть четным.
Наш граф этому условию не удовлетворяет, и поэтому требуемого маршрута
не существует.
Download