La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Envolvente convexa Parte 1: Algoritmos

Presentaciones similares


Presentación del tema: "Envolvente convexa Parte 1: Algoritmos"— Transcripción de la presentación:

1 Envolvente convexa Parte 1: Algoritmos
Tema 1 Envolvente convexa Parte 1: Algoritmos

2 Definiciones Un conjunto es convexo si el segmento uniendo cualquiera dos de sus puntos está contenido en él.

3 Definiciones Envolvente convexa de un conjunto: menor convexo que lo contiene. O, equivalentemente, la intersección de todos los convexos que contienen al conjunto.

4 Considere todos los conjuntos convexos que lo contienen y elija el menor de todos ellos.

5 O bien, calculando la intersección de todos ellos.

6 Pero, ningún ordenador puede manejar infinitos conjuntos....

7 Eso se resuelve con puntillas y una goma elástica

8 Observación 1: La envolvente convexa es un polígono convexo con vértices en puntos del conjunto.
Observación 2: Describir la secuencia en orden de los vértices es describir la envolvente. Observación 3: Selección ordenada de subconjuntos.

9 Definiciones Aplicaciones:
Lo interesante suele ocurrir dentro de la envolvente. Es más fácil (rápido) mover un convexo.

10 Algoritmos: Puntos extremos
Sea S un conjunto de n puntos. Punto extremo de S: no está contenido en ningún triángulo con vértices en puntos de S.

11 Algoritmos: Puntos extremos
Sea S un conjunto de n puntos. Punto extremo de S: no está contenido en ningún triángulo con vértices en puntos de S.

12 Algoritmos: Puntos extremos
Los puntos extremos son los vértices de la envolvente convexa. ¿Cuánto nos cuesta encontrar todos los puntos extremos?

13 Algoritmos: Puntos extremos
Para cada punto de S, comprobar si está dentro de algún triángulo con vértices puntos de S: SÍ: No es vértice de la envolvente. NO: Es vértice de la envolvente convexa. Para cada punto de S comprobar si está dentro de algún triángulo. n puntos, O(n3) triángulos, O(n4) operaciones.

14 Algoritmos: Puntos extremos
También podemos buscar las aristas extremas (unen dos puntos de S y dejan a todo el conjunto a un mismo lado de la recta que definen). Para cada par de puntos de S ver si la arista es extrema. O(n2) pares, O(n) por comprobación O(n3) operaciones.

15 Algoritmos: Puntos extremos
Inciso: ¿Cómo sabemos si un punto está dentro de un triángulo, o si un punto está a un lado u otro de una recta? Mediante un determinante

16 Algoritmos: Puntos extremos
Q ¿A qué lado de la recta PQ está R? A partir de sus coordenadas construimos el determinante p1 p2 1 |A|= q1 q2 1 r1 r2 1 P R Interpretación geométrica: Vamos de P a Q, y luego de Q a R. Si: |A|>0: Giro a la izquierda. |A|<0: Giro a la derecha.

17 Algoritmos: Puntos extremos
Q ¿M está dentro o fuera del triángulo? M Si al recorrer el triángulo (en el sentido de las agujas del reloj) hacemos 3 giros a la derecha, entonces M está en el interior. P R ¡Ojo! esto sólo vale para convexos .

18 Algoritmos: Quickhull
Punto Norte (mayor coordenada y) Este Oeste Sur

19 Algoritmos: Quickhull
Los puntos en el rectángulo definido por estos cuatro puntos no son vértices de la envolvente.

20 Algoritmos: Quickhull
Buscamos el punto más alejado a cada uno de los segmentos y lo incorporamos.

21 Algoritmos: Quickhull
Buscamos el punto más alejado a cada uno de los segmentos y lo incorporamos.

22 Algoritmos: Quickhull
Repetimos el proceso en cada nuevo segmento hasta completar la envolvente.

23 Algoritmos: Quickhull
En el peor de los casos necesitaremos O(n2) operaciones.

24 Algoritmos: Marcha de Jarvis
Buscamos el punto Sur y a partir de él giramos una semirrecta

25 Algoritmos: Marcha de Jarvis
Buscamos el punto Sur y a partir de él giramos una semirrecta hasta encontrar el siguiente punto de la envolvente.

26 Algoritmos: Marcha de Jarvis
Repetimos el proceso hasta volver al punto de partida.

27 Algoritmos: Marcha de Jarvis
Repetimos el proceso hasta volver al punto de partida.

28 Algoritmos: Marcha de Jarvis
Coste: Buscar el siguiente punto: O(n) Hay que repetirlo n veces en el peor de los casos. Número de operaciones: O(n2)

29 Algoritmos: Marcha de Jarvis
En realidad el tiempo de ejecución es: O(nh), siendo h el número de puntos de la envolvente. Es un algoritmo output sensitive.

30 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera.

31 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera.

32 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera Ordenamos los demás puntos angularmente con respecto a dicho punto.

33 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera Ordenamos los demás puntos angularmente con respecto a dicho punto:L 1 2 3 4 5 6 7 8 9 10 11 12 13

34 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 1 2 3 4 5 6 7 8 9 10 11 12 13

35 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F M 1 2 3 4 5 6 7 8 9 10 11 12 13 I F

36 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) M 1 2 3 4 5 6 7 8 9 10 11 12 13 I F

37 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) I 1 2 3 4 5 6 7 8 9 10 11 12 13 F M

38 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F I 2 F M 1 4 3 5 13 6 11 10 7 9 12 8

39 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F M 2 F I 1 4 3 5 13 6 11 10 7 9 12 8

40 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F I 2 M 1 4 3 F 5 13 6 11 10 7 9 12 8

41 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 I 1 4 3 M F 5 13 6 11 10 7 9 12 8

42 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 I M 5 13 6 11 F 10 7 9 12 8

43 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 I M 5 13 6 11 F 10 7 9 12 8

44 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 I 1 4 3 M 5 13 6 11 F 10 7 9 12 8

45 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 I 5 13 6 11 M 10 7 9 12 F 8

46 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 5 13 6 11 I F 10 7 9 12 M 8

47 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 5 13 6 11 M F 10 7 9 12 I 8

48 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 5 13 6 11 M F 10 7 9 12 I 8

49 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 5 13 6 11 I F 10 7 9 12 M 8

50 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 5 F 13 6 11 M 10 7 9 12 I 8

51 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 M 5 13 6 11 F I 10 7 9 12 8

52 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 M 5 13 6 11 F I 10 7 9 12 8

53 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 5 13 6 11 M F 10 7 9 12 I 8

54 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 5 13 6 11 M F 10 7 9 12 I 8

55 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 5 13 6 11 F I 10 7 9 12 M 8

56 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 F 5 13 6 11 M 10 7 9 12 I 8

57 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 1 4 3 F 5 13 6 11 M 10 7 9 12 I 8

58 Algoritmos: Scan de Graham
1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F 2 F 1 4 3 M 5 13 6 11 I 10 7 9 12 8

59 Algoritmos: Scan de Graham
Teorema: El Scan de Graham computa la envolvente convexa de n puntos en un tiempo óptimo O(n log n). 1.- Escogemos un punto cualquiera. 2.- Ordenamos los demás puntos angularmente con respecto a dicho punto:L 3.- A los tres primeros puntos les ponemos las etiquetas I M F 4.- Si el ángulo IMF es positivo I=siguiente(I) M=siguiente(M) F=siguiente(F) Si IMF es negativo: borramos M de L I=anterior(I) M=I F=F O(n log n) F 2 M 1 4 3 I O(n) 5 13 6 11 10 7 9 12 8

60 Algoritmos: Otros Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.

61 Algoritmos: Otros Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño.

62 Algoritmos: Otros Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño. En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos.

63 Algoritmos: Otros Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño. En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos.

64 Algoritmos: Otros Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño. En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos. Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.

65 Algoritmos: Otros Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño. En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos. Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.

66 Algoritmos: Otros Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño. En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos. Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.

67 Algoritmos: Otros Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño. En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos. Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.

68 Algoritmos: Otros Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño. En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos. Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original.

69 Algoritmos: Otros Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño. En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos. Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original. No es necesario que las envolventes sean disjuntas (conjuntos separados linealmente).

70 Algoritmos: Otros Divide y vencerás:
Dividimos el conjunto en dos subconjuntos de aproximadamente el mismo tamaño. En cada uno de ellos repetimos la división hasta llegar a un tener uno o dos puntos. Construimos las envolventes en cada subconjunto y vamos uniéndolas hasta hallar la del conjunto original. La unión de dos convexos requiere O(n), luego el algoritmo corre en tiempo O(n log n).

71 Algoritmos: Divide y vencerás
Unión de dos convexos disjuntos Tangente superior B A Tangente inferior

72 Algoritmos: Divide y vencerás
Unión de dos convexos disjuntos 2 Tangente superior 1 7 3 6 8 4 5 B A 5 10 4 3 2 1 6 9 7 8 Tangente inferior

73 Algoritmos: Divide y vencerás
Unión de dos convexos disjuntos TANGENTE INFERIOR 2 1 a=punto de A más a la dcha b=punto de B más a la izda 7 3 6 While T=ab no sea tangente a A y a B do { 8 4 5 While T=ab no sea tangente a A do a=a-1; (mód |A|) B A 5 b 10 4 a While T=ab no sea tangente a B do b=b+1; (mód |B|) 3 2 1 6 9 } 7 8

74 Algoritmos: Divide y vencerás
Unión de dos convexos disjuntos TANGENTE INFERIOR 2 1 a=punto de A más a la dcha b=punto de B más a la izda 7 3 6 While T=ab no sea tangente a A y a B do { 8 4 5 While T=ab no sea tangente a A do a=a-1; (mód |A|) B A 5 10 4 While T=ab no sea tangente a B do b=b+1; (mód |B|) 3 2 1 6 9 } 7 8

75 Algoritmos: Divide y vencerás
Unión de dos convexos disjuntos TANGENTE SUPERIOR 2 1 a=punto de A más a la dcha b=punto de B más a la izda 7 3 6 While T=ab no sea tangente a A y a B do { 8 4 5 While T=ab no sea tangente a A do a=a+1; (mód |A|) B A 5 10 4 While T=ab no sea tangente a B do b=b-1; (mód |B|) 3 2 1 6 9 } 7 8 Si los convexos no son disjuntos el algoritmo es ligeramente más complicado (ver libro de Preparata y Shamos)

76 Algoritmos: Otros Incremental: Añadimos los puntos uno a uno.
En cada paso comprobamos si el nuevo punto está en el interior de la envolvente: SÍ: Lo ignoramos. NO: Lo incorporamos a la envolvente.

77 Algoritmos: Otros Incremental: Añadimos los puntos uno a uno.
En cada paso comprobamos si el nuevo punto está en el interior de la envolvente: SÍ: Lo ignoramos. NO: Lo incorporamos a la envolvente.

78 Algoritmos: Otros Incremental: Añadimos los puntos uno a uno.
En cada paso comprobamos si el nuevo punto está en el interior de la envolvente: SÍ: Lo ignoramos. NO: Lo incorporamos a la envolvente.

79 Algoritmos: Otros Incremental: Añadimos los puntos uno a uno.
En cada paso comprobamos si el nuevo punto está en el interior de la envolvente: SÍ: Lo ignoramos. NO: Lo incorporamos a la envolvente. Al añadir un nuevo punto puede que tengamos que eliminar alguno de la envolvente.

80 Algoritmos: Otros Incremental: Añadimos los puntos uno a uno.
En cada paso comprobamos si el nuevo punto está en el interior de la envolvente: SÍ: Lo ignoramos. NO: Lo incorporamos a la envolvente. Al añadir un nuevo punto puede que tengamos que eliminar alguno de la envolvente.

81 Algoritmos: Otros Incremental:
Añadimos los puntos uno a uno. En cada paso comprobamos si el nuevo punto está en el interior de la envolvente: SÍ: Lo ignoramos. NO: Lo incorporamos a la envolvente. Al añadir un nuevo punto puede que tengamos que eliminar alguno de la envolvente. Cada inserción a lo bruto requiere O(n), por lo que serían necesarias O(n2) operaciones, pero puede mejorarse a O(log n), obteniendo O(n log n).

82 Algoritmos: Cota inferior
Construir la envolvente convexa de n puntos requiere, al menos, (n log n) operaciones, ya que es equivalente a ordenar n números. x -3 4 -1 5 3 (x,x2) (-3,9) (4,16) (-1,1) (5,25) (3,9) (-3,9) (-1,1) (3,9) (4,16) (5,25)

83 Algoritmos: Cota inferior
Construir la envolvente convexa de n puntos requiere, al menos, (n log n) operaciones, ya que es equivalente a ordenar n números. x -3 4 -1 5 3 (x,x2) (-3,9) (4,16) (-1,1) (5,25) (3,9) (-3,9) (-1,1) (3,9) (4,16) (5,25)


Descargar ppt "Envolvente convexa Parte 1: Algoritmos"

Presentaciones similares


Anuncios Google