Sunteți pe pagina 1din 6

Infasuratoare convexa

1. Preliminarii Problema determinrii (calculrii) nfurtorii convexe este una dintre problemele centrale ale geometriei computaionale. Ea apare att n cadrul unor aplicaii economice, financiare, arhitecturale, ct i n unele probleme analitice de geometrie. Noiunea de nfurtoare convex n plan este intuitiv simpl: pentru o mulime S de puncte ale planului, nfurtoarea convex este mulimea de vrfuri ale poligonului convex1 cu cea mai mic arie, care conine toate punctele mulimii S. nfurtoarea convex poate fi modelat cu ajutorul inei benzi elastice, ntinse n jurul mulimii S. La eliberare, banda elastic va repeta conturul nfurtorii convexe.

2. Algoritmi

Vor fi cercetai doi algoritmi de construire a nfurtorii convexe n plan. Primul algoritm permite o realizare extrem de simpl, dar cere efectuarea unui numr mare de operaii (complexitatea2 algoritmului este O(n4)). Cel de al doilea este un algoritm eficient, cu complexitatea O(n log n), dar cu o implementare ceva mai voluminoas (Algoritmul Graham). Algoritmul elementar. Algoritmul se bazeaz pe o dou afirmaii simple: a. nfurtoarea convex a unei mulimi de puncte S este format din punctele extreme ale mulimii S b. Un punct p al mulimii S nu este un punct extrem atunci i numai atunci, cnd exist cel puin un triunghi, format din punctele din S, astfel nct p s se afle n interiorul lui.

n baza acestor afirmaii, pseudocodul algoritmului capt forma: CS Pentru toi p1 S Pentru toi p2 S, p2 p 1 Pentru toi p 3 S, p 3 p 1, p 3 p 2 Pentru toi p 4 S, p 4 p 1, p 4 p 2, p 4 p 3 Dac p 4 p 1 p 2 p 3, atunci C C / p 4 Verificarea apartenenei punctului la triunghi poate fi realizat ntr-un numr constant de operaii.

Algoritmul Graham. Varianta Andrew.

Algoritmul se bazeaz pe urmtorul principiu: partea superioar (dup y) a nfurtorii convexe este bombat (n sus) pentru oricare 3 puncte consecutive ale sale, cea inferioar bobmbat (n jos). Pentru a realiza acest algoritm este suficient s: a. se determine dou puncte p1( pfin) din S cu abscisa minim (maxim). b. se determinne segmentul de dreapt, care le unete c. se separe S n Ssup i Sinf dup poziia punctelor fa de segmentul [p1, pfin]. Ssup punctele extreme i cele din stnga vectorului p1pfin, Sinf punctele extreme i cele din dreapta vectorului p1pfin. d. se sorteze Ssup, Sinf dup creterea abscisei.

e. se verifice toate tripletele consecutive pi, pi+1, pi+2 Ssup. Dac pi+1 se afl n stnga vectorului pipi+2 se va trece la tripletul pi+1, pi+2, pi+3. Dac pi+1 se afl n dreapta vectorului pipi+2 se va elimina pi+1 i se va cerceta tripletul pi, pi+2, pi+3. Dac la o parcurgere de la p1 la pfin nu se elimin nici un punct, cele rmase formeaz partea superioar a nfurtoarei convexe.

f. se verifice toate tripletele consecutive pi,pi+1, pi+2 Sinf Dac pi+1se afl n dreapta vectorului pipi+2 se va trece la tripletul pi pi+1,pi+2, pi+3. Dac pi+1 se afl n stnga vectorului pipi+2 se va elimina pi+1 i se va cerceta tripletul pi, pi+2, pi+3. Dac la o parcurgere de la p1 la pfin nu se elimin nici un punct, cele rmase formeaz partea inferioar a nfurtoarei convexe.
g. C Ssup Sinf ( = apartine )

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