Ejemplos de Geometría Avanzada

Documentos relacionados
Introducción a la Geometría Computacional. Análisis de Algoritmos

1. Determine el valor de la constante k para que la recta kx + (3 k)y + 7 = 0 sea perpendicular a la recta x + 7y + 1 = 0

Guía de Estudio Algebra y Trigonometría Para Ciencias Agropecuarias

LA CIRCUNFERENCIA. La circunferencia es la sección producida por un plano perpendicular al eje.

La parábola es el lugar geométrico de los puntos del plano que equidistan de un punto fijo llamado foco y de una recta fija llamada directriz.

Formulación del problema de la ruta más corta en programación lineal

Parciales Matemática CBC Parciales Resueltos - Exapuni.

GEOMETRÍA. (x 1) 2 +(y 2) 2 =1. Razónalo. x y + z = 2. :3x 3z +1= 0 es doble de la distancia al plano π 2. : x + y 1= 0. Razónalo.

PROBLEMARIO DE GEOMETRIA ANALITICA EN EL PLANO.

GUÍA DE ESTUDIO PARA EL EXAMEN EXTRAORDINARIO DE GEOMETRÍA ANALÍTICA

ÁLGEBRA VECTORIAL Y MATRICES. Ciclo 02 de Circunferencia.

GUÍA DE EJERCICIOS GEOMETRÍA ANALÍTICA (CURVAS CÓNICAS)

Repaso de Geometría. Ahora formulamos el teorema:

ECUACIÓN DE LA RECTA. 6. Hallar la ecuación de la recta que pase por el punto A ( 1, 2) y que determina en el eje X un segmento de longitud 6.

Coordenadas de un punto

Distancia entre un punto y una recta

Bloque 2. Geometría. 4. Iniciación a las Cónicas

Algebra lineal y conjuntos convexos

CENTRO UNIVERSITARIO MONTEJO A.C. SECUNDARIA Temario Matemáticas 1

Geometría Analítica Agosto 2016

Geometría del plano y el espacio

MATEMÁTICAS 1º BACH. C. N. Y S. 25 de enero de 2010 Geometría y Logaritmos

Academia de Matemáticas T.M Geometría Analítica Página 1

Soluciones oficiales Clasificación Olimpiada Nacional Nivel Mayor

Actividad: Qué proporción del área terrestre de Puerto Rico está urbanizada?

Rectas y Cónicas. Sistema de Coordenadas Cartesianas. Guía de Ejercicios # Encuentre las coordenadas de los puntos mostrados en la figura.

Matemáticas III. Geometría analítica

FUNCIÓN. La Respuesta correcta es D

Tema 3. GEOMETRIA ANALITICA.

1 + r, y = y 1 + ry Si P es el punto medio del segmento P 1 P 2, entonces x = x 1 + x 2 2

Dibujo Técnico Sistema diédrico.- Cambios de plano, giros y ángulos. ÁNGULOS.

Lugar Geométrico. Se llama lugar geométrico a un conjunto de puntos que cumplen una determinada propiedad. Mediatriz

Geometría Computacional

Equilibrio y Movimiento de los objetos

ESCUELA PREPARATORIA OFICIAL NO.16 MATERÍA: GEOMETRÍA ANALITICA GUÍA DE ESTUDIO PARA LA ÚLTIMA OPORTUNIDAD DE ACREDITAR LA MATERÍA

Primaria Sexto Grado Matemáticas (con QuickTables)

GUIA DE ESTUDIO PARA EXAMEN EXTRAORDINARIO NOMBRE DEL ALUMNO: GRUPO: FECHA:

Fundación Uno. 2x La gráfica que se muestra en la figura siguiente corresponde a la función:

UNIDAD 6.- PROGRAMACIÓN LINEAL

Área (II). El círculo. (p. 171)

Definición y Clasificación de Polígonos. Definición

MÓDULO Nº 3. Nivelación. Matemática Módulo Nº3. Contenidos. Polígonos Circunferencia y Círculo Volúmenes

Seminario de problemas-eso. Curso Hoja 10

Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Matemáticas. Guía de Trabajo Geometría I

REPRESENTAR FIGURAS Y BUSCAR SIMILITUDES. DOS TRIÁNGULOS ESTÁN UNIDOS POR UN LADO COMPLETO

MATEMÁTICAS III CUADERNILLO DE ACTIVIDADES Y TAREAS. Bachillerato General, Modalidad Mixta

RESUMEN DE VARIOS CONCEPTOS BÁSICOS DE GEOMETRÍA

UNIDAD 2: ELEMENTOS GEOMÉTRICOS

Visualización y Realismo: Problemas Capítulo 2

Sesión del día 11 de Marzo del 2011 y tutoría del día 12 de Marzo del 2011

Precálculo 1 - Ejercicios de Práctica. 1. La pendiente de la línea (o recta) que pasa por los puntos P(2, -1) y Q(0, 3) es:

Módulo. Representación Simbólica y Angular del entorno REAN-03 CONALEP IBQA

RAZONAMIENTO GEOMÉTRICO

COLEGIO INTERNACIONAL SEK ALBORÁN. Middle Years Programme [PROGRAMA DE AÑOS INTERMEDIOS] CURSO ACADÉMICO

LA RECTA Y SUS ECUACIONES

POLÍGONOS

GUÍA NÚMERO 22 TRANSFORMACIONES ISOMÉTRICAS

MAXIMOS Y MINIMOS RELATIVOS

Cónicas y cuádricas. Circunferencia Elipse Parábola Hipérbola

RECTAS, PLANOS EN EL ESPACIO.

EJERCICIOS DE GEOMETRÍA

Volumen de Sólidos de Revolución

x-z = 0 x+y+2 = [2012] [EXT-B] Halla el punto simétrico del P(2,1,-5) respecto de la recta r definida por

Slide 1 / 174. Geometría 2D Parte 1: Relaciones Geométricas, Perímetro y Circunferencia

. B. Elementos básicos de geometría plana. Punto, recta y plano. 3er Tema 2º Curso. CEPA Carmen Conde Abellán Matemáticas II

Introducción La Circunferencia Parábola Elipse Hiperbola. Conicas. Hermes Pantoja Carhuavilca

CUERPOS GEOMÉTRICOS (CONCEPTOS BÁSICOS)

Colegio Internacional Torrequebrada. Departamento de Matemáticas

Respuestas ejercicios edición 2007 Sección 3.3: Transformación de coordenadas Ejercicio 3-1

IN Guía de Problemas Resueltos de Geometría de Programación Lineal v1.0

La Lección de hoy es sobre el Perímetro y la Circunferencia. El cuál es la expectativa para el aprendizaje del estudiante m.3.g.2

COLEGIO ALEXANDER DUL

Estadística Inferencial. Estadística Descriptiva

Guía de estudio Nº 3: Ejercicios propuestos sobre Lugares geométricos. Secciones cónicas

Las Funciones Trigonométricas. Sección 5.1 Angulos

Unidad 11. Figuras planas

Tema 7: Geometría Analítica. Rectas.

Diagrama de Voronoi. Ejemplo de problemas geométricos:

Universidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencias de la Computación

CUERPOS EN EL ESPACIO

PARABOLA Y ELIPSE. 1. La ecuación general una parábola es: x y 40 = 0. Poner la ecuación en la forma: (x h) 2 = 4p (y k).

CLASIFICACIÓN AFÍN DE CÓNICAS

Geometría Analítica / Cónicas

Tema 2. GEOMETRÍA ELEMENTAL Y ANALÍTICA.

TEMA 6: GEOMETRÍA PLANA

Polígonos regulares, el triángulo de Sierpinski y teselados

ELEMENTOS DE GEOMETRÍA

Un ángulo mide y otro Cuánto mide la suma de estos ángulos?

NIVEL : 1er. AÑO PROF. L. ALTIMIRAS R. CARRERA : GEOGRAFÍA AYUD. C. ESCOBEDO C. AÑO : 2009 GEOMETRÍA ANALÍTICA

Álgebra Lineal Ma1010

Algebra Geometry Glossary Spanish Algebra Geometry Glossary

GUIA DIDACTICA MATEMATICA 5to PARABOLA

Resolución Guía de Trabajo. Geometría Analítica.

Física: Rotación de un Cuerpo Rígido

Geometría del Espacio. Física Geográfica. Licenciatura de Humanidades. Febrero-Mayo,

UCV FACULTAD DE INGENIERIA CALCULO I 16/04/2010. Solución al primer examen parcial. x - x 3 1

Introducción a la geometría

R = son vértices de un triángulo.

Unidad 8 Áreas y Volúmenes

=ángulo dirigido, en sentido antihorario, del eje polar al segmento 0P

Transcripción:

Ejemplos de Geometría Avanzada Agustín Santiago Gutiérrez Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Training Camp Argentina 2017 Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 1 / 31

Contenidos 1 Introducción 2 Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Algoritmo con Sweep Line Implementación eficiente de la estructura de datos auxiliar 3 Sweep Circle Barrido lineal Barrido circular 4 Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Triángulo máximo 5 Rotating calipers Par de puntos más lejano Rotating calipers Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 2 / 31

He who despises Euclidean Geometry is like a man who, returning from foreign parts, disparages his home. H. G. Forder. Que nadie entre aquí si no sabe Geometría. Platón Las ecuaciones son sólo la parte aburrida de la matemática. Trato de ver las cosas en términos de geometría Stephen Hawking Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 3 / 31

Introducción Generalmente, los problemas de geometría de ACM requieren calcular alguna cantidad (por ej., una distancia, un área, etc) relacionada con elementos geométricos como puntos, líneas, círculos, etc. Para resolverlos, debemos poder ser capaces de: 1. Representar los objetos geométricos involucrados en el problema, para poder operar con ellos. 2. Desarrollar un algoritmo para buscar la respuesta deseada. En esta charla nos concentraremos totalmente en la segunda parte, y suponemos que ya somos capaces de llevar a cabo la primera. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 4 / 31

Introducción Como idea general, la técnica más básica para problemas geométricos es la de discretización de candidatos: Muchas veces se pide encontrar, por ejemplo, un punto del plano que cumpla alguna característica particular. Pero como el plano contiene infinitos puntos, no podemos probarlos todos. Casi siempre podemos identificar un subconjunto de candidatos, de manera que la respuesta buscada sí o sí sea alguno de ellos. En este caso, una solución posible consiste en explorar todos los candidatos y verificar lo que corresponda para cada uno. Es fácil pasar por alto estas ideas, y tratar de buscar una solución más complicada que encuentre la solución directamente si uno no está atento. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 5 / 31

Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Contenidos 1 Introducción 2 Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Algoritmo con Sweep Line Implementación eficiente de la estructura de datos auxiliar 3 Sweep Circle Barrido lineal Barrido circular 4 Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Triángulo máximo 5 Rotating calipers Par de puntos más lejano Rotating calipers Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 6 / 31

Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Compresión de coordenadas + Tabla aditiva Luego de comprimir coordenadas, el mundo es una matriz de 2N 2N Cada casilla tiene un peso, correspondiente a su área original Inicializamos v i,j = 0 i, j Para llenar por completo un rectángulo [x 1, x 2 ] [y 1, y 2 ], hacemos: v x1,y 1 +=1 v x1,y 2 -=1 v x2,y 1 -=1 v x2,y 2 +=1 Al final, computando el acumulado V i,j (ver clase de estructuras, tabla aditiva), V i,j resulta indicar la cantidad de rectángulos que contienen esa casilla. Complejidad: O(N 2 ) Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 7 / 31

Área de unión de rectángulos Algoritmo con Sweep Line Contenidos 1 Introducción 2 Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Algoritmo con Sweep Line Implementación eficiente de la estructura de datos auxiliar 3 Sweep Circle Barrido lineal Barrido circular 4 Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Triángulo máximo 5 Rotating calipers Par de puntos más lejano Rotating calipers Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 8 / 31

Área de unión de rectángulos Algoritmo con Sweep Line Algoritmo con Sweep Line Realizamos un barrido con una línea vertical, de izquierda a derecha. Cada rectángulo aporta dos eventos: es encontrado con su lado izquierdo, y es removido con su lado derecho. Mantendremos un multiconjunto de intervalos en y: cuando un lado izquierdo entra, se agrega al multiconjunto, y cuando un lado derecho se va, se saca. Cada vez que la línea avanza, barre un área total igual a x U, siendo U la longitud total de la unión de todos los intervalos en y. Será necesario comprimir coordenadas en y: Todas las coordenadas de los intervalos estarán entre 0 y N. Si podemos agregar intervalo, sacar intervalo, y consultar longitud de la unión en O(lg N), la complejidad final es O(N lg N) Todo queda reducido a un problema de estructuras de datos en una sola dimensión Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 9 / 31

Área de unión de rectángulos Implementación eficiente de la estructura de datos auxiliar Contenidos 1 Introducción 2 Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Algoritmo con Sweep Line Implementación eficiente de la estructura de datos auxiliar 3 Sweep Circle Barrido lineal Barrido circular 4 Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Triángulo máximo 5 Rotating calipers Par de puntos más lejano Rotating calipers Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 10 / 31

Área de unión de rectángulos Implementación eficiente de la estructura de datos auxiliar Implementación eficiente de la estructura de datos auxiliar La estructura de datos puede mantenerse en un Segment Tree con Lazy Propagation. La idea es que cada celda del arreglo almacena la cantidad de intervalos que lo contienen. Queremos hacer +1 o 1 a un rango (cuando un intervalo se va o viene) Cada celda tiene una longitud distinta, por la compresión de coordenadas Queremos saber la longitud total de celdas no nulas en un rango Guardaremos en los nodos del Segment Tree pares con dos valores: El mínimo valor en el rango La longitud total correspondiente a ese mínimo valor Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 11 / 31

Área de unión de rectángulos Implementación eficiente de la estructura de datos auxiliar Implementación eficiente de la estructura de datos auxiliar (cont) Observemos que estos pares se combinan de forma asociativa: (min 1, l 1 ) min 1 < min 2 (min 1, l 1 ) (min 2, l 2 ) = (min 2, l 2 ) min 1 > min 2 (min 1, l 1 + l 2 ) min 1 = min 2 A su vez, son fáciles de actualizar ante un update de rango: Si se suma k a todo el rango, se pasa de (m, l) a (m + k, l) Luego, se pueden mantener en un Segment Tree con Lazy Propagation. Para saber la longitud total de no nulos en un rango [i, j), se hace la consulta y al obtener (m, l): Si m > 0, no hay ninguna celda nula, y la longitud total no nula es T, la longitud total del rango (i, j) Si m = 0, hay celdas nulas, y la longitud total no nula es T l Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 12 / 31

Sweep Circle Barrido lineal Contenidos 1 Introducción 2 Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Algoritmo con Sweep Line Implementación eficiente de la estructura de datos auxiliar 3 Sweep Circle Barrido lineal Barrido circular 4 Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Triángulo máximo 5 Rotating calipers Par de puntos más lejano Rotating calipers Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 13 / 31

Sweep Circle Barrido lineal Qué es sweep circle? La idea de sweep circle es exactamente la misma que la de sweep line, pero en lugar de mover una recta imaginaria, movemos una circunferencia. La circunferencia puede moverse en linea recta (traslación) o alrededor de un centro fijo (rotación). Como un círculo es una figura acotada, el choque de la circunferencia con los puntos interesantes produce eventos de entrada y de salida en el círculo. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 14 / 31

Sweep Circle Barrido lineal Ejemplo: Ubicación ideal de un círculo en el eje Y Problema Dado un radio R > 0 entero, se debe indicar cuál es la máxima cantidad de puntos de la grilla de coordenadas enteras que es posible encerrar con un círculo de radio R, cuyo centro se encuentre posicionado sobre la recta x = 0 (el eje y). Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 15 / 31

Sweep Circle Barrido lineal Ejemplo: Ubicación ideal de un círculo en el eje Y Problema Dado un radio R > 0 entero, se debe indicar cuál es la máxima cantidad de puntos de la grilla de coordenadas enteras que es posible encerrar con un círculo de radio R, cuyo centro se encuentre posicionado sobre la recta x = 0 (el eje y). Observación: Alcanza con considerar las posiciones 0 y 1 Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 15 / 31

Sweep Circle Barrido lineal Planteo con sweep circle Comenzamos con el círculo ubicado en (0, 0), y todos los correspondientes puntos de la grilla adentro. Movemos el círculo en vertical, hasta llegar a (0, 1), procesando los eventos de entrada y salida de puntos. La máxima cantidad de puntos que tengamos dentro del círculo en cualquier momento, es el resultado. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 16 / 31

Sweep Circle Barrido lineal Planteo con sweep circle Comenzamos con el círculo ubicado en (0, 0), y todos los correspondientes puntos de la grilla adentro. Movemos el círculo en vertical, hasta llegar a (0, 1), procesando los eventos de entrada y salida de puntos. La máxima cantidad de puntos que tengamos dentro del círculo en cualquier momento, es el resultado. Notar que hay solamente O(R) eventos de entrada / salida, y además la cantidad de puntos totales dentro del círculo inicial puede computarse en O(R). Con todo esto y la técnica de barrido, el problema se resuelve en O(R lg R) Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 16 / 31

Sweep Circle Barrido circular Contenidos 1 Introducción 2 Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Algoritmo con Sweep Line Implementación eficiente de la estructura de datos auxiliar 3 Sweep Circle Barrido lineal Barrido circular 4 Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Triángulo máximo 5 Rotating calipers Par de puntos más lejano Rotating calipers Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 17 / 31

Sweep Circle Barrido circular Ejemplo: Radio óptimo para cubrir K puntos Problema Dado un conjunto de N puntos en el plano, encontrar el mínimo radio posible de un círculo que cubra al menos K de ellos. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 18 / 31

Sweep Circle Barrido circular Ejemplo: Radio óptimo para cubrir K puntos Problema Dado un conjunto de N puntos en el plano, encontrar el mínimo radio posible de un círculo que cubra al menos K de ellos. Observación 1: Podemos asumir que el círculo toca alguno de los puntos. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 18 / 31

Sweep Circle Barrido circular Ejemplo: Radio óptimo para cubrir K puntos Problema Dado un conjunto de N puntos en el plano, encontrar el mínimo radio posible de un círculo que cubra al menos K de ellos. Observación 1: Podemos asumir que el círculo toca alguno de los puntos. Observación 2: Podemos hacer búsqueda binaria en la respuesta. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 18 / 31

Sweep Circle Barrido circular Ejemplo: Radio óptimo para cubrir K puntos Problema Dado un conjunto de N puntos en el plano, encontrar el mínimo radio posible de un círculo que cubra al menos K de ellos. Observación 1: Podemos asumir que el círculo toca alguno de los puntos. Observación 2: Podemos hacer búsqueda binaria en la respuesta. Idea: Para verificar si un cierto radio R puede cubrir K puntos, probamos todos los valores posibles de un cierto punto que el círculo toca (por Obs 1). Más idea: Para cada punto, giramos el círculo a su alrededor. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 18 / 31

Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Contenidos 1 Introducción 2 Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Algoritmo con Sweep Line Implementación eficiente de la estructura de datos auxiliar 3 Sweep Circle Barrido lineal Barrido circular 4 Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Triángulo máximo 5 Rotating calipers Par de puntos más lejano Rotating calipers Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 19 / 31

Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Ancho de polígono Observación: El ancho se produce en dirección normal a algún lado. Esto da un algoritmo O(N 2 ) (para cada lado, buscar el punto más lejano). Podemos mejorar más? Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 20 / 31

Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Ancho de polígono Observación: El ancho se produce en dirección normal a algún lado. Esto da un algoritmo O(N 2 ) (para cada lado, buscar el punto más lejano). Podemos mejorar más? Sí! Fijado un lado l del polígono, la distancia f (x) de un vértice x a l es unimodal en x. O(N lg N) Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 20 / 31

Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Ancho de polígono Observación: El ancho se produce en dirección normal a algún lado. Esto da un algoritmo O(N 2 ) (para cada lado, buscar el punto más lejano). Podemos mejorar más? Sí! Fijado un lado l del polígono, la distancia f (x) de un vértice x a l es unimodal en x. O(N lg N) Incluso se puede mejorar a O(N), notando que el valor óptimo de x siempre avanza al avanzar el lado l (two-pointers). Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 20 / 31

Algoritmos sobre polígono convexo (típico post-chull) Triángulo máximo Contenidos 1 Introducción 2 Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Algoritmo con Sweep Line Implementación eficiente de la estructura de datos auxiliar 3 Sweep Circle Barrido lineal Barrido circular 4 Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Triángulo máximo 5 Rotating calipers Par de puntos más lejano Rotating calipers Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 21 / 31

Algoritmos sobre polígono convexo (típico post-chull) Triángulo máximo Triángulo máximo Solución fuerza bruta: O(N 3 ) Podemos mejorar? Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 22 / 31

Algoritmos sobre polígono convexo (típico post-chull) Triángulo máximo Triángulo máximo Solución fuerza bruta: O(N 3 ) Podemos mejorar? Sí! Fijados A, B, el área f (A, B, C) es unimodal en C. O(N 2 lg N) Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 22 / 31

Algoritmos sobre polígono convexo (típico post-chull) Triángulo máximo Triángulo máximo Solución fuerza bruta: O(N 3 ) Podemos mejorar? Sí! Fijados A, B, el área f (A, B, C) es unimodal en C. O(N 2 lg N) Incluso se puede mejorar a O(N 2 ), notando que el valor óptimo de C siempre avanza al avanzar B. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 22 / 31

Algoritmos sobre polígono convexo (típico post-chull) Referencia Triángulo máximo Solución O(N): (consiste en una especie de búsqueda local, rotando los 3 puntos) https://stackoverflow.com/questions/1621364/ how-to-find-largest-triangle-in-convex-hull-aside-from-brute-force-search Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 23 / 31

Rotating calipers Par de puntos más lejano Contenidos 1 Introducción 2 Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Algoritmo con Sweep Line Implementación eficiente de la estructura de datos auxiliar 3 Sweep Circle Barrido lineal Barrido circular 4 Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Triángulo máximo 5 Rotating calipers Par de puntos más lejano Rotating calipers Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 24 / 31

Rotating calipers Par de puntos más lejano Par de puntos más lejano Solución fuerza bruta: O(N 2 ). Se podrá mejorar? Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 25 / 31

Rotating calipers Par de puntos más lejano Par de puntos más lejano Solución fuerza bruta: O(N 2 ). Se podrá mejorar? Uno puede pensar en un algoritmo O(N lg N) como venimos haciendo, usando la convexidad. Para cada vértice v fijo, buscamos con búsqueda binaria o ternaria el vértice w a máxima distancia de v. Es d(v, w) unimodal en w, para un v fijo? Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 25 / 31

Rotating calipers Par de puntos más lejano Par de puntos más lejano Solución fuerza bruta: O(N 2 ). Se podrá mejorar? Uno puede pensar en un algoritmo O(N lg N) como venimos haciendo, usando la convexidad. Para cada vértice v fijo, buscamos con búsqueda binaria o ternaria el vértice w a máxima distancia de v. Es d(v, w) unimodal en w, para un v fijo? NO. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 25 / 31

Contraejemplo Rotating calipers Par de puntos más lejano Si fijamos v = 2, al mover w en sentido horario, f (v, w) sube hasta el nodo 0, luego baja hasta el nodo 5, luego vuelve a subir hasta el 4 y finalmente baja por última vez. Resumiendo: En un polígono convexo, las distancias de los vértices a un lado(recta) fijo forman una función unimodal En un polígono convexo, las distancias de los vértices a un vértice fijo NO forman una función unimodal Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 26 / 31

Rotating calipers Rotating calipers Contenidos 1 Introducción 2 Área de unión de rectángulos Compresión de coordenadas + Tabla aditiva Algoritmo con Sweep Line Implementación eficiente de la estructura de datos auxiliar 3 Sweep Circle Barrido lineal Barrido circular 4 Algoritmos sobre polígono convexo (típico post-chull) Ancho de polígono Triángulo máximo 5 Rotating calipers Par de puntos más lejano Rotating calipers Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 27 / 31

Rotating calipers Rotating calipers Rotating calipers Caliper en inglés es calibre. Esto es un calibre: Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 28 / 31

Rotating calipers Rotating calipers Rotating calipers (cont) La analogía surge de imaginar que vamos girando un calibre ajustado al polígono todo el tiempo. Nuestro calibre siempre toca dos vértices del polígono. Un par de vértices que son tocados al mismo tiempo para alguna rotación del calibre, se llama un par antipodal El método de rotating calipers consiste en simular eficientemente en O(N) este proceso de rotación, enumerando todos los pares antipodales Caso borde del recorrido: Si el polígono tiene dos lados paralelos, cuando el calibre se ajusta a ellos hay 4 pares de vértices antipodales, correspondientes a esos dos lados. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 29 / 31

Rotating calipers Rotating calipers Rotating calipers: Algoritmo En nuestro caso, giraremos en sentido horario De un lado, comenzamos con un vértice p de mínimo x, y en caso de empate el de mínimo y Del otro lado comenzamos con un vértice q de máximo x, y en caso de empate el de máximo y (p, q) es nuestro primer par antipodal. En cada paso consideramos los vértices siguientes a p y q en sentido horario, que son p n y q n De esos dos, elegimos avanzar por el que primero es tocado por los calibres, cambiando así a: (p n, q) si (p n p) (q n q) > 0 (p, q n ) si (p n p) (q n q) < 0 Si (p n p) (q n q) = 0, (p, p n ) y (q, q n ) son lados paralelos. Los procesamos y avanzamos a (p n, q n ) Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 30 / 31

Rotating calipers Rotating calipers Aplicación al problema original Se puede observar que la distancia máxima entre vértices se alcanza necesariamente en un par antipodal. Con el método de rotating calipers, los enumeramos en O(N) y tomamos el par más lejano encontrado. Agustín Gutiérrez (UBA) Geometría Avanzada TC Arg 2017 31 / 31