Главная » Просмотр файлов » Алгоритмы - построение и анализ

Алгоритмы - построение и анализ (1021735), страница 144

Файл №1021735 Алгоритмы - построение и анализ (Алгоритмы - построение и анализ) 144 страницаАлгоритмы - построение и анализ (1021735) страница 1442017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Затем множество ребер Е разбивается на множества Еу И Еь, где Еу = ((о;, иу) Е Е: 1 ( )') и Еь = ((о;, оу) б Е: г' ) Я. (Предполагается, что граф С не содержит петель, так что каждое ребро принадлежит либо множеству Еу, либо множеству Еь.) Определим графы Су = (К Еу) и Сь = (К Еь). а) Докажите, что Су — ациклический граф с топологической сортировкой (оы сз,..., оу)), а Сь — ациклический граф с топологической сортировкой (и)) ),о)ч) ы..., о1), Предположим, что каждый проход Беллмана-Форда реализуется следующим образом. Сначала вершины обходятся в порядке сыоз,..., о)ь у и при этом ослабляется каждое ребро графа Еу, исходящее из посещаемой вершины.

Затем вершины обходятся в порядке с)ь ус)ч~ ы..., ип и при этом ослабляется каждое ребро графа Еь, исходящее из этой вершины. б) Докажите, что при такой схеме, если граф С не содержит циклов с отрицательным весом, достижимых из истока в, то после ПЦ/21 проходов по ребрам И [с) = б (в, с) для всех вершин п е У. в) Улучшает ли эта схема асимптотическое поведение времени работы алгоритма Беллмана-Форда? 24-2. Вложенные ящики Говорят, что д-мерный ящик с размерами (хм хз,..., хв) вкладывается (пез1з) в другой ящик с размерами (уы уз,..., Ув), если существует такая перестановка я индексов (1, 2,..., Н), что выполняются неравенства хл(1) < Уы хл(2) < Уз» х~г(н) < Ув. а) Докажите, что вложение обладает свойством транзитивности. б) Разработайте эффективный метод определения, вкладывается ли один Н-мерный ящик в другой.

в) Предположим, что задано множество, состоящее из и д-мерных ящиков (Вы Вз,..., В„). Разработайте эффективный алгоритм, позволяющий найти самую длинную последовательность ящиков (В,„ В;„..., В;,) такую, что для у = 1, 2,..., й — 1 ящик В;з вкладывается в ящик В;з+,. Выразите время работы этого алгоритма через и и Н. Глава 24. Кратчайшие пути из одной вершины 703 24-3. Арбитражные операции Арбитражные операции (агЬ11гаде) — это использование различий в текущем курсе валют для преобразования единицы валюты в большее количество единиц этой же валюты. Например, предположим, что за 1 американский доллар можно купить 46.4 индийских рупий, за одну индийскую рупию можно купить 2.5 японских иен, а за одну японскую иену— 0.0091 американских долларов.

В этом случае в результате ряда операций обмена торговец может начать с одного американского доллара и купить 46.4 х 2.5 х 0.0091 = 1.0556 американских долларов, получив таким образом доход в размере 5.56;4. Предположим, что даны п валют емсз,...,с„и таблица )1 размером и х и, содержащая обменные курсы, т.е.

за одну единицу валюты с; можно купить Л 1ю', Я единиц валюты с . а) Разработайте эффективный алгоритм, позволяющий определить, существует ли последовательность валют (с;„с;2,..., с;„), такая что В(гцкз] В(гз,1з] 'ВЬ-~ 1ь] В[тьт1]) 1. Проанализируйте время работы этого алгоритма. б) Разработайте эффективный алгоритм поиска такой последовательности, если она существует. Проанализируйте время работы этого алгоритма. 24-4. Алгоритм Габова для масштабирования кратчайших путей из одной вершины Алгоритм масштабирования (зса11пя) решает задачу, сначала рассматривая толью старший бит каждой соответствующей входной величины (такие как вес ребра).

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

Нам дан ориентированный граф С = ( г', Е), веса ребер в котором выражаются неотрицательными целыми величинами и. Введем величину И~ = шах(„„)ал (тс (и, о)). Наша цель — разработать алгоритм, время работы которого составляет О (Е 16 И"). Предполагается, что все вершины достижимы из истока. В алгоритме последовательно по одному обрабатываются биты, образующие бинарное представление весов ребер, начиная с самого старшего к самому младшему. В частности, пусть й = ~16(И'+ 1)] — количество битов в бинарном представлении величины И', и пусть ии (и, о) = Часть Ч1 Алгоритмы для работы с графами 704 = '(ю(и, и)/2" '~, где 1 = 1,2,..., й.

Другими словами, ю; (и, и) — "масштабированная" версия ю (и, и), полученная из г старших битов этой величины. (Таким образом, для всех ребер (и, и) Е Е юь (и, и) = ю (и, и).) Например, если 1с = 5 и ю (и, и) = 25 (бинарное представление которого имеет вид (11001)), то юз (и, и) = (110) = 6. Другой пример с lс = 5: если ю(и, и) = (00100) = 4, то юз (и, и) = (001) = 1. Определим величину Б; (и,и) — вес кратчайшего пути из вершины и в вершину и, вычисленный с помощью весовой функции ю;.

Таким образом, для всех вершин и, и е У бь (и, и) = б (и, и). Для заданного истока з в алгоритме масштабирования для всех вершин и е Ъ' сначала вычисляются веса кратчайших путей Б1 (з,и), затем для всех вершин вычисляются величины Бз (з, и) и т.д., пока для всех вершин и е Ъ" не будут вычислены величины бь (з, и). Предполагается, что (Е~ > )Ц вЂ” 1. Как вы увидите, вычисление величины б; на основании Б; 1 требует О (Е) времени, так что время работы всего алгоритма — О (йЕ) = О (Е 1я И'). а) Предположим, что для всех вершин и е У выполняется неравенство б(з,и) < ~Е~.

Покажите, что величину Б(з,и) для всех вершин можно вычислить в течение времени О (Е). б) Покажите, что величину Б1 (з,и) для всех вершин и е У можно вычислить в течение времени О (Е). Теперь сосредоточим внимание на вычислении величины б;, зная вели- чину Б; 1. в) Докажите, что при 4 = 2,3,..., й выполняется либо равенство ю; (и,и) = 2ю; 1(и,и), либо равенство ю;(и,и) = 2ю; 1(и,и)+1. Затем докажите, что для всех вершин иеУ справедливы неравенства 2Б; 1 (з, и) < б;(з, и) < 2б1 т (з, и) + )Ц вЂ” 1.

г) Определим для г = 2, 3,..., й и всех ребер (и, и) й Е величину ю; (и, и) = ю; (и, и) + 2Б; 1 (з,и) — 2б; 1 (з, и) . Докажите, что для г = 2,3,...,й и всех и,и е У значение ю;(и,е) представляет собой неотрицательное целое число. д) Теперь определим величину б; (з, и) как вес кратчайшего пути из истока з в вершину и, полученного с помощью весовой функции ю,.

Докажите, что для 4 = 2, 3,..., Й и всех вершин и е У выполняется равенство б; (з, и) = б; (з, и) + 2б; 1 (з, и) и что Б; (з, и) < (Е). Глава 24. Кратчайшие пути из одной вершины 705 е) Покажите, как вычислить величину б;(з,с) на основе величины б, 1 (з, о) для всех вершин о Е У в течение времени О (Е) и обоснуйте вывод о том, что вычислить б(з, ю) для всех вершин о Е У можно за время 0 (Е 1к 1У). 24-5. Алгоритм Карпа для поиска цикла с минимальным средним весом Пусть 0 = (У, Е) — ориентированный граф с весовой функцией ю: Е-+ В., и пусть и = Щ. Определим средний вес (шеап не(я1н) цикла с = (еы ез,..., еь), состоящего из ребер множества Е, как Пусть р' = ппп, р (с), где с охватывает все ориентированные циклы графа С.

Цикл с, для которого выполняется равенство р (с) = р', называется циклам с минимальным средним весам (ппшшшп шеап-тче(яМ сус1е). В этой задаче исследуется эффективный алгоритм вычисления величины И. Без потери общности предположим, что каждая вершина о Е У достижима из истока з Е У. Пусть б (з, о) — вес кратчайшего пути из истока з в вершину о, а бь (з, ю) — вес кратчайшего пути из истока з в вершину ю, содержащего ровно й ребер. Если такого пути не существует, то бь(з,о) = со.

а) Покажите, что если (з' = О, то граф С не содержит циклов с отрицательным весом, и б (з, ю) = гпшо<а<„з бь (з, о) для всех вершин ю Е У. б) Покажите, что если и' = О, то б„(з, ю) — бь (з, о) о<а< -т п — Й для всех вершин о Е У. (Указание: воспользуйтесь обоими свойствами из части а.) в) Пусть с — цикл с нулевым весом, а и и ю — две произвольные вершины в этом цикле. Предположим, что и" = О, и что вес пути из вершины и в вершину о вдоль цикла равен х.

Докажите, что б (з, о) = б (з, и) + х. (Указание: вес пути из вершины ю в вершину и вдоль цикла равен -х.) Часть Ч1. Алгоритмы для работы с графами 706 г) Покажите, что если д' = О, то в каждом цикле с минимальным средним весом существует вершина с такая, что б„(а, и) — б» (з, о) шах О<»< -1 П вЂ” Й (Указание: покажите, что кратчайший путь в каждую вершину, принадлежащую циклу с минимальным средним весом, можно расширить вдоль цикла к следующей вершине цикла.) д) Покажите, что если и' = О, то б„(е, о) — б» (е, о) ппп шах вет' 0(~»((ь-1 и — к е) Покажите, что если к весу каждого ребра графа С добавить константу т, то величина д' увеличится на т.

Покажите с помощью этого факта справедливость соотношения ояк 0(Мп — 1 и — Й ж) Разработайте алгоритм, позволяющий вычислить величину и* за время О (У Е). 24-6. Битонические кратчайшие пути Последовательность называется битоничеекой (Ьйоп1с), если она монотонно возрастает, а затем монотонно убывает, или если путем циклического сдвига ее можно привести к такому виду. Например, битоническими являются последовательности (1,4,6,8,3, — 2), (9,2, — 4, — 10, — 5) и (1, 2, 3, 4), но не (1, 3, 12, 4, 2, 10). (См. также главу 27 и задачу 15-1.) Предположим, что задан ориентированный граф С = (К Е) с весовой функцией ю: Е -+ В., и нужно найти кратчайшие пути из одной вершины в.

Имеется также дополнительная информация: для каждой вершины и 6 У веса ребер вдоль произвольного кратчайшего пути из истока е в вершину о образуют битоническую последовательность. Разработайте наиболее эффективный алгоритм, позволяющий решить эту задачу, и проанализируйте время его работы. Заключительные замечания Алгоритм Дейкстры (131)Юга) (75) появился в 1959 году, но в нем не содержалось никаких упоминаний по поводу очереди с приоритетами. Алгоритм Белл- мана-Форда основан на отдельных алгоритмах Беллмана (Ве!1тап) (351 и Форда Глава 24.

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

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

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

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