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

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

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

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

Как изменится ответ в упр. 33.2.2, если допускается наличие вертикальных отрезков? 33.3. Поиск выпуклой оболочки Выпуклой оболочкой (сопиех Ьц!1) множества точек Я (обозначаегся СН(Я)) называется наименьший выпуклый многоугольник Р, такой, что каждая точка из ь2 находится либо на границе многоугольника Р, либо в его внутренней области. (Точное определение выпуклого многоугольника можно найти в упр.

33.1.5.) Неявно предполагается, что все точки множества 1~ различны и что в нем имеется как минимум три не коллинеарные точки. Интуитивно можно представлять каждую точку множества Я в виде торчащего из доски гвоздя; тогда выпуклая оболочка будет иметь форму, полученную в результате наматывания на гвозди тугой резиновой нити.

Пример множества точек и их выпуклой оболочки приведен на рис. 33.6. В этом разделе будут представлены два алгоритма, позволяющие построить выпуклую оболочку множества, состоящего из и точек. Оба алгоритма выводят вершины выпуклой оболочки в порядке обхода против часовой стрелки. Время работы первого из них, известного как сканирование по Грэхему, равно 0(п )ли). Второй алгоритм, который называется обходом по Джарвису, выполняется за время 0(пл), где Ь вЂ” юличество вершин выпуклой оболочки. Как видно из рис. 33.6, каждая вершина СН(Я) — это точка множества Я. Это свойство используется в обоих алгоритмах. В них принимается решение о том, какие точки из множества Я выступают в роли вершин выпуклой оболочки, а какие следует отбросить.

Вычислить выпуклую оболочку за время 0(п 1к п) можно несколькими методами. И при сканировании по Грэхему, и при обходе по Джарвису использует- 7076 Часть РИ. Избранные тены Рз Р12 Ро Ряс. 33.6. Множество точек с2 = [ро, рз,..., рзз) н его вылунвев оболочка СН(Я). ся метод, который называется "вымегание по кругу". Вершины обрабатываются в порядке возрастания их полярных углов, юторые они образуют с некоторой базисной вершиной. В число других методов входят те, которые перечислены ниже. ° В инкрементнаи мезподе (1псгешепга( шебзод) точки сначала сортируются слева направо, в результате чего получается последовательность (рм рз,..., р„).

На з-м этапе выпуклая оболочка з — 1 крайних слева точек СН((ры рз,..., р, 1)) обновляется в соответствии с положением з'-й слева точки, формируя, таким образом, оболочку СН((рм рз,..., р,)). В упр. 33.3.б предлагается показать, как реализовать этот метод так, чтобы время его работы было равно 0(п !к п). В методе декомпозиции (бечЫе-аль(-сопс)цег шебзоб) множество п точек за время Н(п) разбивается на два подмножества, в одном из которых содержится (п/2) крайних слева точек, а во втором — 1п/2! крайних справа. Затем рекурсивно вычисляются выпуклые оболочки этих подмножеств, которые впоследствии объединяются с помощью одного остроумного метода за время 0(п).

Время работы этого метода описывается знакомым рекуррентным соотношением Т(п) = 2Т(п/2) + 0(п) „решение которого дает время работы 0(п !я п). Метод отсечения и поиска (рпзпе-алб-зеагсЬ шейзоб) подобен алгоритму, описанному в разделе 9.3, время работы которого в наихудшем случае ведет себя линейно.

В нем строится верхняя часть (или "верхняя цепь") выпуклой оболочки путем многократного отбрасывания фиксированной части оставшихся точек до тех пор, пока не останется толью верхняя цень выпуклой оболочки. Затем то же самое выполняется с нижней цепью. В асимптотическом пределе этот метод самый быстрый: если выпуклая оболочка содержит (з вершин, время его работы равно 0(п )я 7ь). Вычисление выпуклой оболочки множества точек — задача, интересная сама по себе. Кроме того, алгоритмы, предназначенные для решения некоторых других задач вычислительной геометрии„начинают работу с построения выпуклой оболочки.

Например, рассмотрим двумерную задачу о поиске пары самых дальних зпочек (Гаплезыра1г ргоЫеш): в заданном на плоскости множестве п точек требуется найти две, расстояние между которыми является максимальным. В упр. 33.3.3 предлагается доказать, что обе эти точки должны быть вершинами !077 Глава 33. Вычислительная геамеырия выпуклой оболочки. Хотя здесь мы и не станем доказывать это утверждение, пару самых дальних вершин выпуклого п-угольника можно найти в течение времени 0(п). Таким образом, путем построения выпуклой оболочки для и входных точек за время 0(п 18 п) и последующего поиска пары самых дальних точек среди вершин полученною в результате выпуклого многоугольника можно найти пару самых дальних точек из произвольного множества и точек за время 0(п!8 п). Сканирование по Грэхему В методе сканирования по Грэхему (бгаЬаш'з зсап) задача о выпуклой оболочке решается с помощью стека Я, сформированного из точек-кандидатов.

Все точки входного множества по одной Я заносятся в стек, а затем точки, не являющиеся вершинами СН(Я), со временем удаляются из него. По завершении работы алгоритма в стеке Я остаются только вершины оболочки СН(Я) в порядке их обхода против часовой стрелки. В качестве входных данных процедуры бкАнАМ-8сАы выступает множество точек О, где )Я! ) 3. В ней вызывается функция ТОВ(о), которая возвращает точку, находящуюся на вершине стека Я, не изменяя при этом его содержимое. Кроме того, используется также функция 1ч1вхт-То-Тор(Я), которая возвращает точку, расположенную в стеке Я на одну позицию ниже от верхней точки; стек Я при этом не изменяется.

Вскоре будет показано, что стек Я, возвращаемый процедурой ПкАнАМ-БсАн, содержит только вершины СН(Я), причем расположенные в порядке обхода против часовой стрелки, если просматривать их в стеке снизу вверх. глКАНАМ-ЯСАХ((е) 1 Пусть ро — точка 1ь7 с минимальной координатой у, или крайняя слева из таких точек при наличии совпадений 2 Пусть (рм рз,..., р ) — остальные точки Я, отсортированные в порядке возрастания полярного угла, измеряемого против часовой стрелки относительно ро (если полярные углы нескольких точек совпадают, то из множества удаляются все эти точки, кроме одной, самой дальней от точки ро) 3 Н' пь ( 2 4 ге1нгп "выпуклая оболочка пуста" 5 е1яе пусть о — пустой стек 6 Р!3зн(ро, Я) 7 Р17зн(Р„Я) 8 Р13зн(рз, Я) 9 Твг 1 = 3 1о т 10 эгЬИе угол, образованный точками 1ч1пхт-То-Тор(о), Тор(о) и р, не образует поворот влево Рог(Я) РГЗЗН(р,, о) ге1пгп Я Часть р)й ИзбРанные таз, Рю Рю' Р11 Рб Рз Рб Рв Рз .

'Рз РП Рб Р, Рб Рв Р! Р12 Р12 Рз Ро (ь) (6) Рю ° Р1о ° Р11 Рв Рз 'Рв ' Рз Р1! Рб Р) Рб Р! 2 ° Рз Рю' Рз Ро (б) Ро Р10 Р10 Рб Рб Рю Рз Р12 Рэ Ро Ов) Рис. 33.7. Выл Ро ЬЮОЛНЕЮ1Е ПРОЦЕ Ь! - Ы ДЛЯ (б) ып дуры Оилнлм-Бслм для нтераци рь рз,...,, нумерованных а порядке ом шаге, и цикла !ог а возрастания п приводят ктирные линии показ строках 9 — 12.

Пун Ро Р1 и Рз. (6)-(л) С тек Я после кикд олярного к снятию со ек со стека. В части з, показывают поло кикдой роты не влево, е рврзрб приводит к снятию к снятию со Гпааа 33. а Вычислиигльиая гсамсирия Р1о ' Ри Рб РБ Рэ Рэ Р12 Р)2 Ро Ро (и) Рэ Рэ Р(2 Рп' Ро (л) Ро (л) Рэ Ри Р12 (л) Рис. 33.7 (и еделие Ро роиелиенис).

(и) В в (и) анной на рнс 33 6 врицаомая проис)цдэой и и совпадиоп(ая с по- 1ОВО Часть П1. Избранные темы Работа процедуры Оклнлм-Бсл14 проиллюстрирована на рис.33.7. Выпуклая оболочка, содержащаяся на данный момент в стеке Я, на каждом этапе показана серым цветом. В строке 1 процедуры выбирается точка ро с минимальной координатой у; при наличии нескольких таких точек выбирается крайняя слева.

Поскольку в множестве Я отсутствуют точки, расположенные ниже точки ро, а все другие точки с такой же координатой у расположены справа от точки ро, точка рс должна быть вершиной оболочки СН(Я). В строке 2 остальные точки множества Я сортируются в порядке возрастания их полярных углов относительно точки рс. При этом используется тот же метод, что и в упр. 33.1.3, т.е. сравнение векторных произведений. Если полярные углы двух илн нескольких точек относительно точки ро совпадают, все такие точки, кроме самой удаленной от точки ро, являются выпуклыми комбинациями точки ро и самой удаленной от нее из числа таких точек, поэтому все они могут быть исключены из рассмотрения.

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

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

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