Главная » Просмотр файлов » Новиков Ф.А. Дискретная математика для программистов

Новиков Ф.А. Дискретная математика для программистов (860615), страница 61

Файл №860615 Новиков Ф.А. Дискретная математика для программистов (Новиков Ф.А. - Дискретная математика для программистов. 2009) 61 страницаНовиков Ф.А. Дискретная математика для программистов (860615) страница 612022-01-13СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 61)

Связный граф может иметь много остовов.ОТСТУПЛЕНИЕЕсли задать длины рёбер, то можно поставить задачу нахождения кратчайшего остова. Этазадача имеет множество практических интерпретаций. Например, пусть задано множествоаэродромов и нужно определить минимальный (по сумме расстояний) набор авиарейсов,который позволил бы перелететь с любого аэродрома на любой другой. Решением этойзадачи будет кратчайший остов полного графа расстояний между аэродромами.ЗАМЕЧАНИЕСуществует множество различных способов найти какой-то остов графа.

Например, алгоритм поиска в глубину строит остов (по рёбрам возврата). Множество кратчайших путейиз заданной вершины ко всем остальным также образует остов. Однако этот остов можетне быть кратчайшим.Пример На рис. 9.17 показаны диаграммы (слева направо) графа, дерева кратчайших путей из вершины 1 с суммарным весом 5 и два кратчайших остова этогографа.1Д ж о з е ф Бернард Краскал (р. 1928).328Глава 9. ДеревьяРис. 9 . 1 7 . Граф, дерево кратчайших путей и два кратчайших остова9.5.2. Схема алгоритма построения кратчайшего остоваРассмотрим следующую схему алгоритма построения кратчайшего остова. ПустьТ — множество непересекающихся деревьев, являющихся подграфами графа G.Вначале Т состоит из отдельных вершин графа G, в конце Т содержит единственный элемент — кратчайший остов графа G.Алгоритм 9.11 Построение кратчайшего остоваВход: граф G(V,E), заданный матрицей длин рёбер С.Выход: кратчайший остов Т.T: = Vwhile в Т больше одного элемента doвзять любое поддерево из Тнайти к нему ближайшеесоединить эти деревья в Тend whileОБОСНОВАНИЕВозьмём произвольное дерево Т* и выберем ближайшее к немудерево Tj в Т, Ti Г) Tj = 0 .

ПоложимАц:=mind(ti,tj).JtiCTiJjETj'Так как с самого начала все вершины G покрыты деревьями из Т, a Tj выбирается ближайшим к Т^ то Д ^ всегда реализуется на некотором ребре с длиной Cij.Далее индукцией по шагам алгоритма 9.11 покажем, что все рёбра, включенныев деревья из Т, принадлежат кратчайшему остову — SST1. Вначале выбранныхрёбер пет, поэтому их множество включается в кратчайший остов. Пусть теперьвсе рёбра, добавленные в Т, принадлежат SST.

Рассмотрим очередной шаг алгоритма. Пусть на этом шаге добавлено ребро (i,j), соединяющее поддерево Ti споддеревом Tj. Если (i,j) £ SST, то, поскольку SST является деревом и, сталобыть, связен, 3(i*,j*) G SST, соединяющее Ti с остальной частью SST. Тогдаудалим из SST ребро (i*,j*) и добавим ребро (i,j): SST': = SST- (г*, j*) + (г, j).Полученный подграф SST' является остовом, причём более коротким, чем SST,что противоречит выбору SST.•* SST — Shortest Spanning Tree — стандартное обозначение для кратчайшего остова.9.5. Кратчайший остов329ЗАМЕЧАНИЕРазличные способы выбора поддерева для наращивания па первом шаге тела цикла даютразличные конкретные варианты алгоритма построения SST.9.5.3.

Алгоритм КраскалаСледующий алгоритм, известный как алгоритм Краскала, находит кратчайшийостов в связном графе.Алгоритм 9.12 Алгоритм КраскалаВход: список Е рёбер графа G с длинами, упорядоченный в порядке возрастаниядлин.Выход: множество Т рёбер кратчайшего остова.Т: = 0к: = 1 { номер рассматриваемого ребра }for г from 1 to р - 1 dowhile z(T + E[k}) > 0 doк : = к + 1 { пропустить это ребро }end whileТ: = Т + Е[к] { добавить это ребро в SST }к: = к + 1 { и исключить его из рассмотрения }end forД Л Я обоснования алгоритма Краскала достаточно показать, чтовыдерживается схема алгоритма предыдущего подраздела. Действительно, поскольку в множестве рёбер Т нет циклов по построению, это множество сутьсовокупность рёбер некоторого множества деревьев.

Если множество Т содержитболее одного дерева, то существует ребро, при добавлении которого не возникаетцикла — оно соединяет два дерева в Т. Добавляемое ребро — кратчайшее возможное, зиачит, на нём реализуется расстояние между некоторыми деревьями вТ. По построению в конце работы алгоритма множество рёбер Т содержит р— 1элемент, а значит, является искомым остовом.•ОБОСНОВАНИЕЗАМЕЧАНИЕИсследование алгоритма Краскала дало толчок развитию теории жадных алгоритмов,см. 2.6.Семейство всех таких подмножеств множества рёбер графа, которыене содержат циклов, является матроидом.ТЕОРЕМА330Глава 9.

ДеревьяПустое множество рёбер пе содержит циклов и аксиома М\(см. 2.6.1) выполнена. Далее, если множество рёбер не содержит циклов, то любое его подмножество также не содержит циклов, и аксиома М2 выполнена. Пустьтеперь Е' С Е — произвольное множество рёбер, a G' — правильный подграфграфа G, образованный этими рёбрами. Очевидно, что любое максимальное несодержащее циклов подмножество множества Е' является объединением остовов компонент связности графа G' и по теореме 9.1.2 содержит p(G') - k(G')элементов.

Таким образом, все максимальные не содержащие циклов подмножества произвольного множества рёбер содержат одинаковое количество элементов, и по теореме 2.6.2 семейство ациклических подмножеств рёбер образуетматроид.•ДОКАЗАТЕЛЬСТВОТаким образом, алгоритм Краскала как жадный алгоритм (см. 2.6.4), применённый к матроиду, находит ациклическое подмножество рёбер наименьшего веса.По построению алгоритма (основной цикл до р — 1) это подмножество рёбердревочисленно, а значит, является кратчайшим остовом.9.5.4. Алгоритм ПримаВ алгоритме Прима 1 кратчайший остов порождается в процессе разрастания одного дерева, к которому присоединяются одиночные вершины. При этом длякаждой вершины v, кроме начальной, используются две пометки: a[v] — этоближайшая к v вершина, уже включённая в остов, a fl[v] — это длина ребра,соединяющего v с остовом.

Если вершину v ещё нельзя соединить с остовомодним ребром, то а[г>]: = 0, @[v]: = оо.Алгоритм 9.13 Алгоритм ПримаВход: граф G(V,E), заданный матрицей длин рёбер С.Выход: множество Т рёбер кратчайшего остова,select и е V { выбираем произвольную вершину }S:={u} { S — множество вершин, включённых в кратчайший остов }Т : — 0 { Т — множество рёбер, включённых в кратчайший остов }for v £ V - и doif v & Г (и) thena[v]: = u {и — ближайшая вершина остова }f3[v\: = С [и, v] { С[и, v] — длина соответствующего ребра }elsea[v]: = 0 { ближайшая вершина остова неизвестна }P[v]: = оо { и расстояние также неизвестно }end ifend forfor i from 1 to p - 1 do1Роберт Клей Прим (p. 1921).Комментарии331х : = оо { начальное значение для поиска ближайшей вершины }for V е V \ S doif j3[v] < х thenw: = v { нашли более близкую вершину }x:=(3[v] { и расстояние до неё }end ifend forS: = S + w { добавляем найденную вершину в остов }Т: = Т + (a[w],w) { добавляем найденное ребро в остов }for v е Г(ги) doif v S thenif 0[v] > C[v, w] thena[v}\ = w { изменяем ближайшую вершину остова }0[v]: = C[v, w] {и длину ведущего к ней ребра }end ifend ifend forend forАлгоритм Прима буквально следует схеме алгоритма 9.11.

В качестве первого из соединяемых деревьев используется одно и то же разрастающеесядерево Т, а в качестве второго — ближайшая одиночная вершина.•ОБОСНОВАНИЕОТСТУПЛЕНИЕЗадача о нахождении кратчайшего остова принадлежит к числу немногих задач теорииграфов, которые можно считать полностью решёнными. Между тем, если измеиить условия задачи, на первый взгляд даже незначительно, то она оказывается значительно болеетрудной. Рассмотрим следующую задачу.

Пусть задано множество городов на плоскости инужно определить минимальный (по сумме расстояний) набор железнодорожных линий,который позволил бы переехать из любого города в любой другой. Кратчайший остов полного графа расстояний между городами не будет являться решением этой (практически,очевидно, очень важной) задачи, известной как задача Штейнера. В задаче Штейнера допускается введение дополнительных вершин, называемых точками Штейнера. Нарис. 9.18 приведены, соответственно, диаграммы кратчайшего остова, наивного «решения» задачи Штейнера и правильного решения для случая, когда города расположены ввершинах квадрата. Задача Штейнера на плоскости хорошо изучена, в частности, известномного важных свойств точного решения.

Например, известно, что каждая точка Штейнераимеет степень 3 и отрезки в ней встречаются под углом 120°. Тем не менее до сих порнеизвестно достаточно эффективных алгоритмов решения данной задачи, и она остаётсяпредметом интенсивных исследований.КомментарииМатериал этой главы затрагивает вопросы, которые очень часто возникают впрактическом программировании. Поэтому различные сведения о деревьях можно найти не только в специальных учебниках по теории графов, но и в книгах по332Глава 9.

Характеристики

Тип файла
PDF-файл
Размер
6,94 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее