L 06 co_infasuratoarea convexa

Preview:

DESCRIPTION

Algoritmii de determinare a infasuratoarei convexe

Citation preview

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

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

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.

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ă

Pseudocod

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

Algoritmul Graham

p2

p1

p3

p2p0

p4

Pseudocod

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

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

Ssup

Sinf

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

Exemplu

  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ă.

Recommended