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

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

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

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

Предложенный алгоритм выводит положительный ответ, если в множестве (~р;р;~1рььз . 1 = О, 1,..., п — Ц, где увеличение индексов выполняется по модулю и, не содержатся одновременно н левые, и правые повороты. В противном случае выводится отрицательный ответ. Покажите, что несмотря на то, что время работы этой процедуры выражается линейной функцией, она не всегда дает правильный ответ. Модифицируйте предложенный профессором метод, чтобы он всегда давал правильный ответ за линейное время. 33.1.

б Пусть задана точка ро = (хс, уо). Правым горпзонтеьзьным лучом (пя)п Ьопхоп!а! гау) из точки ро называется множество точек (р; = (х;, у;): х, > хо и у; = уо), т.е. множество точек, расположенных строго справа от точки ро, вместе с самой этой точкой. Покажите, как за время О(1) определить, пересекает ли данный правый горизонтальный луч из точки рс отрезок р1рз. Сведите эту задачу к другой, в которой определяется, пересекаются ли два отрезка. 33.1. 7 Один из способов определения, находится ли заданная точка рс во внутренней области простого, но не обязательного выпуклого многоугольника Р, заключается в следующем. Из точки рс проводится произвольный луч и определяется, сколько раз он пересекает границу многоугольника Р. Если количество пересечений нечетно и сама точка ро не лежит на границе многоугольника Р, то она лежит во внутренней его части. Покажите, как в течение времени 9(п) определить, находится ли точка ро во внутренней части и-угольника Р.

(Указаниес воспользуйтесь результатами упр. 33.1.6. Убедитесь в правильности этого алгоритма в том случае, когда луч пересекает границу многоугольника в его вершине и если луч перекрывается его стороной.) 33.1.8 Покажите, как за время ез(п) найти площадь простого, но не обязательно выпуклого п-угольника. (Определения, которые относятся к многоугольникам, можно найти в упр. 33.1.5.) /Оба Часть Л!. Избранные темы 33.2. Определение наличия пересекающихся отрезков В этом разделе представлен алгоритм для определения, пересекаются ли какие-нибудь два из отрезков некоторого множества. В этом алгоритме используется метод, известный под названием "выметание", который часто встречается в алгоритмах вычислительной геометрии. Кроме того, как показано в упражнениях, приведенных в конце этого раздела, с помощью данного алгоритма или его вариации можно решать и другие задачи вычислительной геометрии.

Время работы этого алгоритма равно О(п 1я и), где и — количество заданных отрезков. В нем лишь определяется, существуют пересечения или нет, но не выводятся данные обо всех этих пересечениях. (Согласно результатам упр. 33.2.1 для поиска всех пересечений в множестве, состоящем нз п отрезков, в наихудшем случае понадобится время ()(пз).) В методе вымелеииия (зееер)пй) по заданному множеству геометрических объектов проводится воображаемая вертикальная вымелеаюецая прямая (зюеер йпе), которая обычно движется слева направо. Измерение, вдоль которого двигается выметающая прямая (в данном случае это измерение я), трактуется как время. Выметание предоставляет способ упорядочения геометрических объектов, обычно путем размещения их параметров в динамической структуре данных, что позволяет воспользоваться взаимоотношениями между этими объектами. В приведенном в этом разделе алгоритме, устанавливаюшем наличие пересечений отрезков, рассматриваются все конечные точки отрезков в порядке их расположения слева направо, н для каждой новой конечной точки проверяется наличие пересечений.

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

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

Говорят, что они сравнимы (согпрагаЫе) в координате х, если вертикальная выметаюшая прямая с координатой х пересекает оба этих отрезка. Говорят также, что отрезок а1 расположен илд (аЬоче) отрезком аз в х (записываегся а1 ~, аз), если отрезки аз ГВ69 Глава 33. Вычислительная геометрия г г и (л) (о) Рис. Ззлй Упорядочение отрезков с помощью рюньпс вертикальных выметающих прямых.

(а) Здесь а «, с, а «ч Ь, Ь Мч с, а Ь«п с н Ь «с. Отрезок д не сравним ни с одним из показанных отрезков. (6) Когда отрезки е и 3 пересекаются, их порядок становится обратным: е «„3, но 3 «е. Для любой выметающей прямой (такой, как л), которая проходит по заштрихованной области, отрезки е и 3 являются последовательными при упорядочении отношением «,. и яз сравнимы в координате х и точка пересечения отрезка а) с выметающей прямой в координате х находится выше, чем точка пересечения отрезка яз с этой выметаюшей прямой, или если л) и яз пересекаются на выметаюшей прямой.

Например, в ситуации, проиллюстрированной на рис. 33.4,(а), выполняются соотношения а )р„с, а «) Ь, Ь «) с, а )р, с и Ь «„с. Отрезок д не сравним ни с каким другим отрезы)м. Для произвольной заданной координаты х отношение '"« " полностью упорядочивает (см. раздел Б.2) отрезки, пересекающие выметающую прямую в координате х. Иначе говоря, это отношение транзитивно, и если каждый из отрезков я) и яз пересекает выметающую прямую в х, то справедливо либо отношение л) «, язл либо отношение яз «я), либо они оба (если а) и яз пересекаются на выметающей прямой). (Отношение «, является также рефлексивным, но ни симметричным, ни антисиммстричным.) Однако общий порядок может отличаться для разных значений х по мере входа отрезков в число сравнимых и выхода из него.

Отрезок попадает в число сравнимых, когда выметающая прямая проходит его левую конечную точку, и выходит из него, когда выметаюшая прямая проходит его правую конечную точку. Что происходит, когда выметающая прямая проходит через точку пересечения двух отрезков? Как видно из рис. 33.4, (б), в общем упорядочении меняется порядок этих отрезков.

В показанной на рисунке ситуации выметаюшие прямые и и )о находятся соответственно слева и справа от точки пересечения отрезков е и 3, и справедливы соотношения е «„( и 3' «м е. В силу предположения о том, что никакие три отрезка не пересекаются в одной и той же точке, должна существовать некоторая вертикальная выметающая прямая х, для которой пересекающиеся отрезки е и ( явлнются последовательными (т.е. между ними нет других отрезков) в полном упорядочении отношением «,. Для любой выметающей прямой, проходящей через затененную область на рис. 33.4,(б), например для прямой л, отрезки е и ( являются последовательными в общем упорядочении. Перемещение выметаюшей прямой В выметающих алгоритмах обычно обрабатываются два набора данных. 1070 Часть Л!.

Избранные теми 1. Состояние относительно аыметаюи1ей нрамой (вччеер-йпе вШШв) описыва- ет соотношения между объектами, пересекаемыми выметающей прямой. 2. Таблица, нли расписание, точек-событий (ечепырошг зспейп)е) — это последовательность координат х, упорядоченных слева направо, в которой определяются точки останова выметающей прямой.

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

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

слева направо). (Если две или более точек ковертикальны (сочегг(са1), т.е, их координаты х совпадают, этот узел можно "разрубить", поместив все ковертикальные левые конечные точки перед ковертнкальными правыми конечными точками. Если в множестве ковертикальных левых точек есть несколько левых, первыми среди них будут те, которые имеют меньшее значение координаты у, и то же самое выполняется в множестве ковертикальных правых конечных точек.) Отрезок помещается в набор состояний относительно выметающей прямой, когда пересекается его левая конечная точка; этот отрезок удаляется из набора состояний относительно выметающей прямой, когда пересекается его правая конечная точка. Если два отрезка впервые становятся последовательными в полном упорядочении, выполняется проверка, пересекаются ли они.

Состояние относительно выметающей прямой является полностью упорядоченным множеством Т, в котором необходимо реализовать такие операции. 1мзнкт(Т, в): вставка отрезка в в Т. Рц1.ете(Т, в): удаление отрезка в из Т. Авочц(Т, в): возврат отрезка, находящегося непосредственно над отрезком в в Т. Ви.очч(Т, в): возврат отрезка, находящегося непосредственно пол отрезком в в Т. Возможна ситуация, когда отрезки в~ и вз находятся взаимно один над другим в упорядочении Т; такая ситуация может возникнуть, если в~ и вз пересекаются на выметающей прямой, для которой задается упорядочение Т.

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

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

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