Главная » Просмотр файлов » Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)

Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189), страница 240

Файл №1162189 Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)) 240 страницаТ. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189) страница 2402019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

По крайней мере три точки (ро, р1 и р ) никогда не снимаются со стека, поэтому всего выполняется не более т — 2 операций Рог. В каждой итерации цикла зеЫ1е выполняется одна операция Рог, следовательно, всего этих итераций не более т — 2. Так как проверка в строке !О занимает время 0(1), каждый вызов Рог требует времени 0(1), и т < и — 1, полное время, которое требуется для выполнения цикла ьеЫ)е, равно 0(и). Таким образом, время выполнения процедуры Оклнлм-Ясли составляет 0(и 1я и). Обход по Джарвису При построении выпуклой оболочки множества точек Я путем обхода по Джарвису (1аги!з'з шагсЬ) используется метод, известный как упаковка пакеава (расйаяе жгарршй) или упаковка подарка (я!й ьигарр!пя).

Время выполнения алгоритма равно 0(ий), где 6 — количество вершин СН(()). В том случае, когда 6 равно о(!я и), обход по Джарвису работает быстрее, чем сканирование по Грэхему. Интуитивно обход по Джарвису моделирует обертыванне плотного куска бумаги вокруг множества !ь7. Начнем с того, что прикрепим конец бумаги к самой низкой точке множества, т.е. к той же точке ро, с которой начинается сканирование по Грэхему.

Эта точка является вершиной выпуклой оболочки. Натянем бумагу вправо, чтобы она не провисала, после чего будем перемещать ее вверх до тех пор, пока она не коснется какой-либо точки. Эта точка также должна быть убвл Часть РИ Иэбропные тецм Лева» цепь, Права» цепь — — ь Левая цепь ' Правая цепь Рис. 333Х Обход по Джарвису. В качестве первой вершины выбирается иаиниэшвя точка ра Следующая вершина, рь имеет наименьший полярный угол по отношению к ро среди всех точек. Затем точка ра имеет наименьший полярный угол по отношению к рь Правая цепь идет вверх до самой верхней точки ра Затем выполняегса построение левой цепи путем поиска наименьших полярных углов относительно отрицательного направления оси к.

вершиной выпуклой оболочки. Сохраняя бумагу натянутой, продолжим наматывать ее на множество вершин, пока не вернемся к исходной точке ро. Если говорить более формально, то при обходе по Джарвису строится последовательность Н = (ро, рг,..., рь 1) вершин СНЯ). Начнем с точки ро. Как видно из рис. 33.9, следующая вершина выпуклой оболочки рг имеет наименьший полярный угол относительно точки ро. (При наличии совпадений выбирается точка, наиболее удаленная от точки ро.) Аналогично точка рз имеет наименьший полярный угол относительно точки рг и т.д.

По достижении самой высокой вершины, скажем, рь (совпадения разрешаются путем выбора самой удаленной из таких вершин), оказывается построенной (рис. 33.9) правая цепь (пйМ сйа(п) оболочки СН(О). Чтобы сконструировать левую цепь (!ей сЬаш), начнем с точки рь и выберем в качестве рь+1 точку с наименьшим полярным углом относительно точки рь, но относительно отрицательного направления оси х.

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

Преимущество конструирования отдельных цепей заключается в том, что исключается необходимость !085 Глава 33. Вычислитлллнал геачлнрил явно вычислять углы; достаточно сравнения углов методами, описанными в разделе 33.1. При надлежащей реализации время выполнения обхода по Джарвису равно 0(иЬ). Для каждой из й вершин оболочки СНЯ) выполняется поиск вершины с минимальным полярным углом. Каждое сравнение полярных углов выполняется за время 0(1), если использовать методы, описанные в разделе 33.1. Как показано в разделе 9.1, если каждая операция сравнения выполняется за время 0(1), то выбор минимального из и значений занимает время 0(и).

Таким образом, обход по Джарвису завершается за время 0(ии). Упражнения 33.3.3 Докажите, что в процедуре ОкАнлм-беям точки рг и р должны быть вершинами СН(Я). Рассмотрим модель вычислений, которая поддерживает сложение, сравнение и умножение и в которой существует нижняя граница времени сортировки и чисел, равная Й(и!и и). Докажите, что в такой модели П(и 1я и) — нижняя граница времени вычисления вершин выпуклой оболочки множества и точек в порядке их обхода. 33.3.3 Докажите, что в заданном множестве точек Я две самые удаленные одна от другой точки должны быть вершинами СН(Я). Для заданного многоугольника Р и точки о на его границе тенью (з!лаболч) точки о называется множество точек г, для которых отрезок дг полностью находится на границе или во внутренней области многоугольника Р.

Как показано на рис. 33.10, многоугольник Р является звездообразным (згаг-зЬаред), если в его внутренней области существует точка р, которая находится в тени любой точки, лежащей на границе зтого многоугольника. Множество всех таких точек называется ядран (кегле!) многоугольника Р. Пусть звездообразный и-угольник Р задан своими вершинами, перечисленными в порядке обхода против часовой стрелки.

Покажите, как построить СН(Р) за время 0(и). 33.3.5 В оперативной задаче о вмпуклой оболочке (оп-1ше сопчех4ш11 ргоЫеш) параметры каждой из и точек из заданного множества Я становятся известными по одной точке за раз. После получения сведений об очередной точке строится выпуклая оболочка тех точек, о которых стало известно к настоящему времени.

Очевидно, можно было бы применять сканирование по Грэхему к каждой из точек, затратив при зтом полное время, равное 0(и !я и). Покажите, как решить оперативную задачу о выпуклой оболочке за время 0(из). )ббб Часть Ий Избранные темы (6) (а) Рнс. 33дй. Определение звездообразного мноп)угольника, о котором идет речь в упр.

33.3зй (а) Звездообразный многоугольник. Отрезок, соединяюший точку р с любой нз приналдежашик границе многоугольника точек О, пересекает зту границу только в точке а (6) Многоугольник, не явлтогдийсл звездообразным. неявленная серым цветом левал область являетсв тенью точки а а выделенная правая область — тенью точки д'.

Поскольку зти области не перекрываютса, ядро явлаеюя пустым. ЗЗ.З.б * Покажите, как реализовать инкрементный метод построения выпуклой оболочки и точек таким образом, чтобы время его работы было равно 0(п 1к и). 33.4. Поиск пары блигкайших точек Теперь рассмотрим задачу о поиске в множестве ф состоящем из и > 2 точек, пары точек, ближайших одна к другой. Термин "ближайший*' относится к обычному евклидову расстоянию: расстояние между точками р) — — (хт, у)) 11 Рг = (хг Уг) Равно (х) — хг) + (У) — Уг) Лве точки множества Я могУт совпадать; в этом случае расстояние между ними равно нулю. Эта задача находит применение, например, в системах управления движением транспорта.

В системе управления воздушным или морским транспортом может понадобиться узнать, какие из двух транспортных средств находятся друг к другу ближе всего, чтобы предотвратить возможное столкновение между ними. В алгоритме, работающем "в лоб", просто перебираются все (") = тз(пг) пар точек. В данном разделе описывается решение этой задачи с помощью алгоритма разбиения ("разделяй и властвуй" ). Время решения этим методом определяется знакомым рекуррентным соотношением Т(п) = 2Т(п/2) + 0(п). Таким образом, время работы этого алгоритма равно 0(гг 1й и). Алгоритм декомпозиции В каждом рекурсивном вызове описываемого алгоритма в качестве входных данных используются подмножество Р С Я и массивы Х и У, в каждом из которых содержатся все точки входного подмножества Р.

Точки в массиве Х отсортированы в порядке возрастания их координаты х. Аналогично массив У отсортирован в порядке возрастания координаты у. Заметим, что достигнуть границы 0(п 1к и) не удастся, если сортировка будет выполняться в каждом рекурсивном 7007 Глава ЗЗ. Вычислитечьиал гевнетрил вызове; если бы мы поступали таким образом, то время работы такого метода определялось бы рекуррентным соотношением Т(п) = 2Т(п/2) + О(п 1к п), решение которого равно Т(п) = 0(п 1й~ и). (Это можно показать с помощью версии основного метода, описанной в упр. 4.6.2.) Немного позже станет понятно, как с помощью "предварительной сортировки" поддерживать свойство отсортированности, ие прибегая к процедуре сортировки в каждом рекурсивном вызове.

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

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

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