Post on 05-Jul-2018
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 1/26
Geometrıa para ICPC
Training Camp Argentina 2013
Fidel I. Schaposnik (UNLP) - fidel.s@gmail.com19 de julio de 2013
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 2/26
Contenidos
IntroduccionRepresentacion de objetos fundamentales
Puntos y vectoresLıneas y segmentos
Problemas lineales en geometrıa computacionalEcuaciones implıcitasInterseccion de planos en 3D
Tecnicas de barridoA Safe Bet November Rain
Problemas para practicar
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 3/26
Introduccion
¿En que consiste un problema de geometrıa computacional?
Generalmente, los problemas de geometrıa en el ICPC requierencalcular alguna cantidad (e.g. distancia, area, parametros ´ optimospara una conguracion determinada, etc) relacionada conelementos geometricos como puntos, lıneas, cırculos, y demas. Lasolucion de un problema de geometrıa involucra dos pasos:
1 Representar los objetos geometricos involucrados en elproblema, de modo de poder operar con ellos.
2 Desarrollar un algoritmo utilizando lo anterior para calcular la
respuesta buscada.
Para poder dedicarnos a la parte “interesante”, debemos primeroasegurarnos de que el primer punto no es un impedimento.
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 4/26
Introduccion (cont.)
A FAVOR: Podemos visualizar los algoritmos facilmente.EN CONTRA: Debemos evitar nuevos tipos de problemas (erroresnumericos, casos degenerados, c odigo mas largo, etc).
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 5/26
Introduccion (cont.)
A FAVOR: Podemos visualizar los algoritmos facilmente.EN CONTRA: Debemos evitar nuevos tipos de problemas (erroresnumericos, casos degenerados, c odigo mas largo, etc).
Antes de empezar, algunas consideraciones generalesA lo largo de esta clase nos vamos a concentrar casiexclusivamente en problemas de geometrıa en 2D.
La practica y las buenas costumbres son todavıa masimportantes que en los problemas “convencionales”.
¡Los problemas de geometrıa muchas veces sirven paradistinguir a los buenos equipos de los excelentes!
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 6/26
Puntos y vectores
Un punto en el plano (o un vector desde el origen hasta dichopunto) se puede representar con un par ordenado de coordenadasen un sistema cartesiano:
P = ( x , y ) con x , y ∈R
Algunas operaciones entre vectoresLa suma y resta de vectores se realiza componente acomponente:
P = P 1 ± P 2 ⇐⇒ (x , y ) = ( x 1 ± x 2, y 1 ± y 2)
La longitud o norma de un vector es | P | =
x 2 + y 2.
La distancia euclıdea entre dos puntos P 1 y P 2 es | P 1 − P 2 |El producto escalar de dos vectores es un numero, y se denecomo
P 1 · P 2 := x 1x 2 + y 1y 2 = | P 1 || P 2 | cos θ
Observar que es la proyeccion de un vector sobre otro, y en
particular si θ = 90 ◦ el producto escalar se anula.Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 7/26
Puntos y vectores (cont.)
El producto vectorial de dos vectores es un vector en ladireccion normal al plano generado por ellos. En dosdimensiones nos puede interesar su unica componente no nula,
P 1 × P 2z
= x 1y 2 − x 2y 1 ≡ P 1 ∧ P 2
Observar que| P 1 × P 2 | = | P 1|| P 2 | sin θ,
es decir el area del paralelogramo formado por los vectores y
sus traslaciones paralelas.En particular si θ = 0 ◦ o θ = 180 ◦ el producto vectorial seanula.
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 8/26
Puntos y vectores (codigo.)
1 s t r u c t p t {2 doub le x , y ;
3 p t ( doub le x x = 0 . 0 , doub le yy=0.0) { x=xx ; y=yy ; }4 } ;56 p t o p e r a t o r +( c o n s t pt &p1 , c o n s t p t &p2) {7 r e t u r n p t ( p1 . x+p2 . x , p1 . y+p2 . y ) ; }89 p t o p e r a t o r − ( c o n s t pt &p1 , c o n s t p t &p2) {
10 r e t u r n pt ( p1 . x− p2 . x , p1 . y− p2 . y ) ; }1112 do ub l e o p e r a t o r ∗( c o n s t pt &p1 , c o n s t p t &p2) {13 r e t u r n p1 . x∗p2 . x + p1 . y∗p2 . y ; }1415 do ub l e o p e r a t o r ˆ ( c o n s t pt &p1 , c o n s t p t &p2) {16 r e t u r n p1 . x∗p2 . y − p1 . y∗p2 . x ; }1718 doub le norm( c o n s t p t &p) { r e t u r n s q r t ( p ∗p ) ; }1920 doub le d i s t ( c o n s t pt &p1 , c o n s t p t &p2) {21 r e t u r n norm(p1 − p2) ; }
Estructura y operaciones elemental e s co n p u nt os Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 9/26
Lıneas y segmentos
Una lınea o un segmento se pueden representar de varias formasdistintas:
Con dos puntos P 1 y P 2 sobre la lınea (los extremos delsegmento)
Con un punto P 0 sobre la lınea y un vector director V
Mediante una ecuacion implıcita ax + by + c = 0.Se puede pasar de una a otra representaci on trivialmente, y laeleccion de una u otra depende en denitiva del uso que se vaya adarle.
La representacion P 0, V se conoce como parametrica, porquenos permite recorrer todos los puntos de la lınea o segmento con
P (t ) = P 0 + t V cont ∈R lıneat ∈ [0, 1] segmento
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 10/26
Lıneas y segmentos (cont.)
1 s t r u c t l i n e {
2 doub le a , b , c ;3 l i n e ( doub le a a = 0 . 0 , doub le bb=0 .0 , doub le c c=0 .0 ) {4 a=aa ; b=bb ; c=cc ;5 }6 } ;78 doub le d i s t ( c o n s t pt &p , c o n s t l i n e &l ) {
9 r e t u r n ABS( l . a∗p . x+l . b∗p . y+l . c ) / s q r t (SQ( l . a )+SQ( l . b ) ) ; }1011 l i n e l i n e p p ( c o n s t pt &p1 , c o n s t p t &p2) {12 r e t u r n l i n e ( p2 . y− p1 . y , p1 . x− p2 . x , p2ˆp1 ) ; }1314 l i n e l i n e p e r p p ( c o n s t l i n e &l , c o n s t p t &p) {15 r e t u r n l i n e (− l . b , l . a , l . b∗p . x − l . a∗p . y ) ; }1617 l i n e m e d i a t r i z ( c o n s t pt &p1 , c o n s t p t &p2) {18 r e t u r n l i n e p e r p p ( l i n e p p ( p1 , p2 ) , ( p 1+p2 ) / 2 . 0 ) ; }
Ejemplo de uso de la representaci´ on implıcita
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 11/26
Lıneas y segmentos (cont.)
1 l i n e b i s e c t r i z ( c o n s t pt &p1 , c o n s t pt &pc , c o n s t p t &p2 ) {2 p t pc1 = p1 − pc , p c2 = p2 − pc ;
34 i f (ABS(pc1ˆpc2) < EPS) {5 i f ( pc1∗pc2 > ZERO) r e t u r n l i n e p p ( pc , p1 ) ;6 e l s e r e t u r n l i n e p e r p p ( l i n e p p ( p1 , p2 ) , pc ) ;7 }8 r e t u r n l i n e p p ( pc , pc+(pc1/norm( pc1 )+pc2/norm( pc2 ) ) /2 .0 ) ;9 }
1011 i n t i n t e r l l ( c o n s t l i n e &l 1 , c o n s t l i n e &l 2 , p t &p ) {12 doub le d e t = l 1 . a ∗ l 2 . b − l 1 . b∗ l 2 . a ;1314 i f (ABS( de t ) < EPS) {15 i f (ABS( l 1 . a∗ l 2 . c − l 1 . c∗ l2 . a ) < EPS) r e t u r n − 1;16 e l s e r e t u r n 0 ;17 }18 p . x = ( l 1 . b∗ l 2 . c − l 2 . b∗ l 1 . c ) / de t ;19 p . y = ( l 2 . a∗ l 1 . c − l 1 . a∗ l 2 . c ) / de t ;20 r e t u r n 1 ;21 }
Ejemplo de uso de la representaci´ on i mp lı ci ta ( co nt .)Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 12/26
Problemas lineales en geometrıa computacional
A veces aparecen sistemas de ecuaciones en problemas de
geometrıa computacional: Joe’s Triangular Gardens (NA-GNY’08)pide hallar la elipse tangente a un triangulo en los puntos mediosde sus lados:
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 13/26
Problemas lineales en geometrıa computacional
A veces aparecen sistemas de ecuaciones en problemas de
geometrıa computacional: Joe’s Triangular Gardens (NA-GNY’08)pide hallar la elipse tangente a un triangulo en los puntos mediosde sus lados:
Una elipse queda denida por ax 2 + bxy + cy 2 + dx + ey + f = 0con b 2 − 4ac < 0, de modo que tenemos 5 parametros que denenla elipse (a, b , c , d , e y f , a menos de una normalizacion).
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 14/26
Problemas lineales en geometrıa computacional (cont.)
Si P mi = ( x mi , y mi ) con i = 1 , 2, 3 son los puntos medios de loslados del triangulo, tenemos 3 ecuaciones de interseccion
a(x mi )2 + b x mi y mi + c (y mi )2 + d x mi + e y mi + f = 0
y 2 ecuaciones de tangencia (derivando implıcitamente para dos
lados no verticales)
2a x mi + b (y mi + x mi y (x mi , y mi ))+2 c y mi y (x mi , y mi )+ d + ey (x mi , y mi ) = 0
Los valores de las derivadas son simplemente las pendientes de los
correspondientes lados del trıangulo: y (x mi , y mi ) = ∆ y
i ∆ x i .
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 15/26
Problemas lineales en geometrıa computacional (cont.)
Si P mi = ( x mi , y mi ) con i = 1 , 2, 3 son los puntos medios de loslados del triangulo, tenemos 3 ecuaciones de interseccion
a(x mi )2 + b x mi y mi + c (y mi )2 + d x mi + e y mi + f = 0
y 2 ecuaciones de tangencia (derivando implıcitamente para dos
lados no verticales)
2a x mi + b (y mi + x mi y (x mi , y mi ))+2 c y mi y (x mi , y mi )+ d + ey (x mi , y mi ) = 0
Los valores de las derivadas son simplemente las pendientes de los
correspondientes lados del trıangulo: y (x mi , y
mi ) =
∆ y i ∆ x i .
Si resolvemos el sistema de 5 ecuaciones con 5 inc´ognitas, lasolucion al problema esta practicamente dada.
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 16/26
Problemas lineales en geometrıa computacional (cont.)
Otro ejemplo: consideremos la interseccion de dos planos en tresdimensiones.
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 17/26
Problemas lineales en geometrıa computacional (cont.)
Otro ejemplo: consideremos la interseccion de dos planos en tresdimensiones.
Un plano se dene con un punto P 0 contenido en el plano y unvector N 0 ortogonal al mismo. Todos los otros puntos satisfacen
( P − P 0) · N 0 = 0
lo cual conduce a la ecuacion mas familiar
ax + by + cz + d = 0 para N 0 = ( a, b , c ) y d = − P 0 · N 0
En general, dos planos denidos por { P 1, N 1} y { P 2, N 2} seintersecan para dar una lınea. ¿C omo la hallamos?
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 18/26
Otros problemas lineales (cont.)
Usamos la representacion parametrica de la lınea, de modo quebuscamos un punto P sobre ella y un vector director V .
Training Camp Argentina 2013 Geometrıa para ICPC
bl l l ( )
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 19/26
Otros problemas lineales (cont.)
Usamos la representacion parametrica de la lınea, de modo quebuscamos un punto P sobre ella y un vector director V .
Nuestra lınea debe pertenecer a ambos planos, luego es ortogonala los vectores N 1 y N 2. Entonces
V = N 1 × N 2
Si V = 0, los planos son paralelos y no hay intersecci´on entre ellos.¿C omo hallamos P ?
Training Camp Argentina 2013 Geometrıa para ICPC
O bl li l ( )
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 20/26
Otros problemas lineales (cont.)
Usamos la representacion parametrica de la lınea, de modo quebuscamos un punto P sobre ella y un vector director V .
Nuestra lınea debe pertenecer a ambos planos, luego es ortogonala los vectores N 1 y N 2. Entonces
V = N 1 × N 2
Si V = 0, los planos son paralelos y no hay intersecci´on entre ellos.¿C omo hallamos P ?
Sea P el punto sobre la lınea que esta mas cerca de cierto puntojo y arbitrario (e.g. el origen). Entonces P = ( x , y , z ) minimiza
D 2 = x 2 + y 2 + z 2
mientras esta en ambos planos, i.e. satisfaciendo
P − P 1 · N 1 = 0 y P − P 2 · N 2 = 0
Training Camp Argentina 2013 Geometrıa para ICPC
O bl li l ( )
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 21/26
Otros problemas lineales (cont.)
Podemos hallar el punto P minimizando D 2 bajo estasrestricciones, usando multiplicadores de Lagrange. Denimos
f (x , y , z , µ 1, µ 2) = x 2+ y 2+ z 2+ µ1 P − P 1 · N 1+ µ2 P − P 2 · N 2
Luego debemos exigir∂ f
∂ x = 2x + µ1x N 1 = 0
∂ f
∂ y = 2y + µ1y N 1 = 0
∂ f
∂ z = 2z + µ1z N 1 = 0
∂ f ∂µ 1
= P − P 1 · N 1 = 0 ∂ f
∂µ 2= P − P 2 · N 2 = 0
Training Camp Argentina 2013 Geometrıa para ICPC
Ot bl li l ( t )
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 22/26
Otros problemas lineales (cont.)
Podemos hallar el punto P minimizando D 2 bajo estasrestricciones, usando multiplicadores de Lagrange. Denimos
f (x , y , z , µ 1, µ 2) = x 2+ y 2+ z 2+ µ1 P − P 1 · N 1+ µ2 P − P 2 · N 2
Luego debemos exigir∂ f
∂ x = 2x + µ1x N 1 = 0
∂ f
∂ y = 2y + µ1y N 1 = 0
∂ f
∂ z = 2z + µ1z N 1 = 0
∂ f ∂µ 1
= P − P 1 · N 1 = 0 ∂ f
∂µ 2= P − P 2 · N 2 = 0
O, en notacion matricial
2 0 0 x N 1 x N 20 2 0 y N 1 y N 20 0 2 z N 1 z N 2
x N 1 y N 1 z N 1 0 0x N 2 y N 2 z N 2 0 0
x y z
µ1µ2
=000
P 1 · N 1 P 2 · N 2
Training Camp Argentina 2013 Geometrıa para ICPC
T´ i d b id A Safe Bet
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 23/26
Tecnicas de barrido: A Safe Bet
Training Camp Argentina 2013 Geometrıa para ICPC
Tecnicas de barrido: November Rain
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 24/26
Tecnicas de barrido: November Rain
Training Camp Argentina 2013 Geometrıa para ICPC
Problemas para practicar
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 25/26
Problemas para practicar
In-circles Again - LA 4714Shortest Flight Path - LA 6035
Coverage - LA 4562
Malfatti Circles - LA 4642
Onion Layers - LA 3655
Deer-Proof Fence - LA 4450
Watering Plants - GCJ 2009, Round 2
High Mountains - SPOJ TAP2012H
Garden Fence - LA 5795
Training Camp Argentina 2013 Geometrıa para ICPC
8/16/2019 Geometria Para ICPC
http://slidepdf.com/reader/full/geometria-para-icpc 26/26
¡Gracias!
Training Camp Argentina 2013 Geometrıa para ICPC