Геометрия (26-е мая 2025)
- Геометрия-1
- Две ближайшие точки за O(n) (рандомизированный инкрементальный).
- Локализация точки за [O(n), O(logn)].
- Разбиение планарного графа на грани (сортировка по углу и dfs). В контексте локализации точки.
- Биекция между задачами "выпуклая оболочка" и "пересечение полуплоскостей".
- Построение выпуклой оболочки за O(nlogk) и за O(n/k * sort(k)).
− Перерыв −
- Геометрия-2. DavidMount
- Выпуклые оболочки в больших размерностях и simplex. Пример на 2n точках, где граней 2n. Алгоритм проверки вершин: для каждой бахнем simplex.
- Выбрать k точек : диаметр выбранных точек минимален. Кстати, это задача с чемпионата мира.
- Минимальный покрывающий точки круг за O(n).
- Для каждой точки на плоскости найти ближайшую за O(n3/2), за O(nlogn).
- MST на плоскости за O(nlogn).
- Диаграма Вороного и триангуляция Делоне за O(n2).
- Диаграма Вороного и триангуляция Делоне за O(nlogn).
- Триангуляция Делоне строится за O(sort(n)), выпуклая оболочка за Ω(sort(n)).
- Сумма Минковского. Пример задачи "погода": дан вып-многоугольник-туча и вып-многоугольник-аэропорт, тучу сносит с постоянной скоростью, когда перестанут пересекаться? а найти min t(v), где v − направление?
− Перерыв −
- Геометрия и структуры данных
- Dynamic Convex Hull : строим верхнюю огибающую, дерево отрезков, для объединения нужна общая касательная, умеют за O(logn).
- Число точек в полуплоскости.
- Решение с предподсчётом за O(n2 log n) и O(log n) на запрос.
- Масштабирование решения: O(n3/2 log n) на предподсчёт, O(n1/2 logn) на запрос.
- Идея с квадродеревом: nlogС на предподсчёт, n0.7925 на запрос.
- Объединяем идеи: сверху квадродерево, на кусках размера m прекалк с персистентностью, меньшее число кусков нужно обсчитывать.
- Идея с выбором угла и 4 из 6 вместо 3 из 4.
- Motion Planning : провести робота (выпуклый k-угольник) через мир с многоугольными препятствиями (n, N).
- Видим граф (какая-то из k вершин робота совпадает с какой-то из N вершин препятствия)
- Применяем Минковского: N → N + nk; строим граф за O((N+nk)3).
- Строим граф быстрее: O((N+nk)*sort(N+nk))
- А как решать для невыпуклых? Триангуляция невыпуклых (n,N) → N треугольников
- А как решать быстрее? Разделяй и властвуй и merge многоугольников. youtube