Научная статья на тему 'Алгоритмический подход к преподаванию теории графов'

Алгоритмический подход к преподаванию теории графов Текст научной статьи по специальности «Математика»

CC BY
161
50
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
МЕТОДИКА ПРЕПОДАВАНИЯ ДИСКРЕТНОЙ МАТЕМАТИКИ / РУЧНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМОВ / ГАММА-АЛГОРИТМ ТАТТА / АЛГОРИТМИЧЕСКИЙ ПОДХОД

Аннотация научной статьи по математике, автор научной работы — Мушруб Владимир Александрович, Максименко Марианна Николаевна, Выборнова Инесса Ивановна, Фадеева Лидия Леонидовна

В статье излагается идея алгоритмического подхода к преподаванию теории графов, в ней обоснована возможность такого подхода не только в разделах посвященных оптимизации на графах, но и в разделах связанных с основными понятиями теории графов. Предлагаемый в статье курс теории графов основан на технологии ручной реализации алгоритмов. В ней приведены примеры ручной реализации Г-алгоритма плоской укладки графа и алгоритма Флери. При этом авторы не отрицают необходимость и полезность обучения бакалавров и специалистов математических и технических специальностей реализации этих алгоритмов на современных языках программирования или в пакете символьной математике Mathematica Wolfram Research. Теория графом предоставляет идеальную возможность для визуализации действия алгоритмов, какую не имеют другие разделы дискретной математики. Отметим, что разделы теории графов, связанные с оптимизацией (максимальные потоки и разрезы в сетях, кратчайшие маршруты на графах, нахождения критического пути на сетевом графе комплекса работ, технологическая задача динамического программирования, задача о замене оборудования) в настоящее время преподается на основе алгоритмов. Здесь достаточно упомянуть алгоритмы ФордаФалкерсона, Дейкстры, Флойда-Уоршолла. Изложенная в статье идея позволяет перейти к преподаванию всей теории графов на алгоритмической основе. Такой подход позволяет студентам досконально разобраться в теоретическом материале, осуществлять проверку решений компьютерных задач и систематизировать полученные знания.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Алгоритмический подход к преподаванию теории графов»

Алгоритмический подход к преподаванию теории графов

у

ы tt Е

5

«

tt

6 Е Е

Мушруб Владимир Александрович,

канд. физ.-мат. наук, доц. кафедры экономико-математических методов, Российский экономический университет им. Г.В. Плеханова, mushrub@yandex.ru

Максименко Марианна Николаевна,

канд. физ.-мат. наук, доц. кафедры высшей математики, Российский экономический университет им. Г.В. Плеханова, kafedra_vm@mail.ru

Выборнова Инесса Ивановна,

канд. физ.-мат. наук, доц. кафедры высшей математики, Российский экономический университет им. Г.В. Плеханова, inezvyb@rambler.ru

Фадеева Лидия Леонидовна,

ст. преподаватель кафедры высшей математики, Российский экономический университет им. Г.В. Плеханова, kafedra_vm@mail.ru

В статье излагается идея алгоритмического подхода к преподаванию теории графов, в ней обоснована возможность такого подхода не только в разделах посвященных оптимизации на графах, но и в разделах связанных с основными понятиями теории графов. Предлагаемый в статье курс теории графов основан на технологии ручной реализации алгоритмов. В ней приведены примеры ручной реализации Г-алгоритма плоской укладки графа и алгоритма Флери. При этом авторы не отрицают необходимость и полезность обучения бакалавров и специалистов математических и технических специальностей реализации этих алгоритмов на современных языках программирования или в пакете символьной математике Mathematica Wolfram Research. Теория графом предоставляет идеальную возможность для визуализации действия алгоритмов, какую не имеют другие разделы дискретной математики.

Отметим, что разделы теории графов, связанные с оптимизацией (максимальные потоки и разрезы в сетях, кратчайшие маршруты на графах, нахождения критического пути на сетевом графе комплекса работ, технологическая задача динамического программирования, задача о замене оборудования) в настоящее время преподается на основе алгоритмов. Здесь достаточно упомянуть алгоритмы Форда-Фалкерсона, Дейкстры, Флойда-Уоршолла.

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

Ключевые слова: методика преподавания дискретной математики, ручная реализация алгоритмов, гамма-алгоритм Татта, алгоритмический подход

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

Алгоритмический подход к изучению пла-нарности.

Теория планарных (плоских) графов, изучаемая в курсе дискретной математики, прикладной математики, имеет важное прикладное значение. В самом деле, все печатные платы и микросхемы представляют собой плоские укладки графов, в которых функциональные элементы микросхем служат вершинами, а проводники — дугами. В том случае, если не удается найти плоскую укладку графа микросхемы, в её плоскости возникают непредусмотренные контакты между проводниками. В месте пересечения один из проводников придется прервать, напаяв затем перекидной мостик, или нужно будет поместить некоторые проводники вне микросхемы. Эти шаги приводят к затяжке и удорожанию производства . Более подробно об этом можно прочесть в монографии [2].

Напомним определение планарного (плоского) графа.

Определение. Граф называется плоским, если его можно изобразить так, чтобы рёбра не пересекались нигде, кроме вершин графа.

Базовыми примерами неплоских графов служат полный граф с пятью вершинами ^ (пентаграмма, изображенная на рис. 1) и полный двудольный граф з с тремя вершинами в каждой доле, также изображенный на рис. 1. Теорема Куратовского-Цорна (или теорема Харари-Татта) показывает, что все остальные примеры неплоских графов сводятся к этим двум графам.

Традиционное изложение теории плоских графов основано на теоремах Понтрягина-Куратовского или Харари-Татта.

Рис. 1. Графы K5 и K3 3

Напомним теорему Понтрягина-Куратовского.

Теорема 1. Граф является плоским тогда и только тогда, когда он не содержит подграфов, гомеоморфных графам и $ (см. [3, следствие 39.6], [2, стр.238], [1, теорма 11.13]).

Адаптируя изложение для студентов, эту теорему можно переформулировать следующим образом:

Теорема 1b. Граф является плоским тогда и только тогда, когда он не содержит подграфов, являющихся подразбиениями графов Zí5 и 3.

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

Для доказательства того факта, что граф не является плоским чуть более удобно использовать критерий Харари-Татта.

Теорема 3 (критерий Харари-Татта). Граф не является плоским тогда и только тогда, когда с помощью нескольких операций удаления ребер и вершин, а также стягивания ребер, его можно превратить в один из графов или íCs (см. [2,

стр. 238]).

Теорема 4. Граф является плоским, если и только если, в нем можно найти множество базисных циклов, в котором ни одно ребро не принадлежит трем и более циклам.

Решение задач на основе теоремы 3 аналогично разгадыванию ребусов или головоломок ввиду отсутсвия какого-либо алгоритма решения.

Критерий планарности Понтрягина-Куратовского был получен Л. С. Понтрягиным в 1927 г. и К. Куратовским в 1930 г. и в то время по-видимому, казался результативным. Но в настоящее время, в эпоху компьютерных технологий, невзрачные, но эффективные алгоритмы стали представляться более предпочтительными, нежели неэффективные теоремы, пусть даже обладающие броской формулировкой.

Таким образом, гамма-алгоритм является альтернативной основой изложения теории планарности и может быть использован в преподавании прикладной математики.

Теоремы 1 и 2 не предоставляют эффективного метода проверки планарности графа и не позволяют получить его укладку на плоскости. В качестве педагогического эксперимента авторы статьи изучили гамма-алгоритм плоской укладки графа, являющийся эффективным методом проверки планарности.

Отметим, что гамма-алгоритм применяется к двусвязным графам. Более того, в процессе преобразований плоский подграф всё время должен оставаться двусвязным; это утверждение является инвариантом данного алгоритма.

Граф называется двусвязным, если выполнено любое из следующих эквивалентных условий:

1) любые две вершины графа принадлежат простому циклу;

2) любые два ребра графа принадлежат простому циклу;

3) любая вершина и любое ребро принадлежат простому циклу;

4) граф связен и не имеет мостиков, т. е. рёбер после удаления которых, граф распадается на две компоненты связности.

Пусть построена плоская укладка подграфа С] графа О. Сегментом 5 относительно подграфа С] будем называть подграф графа С одного из двух следующих видов:

1) ребро, оба конца которого принадлежат С] , но само оно не принадлежит С];

2) связную компоненту ф графа дополненную всеми ребрами графа С, такими, что

один из концов ребра принадлежит этой связной компоненте а второй — подграфу

Вершину х сегмента 5 будем называть контактной, если я е Л Допустимой гранью для сегмента 5 относительно € называется грань Г плоской укладки графа С, содержащая все контактные вершины сегмента 5. Через 0\5) будем обозначать множество всех допустимых граней для 5.

Простую цепь Ь сегмента 5, соединяющую две контактные вершины сегмента 5 и не содержащую других контактных вершин, называют а -цепью. Очевидно, что всякая а -цепь, принадлежащая сегменту, может быть уложена в любую допустимую для этого сегмента грань.

Для плоской укладки графа и попутной проверки, планарен ли он, удобно пользоваться гамма-алгоритмом Татта (см. [1, С. 137], [3, §41]). Алгоритм применяется только к двусвяз-ным графам. Опишем сначала сам гамма-алгоритм Татта.

0. Выбираем простой цикл или некоторый двусвязный подграф G■\ графа С, являющийся

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

I I

б

£

I

т П í

1. Найдём грани графа С| и сегменты относительно . Если множество сегментов пусто, то построена плоская укладка графа С на плоскости (конец).

2. Для каждого сегмента 5 определяем множество

3. Если существует сегмент 5, не имеющий допустимых граней, то граф О не планарен (конец). Иначе перейдем к п. 4.

4. Пусть все сегменты имеют допустимые грани. Тогда, если существуют сегменты, обладающие единственной допустимой гранью, выбираем в первую очередь один из таких сегментов (такие сегменты называют первоочередными). Если же все сегменты имеют более одной допустимой грани, то выбираем любой сегмент. Помещаем одну из а-цепей Ь выбранного сегмента в допустимую грань; заменяем С| на и Ь и переходим к п. 1.

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

Пример 1. Докажем, что граф, изображённый на рис. 2, не планарен.

У ы

а

Е

а

ей б Е Е

А О

Рис. 2

Рис. 3

А о С Плоский подграф с тремя гранями.

Решение. На рис. 3 изображена плоская укладка подграфа с тремя гранями. После удаления этого подграфа (и всех инцидентных ему ребер) остаётся одна связная компонента — изолированная вершина Добавляя все ребра, соединяющие вершину § с контактными

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

Пример 2. Найдем плоскую укладку изображённого на рис. 4 графа.

Сегмент

Рис. 5

В качестве начального плоского подграфа (?|

можно взять любой двусвязный подграф, разбивающий плоскость на три грани или простой (без повторения вершин) цикл. Пусть £] - двусвязный граф с ребрами АВ,ВС,СО^А,АС,

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

внешняя грань Г^.

Добавляем к плоской укладке а-цепь Л, Г, С и получаем плоский подграф С], изображенный на рис. 6. Относительно этого подграфа сегменты 1, 2, 3 остаются прежними, а сегмент 5 превращается в ребро ТО (см. рис.

7). Укладывая ребро ТО в грань получаем плоский подграф в3, изображенный на рисунке 8 вместе с новыми сегментами относительно в3.

Сегмент 3 Сегмент 2

IX

Сегмент 1 9 А

6 С

допустимая допустимая допустимая грань-Г2 грань-Г3 грань-Г,

А<^ сегмент 4

Сегмент 5

то

•—О в V

допустимая грань-Г4

Рис. 7

допустимая грань-Г]

Плоский подграф Сегмент 2 1.А ос

Сегмент 3

IX

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

допустимая грань-Г3

Ао^Сегмент 4 Се™ент 1

В С

С

допустимая "допустимая допустимая грань-Г2 грань-Г, грань-Г,

Рис. 8.

Добавляем к графу % а-цепь А, С. В результате образуется подграф ■£[, (см. рис. 9), относительно которого находим сегменты.

Дальнейшее применение алгоритма состоит в укладывании а-цепей сегментов в порядке убывания их номеров, сначала к укладке добавляются цепи длины 2, а затем — длины 1. Располагаем в грани ребро В¥, что приводит к

новой ситуации, изображенной на рис. 10.

Плоский подграф С4

Сегмент

IX

Сегмент 4

Во-• у

допустимая

грань-Г6

У

Сегмент

Сегмент 1

допустимая грань-Г,

допустимая грань-Г2

Рис. 9.

С

Сегмент 2 0 С ^ 1_

допустимая грань-Г3

Сегмент 1 РА к П5

2 -^

I- I

и Л

> I

с ГС

О О.

Допустимая грань-Г3

Рис. 10.

Дальнейшее применение алгоритма состоит в укладывании а-цепей сегментов в порядке убывания их номеров, сначала к укладке добавляются цепи длины 2, а затем — длины 1: а -

цепь О, X, В ребро ХА, а-цепь В и ребро ZC. Это приводит к плоской укладке, изображенной на рисунке 11. Ребро АС - а-цепь, добавляемая к плоской укладке подграфа на последнем этапе. После её добавления уложенным на плоскости оказывается весь исходный граф (см. рис. 12).

Обходы графа. Пусть дан конечный связный граф и требуется построить эйлеров цикл в этом графе. Как правило, в курсе прикладной или дискретной математики для построения эйлерова цикла применяется алгоритм конкатинации или объединения циклов.

I I

б

£

I

т П Н

Сегмент 3 ОА

°с

допустимая

грань-Г,

Рис. 11

у

ы Сй Е

а

«

а о

Е Е

Рис. 12

Этот алгоритм состоит из следующих пунктов.

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

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

Для придания наглядности и прозрачности понимания студентами операцию объединения циклов авторы придумали следующий прием: сначала два цикла а и ^ рисуются на доске в виде двух пересекающихся кругов с обходом по часовой стрелке, а затем объединенный цикл а о ¡2 изображается виде восьмерки как это изображено на рис. 13.

Для запоминания студентами алгоритма Эйлера авторы рекомендуют задавать занимательные задачи, например, найти эйлеров цикл на графе «елочка», изображенном на рис. 14.

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

Будем считать, что все ребра графа пронумерованы нумеровать числами 1,2, ...,*. Вопрос о том, как найти хотя бы один эйлеров цикл в эйлеровом графе С, с тем, имеет и другое решение. Это решение дает более простой для решения задачи человеком, но не удобный для программирования алгоритм Флери.

Сделать это можно, если записывать номера ребер ребра, придерживаясь следующих двух правил:

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

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

Этот процесс, называемый алгоритмом Флё-ри, заканчивается, когда все ребра графа вычеркнуты.

Дадим теперь обоснование алгоритма Фле-ри. Прежде всего заметим, что поскольку степень каждой вершины графа С четна, то алгоритм может закончить работу только в той вершине, с которой начал. Поэтому он стоит некоторый цикл С; и надо только доказать, что этот цикл включает все ребра графа С. Предположим, что это не так, и пусть — связная компонента графа £ \ У{С), не являющаяся изолированной вершиной. Рассмотрим множество А ребер цикла С, инцидентных вершинам, вошедшим в Ясно, что А не пусто. Пусть а — ребро из А, получившее в процессе работы алгоритма наибольший номер, т.е. вычеркнутое последним

среди ребер А. Тогда, как легко видеть, ребро а к моменту вычеркивания было мостом в графе. Однако это противоречит правилу выбора очередного ребра.

Рис. 15.

Рис. 16.

Семинарский пример решения задачи посредством алгоритма Флери, изображен на рисунках 15-18. В ответе получился эйлеров цикл (1,2,3,5,12,11,10,9,6,8,7,4).

(1,2,3,5)

мост

Рис. 17.

10

>-< 11 9 >.....................4 1......................л »..............• л

12 6 8 ►-< 4 7

(1,2,3,5,12,11,10,9,6,8,7,4)

Рис. 18.

Двудольные графы. Задача определения является ли граф двудольным предоставляет пример алгоритма удивительной просты. Берем на лекцию два цветных фломастера или два цветных мелка. Можно обойтись и одним фломастером или белым мелком. Тогда вершины одной доли можно рисовать полыми, а другой - закрашенными. Выбрав произвольную вершину графа, красим ее красным, а все смежные с ней - синим.

Далее на каждом шаге повторяется следующая процедура. Определяем, есть ли в последнем слое окрашенных вершин смежные. Если есть, то граф не двудольный. Если смежных вершин нет и не все вершины графа окрашены, то все неокрашенные вершины, смежные с вершинами последнего закрашенного слоя, красим в противоположный цвет. Если же все вершины окрашены, то граф двудольный.

Заключение. Отметим, что в преподавании многих разделов, связанных с оптимизацией на графах, естественным образом используется алгоритмический подход. К таким разделам можно отнести поиск максимального потока на сети (алгоритм Форда-Фалкерсона), поиск кратчайшего маршрут из входа в выход сети или кратчайших маршрутов из всех вершин графа в выделенную вершину (алгоритм Дейкстра), поиск максимального паросочетания и тем самым решение задачи о назначении (прямо-двойственный алгоритм) и т.д. Разделы же теории графов в ее чистом виде преподаются без связи с построением алгоритмов. В данной статье мы описали, как ввести алгоритмы в преподавание трех дидактических единиц. К этому следует добавить, что задача о существовании гамильтонова цикла на графе и задача «о коммивояжере» могут послужить для студентов примерами ЫР-полных задач. По мнению авторов алгоритмический подход в преподавании элементов теории графов способствует выработке у студентов определенного ориентацион-ного образа действия. А именно, изучая теоретический материал или разобранный пример задачи по прикладным математическим дисциплинам, студент будет задумывать о том, какие алгоритмы можно придумать, исходя из изучаемого материала.

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

Литература

1. Харари Ф. Теория графов // М.: УРСС, 2003

2. Зыков. А.А. Основы теории графов. // М.: Наука. Гл. ред. физ.-мат. лит. 1983.

I I

б

£

I

т П Н

3. Емеличев. В.А. Мельников, О.И. Сарва-нов В.И.,. Тышкевич Р.И. Лекции по теории графов. // М.: Наука, Физматлит. 1990.

4. Корте Б., Фиген. Й. Комбинаторная оптимизация. Теория и алгоритмы. // М.: МЦНМО. 2015.

5. Ерусалимский Я.М. Дискретная математика. Теория, задачи, приложения. // М.: «Вузовская книга», 2008.

6. Дистель Р. Теория графов // Новосибирск: Изд-во ИМ СО РАН. 2002.

7. Косточка А. В. Дискретная математика. Часть 2 // Новосибирск: НГУ, 2001.

Algorithmic approach to teaching graph theory

Mushrub V.A., Maksimenko M.N., Vybornova I.I., Fadeeva L.L.

Russian Plekhanov University of Economics

The article presents the idea of algorithmic approach to teaching graph theory./ The article substantiates the possibility of this approach not only in the sections devoted to optimization on graphs, but in sections related with the basic concepts of graph theory. The proposed course in graph theory based on the technology of manual implementation of algorithms. It uses examples manual implementation of the Tutte gamma-algorithm (by W.E. Tutte) flat stacking a graph, and Fleury's algorithm. The authors do not deny the necessity and usefulness of training students in mathematical and technical specialties implement these algorithms on modern programming languages or symbolic math package Mathematica Wolfram Research.

Graph theory provides an ideal opportunity to visualize the operation of algorithms, which other sections of discrete mathematics do not provide.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Note that the sections graph theory related to the optimization (a maxial flow and cuts in networks, the shortest routes in graphs, finding critical path in a network graph of a set of works, the technological dynamic programming problem, the problem of replacement of equipment) is currently taught on the basis of algorithms. It is sufficient to recall well-known algorithms: the Ford-Fulkerson algorithm, Dijkstra's algorithm, the Floyd-Warshall algorithm. The described idea allows us to go to teaching graph theory completely based on an algorithmic basis. This approach allows students to thoroughly understand the theoretical material, to verify solutions of computer problems and to systematize the acquired knowledge. Key words. methods of teaching discrete mathematics, manual implementation of algorithms, Tutte's gamma-algorithm, Algorithmic approach to teaching References

1. Harari F., Graph Theory // M.: URSS, 2003

2. Zykov. A. A. Fundamentals of graph theory. // Moscow: Nauka, Fizmat-

lit edition. M.: Nauka, Fizmatlit, 1983.

3. Emelichev. V. A. Melnikov, O. I. Sarvanov VI,. Tyshkevich R. I. Lec-

tures on graph theory. // Moscow: Nauka, Fizmatlit, 1990.

4. Korte B., Vigen J. Combinatorial optimization. Theory and algorithms //

Springer Verlag, 2011.

5. Erusalimsky Ya. M. Discrete mathematics. Theory, problems, applica-

tions. // Moscow: "University book", 2008.

6. Distel R. Graph Theory // Novosibirsk: Publishing house of Mathemati-

cal institute of Siberian branch of RAS, 2002.

7. Kostochka, A. V., Discrete math. Part 2 // Novosibirsk: NSU, 2001.

У u tt E

5

«

tt

6 E E

i Надоели баннеры? Вы всегда можете отключить рекламу.