14
Înfăşurătoarea convexă pentru sistemele de puncte în 2D. A realizat: Cîrlig Svetlana Gr:41IA Coordonator : lector superior Corlat Sergiu

L 06 co_infasuratoarea convexa

Embed Size (px)

DESCRIPTION

Algoritmii de determinare a infasuratoarei convexe

Citation preview

Page 1: L 06 co_infasuratoarea convexa

Înfăşurătoarea convexă pentru sistemele de puncte în 2D.

A realizat: Cîrlig SvetlanaGr:41IACoordonator : lector superior Corlat Sergiu

Page 2: L 06 co_infasuratoarea convexa

Definiţie

Pentru o mulţime S de puncte ale planului, înfăşurătoarea convexă este mulţimea de vârfuri ale poligonului convex cu cea mai mică arie, care conţine toate punctele mulţimii S. Înfăşurătoarea convexă poate fi modelată cu ajutorul unei benzi elastice, întinse în jurul mulţimii S. La eliberare, banda elastică va repeta conturul înfăşurătoarei convexePoligonul P - convex, dacă x1,x2 P, [x1,x2] P.

Page 3: L 06 co_infasuratoarea convexa

Algoritmul elementar

Fie mulţimea de punctedin plan S={p1,…,pN}.  Fiecare element pi al mulţimii, este descris prin coordonatele sale carteziene (xi, yi).O metodăintuitivă de determinarea a înfăşurătoarei convexe presupune eliminarea din mulţimea iniţială a tuturor punctelor ei interioare.

Pentru aceasta se generează toate triunghiurile posibile cu vârfuri în punctele din S. Pentru triunghiul curent se verifică toate punctele din S care se află în interiorul său şi se exclud din înfăşurătoarea convexă

Page 4: L 06 co_infasuratoarea convexa

Pseudocod

Page 5: L 06 co_infasuratoarea convexa

Algoritm auxiliar: poziţia punctului faţă de vector

Page 6: L 06 co_infasuratoarea convexa

Algoritmul Graham

Page 7: L 06 co_infasuratoarea convexa

p2

p1

p3

p2p0

p4

Page 8: L 06 co_infasuratoarea convexa

Pseudocod

Page 9: L 06 co_infasuratoarea convexa

Algoritmul optim (varianta Andrew)

La baza algoritmului Andrew stă următoarea observaţie: partea superioară (după vectorul pinf, pmax ) a înfăşurătoarei convexe este bombată (în sus) pentru oricare 3 puncte consecutive ale sale, cea inferioară – bobmbată în jos

Page 10: L 06 co_infasuratoarea convexa

Pas 1 Se determină două puncte de abscisă minimă (respectiv maximă).

Page 11: L 06 co_infasuratoarea convexa

Ssup

Sinf

Page 12: L 06 co_infasuratoarea convexa

p2

p1

p3

p2

p2

p1

p3p2

În partea superioară se exclud punctele situate în dreapta vectorului p1 p3

În partea inferioară se exclud punctele situate în stânga vectorului p1 p3

Page 13: L 06 co_infasuratoarea convexa

Exemplu

Page 14: L 06 co_infasuratoarea convexa

  Complexitatea algoritmului este  O(N log N) şi e determinată de complexitatea pasului 3 – sortarea punctelor după abscisa x.

Paşii 1, 2, 3, 4, 5 au o complexitate liniară. Aceeaşi complexitate o are şi pasul 6- la fiecare ,,moment” fie este eliminat  un punct, fie se realizează un pas înainte.

Numarul de operaţii pentru verificarea  poziţiei punctului  p2 în tripletul curent este mărginit de o constantă.