Спецкурс «Геометрические алгоритмы (Computational geometry)»
Как построить выпуклую оболочку n точек на плоскости за O(n3)? А за O(n log n)? Как распрямить в плоскости без самопересечений складной метр? Как проложить кратчайший маршрут между двумя точками при наличии препятствий? Вот типичные задачи, которыми мы будем заниматься.
Программа курса
-
Поиск взаимных пересечений отрезков;
Элементы линейной алгебры: ориентация и знак определителя матрицы;
Алгоритмы построения выпуклой оболочки: метод обхода Грэхема;
метод заворачивания подарка (метод Джарвиса),
«разделяй и властвуй», «быстрая оболочка» и др.
Элементы комбинаторной геометрии: существование дигонали,
существование триангуляции, задача о картинной галерее.
Алгоритм триангуляции простого полигона. «Отрезание ушей».
Монотонные многоугольники. Разбиение простого многоугольника на монотонные.
Элементы топологии: теорема Борсука-Улама, дискретная теорема о
сэндвиче с ветчиной, теорема Шнирельмана о раскрашенной сфере.
Продвинутые современные вещи: укорачивающий кривую поток,
псевдотриангуляции,
распрямление
полигонального
шарнирного
механизма, алгоритм «игра в камушки».