Sunteți pe pagina 1din 48

Geometrie computat inonal aI

Dorel Lucanu
Faculty of Computer Science Alexandru Ioan Cuza University, Ia si, Romania dlucanu@info.uaic.ro

PA 2013/2014

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

1 / 47

Outline

Introducere Motivat ie Cunoa sterea domeniului problemei Operat ii primitive Inf a sur atoarea convex a Frontiera lui Jarvis (Jarviss March) Scanarea Graham Algoritm divide-et-impera Inf a sur atoarea convex a si Sortarea

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

2 / 47

Introducere

Plan

Introducere Motivat ie Cunoa sterea domeniului problemei Operat ii primitive Inf a sur atoarea convex a Frontiera lui Jarvis (Jarviss March) Scanarea Graham Algoritm divide-et-impera Inf a sur atoarea convex a si Sortarea

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

3 / 47

Introducere

Motivat ie

Plan

Introducere Motivat ie Cunoa sterea domeniului problemei Operat ii primitive Inf a sur atoarea convex a Frontiera lui Jarvis (Jarviss March) Scanarea Graham Algoritm divide-et-impera Inf a sur atoarea convex a si Sortarea

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

4 / 47

Introducere

Motivat ie

Ce este geometria computat ional a


Obiectele geometrice - punctele, liniile, poligoanele, etc. - constituie baza multor aplicat ii si conduc la multe probleme si algoritmi interesant i. Disciplina a fost numit a n jurul anului 1975, c and teza de doctorat a lui Shamos a atras atent ia multor cercet atori. In centrul acestei discipline st a o serie de tehnici de proiectare si de analiz a a algoritmilor. Ace sti algoritmi opereaz a cu sau sunt ghidat i de o serie de structuri de date caracteristice geomteriei computat ionale. Acestea includ aranjamente de obiecte geometrice, localiz ari, nf a suratoarea convex a, diagrame Voronoi, triangulariz ari, Scopul urm atoarelor dou a lect ii este de a face o scurt a introducere n algoritmica din acest domeniu. Putem vedea aceste lect ii ca un studiu de caz de algoritmic a specic a unui domeniu (Domain Specic Algorithms). Vom considera numai obiecte din geometria plan a.
D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 5 / 47

Introducere

Motivat ie

Aplicat ii

grac a (computer vision, reconstruirea de imagini) robotic a (mi scare n plan, vzizbilitate) proiectare aistat a de calculator (CAD) siteme informatice geograce (GIS) statistic a

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

6 / 47

Introducere

Cunoa sterea domeniului problemei

Plan

Introducere Motivat ie Cunoa sterea domeniului problemei Operat ii primitive Inf a sur atoarea convex a Frontiera lui Jarvis (Jarviss March) Scanarea Graham Algoritm divide-et-impera Inf a sur atoarea convex a si Sortarea

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

7 / 47

Introducere

Cunoa sterea domeniului problemei

Puncte
Un punct p poate reprezentat prin coordonate carteziene, p = (x , y ), sau coordonate polare, p = (, ).

y x

p=(x,y)

p=(!, ") "

Conversii (part ial):

(x , y ) ( x 2 + y 2 , atan(y /x )) (x = 0) (, ) ( cos(), sin())

Structura de date: p |-> {x |-> 4, y |-> 3} sau p |-> {rho |-> 5, theta |-> 0.643501109}
D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 8 / 47

Introducere

Cunoa sterea domeniului problemei

Segmente

Structura de date: perechi de puncte {A |-> {x |-> 1, y |-> 2} B |-> {x |-> 4, y |-> 3}} Accesarea coordonatelor: A.x A.y B.x B.y . . .

3 2 1 4

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

9 / 47

Introducere

Cunoa sterea domeniului problemei

Linii poligonale
Structura de date: lista liniare de puncte Pot : simple nchise/deschise

linie poligonala

linie poligonala simpla

linie poligonala inchisa

linie poligonala simpla inchisa

A = { x |-> 3 y |-> 5 }; B = { x |-> 2 y |-> 1 }; C = { x |-> 0 y |-> 0 }; L[0] = A; L[1] = B; L[2] = C;


D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 10 / 47

Introducere

Cunoa sterea domeniului problemei

Dreapta
O dreapt a este reprezentat a printr-o ecuatie liniar a: a x + b y + c = 0

Structura de date: dreapta 3x + 4y + 2 = 0 este reprezentat a de structura d |-> {a |-> 3 b |-> 4 c |-> 2} Dreapta care trece prin do a puncte distincte P si Q: d.a P.x + d.b P.y + d.c = 0 Se rezolv a sistemul: d.a Q.x + d.b Q.y + d.c = 0
D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 11 / 47

Introducere

Operat ii primitive

Plan

Introducere Motivat ie Cunoa sterea domeniului problemei Operat ii primitive Inf a sur atoarea convex a Frontiera lui Jarvis (Jarviss March) Scanarea Graham Algoritm divide-et-impera Inf a sur atoarea convex a si Sortarea

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

12 / 47

Introducere

Operat ii primitive

Pozit ionarea unui punt fat a de o dreapt a

Fie P un punct si d o dreapt a. Relativ la d , P se poate aa: ntr-un semiplan: d.a * P.x + d.b * P.y + c > 0 pe dreapt a: d.a * P.x + d.b * P.y + c = 0 pe cel alalt semiplan: d.a * P.x + d.b * P.y + c < 0 Pozit ionarea fat a de un segment AB: se determin a dreapta suport dac a se a a pe dreapt a, se veric a dac a este ntre A si B Se poate testa si n ordine invers a. Timp: O (1)

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

13 / 47

Introducere

Operat ii primitive

Intersect ia a dou a drepte (c and exist a)


a1 x + b1 y + c1 = 0 a2 x + b2 y + c2 = 0 a1 b1 dx = a2 b2 d = 0, drepte paralele d= c1 b1 c2 b2 dy = a1 c1 a2 c2

d = 0, sistemul are solutie unic a: x = d1 |-> {a |-> a 1 b |-> b 1 d2 |-> {a |-> a 2 b |-> b 2 d1.a d1.b d2.a d2.b Timp: O (1)
D. Lucanu (FII - UAIC)

dy dx , y= d d

c |-> c 1} c |-> c 2}

= d1.a d2.b d1.b d2.a

Geometrie computat inonal a

PA 2013/2014

14 / 47

Introducere

Operat ii primitive

Intersect ia a dou a segmente (c and exist a)

Solut ia 1: se determin a punctul P de intersect ie a dreptelor suport se veric a dac a P apart ine segmentelor

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

15 / 47

Introducere

Operat ii primitive

Orientarea a trei puncte (primitiva ccw)

CCW = Counter-Clock-Wise (sensul invers arcelor de ceasornic) A.x A.y 1 ccw(A, B, C) = B.x B.y 1 C.x C.y 1 ccw(A, B, C) > 0 : A, B, C formeaz a un ciclu n sens invers arcelor de ceasornic ccw(A, B, C) < 0 : A, B, C formeaz a un ciclu n sensul arcelor de ceasornic ccw(A, B, C) = 0 : A, B, C sunt coliniare Timp: O (1)

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

16 / 47

Introducere

Operat ii primitive

Localizarea unui punct fat a de un triunghi


C A P B

ccw(A, P, B), ccw(B, P, C) si ccw(C, P, A) au toate acela si semn.


C A P B

ccw(A, P, B), ccw(B, P, C) si ccw(C, P, A) NU au toate acela si semn. Timp: O (1)


D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 17 / 47

Introducere

Operat ii primitive

Unghiul format de trei puncte


C A ! B

- distant a dintre dou a puncte:


dist(P, Q) = (Q.x P.x) (Q.x P.x) + (Q.y P.y) (Q.y P.y)

- se aplic a teorema cosinusului a = dist(C, B); b = dist(C, A); c = dist(A,B); theta = acos((a*a + b*b - c*c)/ 2*a*b); Timp: O (1) (???)
D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 18 / 47

Introducere

Operat ii primitive

Localizarea unui punct fat a de o linie poligonal a simpl a nchis a


Theorem (Jordan) Orice curb a simpl a nchis a mparte planul n dou a regini distincte: interiorul liniei (m arginit a) si exteriorul (nem arginit a). Instant a: O linie poligonal a simpl a nchis aL si un punct P . Intrebare: Apart ine P interiorului lui L?

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

19 / 47

Introducere

Operat ii primitive

Localizarea unui punct fat a de o linie poligonal a simpl a nchis a


Theorem (Jordan) Orice curb a simpl a nchis a mparte planul n dou a regini distincte: interiorul liniei (m arginit a) si exteriorul (nem arginit a). Instant a: O linie poligonal a simpl a nchis aL si un punct P . Intrebare: Apart ine P interiorului lui L?

num ar de intesect ii impar interior,


P

num ar de intesect ii par exterior

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

19 / 47

Introducere

Operat ii primitive

Localizarea unui punct fat a de o linie poligonal a simpl a nchis a


Num aratul intersect iilor trebuie f acut cu atent ie deoarece sunt cazuri de except ie:
se numara o singura data nu se numara P nu se numara

Calculul unei intersect ii: O (1) Determinarea num arului de intersect ii: O (n), n num arul de segmente ale liniei L Exercit iu: scrierea algoritmului n limbajul Alk.
D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 20 / 47

Introducere

Operat ii primitive

Structura DCEL
Planar Straight Line Graph (PSLG)
P1 P2 F2 F1 P6 F6 P7 F5 P5 P8 F0 F4 P4 F3 P3

P0

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

21 / 47

Introducere

Operat ii primitive

Structura DCEL
P3 P2 F3 F4 P4

P0

G[i1] = { V1 |-> 2 V2 |-> 4 F1 |-> 3 F2 |-> 4 ... G[i2] = { V1 |-> 3 V2 |-> 2 F1 |-> 3 F2 |-> ... ... G[i3] = { V1 |-> 4 V2 |-> 0 F1 |-> ... F2 |-> 4

Ptr1 |-> i2 Ptr1 |-> ...

Ptr2 |-> i3 } Ptr2 |-> ... }

Ptr1 |-> ... Ptr2 |-> ... }

Obs. G[i1].V1=2, G[i1].V2 = 4, G[i1].F1 = 3, G[i1].F2 = 4 . . .


D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 22 / 47

Introducere

Operat ii primitive

Structura DCEL

DCEL = Double Connected Edge List ecare nod al structurii DCEL este memorat ntr-o component aa tabloului exist a o corespondent a 1-1 ntre muchiile PSLGului si nodurile listei V1 - primul v arf al muchiei, V2 al doilea v arf al muchiei F1 - fat a din st anga muchiei, F2 fat a din dreapta muchiei Ptr1 - adresa primului nod (muchie) nt alnit merg and n sensul CCW din V1, Ptr2 - adresa primului nod (muchie) nt alnit merg and n sensul CCW din V2 ( n ambele cazuri se pleac a din muchia curent a V1 V2)

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

23 / 47

Introducere

Operat ii primitive

Localizarea unui punct fat a de un PSLG

Input: Un PSLG G si un punct P . Output: Regiunea la care apart ine P .

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

24 / 47

Introducere

Operat ii primitive

Localizarea unui punct fat a de un PSLG

banda (slab)

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

25 / 47

Introducere

Operat ii primitive

Localizarea unui punct fat a de un PSLG


1

Preprocesare
1 2

sorteaz a benzile n ordine cresc atoare dup ay sorteaz a segmentele de pe o band a n ordine cresc atoare dup ax Observat ie: trapezele de pe o band a pot degenera si n triunghiuri caut a binar banda pe care apare P caut a binar trapezul la care part ine P pe banda g asit a la punctul anterior.

Procesare
1 2

Timp: preprocesare: O (n2 log n) (pot n2 segmente pe o band a n cazul cel mai nefavorabil - exemplu pe tabl a) procesare: O (log n) Preprocesarea se poate reduce la O (n2 ) printr-o tehnic a de sweep plane. Exercit iu: scrierea n limbajul Alk al algoritmului
D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 26 / 47

Inf a sur atoarea convex a

Plan

Introducere Motivat ie Cunoa sterea domeniului problemei Operat ii primitive Inf a sur atoarea convex a Frontiera lui Jarvis (Jarviss March) Scanarea Graham Algoritm divide-et-impera Inf a sur atoarea convex a si Sortarea

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

27 / 47

Inf a sur atoarea convex a

Denitia nf a sur atorii convexe


Denition O mult ime de puncte S din plan este convex a dac a pentru orice dou a puncte P , Q S , segmentul PQ este complet inclus n S . Denition Inf a sur atoarea convex a a unei mult imi de puncte S este cea maimic a mut ime convex a care include S . Theorem Inf a sur atoarea convex a a unei mult imi de puncte S este intersect ia tuturor mult imilor convexe care includ S. ACOP-CONV: Input: O mult ime nit a S de puncte din plan. Output: Inf a sur atoarea convex a a lui S , CH (S ).
D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 28 / 47

Inf a sur atoarea convex a

Inf a sur atoarea convex a: propriet a ti


Presupunem S nit a.
1 2 3

CH (S ) este conex a. CH (S ) este m arginit a. Dac aP si Q sunt dou a puncte din S astfel nc at toate celelalte puncte din S se g asesc de aceea si parte a dreptei ce trece prin P si Q , atunci segmentul PQ se a a pe frontiera lui CH (S ). Orice punct de frontiera lui CH (S ) se g ase ste pe un segment PQ cu P, Q S.

Theorem Dac a S este nit a, atunci CH (S ) este un poligon convex cu toate v arfurile apart in and la S.
1

O raz a care eman a dintr-un punct interior al unui poligon convex intersecteaz a poligonul o singur a dat a. V arfurile unui poligon convex apar n sortate dup a componenta unghiular aa coordonatelor polare calculate relativ la o origine care se a a n interiorul poligonului.
D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 29 / 47

Inf a sur atoarea convex a

Exemplu de mult ime S

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

30 / 47

Inf a sur atoarea convex a

CH (S )

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

31 / 47

Inf a sur atoarea convex a

Frontiera lui Jarvis (Jarviss March)

Plan

Introducere Motivat ie Cunoa sterea domeniului problemei Operat ii primitive Inf a sur atoarea convex a Frontiera lui Jarvis (Jarviss March) Scanarea Graham Algoritm divide-et-impera Inf a sur atoarea convex a si Sortarea

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

32 / 47

Inf a sur atoarea convex a

Frontiera lui Jarvis (Jarviss March)

Descriere
Cunoscut a si sub numele de gift wrapping method. Idee: Se m atur a planul cu o dreapt a d p an a atinge un punct P0 S . P0 se a a pe frontiera lui CH (S ). Se rote ste d , s a zicem c a n sensul CCW, p an a atinge al doilea punct P1 . P1 se a a pe frontiera lui CH (S ). Se rote ste dreapta P0 P1 , acela si sens, p an a atinge al treilea punct P2 . P2 se a a pe frontiera lui CH (S ). Se rote ste dreapta P1 P2 , acela si sens, p an a atinge al . . . In nal punctele atinse formeaz a frontiera lui CH (S ), care e un poligon convex. Observat ie cheie: la pasul i , unghiul Pi 1 Pi Pi +1 este cel mai mare pe care l poate forma segmentul Pi 1 Pi cu un alt punct din S .
D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 33 / 47

Inf a sur atoarea convex a

Frontiera lui Jarvis (Jarviss March)

Primitive
Prseupunem |S | = n. smallestY(S) - ntoarce punctul din S cu cel mai mic y ; dac a exist a mai multe, atunci cel mai din st anga. Timp: O (|S |). smallestSlope(S, P) - ntoarce punctul Q din S a. . PQ are cea mai mic a pant a n raport cu axa x . Timp: O (n) largestAngle(S, P, Q) - ntoarce punctul Q din S a. . PQR este cel mai mare. Timp: O (n)

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

34 / 47

Inf a sur atoarea convex a

Frontiera lui Jarvis (Jarviss March)

Algoritmul
@input: o multime S cu n puncte @output: un poligon convex reprezentand frontiera lui CH(S) CHJarvis(S, n) { P[0] = smallestY(S); P[1] = smmalestSlop(S, P[0]); i = 1; while (P[i] != P[0]) { P[i+1] = largestAngle(S, P[i-1], P[i]); i = i + 1; } return P; } Timp: O (n) + O (n) + O (n) O (n) = O (n2 ).
D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 35 / 47

Inf a sur atoarea convex a

Scanarea Graham

Plan

Introducere Motivat ie Cunoa sterea domeniului problemei Operat ii primitive Inf a sur atoarea convex a Frontiera lui Jarvis (Jarviss March) Scanarea Graham Algoritm divide-et-impera Inf a sur atoarea convex a si Sortarea

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

36 / 47

Inf a sur atoarea convex a

Scanarea Graham

Descriere

Se caut a un punct interior al lui CH (S ). Poate centrul de greutate al unui triunghi format de trei puncte din S . Se sorteaz a lexicograc dup a coordonatele polare (, ). Lista obt inut a este L. Fie P primul element din L. Dac a ccw(P, L.next(P), L.next(L.next(P)) < 0 (ciclu n sensul arcelor de ceasornic), atunci elimin a L.next(P) din L si continu a procesarea cu L.pred(P). Dac a ccw(P, L.next(P), L.next(L.next(P)) > 0 (ciclu n sensul contrar arcelor de ceasornic), atunci continu a procesarea cu L.next(P).

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

37 / 47

Inf a sur atoarea convex a

Scanarea Graham

Primitive
median(S,n) ntoarce centrul de greutate Q al lui S (Q.x si Q.y sunt mediile coordonatelor respective ale punctelor din S ). Timp: O (n). polarSorted(S, n, Q) - ntoarce lista liniar a cont in and elementele lui S sortate lexicograc dup a coordonatele polare (, ), calculate cu originea n Q . L[0] este cel mai din dreapta (y cel mai mare) si cel mai de jos (x cel mai mic) punct din S (astfel L[0] va pe frontiera lui CH (S )). Timp: O (n log n). Operat ii peste listele liniare: L.select(p) - ntoarce al p -lea element din lista L (Timp: O (1)) L.delete(p) - sterge al p -lea element din lista L (Timp: O (1)) L.size() - ntoarce lungimea listei L (Timp: O (1))

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

38 / 47

Inf a sur atoarea convex a

Scanarea Graham

Algoritmul
@input: o multime S cu n puncte @output: un poligon convex reprezentand frontiera lui CH(S) CHGraham(S, n) { Q = median(S, n); L = polarSorted(S, n, Q); p = 0; while (p < L.size(()) { m = L.size(); if (ccw(L.select(p), L.select((p+1)%m), L.select((p+2)%m) > 0) p = p+1; else { L.delete((p + 1) % m); p = (p - 1) % m; } } return L; }
D. Lucanu (FII - UAIC) Geometrie computat inonal a PA 2013/2014 39 / 47

Inf a sur atoarea convex a

Scanarea Graham

Analiza

Corectitudinea: (la tabla) Timp: O (n log n) dat de sortare. Scanarea se face n timpul O (n).

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

40 / 47

Inf a sur atoarea convex a

Algoritm divide-et-impera

Plan

Introducere Motivat ie Cunoa sterea domeniului problemei Operat ii primitive Inf a sur atoarea convex a Frontiera lui Jarvis (Jarviss March) Scanarea Graham Algoritm divide-et-impera Inf a sur atoarea convex a si Sortarea

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

41 / 47

Inf a sur atoarea convex a

Algoritm divide-et-impera

Paradigma divide-et-impera

procedure divideEtImpera(P, n, S) if (n n0) then rezolv a subproblema P prin tehnici elementare else mparte P in P1 , . . . , Pa de dimensiuni n1 , . . . , na divideEtImpera(P1 , n1 , S1 ) ... divideEtImpera(Pa , na , Sa ) combin a S1 , . . . , Sa pentru a obt ine S end

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

42 / 47

Inf a sur atoarea convex a

Algoritm divide-et-impera

Teorema de master

T (n) =

O (1)

, dac a n n0 n a n > n0 a T ( ) + O (nk ) , dac b

(1)

Teorem a Dac a n > n0 atunci: log a , dac a a > bk O (n b ) T (n) = O (nk logb n) , dac a a = bk O (nk ) , dac a a < bk

(2)

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

43 / 47

Inf a sur atoarea convex a

Algoritm divide-et-impera

Descriere
Ideea de baz a: CH (S1 S2 ) = CH (CH (S1 ) CH (S2 )) divizarea: partajeaz aS n S1 si S2 , cu n/2 si n n/2 puncte, respectiv apelurile recursive: L1 = CH(S1 ), L2 = CH(S2 ) asamblarea: interclaseaz a L1 si L2 :
1 2

determin aP n interiorul lui L1 dac a P nu este interior lui L2 : determin a v arfurile extreme din L2 ce pot v azute din P si elimin a din L2 v arfurile apropiate de P dintre cele dou a extreme (exclusiv) (exemplu pe tabl a); acum L1 si L2 sunt sortate dup a unghiul polar calculat cu originea n P; determin a CH (L1 L2 ) printr-o scanare Graham.

Timp: O (n log n) (a = 2, b = 2, k = 1 n teorema de master)

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

44 / 47

Inf a sur atoarea convex a

Inf a sur atoarea convex a si Sortarea

Plan

Introducere Motivat ie Cunoa sterea domeniului problemei Operat ii primitive Inf a sur atoarea convex a Frontiera lui Jarvis (Jarviss March) Scanarea Graham Algoritm divide-et-impera Inf a sur atoarea convex a si Sortarea

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

45 / 47

Inf a sur atoarea convex a

Inf a sur atoarea convex a si Sortarea

SORTARE ACOP-CONV

Teorem a SORTARE n ACOP-CONV. S = {x0 , . . . , xn }) Presupunem xi > 0, i = 1, . . . , n Se face transformarea: S S = {(x , x 2 ) | x S } Gracul lui y = x 2 este o parabol a. CH (S ) listeaz a punctele din S ordonate dup a coordonata x . Corollary ACOP-CONV are complexitatea timp n cazul cel mai nefavorabil (n log n).

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

46 / 47

Inf a sur atoarea convex a

Inf a sur atoarea convex a si Sortarea

ACOP-CONV SORTARE

Teorem a ACOP-CONV n SORTARE . Scanarea Graham.

D. Lucanu (FII - UAIC)

Geometrie computat inonal a

PA 2013/2014

47 / 47

S-ar putea să vă placă și