Sunteți pe pagina 1din 43

GEOMETRIE

COMPUTAIONAL
Suport de curs pentru studenii
Facultii de Informatic
2010
Conf.univ.dr. Constantin DOCHIOI
CAP.I INTRODUCERE
I.1 Scurt istoric
Disciplina de Geometrie computaional s!a constituit "n conte#tul
demersurilor de conceptuali$are %i de$voltare a %tiinei Informaticii.
&umeroase pro'leme privind folosirea te(nicii electronice de calcul au fost
sistemati$ate "n cartea fundamental a lui )nut( The Art of Computer
Programming tiprit "n 1*+, urmat- "n 1*+.- de cartea The Design and
Analysis of Computer Algorithms pu'licat de /rupul de matematicieni 0(o!
Hopcroft!llman.
1n aceste lucrri de 'a$ ale Informaticii s!a definit instrumentarul de
noiuni %i procedee de folosire a calculatorului.
1n conte#tul cutrii de al/oritme care s conduc la soluia pro'lemei
"ntr!un timp c2t mai scurt- cu un numr c2t mai mic de operatii s!au pus "n
eviden re$ultate remarca'ile "n domeniul /eometriei- sau mai de/ra' pe
calea formulrii "n lim'a3 /eometric- simul2nd o'iecte /eometrice.
0stfel de re$ultate au fost sistemati$ate %i de$voltate de ctre S(amos
"n te$a sa de doctorat din 1*+4.
Cercetrile "n aceast direcie au continuat cu intensitate cresc2nd
astfel c re$ultatele o'inute au constituit o'iectul crii Computational
Geometry pu'licate "n 1*54 de S(amos %i 6reparata. 6rin aceasta s!au pus
'a$ele disciplinei de Geometrie computaional care a cunoscut "n scurt
timp o de$voltare rapid- datorit aplicaiilor sale. 1n momentul de fa ea
constituie un instrument de 'a$ "n ela'orarea al/oritmilor.
I.2 Aplicaii ale Geometriei computaionale
Interesul pentru 7eometria computaional decur/e din aplicaiile
acesteia "n multe %i importante domenii actuale printre care8
!9o'otica
!6roiectarea asistat de calculator
!6relucrarea computeri$at ima/inilor
!Cripto/rafie
1n momentul de fa calculatorul nu mai poate s lipseasc "n
a'ordarea unor astfel de pro'leme %i unul din instrumentele de 'a$ care se
folosesc este 7eometria computaional.
&scut din conte#tul cercetrilor privind metodolo/ia folosirii
calculatoarelor aceast disciplin a devenit ea "ns%i un important instrument
pentru informaticieni.
6e de o parte principiile de proiectare %i anali$ a al/oritmilor "%i
/sesc o ilustrare adecvat "n pro'leme de /eometrie computaional.
6e de alt parte numeroase al/oritme care operea$ cu o'iecte
/eometrice se e#tind cu succes- prin analo/ie- la pro'leme din alte domenii-
oferind astfel soluii mai 'une "n /eneral "n ela'orarea al/oritmilor.
I.3 Oiectul !eometriei computaionale
7eometria computaional const "n studiul o'iectelor /eometrice
folosind tehnica electronic de calcul.
0portul specific oferit de calculator const "n posibilitatea de a
prelucra baze de date de volum foarte mare. Ca urmare pentru numeroase
pro'leme de /eometrie putem folosi- ca un prim pas metoda e#perimentrii.
:#perimentul se reali$ea$ cu mult mai u%or folosind calculatorul
astfel c putem dispune de re$ultatele o'inute pe un numr mare de ca$uri.
Din anali$a acestor re$ultate o'inem nu numai o "ncredere "n re/ularitatea
statistic a lor dar %i idei eseniale pentru a'stracti$are- pentru formularea
unor ipote$e- precum %i pentru tran%area lor pe calea raionamentului.
De%i acest instrument pentru studiul /eometriei nu este lipsit de
importan- remarcm totu%i c 7eometria computaional nu s!a nscut din
cerine interne ale /eometriei. O'iectul /eometriei computaionale s!a
conturat din pro'lemele puse de %tiina informaticii precum %i din
numeroasele aplicaii ale acesteia- pe care le!am menionat mai "nainte-
aplicaii "n care calculatorul este un instrument esenial.
Definirea o'iectului /eometriei computaionale se /se%te "n linii mari
"n cartea lui S(amos %i 6reparata din 1*54- menionat mai "nainte- dar
acesta a cunoscut o "nsemnat e#tindere %i diversificare.
De%i aplicaiile /eometriei computaionale implic /eometria "n spaiu
%i prin analo/ie %i "n spaiul cu mai multe dimensiuni- punctul de plecare "n
"nsu%irea acestei discipline "l constituie /eometria plan.
7eometria computaional plana este o'iectul acestui curs. 6rintre
o'iectele cu care operea$ menionm8 mulimi de puncte din plan- mulimi
de drepte sau de se/mente- cur'e plane- re/iuni din plan- /rafuri planare- etc.
6ro'lemele care se studia$ se /rupea$ "n clase de pro'leme al cror
numr este "n cre%tere- la fel %i comple#itatea corelrii lor. 6rintre acestea
enumerm8
!6ro'leme privind interseciile unei mulimi de se/mente
!1nf%urtoarea conve# a unei mulimi de puncte
!6ro'leme de pro#imitate
!6ro'leme privind diametrele unei mulimi
!6ro'leme privind /rafurile planare
!6ro'leme de trian/ulari$are
6entru pro'lemele studiate se consider mai multe al/oritme. De
o'icei nu este /reu s se ela'ore$e un al/oritm dac nu urmrim
minimali$area numrului de operaii. n astfel de al/oritm este denumit de
o'icei abordarea n for brut.
Se pune accentul pe ela'orarea mai multor al/oritme pentru o
pro'lem dat- ceea ce prile3uie%te anali$a avanta3elor unora sau altora "n
funcie de datele concrete ale pro'lemei.
6rincipiile evalurii comple#itii unui al/oritm precum %i a
ierar(i$rii lor corespun$toare sunt cele formulate "n cartea care a fost
menionat mai "nainte a /rupului de matematicieni 0(o!Hopcroft!llman-
principii care au fost ulterior de$voltate %i perfecionate.
CAP.II STRUCTURA DE ARBORE 2-3. APLICAII
Considerm o mulime ordonat %i ! o su'mulime finit a sa.
;ulimea ! este- fire%te- ordonat. De e#emplu ! poate fi o mulime finit
de numere reale. :a se poate "n/lo'a "ntr!o structur numit arbore "#$
constituit din elemente numite noduri plasate pe nivele succesive.
&odurile de pe nivelul cel mai de 3os sunt c(iar elementele mulimii
!- repre$entate "n fi/ur prin puncte plasate "n ordine cresctoare8 elementul
repre$entat de un punct este mai mic dec2t elementul repre$entat de un alt
punct plasat mai la dreapta.
0ceste noduri se /rupea$ c2te dou sau c2te trei "n noduri plasate pe
nivelul imediat superior. 6lasarea noilor noduri- de la st2n/a la dreapta-
relev relaia de ordine a lor. ;ai precis- dac un nod u se afl la st2n/a
nodului v aflat pe acela%i nivel atunci orice element din /rupul ce repre$int
nodul u este mai mic dec2t orice element din /rupul ce constituie nodul v.
<ot la fel- din nodurile de pe nivelul doi se formea$ nodurile de pe
nivelul trei- etc. 1n final se a3un/e la un nivel care are un sin/ur nod pe care!l
notm a.
Cele dou sau trei noduri care prin /ruparea lor definesc nodul u se
numesc descendenii nodului u. 6entru fiecare nod al /rupului nodul u se
nume%te nodul ascendent. &odul a este sin/urul nod care nu are ascendent.
=u2nd drept muc(ii se/mentele ce unesc fiecare nod cu ascendentul
su se o'ine un graf. Forma specific a acestui /raf "i confer numele de
arbore iar nodul a- sin/urul care nu are ascendent- se nume%te rdcina
arborelui.
a
!
;enionm "n plus c elementele lui !- nodurile plasate pe nivelul cel
mai de 3os nu au descendeni. 0ceste noduri le munim frunze.
TEOREM
Fie n numrul elementelor mulimii ! %i %&g>n? numrul nivelelor
ar'orelui construit- "n afar de nivelul care conine numai nodul a- rdcina
ar'orelui. Funcia g>n? satisface urmtoarele relaii8
g>n? @ >lo/
2
'(?.>lo/ n? A lo/ n @ >lo/$?. g>n?
DEMONSTRAIE
&umerotm de sus "n 3os nivelele ar'orelui- "ncep2nd de la $ero la %-
%i notm n
i
numrul nodurilor dispuse pe nivelul i. 0vem8
n
(
& '
" ) n
'
) $
"
"
) n
"
) $
"
"
$
) n
$
) $
$
***************
"
%
) n
%
) $
%
"n care n
%
& n- deci "
%
) n ) $
%
. =o/aritm2nd >"n 'a$a 10? aceast ultim
relaie se o'ine8 %*lo/" @ lo/ n @ %.lo/$ "n care % B g>n?. Se o'in deci
relaiile8
g>n? @ >lo/
2
10?.lo/ n
lo/ n @ >lo/ $?.g>n?
Noiuni "e comple#itatea calculului
Folosirea calculatorului pentru re$olvarea unei pro'leme presupune
ela'orarea unui al/oritm care prelucrea$ o 'a$ de date de volum n.
&umrul operaiilor elementare pe care le implic al/oritmul va fi- fire%te- o
funcie de n.
;ulte al/oritme folosesc o structur care or/ani$ea$ 'a$a de date.
0ceasta presupune de asemenea un numr de operaii. 1nre/istrarea "n
calculator presupune un anumit volum de memorie. 0t2t reali$area structurii
c2t %i "nre/istrarea acesteia sunt funcii de volumul n al 'a$ei de date.
1n acest conte#t s!a dovedit util o anumit clasificare %i ierar(i$are a
acestor funcii depin$2nd de varia'ila n. Fire%te- toate funciile cu care
lucrm sunt po$itive.
DEFINIIE
Spunem c funcia g>n? este de ordin cel mult f>n? dac e#ist un
numr po$itiv c astfel "nc2t g>n? @ c* f>n? pentru valori suficient de mari ale
numrului natural n. 0ceast relaie se scrie "n felul urmtor8
g>n? B +> f>n??
1n particular- dac f>n? Bn atunci spunem c g>n? este de ordin liniar.
Dac g>n? B +> f>n?? %i f>n? B +>g>n?? atunci spunem c funciile f>n? ,i
g>n? au acela,i ordin de mrime. 0ceast relaie se notea$ astfel8
g>n? B -> f>n??
EXEMPLE
I. Din teorema precedent re$ult c numrul % al nivelelor ar'orelui
2!, asociat unei mulimi ordonate de volum n este de acela%i ordin de
mrime cu lo/ n8
% & ->lo/ n?
II. &umrul g>n? al nodurilor ar'orelui 2!, este de ordin liniar. 1ntr!
adevr-
g>n? B n
%
. n
%#'
. n
%#"
.***.n
(
) n . n/" . n/0 .*** & "*n
adic g>n? B +>n?. 6e de alt parte evident c n ) g>n?- %i e u%or s constatm
c n & +>g>n??. 6rin urmare- g>n? B ->n?.
III. &umrul operaiilor cerute de alctuirea structurii de ar'ore 2!,
este tot de ordin liniar deoarece alctuirea unui nod presupune un numr
constant de operaii- acest numr nu depinde de n.
IC. Columul de memorie cerut de "nre/istrarea "n calculator a
structurii de ar'ore 2!, este tot de ordin liniar. 1ntr!adevr- fiecare nod
constituie un set de informaii al cror numr nu depinde de n.
Operaii asupra unui arore $%&
Folosind structura de ar'ore 2!, se pot ela'ora- pentru o clas de
pro'leme- al/oritme de comple#itate lo/ n.
1. Algorit!l "# $%!t&r#
6ro'lem8
Dat fiind un element 1 din mulimea ordonat care conine
submulimea ! >dotat cu structura de arbore "#$ ? s se stabileasc dac 1
se afl printre elementele mulimii ! sau nu*
9e$olvare8
Structura de ar'ore 2!, presupune c fiecare nod u al ar'orelui
repre$int un set de + informaii8
u&>asc>u?- d1>u?- d2>u?- d,>u?- m1>u?- m2>u?- m,>u??
"n care asc>u? este ascendentul lui u iar d1>u?- d2>u?- d,>u? sunt cei trei
descendeni ai nodului u.
&odul u & a >rdcina? nu are ascendent %i marcm acest lucru prin
sim'olul D8 asc>a? B D. =a fel se procedea$ "n ca$ul nodurilor care au
numai doi ascendeni. 1n plus- nodurile care sunt frun$e se caracteri$ea$
prin faptul c d1>u? B D- d2>u? B D- d,>u? B D.
O'servm c fiecare nod u este rdcina unui ar'ore care are drept
frun$e o su'mulime a mulime !. Dac nodurile u %i v se afl pe acela%i
nivel %i u se afl la st2n/a lui v atunci orice frun$ a lui u este mai mic
dec2t orice frun$ a lui v.
Cu aceast preci$are definim m1>u? cea mai mare dintre frun$ele
nodului d1>u?. 0nalo/ m2>u? %i m,>u?. Dac u nu are al treilea descendent
atunci marcm acest lucru prin m,>u?B D. 0nalo/ "n ca$ul frun$elor.
Algorit!l C&!t'M' #(.
Se iniiali$ea$ u & a.
>1?. Dac d1>u? E D >adic u nu este frun$? atunci8
Dac 1 ) m1>u? se redefine%te u & d1>u? %i se reia >1?.
Dac m1>u? F 1 ) m2>u? se redefine%te u & d2>u? %i se reia >1?.
Dac d,>u? B D %i m2>u? F 1 atunci
! 1
. S<O6.
Dac d,>u? E D %i m2>u? F u ) m,>u? se redefine%te u & d,>u? %i se
reia >1?.
Dac d,>u? E D %i m,>u? F u atunci
! 1
. S<O6
>2?. Dac d1>u? B D >adic u este frun$? atunci
! 1
sau
! 1
dup cum 1
& u sau 1 2 u. S<O6.
Co)l#*it&t#& &lgorit!l!i C&!t'M' #(
O'servm c al/oritmul se poate "nc(eia "n cadrul primei instruciuni
numai pentru u & a %i anume "n ca$ul c2nd 1 este strict mai mare dec2t cel
mai mare element m al mulimii !.
Dac 1 ) m atunci se repeta prima instruciune- de fiecare dat nodul u
co'or2nd cu o treapt- p2n c2nd devine frun$ %i atunci se aplic
instruciunea >2?.
Deci instruciunea >1? se aplic %i ea o sin/ur dat dac 1 3 m. Dac
1 ) m atunci se aplic e#act de at2tea ori c2te nivele are ar'orele iar numrul
acestora este de ordinul lo/ n.
1n aprecierea comple#ittii unui al/oritm se ia "n considerare situaia
cea mai defavora'il- "n acest ca$- 1 ) m. 9emarcm "n plus c aplicarea
instruciunii >1? presupune cel . operaii elementare- adic un numr de
operaii care nu depinde de n.
1n conclu$ie- comple1itatea algoritmului Caut>!4 1? este lo/ n.
2. Algorit!l "# i+,#r-i#
6ro'lem8 Dat fiind un element 1 din mulimea ordonat carenu se afl n
mulimea ! se cere s se plaseze acesta n locul corespunztor n ! ,i s se
construiasc structura de arbore "#$ a noii mulimi
{ } 1 ! ! G
folosind
arborele mulimii !.
9e$olvare8
0plic2nd al/oritmul Caut>!4 1? se o'ine pe de o parte re$ultatul %tiut
c
! 1
. 6e de alt parte o'inem %i locul "n care urmea$ s fie plasat
elementul 1 "n mulimea !.
1ntr!adevr- dac al/oritmul se "nc(eie pri prima instruciune atunci 1
este mai mare dec2t cel mai mare element al mulimii !.
Dac al/oritmul se "nc(eie prin aplicarea instruciunii a doua atunci se
a3un/e la o frun$
! u
astfel c 1 5 u. Fie v ascendentul lui u. Dac u &
d2>v? atunci d1>v? F 1 5d2>v? %i deci am plasat pe 1 "ntre dou elemente
consecutive ale mulimii !. 0nalo/- dac d,>v? E D %i u & d,>v?. 9m2ne de
anali$at ca$ul c2nd u & d1>v?.
6entru acest ca$ s o'servm c al/oritmul Caut>!4 1? operea$
trecerea de la un nod la cel mai mic dintre descendenii si care au frun$e la
dreapta lui 1. Ca urmare- dac 6 este nodul anterior lui v >aflat pe acela%i
nivel cu v? atunci- urc2nd de la aceste dou noduri pas cu pas "n direcia
ascendentului- se a3un/e la perec(ea de noduri 674 v7 care au acela%i
ascendent- adic sunt descendenii unui nod. Cea mai mare dintre frun$ele
lui 67 >care este tocmai cea mai mare dintre frun$ele luui 6? tre'uie s fie
strict mai mic dec2t 1 deoarece altfel din ascendentul lor comun ar fi fost
ales 67 "n loc de v7 %i "n final am fi a3uns la 6 "n loc de v. 6rin urmare- dac
nodul u are un nod anterior 6 atunci cea mai mare dintre frun$ele sale
tre'uie s fie strict mai mic dec2t 1. Fire%te- dac nodul v nu are ascendent
atunci u & d1>v? este cel mai mic element al mulimii ! %i am o'inut c 1
este strict mai mic dec2t acesta.
6entru a construi ar'orele noii mulimi
{ } 1 ! ! G
considerm mai
multe ca$uri8
1. Dac 1 este "ntre dou frun$e care sunt /rupate "ntr!un nod cu doi
descendeni atunci 1 va deveni al doilea descendent al acestui nod- care va
deveni astfel un nod cu trei descendeni. 0ceasta este sin/ura modificare pe
care o va suferi ar'orele.
2. Dac 1 este "ntre dou /rupuri de frun$e dintre care cel puin unul
are numai dou frun$e atunci 1 se va altura /rupului care are numai dou
frun$e.
,. Dac 1 este "ncadrat "ntr!un /rup de trei frun$e atunci se formea$
un nou nod pe nivelul superior nivelului frun$elor- astfel c cele . frun$e se
vor distri'ui corespun$tor cte dou la cele dou noduri.
.. Dac 1 este "ntre dou /rupuri de c2te trei frun$e atunci se formea$
un nou nod care va /rupa pe 1 cu unul din frun$ele din /rupul din st2n/a sau
din dreapta.
0%adar "n dou dintre cele patru ca$uri pro'lema revine la adu/area
unui nou nod pe nivelul imediat superior "ntr!un loc 'ine determinat "n %irul
nodurilor. Se va proceda la fel cum s!a procedat cu nodul >frun$? 1 av2nd ca
efect doar adu/area unei muc(ii sau adu/area unui nod pe nivelul
superior. 0l/oritmul de construire a ar'orelui pentru mulimea !7 va avea
deci cel mult at2ia pa%i c2te nivele are ar'orele.
Co)l#*it&t#& &lgorit!l!i "# i+,#r-i#
0l/oritmul presupune aplicarea mai "nt2i a al/oritmului Caut>!4 1?
care are comple#itatea lo/ n* rmea$ apoi s se urce de la un nivel la cel
imediat superior de cel mult at2tea ori c2te nivele sunt. &umrul acestora
este de ordinul lo/ n. =a fiecare trecere de la un nivel la altul se efectuea$
un numr de operaii elementare care numr nu depinde de n.
6rin urmare al/oritmul const "n aplicarea succesiv a dou al/oritme
de aceea%i comple#itate.
1n conclu$ie al/oritmul de "nserare are comple#itatea lo/ n.
Algorit!l "# #li+&r#
6ro'lema eliminrii se formulea$ "n felul urmtor8 se d o parte ! a
unei mulimi ordonate- o structur de ar'ore 2!, ale crui frun$e sunt
elementele mulimii ! %i un element 1 al mulimii !. Se cere s se
alctuiasc structura de ar'ore 2!, pentru mulimea !7 & ! H I1J.
6ro'lema este analoa/ cu pro'lema "nserrii.
Prolema interseciei se!mentelor
Formularea pro'lemei
Dat fiind o mulime de n se/mente din plan ! B I8
'
4 8
"
4 ***48
n
J prin
coordonatele capetelor lor se cere s se /seasc toate punctele de intersecie
a acestor se/mente.
Orice al/oritm am ela'ora pentru re$olvarea pro'lemei el tre'uie s
conin a'ordarea interseciei a dou se/mente date.
6entru o perec(e de se/mente 8
i
4 8
9
putem ela'ora un pro/ram de
calcul prin care s decidem dac se/mentele se intersectea$ sau nu iar "n
ca$ul c2nd se intersectea$ se o'in coordonatele punctelor lor de intersecie.
Columul de calcul cerut pentru o perec(e de se/mente nu depinde de
numrul n al se/mentelor deci este o constant- care nu are relevan "n
evaluarea comple#itii al/oritmului.
Cel mai simplu al/oritm care ne vine "n minte este s a'ordm la r2nd
toate perec(ile de se/mente. Comple#itatea acestui al/oritm este de ordinul
n
"
.
0lte al/oritme se 'a$ea$ pe o structur a 'a$ei de date constituit din
cele n se/mente.
0l/oritmul 'a$at pe metoda scanrii
0cest al/oritm prile3uie%te ilustrarea unei metode specific /eometrice
de ela'orare a unui al/oritm- cunoscut su' numele de metoda scanrii sau
a mturrii.
0l/oritmul ce urmea$ a fi pre$entat este aplica'il oricrei mulimi de
se/mente dar pentru o form simplificat a acestuia asumm urmtoarea
ipote$e8
a?mulimea ! nu are se/mente verticale.
'?mulimea ! nu are se/mente care se suprapun parial.
rmea$ acum descrierea pa%ilor al/oritmului.
1( Str!$t!r& "# &r.or# 2-3 E/EN
0l/oritmul presupune operaia preala'il de ordonare a capetelor
celor n se/mente. Fiecare capt este "nre/istrat at2t prin coordonatele lui c2t
%i prin preci$area faptului c este capt st2n/ sau drept precum %i se/mentul
cruia!i aparine. 6rin urmare dac un punct este capt comun pentru mai
multe se/mente el va fi "nre/istrat de mai multe ori.
Dispunem deci de o 'a$ de date av2nd e#act 2n capete de se/mente.
0ceste 2n date se constituie "ntr!o mulime ordonat dup urmtoarele
re/uli8
!Se sortea$ dup a'scis.
!Dac sunt mai multe capete care au aceea%i a'scis atunci ele
se ordonea$ dup ordonat.
!Dac mai multe se/mente au acela%i capt st2n/ atunci ele se
ordonea$ dup ordonata captului din dreapta.
!Dac mai multe se/mente au captul din dreapta comun atunci
ele se dispun "n ordinea invers a ordonatelor captului st2n/.
!Dac un capt este at2t drept pentru un numr de se/mente c2t
%i capt st2n/ pentru alt numr de se/mente atunci se ordonea$ mai "nt2i
/rupul instanelor de capt drept urmat de /rupul instanelor de capt st2n/.
;ulimea ordonat astfel o'inut se inte/rea$ "ntr!o structur de
ar'ore 2!,.
ltima operaie- construirea ar'orelui 2!,- are comple#itatea nlo/n. 1n
ce prive%te relaia de ordonare- pentru reali$area aceasteia se dispune de
al/oritmul MergeSort care are tot comple#itatea nlo/n. 6rin urmare acest
pas presupune un volum de operaii de ordinul nlo/n.
0r'orele 2!, numit :C:& va suferi modificri "n sensul "nserrii
succesive a punctelor de intersecie ale se/mentelor.
2(. Str!$t!r& STARE
0l/oritmul const "n deplasarea unei drepte verticale = care mtur
planul de la st2n/a la dreapta depist2nd pe acest parcurs r2nd pe r2nd
punctele de intersecie.
1n fiecare po$iie a dreptei = ar'orele S<09: este constituit din lista
se/mentelor care intersectea$ dreapta- sortate dup ordonatele punctelor de
intersecie cu aceast dreapt.
;ulimea :C:& conine pe l2n/ capetele de se/mente aflate la pe
dreapta = sau la dreapta ei %i interseciile se/mentelor vecine din lista
S<09:.
1n tmpul deplasrii dreptei = la primul punct al mulimii :C:&
ar'orii S<09: %i :C:& rm2n nesc(im'ate. :le se sc(im' "n momentul
c2nd dreapta = atin/e punctul urmtor. 6ot fi mai multe situaii.
1. 6unctul "n care se opre%te dreapta = este un capt din st2n/a al unui
se/ment S.
1n acest ca$ se modific ar'orele S<09: "n sensul "nserrii
se/mentului respectiv. 0vem "n vedere plasarea acestui se/ment "n locul
respectiv precum %i reconstruirea structurii de ar'ore 2!,.
0r'orele :C:& poate suferi dou modificri8
!Se elimin captul respectiv- "n care s!a oprit dreapta =.
;enionm c acesta era primul element al mulimii :C:&.
!Dac SK %i SL sunt se/mentele vecine lui S "n mulimea
S<09: atunci se "nserea$ interseciile lui S cu aceste se/mente- dac
aceste intersecii e#ist %i se afl la dreapta dreptei =- "n ar'orele :C:&.

2? Dac punctul "n care se opre%te dreapta = este un capt din dreapta
al unui se/ment S atunci se produ urmtoarele modificri8
Se/mentul S se elimin din ar'orele S<09:. Cecinii SK %i SL devin
vecini "ntre ei.
0r'orele :C:& sufer iar%i dou modificri8
!Se elimin punctul "n care s!a oprit dreapta =.
!Dac se/mentele SK %i SL se intersectea$ la dreapta dreptei =
atunci se "nserea$ acest punct "n ar'orele :C:&.
,? Dac punctul "n care se opre%te dreapta = este un punct de
intersecie a dou se/mente S1 %i S2 atunci aceste se/mente sunt alturate "n
ar'orele S<09:. Fie SK celalt vecin al lui S1 %i SL celalt vecin al lui S2.
0r'orele S<09: se modific "n sensul sc(im'rii ordinii se/mentelor
S1 %i S2.
0r'orele :C:& poate suferi urmtoarele modificri8
!Se elimin punctul "n care s!a oprit dreapta =. 0cest punct se
"nre/istrea$ "ntr!o list 6&C<: "n care se colectea$ punctele de
intersecie ale se/mentelor mulimii !.
!Dac SK %i S2 se intersectea$ "ntr!un punct situat la dreapta
dreptei = atunci se "nserea$ acest punct "n ar'orele :C:&.
! Dac SL %i S1 se intersectea$ "ntr!un punct situat la dreapta
dreptei = atunci se "nserea$ acest punct "n ar'orele :C:&.
1n final ar'orii S<09: %i :C:& se /olesc iar lista 6&C<: va
conine toate punctele de intersecie al celor n se/mente.
C&). III MULIMI CONEXE0 MULIMI CON/EXE1
DEFINIII. &umim curb plan o perec(e de funcii continue:
: y 1 M 1 - 0 N 8 -
Fiecare numr t cuprins "ntre $ero %i unu define%te punctul P
t
de
coordonate carte$iene 1>t? %i y>t?. 1n particular- numerele t&( %i t&' definesc
punctele P
(
- respectiv P
'
numite capetele cur'ei.
Cur'a se nume%te nchis dac cele dou capete coincid- adic P
'
&P
(
.
Dac pentru orice perec(e de numere distincte t7 %i t; din intervalul N0-1M-
"n afar de capete- punctele P
t7
%i P
t;
sunt distincte atunci cur'a se nume%te
curb simpl.
EXEMPLE
I.6erec(ea de funcii8
? . sin> ? > ?- . cos> ? > A M 1 - 0 N 8 - t t y t t 1 : y 1
repre$int semicercul cu centrul "n ori/ine %i de ra$ e/al cu unu- parcurs
de la punctul P
(
de coordonate 1>0? B 1 %i y>0? B 0 la simetricul su fa de
ori/ine- P
'
- de coordonate 1>1? B !1 %i y>1? B 0. :ste u%or de verificat c
aceasta este o cur' simpl.
II. 6erec(ea de funcii8
? . 2 sin> ? > ?- . 2 cos> ? > A M 1 - 0 N 8 - t t y t t 1 : y 1
repre$int cercul cu centrul "n ori/ine %i de ra$ e/al cu unu- parcurs "n sens
invers acelor ceasornicului- pornind de la punctul P
(
de coordonate 1>0? B 1
%i y>0? B 0 %i revenind la acela%i punct. :ste deci o cur' "nc(is %i se poate
verifica faptul c este %i simpl.
III.6erec(ea de funcii8

'

+
+
+

'

+
+
+

M 1 -
,
2
N A 2 , ? > ,
?
,
2
-
,
1
N A 2 ? > ,
?
,
1
- 0 N A ? > ,
? >
M 1 -
,
2
N A 2 , ? > ,
?
,
2
-
,
1
N A 2 ? > ,
?
,
1
- 0 N A ? > ,
? >
M 1 - 0 N 8 -
1 , , 1
, 2 2 ,
1 1 2
1 , , 1
, 2 2 ,
1 1 2
t y y t y y
t y y t y y
t y t y y
t y
t 1 1 t 1 1
t 1 1 t 1 1
t 1 t 1 1
t 1
: y 1
repre$int o cur' simpl "nc(is const2nd din triun/(iul cu v2rfurile P
'4
P
"4
%i

P
$
av2nd coordonatele respectiv8 >1
'
4y
'
?- >1
"
4y
"
? %i >1
$
4y
$
? parcurs "n ordinea
P
'
4 P
"
4 P
$
4 P
'
.
IC.6erec(ea de funcii8

'

'

M 1 -
,
2
N A 4 O
?
,
2
-
,
1
N A , O
?
,
1
- 0 N A 1 O
? >
M 1 -
,
2
N A 4 O
?
,
2
-
,
1
N A 1
?
,
1
- 0 N A 1 O
? >
M 1 - 0 N 8 -
t t
t t
t t
t y
t t
t
t t
t 1
: y 1
repre$int linia poli/onal P
'
>!1-!1?- P
"
>1-1?- P
$
>1-!1?- P
0
>!1-1? parcurs "n
aceast ordine- care nu este "nc(is deoarece captul P
'
nu coincide cu
captul P
0
. Cur'a nu este simpl deoarece linia poli/onal se
autointersectea$ "n ori/ine8 acest punct se o'ine at2t pentru t&'/< c2t %i
pentru t&=/<.
DEFINIII
O mulime din plan se nume%te mulime cone1 dac oricare dou
puncte ale mulimii pot fi unite cu o cur' av2nd toate punctele "n acea
mulime. 1n particular- dac pentru orice dou puncte ale mulimii
segmentul care le unete se afl "n "ntre/ime "n mulimea respectiv atunci
mulimea se nume%te mulime conve1.
De e#emplu- at2t interiorul c2t %i e#teriorul unui cerc sunt mulimi
cone#e. Dar- "n timp ce interiorul cercului este mulime conve#- e#teriorul
nu este.
Faptul evident c cercul "mparte planul "n dou re/iuni este vala'il
pentru orice cur' simpl %i "nc(is- potrivit teoremei cunostute su' numele
teorema lui Jordan8 orice curb simpl ,i nchis mparte planul n dou
regiuni conexe4 una mrginit4 numit interioar iar cealalt nemrginit4
numit exterioar> dou puncte pot fi unite printr#o curb care nu
intersecteaz curba dat dac ,i numai dac fac parte din aceea,i regiune*
1
y
P
(
P
'
+
a?
1
y
P
(
&P
'
+
'?
P
'
1
y
c?
P
"
P
$
+
1
y
d?
+
P
'
P
"
P
$
P
0
Fi/.
POLIGOANE( POLIGOANE CON)E*E
D:FI&II: Se nume%te poligon o mulime finit S de se/mente din
plan- av2nd cel puin , se/mente- care "ndepline%te urmtoarele dou
condiii8
1.Fiecare capt al unui se/ment este capt comun cu e#act un alt
se/ment al mulimii.
2. &ici o su'mulime strict a lui S nu "ndepline%te condiia 1.
O.,#r2&-i#
O mulime de se/mente care "ndepline%te numai condiia 1. ar putea
arta "n felul urmtor8
Fie 8
(
una din laturile poli/onului S- adic un element al mulimii S.
Fiecare din cele dou orientri ale se/mentului 8
(
determin o "n%iruire a
se/mentelor mulimii S %i implicit a v?rfurilor poli/onuluui. Folosim- de
e#emplu- orientarea de la A la @ a se/mentului 8
(
.
S renotm cu P
(
respectiv P
'
- capetele A respectiv @. Se/mentul 8
(
%i
captul su P
'
determin se/mentul 8
'
- adiacentul lui 8
(
"n captul P
'
. &otm
P
"
cellalt capt al lui 8
'
. Se repet acest proces8 dup ce s!a "nserat
se/mentul 8
i
care este adiacentul lui 8
i#'
"n captul P
i
- cellalt capt al lui 8
i
fiind notat cu P
i.'
- se notea$ 8
i.'
adiacentul lui 8
i
"n captul P
i.'
%i se
notea$ P
i."
cellalt capt al lui 8
i.'
.
Dac n este numrul se/mentelor mulimii S atunci punctele
P
(
4P
'
4**4P
n#"
sunt distincte. 1ntr!adevr- dac pentru 0 @ i F 9 ) n H 2 am avea
P
9
B P
i
atunci 8
9
&8
i
%i su'%irul de se/mente 8
i
48
i.'
4***48
9#'
"n numr de 9#i5n ar
"ndeplini comdiia 1 din definiia poli/onului %i deci nu ar fi "ndeplinit
condiia 2.
Fi/.
Ca urmare se/mentele 8
(
48
'
4***48
n#"
sunt distincte %i deci din mulimea
S a mai rmas un sin/ur se/ment. Deoarece punctul P
(
tre'uie %i el s fie
capt comun dintre 8
(
%i alt se/ment- acesta nu poate fi dect sin/urul rmas-
pe care!l notm 8
n#'
%i el "nc(eie linia poli/onal format din n se/mente.
1n%iruirea opus se o'ine pornind de la orientarea de la P
'
la P
(
a
se/mentului 8
(
.
n poli/on este o cur' nchis deoarece ea se poate defini printr!o
perec(e de funcii continue-
? 1 > ? 0 > ?- 1 > ? 0 > M 1 - 0 N 8 - y y 1 1 y 1 R;
6articularitatea acestei cur'e const "n faptul c funciile 1 %i y sunt
funcii liniare pe poriuni- a%a cum se vede din :#emplele III %i IC.
Se/mentele unui poli/on se mai numesc laturi sau muchii. Dup
numrul laturilor poli/onul poart diferite denumiri8 triun/(i- patrulater-
penta/on-...
DEFINIIE
n poli/on simplu este un poli/on "n care oricare dou laturi nu au "n
comun puncte interioare. Sin/urele puncte comune "ntre laturi sunt capetele
de laturi adiacente.
1n Fi/.1 sunt dou poli/oane- un patrulater %i un triun/(i- al doilea
este simplu- iar primul nu este.
Orice poli/on simplu este o curb simpl ,i nchis %i deci satisface
Teorema lui Jordan: ea "mparte planul "n dou re/iuni- una numit
regiunea interioar- care este mr/init %i cealalt numit regiunea
e1terioar care este nemr/init.
Dou puncte se pot uni printr!o cur' care nu intersectea$ poli/onul
dac %i numai dac fac parte din aceea%i re/iune. 0le/2nd unul din cele dou
sensuri de parcur/e ale poli/onului fiecare din cele dou re/iuni rm2ne- una
din ele mereu la st"n/a- iar cealalt mereu la dreapta.
1n ca$ul unui poli/on simplu- de re/ul- prin poli/on "nele/em
re/iunea interioar "mpreun cu frontiera sa.
DEFINIIE
n poli/on simplu se nume%te poligon conve1 dac interiorul su-
"mpreun cu frontiera sa- este o mulime conve#.
+N,-URTOAREA CON)E* A UNEI MULIMI .E PUNCTE
.IN PLAN( PIAA LUI /AR)IS
DEFINIIE
Dat fiind o mulime M de puncte din plan se nume%te nf,urtoarea
conve1 a mulimii M cea mai mic mulime conve# care conine toate
punctele lui M. &otm aceast mulime conv(M).
Cu alte cuvinte "nf%urtoarea conve# a mulimii M este mulimea
conv(M) definit prin urmtoarele dou proprieti8
1. :ste conve# %i conine mulimea M.
2. &u e#ist o su'mulime strict a lui conv(M) care s ai'
proprietatea 1.
Condiia a doua din definiia "nf%urtoarei conve#e- >condiia de
minimalitate?- se poate formula %i astfel8 orice mulime conve# care conine
mulimea M conine conv(M).
O'servm c "n /eneral intersecia a dou mulimi cone#e nu este
cone#- a%a cum se vede "n fi/ura urmtoare8
1n sc(im'- este lesne s ne convin/em c intersecia a dou sau a
oric2t de multe mulimi conve#e este tot o mulime conve#.
in2nd seam de acest lucru se poate caracteri$a "nf%urtoarea
conve# a mulimii M ca fiind intersecia familiei tuturor mulimilor
conexe care conin mulimea M
EXEMPLE
I.Dac M este mulimea format din dou puncte A %i @ atunci
"nf%urtoarea conve# a mulimii M este se/mentul "n(is care une%te cele
dou puncte.
Fi/.
0
P
1ntr!adevr- se/mentul A@ "ndepline%te cele dou condiii din definiia
"nf%urtoarei conve#e8 pe de o parte este o mulime conve# conin2nd cele
dou puncte ale mulimii M- iar pe de alt parte- orice mulime conve# care
conine mulimea M>punctele A %i @? va conine se/mentul A@.
II. Dac M este mulimea format din trei puncte necoliniare A4@4C
atunci triun/(iul A@C >"nele/2nd interiorul "mpreun cu frontiera? este
"nf%urtoarea conve# a mulimii.
1ntr!adevr- din raionamentul de la e#emplul anterior re$ult c
frontiera triun/(iului se afl "n aceast "nf%urtoare conve#. 6e de alt
parte orice punct din interiorul triun/(iului se afl pe un se/ment care une%te
punctul A cu un punct de pe latura @C. Deci orice mulime conve# care
conine mulimea M >format din cele trei puncte A4@4C? va conine
interiorul "mpreun cu frontiera triun/(iului A@C.
<riun/(iul A@C este o mulime conve# deoarece este intersecia a
trei mulimi conve#e8 semiplanul definit de dreapta @C %i v2rful A %i
celelelte dou semiplane analoa/e.
III. 1n /eneral- dac M este mulimea v2rfurilor unui poli/on conve#
atunci poli/onul >interiorul "mpreun cu frontiera sa? este "nf%urtoarea
conve# a mulimii M. 9aionamentul este cel de la e#emplul anterior.
Din ultimul e#emplu re$ult c pentru a gsi nfurtoarea
conex a mulimii M este suficient s gsim un poligon conex care! pe
de o parte s conin toate punctele mulimii M, iar pe de alt parte s
ai" ca #rfuri numai punncte ale mulimii M.
TEOREM
6entru orice mulime finit M de puncte din plan "nf%urtoarea sa
conve#- conv(M)! este un poli/on conve# av2nd ca v2rfuri puncte ale
mulimii M.
DEMONSTRAIE
Construirea acestui poli/on se poate face prin urmtorul al/oritm
cunoscut su' numele de piaa lui Aarvis.
Fie y
'
4y
"
cea mai mic- respectiv cea mai mare dintre ordonatele
punctelor mulimii M %i d
'
4 d
"
ori$ontalele definite de aceste ordonate.
;ulimea M se afl "n 'anda >conve#? cuprins "ntre aceste drepte. 6utem
considera y
1
=( adic d
'
este c(iar a#a +1.
6e dreapta d
'
>a#a +1? se afl cel puin un punct al mulimii M. Dac
sunt mai multe- notm 74 ; punctul de a'scis minim- respectiv cel de
a'scis ma#im.
0nalo/ definim punctele B74 B; pe dreapta d
"
.
9enot2nd punctul ; cu P
(
rotim a#a +1 "n sens tri/onometric "n
3urul lui P
(
p2n "nt2lne%te puncte ale mulimii M. n/(iul de rotire- C
(
- este
cel mai mare dintre un/(iurile formate "n P
(
de a#a +1 cu semidreptele P
(
P
c2nd P parcur/e mulimea M.
Semidreapta definit de captul P
(
%i un/(iul C
(
are la st2n/a ei toate
punctele mulimii M. 6e aceast dreapt se /se%te cel puin un punct al lui
M "n afar de P
(
. Dac sunt mai multe se notea$ P
'
cel care este cel mai
dertat de P
(
.
&otm D
'
intersecia semidreptei P
(
P
'
cu dreapta d
"
. 0'scisa 1
'
a lui
D
'
este cel puin e/al cu a'scisa 17 a lui B7 >1
'
E17? deoarece punctul B7 se
afl la st2n/a semidreptei P
(
P
'
.
6entru orice iE'- de "ndat ce s!a o'inut punctul P
i
se define%te
punctul P
i.'
"n mod analo/. Se rote%te dreapta P
i#'
P
i
"n sens tri/onometric
3urul punctului P
i
p2n "nt2lne%te puncte ale mulimii M %i se notea$ C
i
un/(iul format "n P
i
de la direcia po$itiv a a#ei +1 la semidreapta o'inut
prin rotirea semidreptei P
i#'
P
i
. n/(iul C
i
se define%te ca minimul un/(iului
format "n P
i
de direcia po$itiv a a#ei +1 %i semidreapta P
i
P c2nd P
parcur/e mulimea M. Semidreapta definit de captul P
i
%i un/(iul C
i
are la
st2n/a ei toate punctele mulimii M- inclusiv punctul B;. 6e aceast
semidreapt se /se%te cel puin un punct al lui M "n afar de P
i
. Dac sunt
mai multe atunci notm P
i.'
pe cel mai deprtat de P
i
. Dac C
i
5'F( atunci
semidreapta P
i
P
i.'
intersectea$ dreapta d
"
"n punctul D
i.'
a crui a'scis-
1
i.'
este cel puin e/al cu a'scisa 1; a lui B;deoarece toate punctele
mulimii M- inclusiv B;- tre'uie s se /seasc la st2n/a semidreptei P
i
P
i.'
.
O'servm "n plus c at2t timp c2t C
i
5 'F( %irul ordonatelor punctelor
P
i
este strict cresctor. Cum numrul acestor ordonate nu poate dep%i
numrul elementelor mulimii M! care este o mulime finit- "nseamn c
pentru o anumit valoare a lui i vom avea C
i
5 'F( "n timp ce C
i.'
E 'F(.
Din C
i
5 'F( re$ult c semidreapta P
i
P
i.'
intersectea$ dreapta d
'
"n
punctul D
i.'
a crui a'scis- 1
i.'
- este cel puin e/al cu a'scisa 1; a lui B;.
Desi/ur- cele dou a'scise sunt e/ale dac %i numai dac P
i.'
&B;&D
i.'
%i
numai "n acest ca$ ordonata lui P
i.'
ar atin/e valoarea ma#im y
'
.


0ceasta este sin/ura alternativ posi'il deoarece altfel rotirea dreptei
P
i
P
i.'
"n 3urul punctului P
i.'
nu ar trece de po$iia P
i.'
B; %i atunci nu ar mai
fi "ndeplinit ine/alitatea C
i.'
E 'F(. 1n plus ine/alitatea C
i.'
E 'F( este
e/alitate numai dac B7 %i B; sunt distincte %i atunci P
i."
&B7.
1n mod asemntor se arat c prin recuren se a3un/e la un indice m
astfel ca P
m
&7 care poate fi acela%i cu ;. &umrul m este numrul
v2rfurilor- ca %i al se/mentelor liniei poli/onale.
Deoarece P
m
&7&P
(
"nseamn c linia poli/onal construit este
"nc(is.
0ceast linie poli/onal este simpl. 1ntr!adevr- pe de o parte- dou
se/mente ale acestei linii nu pot avea "n comun un punct interior al unuia
dintre ele- deoarece dreptele care servesc drept suport acestor se/mente nu
pot avea puncte ale mulimii M de o parte %i de alta a ei. 6e de alt parte-
v2rfurile P
(
4P
'
4***4P
m
sunt distincte. Dac B;&P
h
atunci punctele P
(
4P
'
4***4P
h
au ordonatele dispuse "ntr!un %ir strict cresctor- deci ele sunt distincte. =a
fel %irul de puncte de la P
h
la P
m
. 1n sf2r%it- primul su'%ir de puncte este
separat de al doilea prin se/mentul ;B;.
0%adar linia poli/onal construit este un poligon simplu. 0cest
poli/on este conex deoarece pentru fiecare i&'4"4***4m interiorul su este la
st2n/a semidreptei P
i
P
i.'
- astfel c interiorul poli/onului este intersecia a a
m mulimi conve#e. Q.:.D.
Fi/.
COMPLEXITATEA AL3ORITMULUI
6entru fiecare v2rf P
i
al poli/onului se calculea$ un/(iul format "n P
i
dintre a#a +1 %i semidreapta P
i
P- pentru fiecare punct P din mulimea M.
7 ;&P
(
B7 B;
y
1
P
'
D
i.'
D
"
P
i.'
P
i." P
i
C
(
P
"
C
'
C
i
C
i.' D
'
6rin urmare- dac n este numrul elementelor mulimii M %i m este
numrul v2rfurilor poli/onului atunci comple#itatea al/oritmului este de
ordinul mn.
=u2nd "n considerare situaia cea mai defavora'il %i anume aceea "n
care m este de acela%i ordin de mrime ca %i n re$ult c al/oritmul are
comple#itatea de ordinul cel mult n
"
*
CARACTERI0AREA INTRINSEC A )1R,URILOR -I
LATURILOR POLIGONULUI con23M4
0%a cum am menionat- "nf%urtoarea conve# a unei mulimi M este
determinat de mulimea M8 este cea mai mic mulime conve# care
conine mulimea M.
6e de alt parte- dac se /se%te un poli/on conve# av2nd ca v2rfuri
puncte ale mulimii M %i care conine "n interior %i pe frontier toate
elementele mulimii M- acest poli/on este cea mai mic mulime conve#
care conine mulimea M.
6rin al/oritmul piaa lui Aarvis ofer acest poli/on. 9e$ult c orice
alt procedeu de a construire a "nf%urtoarei conve#e a mulimii M va avea
ca re$ultat acela%i poli/on.
S o'servm c fiecare v2rf al poli/onului conv(M) are urmtoarea
proprietate8 este punct al mulimii M ,i prin acel punct se poate duce o
dreapt d astfel c nc?t ntreaga mulime M se afl ntr#unul din
semiplanele determinate de aceast dreapt> n plus4 punctul P este singurul
punct al mulimii M situat pe dreapta d.
0ceast "nsu%ire o au numai v2rfurile poli/onului conv(M). 1ntr!
adevr- fie un punct al mulimii M prin care trece o dreapt d astfel c
toat mulimea M se afl "ntr!unul din semiplanele definite de aceast
dreapt %i este sin/urul punct al lui M situat pe dreapta d. 0le/2nd drept
a# +1 dreapta d se poate construi- folosind al/oritmul piaa lui Aarvis-
poli/onul conv(M) care va avea punctul drept v2rf P
(
.
:ste u%or atunci s caracteri$m o dreapt care serve%te drept suport al
unei laturi a poli/onului conv(M)8 ea trebuie s conin cel puin dou
puncte distincte ale mulimii M ,i toate punctele mulimii M se afl ntr#unul
din semiplanele definite de aceast dreapt*
ALGORITMUL GRA5AM
1n timp ce al/oritmul piaa lui Aarvis ofer o demonstraie a faptului
c "nf%urtoarea conve# a unei mulimi de puncte din plan este un poli/on
conve# av2nd ca v2rfuri puncte ale mulimii- e#ist alte al/oritme de
comple#itate mult mai mic- printre care cel enunat "n titlu.
0l/oritmul se 'a$ea$ pe urmtorul fapt8 d2ndu!se trei puncte "n plan
P
'
>1
'
4y
'
?- P
"
>1
"
4y
"
?- P
$
>1
$
4y
$
? "n parcur/erea conturului triun/(iului "n ordinea
P
'
4P
"
4P
$
4P
'
interiorul triun/(iului rm2ne mereu la st2n/a sau mereu la
dreapta dup cum determinantul8

,
_

1
1
1
det
, ,
2 2
1 1
y 1
y 1
y 1
este po$itiv sau ne/ativ. 1n primul ca$ spunem c parcursul P
'
4P
"
4P
$
este
direct iar "n celalt ca$ c parcursul este invers*
6resupunem c sistemul de a#e este astfel ales "nc2t toate punctele
mulimii M sunt "n planul superior fa de a#a +1- iar ori/inea este punct al
mulimii %i nici un punct al mulimii M nu are a'scisa strict po$itiv. 1n
aceast situaie- potrivit al/oritmului anterior- ori/inea este v2rf al
poli/onului cutat.
6resupunem "n plus- c cele n puncte ale mulimii M au fost sortate
dup panta se/mentelor care unesc ori/inea cu punctele respective. 6entru
sortare se poate folosi al/oritmul numit merge#sort care are comple#itatea
cel mult n*lo/n.
0%a cum am menionat- comple#itatea mare a al/oritmului piaa lui
Aarvis apare din faptul c pentru a valida un v2rf al poli/onului cutat
tre'uie s se prelucre$e toate punctele mulimii M.
1n acest al/oritm fiecare punct al mulimii M necesit cel mult dou
testri pentru a fi validat sau respins ca v2rf al poli/onului. 6unctele respinse
nu mai faco'iectul testrii.
Din start- faptul c mulimea este sortat "n modul menionat ne ofer
urmtoarea simplificare8 dac mai multe puncte sunt pe aceea%i ra$
vectoare- se rein numai cele care au cea mai mare distan p2n la ori/ine.
S considerm ordonarea P
'
4P
"
4*** dup pantele se/mentelor +P
i
.
6entru colectarea v2rfurilor poli/onului cutat se define%te o structur de
stiv "n care se introduc punctele +4 P
'
%i P
"
. 6arcursul acestor trei puncte
este si/ur po$itiv. ;ai departe se consider parcursul P
'
4P
"
4P
$
. Dac acest
parcurs este po$itiv atunci se adau/ punctul P
$
la stiv. 1n ca$ contrar se
scoate din stiv punctul P
"
%i se anali$ea$ parcursul +4P
'
4P
$
care este si/ur
po$itiv. Se continu acest proces.
APLICAIE6 PEREC5ILE .E PUNCTE CELE MAI +N.EPRTATE
ALE MULIMII M
Se nume%te diametru al mulimii M o perec(e de puncte ale mulimii
care se afl la distana ma#im. 6entru /sirea diametrelor punem "n
eviden o proprietate remarca'il a acestora.
Pro)o4i-i#
Dac perec(ea de puncte A %i @ constituie un diametru al mulimii M
atunci- not2nd d
A
%i d
@
dreptele perpendiculare pe se/mentul A@ "n capetele
acestuia- atunci8
! ;ulimea M se afl "n 'anda cuprins "ntre aceste dou
drepte.
! Sin/urul punct al mulimii M situat pe dreapta d
@
este punctul
@. 0nalo/ pentru dreapta d
A
.
D#o+,tr&-i#
Fie P diferit de @ un punct situat "n semiplanul opus lui A fa de
dreapta d
A
.
Dac P este pe dreapta A@ atunci distana de la A la P este strict mai
mare dec2t distana de la A la @ deci punctul P nu face parte din mulimea
M.
Dac P nu este pe dreapta A@ atunci- a%a cum se vede din fi/ur-
proiecia P7 a lui P pe dreapta A@ va determina un triun/(i dreptun/(ic "n
care- AP fiind ipotenu$a- este strict mai mare dec2t cateta AP7 iar aceasta- la
r2ndul ei- este cel puin e/al cu A@. Ca urmare punctul P nu se afl "n
mulimea M.
=a fel se arat c "n semiplanul opus lui @ fa de dreapta d
A
nu se afl
nici un punct al mulimii M "n afar de A.
ALGORITMUL .E GSIRE A PEREC5ILOR CELOR MAI
+N.EPRTATE .E PUNCTE ALE MULIMII M
Din caracteri$area fcut mai "nainte pentru v2rfurile poli/onului
conv(M) re$ult c punctele A %i @- capetele unui diametru al mulimii M-
tre'uie s fie v2rfuri ale acestui poli/on.
6rin urmare- dac s!a o'inut "n f%urtoarea conve# a mulimii M!
adic poli/onul conv(M) atunci pro'lema /sirii diametrilor mulimii M se
reduce la /sirea perec(ilor de v2rfuri ale acestui poli/on- aflate la distan
ma#im.
Fie n numrul de puncte ale mulimii M %i m numrul v2rfurilor
poli/onului conv(M).
Dac m este suficient de mic atunci este util al/oritmul numit n for
brut8 se calculea$ distanele dintre v2rfurile poli/onului %i se rein
perec(ile de v2rfuri pentru care aceast distan este ma#im. Comple#itatea
al/oritmului este de ordinul cel mult +>m
"
?.
Fire%te c numrul m poate fi- "n principiu- de acela%i ordin de mrime
ca %i n. Deaceea pre$int interes un al/oritm de comple#itate mai mic
pentru /sirea celor mai "ndeprtate perec(i de v2rfuri ale unui poli/on
conve#.
A
@
P
P7
d
A
d
@
Fi/.
C&).I/ DIA3RAMA /ORONOI
Gra7uri planare
Se nume%te graf planar un /raf care se poate repre$enta printr!un
desen "n plan- v2rfurile fiind puncte ale planului iar muc(iile >orientate sau
nu? arce de cur' care unesc v2rfurile corespun$toare. Se cere ca muc(iile
s nu ai' puncte interioare comune.
Dintre /rafurile planare pre$int interes cele care au ca muc(ii
se/mente de dreapt.
Dat fiind un /raf planar el determin o "mprire a planului "n re/iuni
astfel c oricare dou puncte ale unei re/iuni se pot uni cu o linie continu
care nu traversea$ nici o muc(ie.
&ot2nd v numrul v2rfurilor- m numrul muc(iilor %i r numrul
re/iunilor aceste trei numere satisfac teorema lui $uler:
v G m . r & "
PROPO5IIE
Dac un /raf planar satisface ipote$a suplimentar c "n fiecare v2rf se
"nt2lnesc cel puin trei muc(ii atunci numerele v4m4r sunt de acela%i ordin de
mrime.
DEMONSTRAIE
Ipote$a suplimentar "nseamn c $v ) "m de unde re$ult c v )
>2R,?m- adic v & +>m?.
Folosind ine/alitatea v ) >2R,?m %i relaia lui :uler se o'ine8
2 B v G m . r ) >2R,?m G m . r
de unde re$ult m ) $r G < adic m & +>r?.
Deoarece fiecare re/iune tre'uie s ai' o frontier format din cel
puin trei muc(ii "nseamn c $r ) "m adic r ) >2R,?m. Folosind din nou
relaia lui :uler se o'ine8
r ) >2R,?m ) >2R,?>v . r G "?
de unde re$ult r ) "v G 0 adic r & +>v?. Q.:.D.
Taelul "ulu cone# al muc8iilor unui !ra7
Datele ce constituie un /raf constau din lista v2rfurilor- care sunt
puncte "n plan definite prin coordonatele lor carte$iene %i lista muc(iilor-
adic a perec(ilor corespun$toare de v2rfuri.
6entru a e#tra/e diverse informaii asupra unui /raf planar tre'uie ca
"nre/istrarea "n calculator a datelor ce constituie /raful s conin o structur
suplimentar numit tabelul dublu cone1 al muchiilor.
1n aceast ta'el al muc(iilor fiecare muc(ie se "nre/istrea$ ca un set
de informaii >c2mpuri? care e#cede preci$area perec(ii de v2rfuri ce
define%te muc(ia respectiv. <a'elul are urmtoarele c2mpuri8
C1- C2- Ss- Sd- 9s- 9c
"n care8
!C1 %i C2 sunt v2rfurile care constituie capetele muc(iei. Se define%te
astfel %i o orientare a muc(iei- fiecare av2nd drept surs v2rful C1 %i drept
capt v2rful C2.
!C2mpul Ss "nseamn re/iunea /rafului care se afl "n st2n/a atunci
c2nd ne deplasm pe muc(ia respectiv "n sensul definit- adic de la C1 la
C2. 0nalo/- Sd este re/iunea situat "n partea dreapt.
!1n ce prive%te c2mpurile 9s %i 9c s considerm o muc(ie T av2nd
drept surs v2rful C1>T? %i drept capt v2rful C2>T?. Se ia drept 9s>T? prima
muc(ie incident "n v2rful surs pe care o "nt2lne%te muc(ia T "n rotirea ei "n
sens tri/onometric "n 3urul sursei C1>T?. 0nalo/- pentru a preci$a muc(ia
9d>T?- se rote%te muc(ia T "n sens tri/onometric "n 3urul v2rfului C2>T?- care
serve%te drept capt al muc(iei T- p2n c2nd "nt2lne%te prima muc(ie
incident "n acest v2rf. 0ceast muc(ie este 9d>T?.
Pa$a de date ce define%te /raful mai conine- fire%te- si lista 6
1
- 6
2
-
6
n
a v2rfurilor /rafului precum %i lista S
1
- S
2
- ...- S
r
a re/iunilor definite de
/raf. 1n afar de aceste liste- pentru diferite operaii asupra /rafului se mai
folosesc "nc dou liste de pointeri8
!O list ;C inde#at pe mulimea v2rfurilor care- pentru
fiecare v2rf 6
i
- indic una din muc(iile incidente "n acest v2rf.
!O list ;9 inde#at pe mulimea re/iunilor care- pentru
fiecare re/iune S
3
- indic o muc(ie T situat pe frontiera re/iunii respective.
EXEMPLU
Fie /raful din fi/ura alturat av2nd ca list de v2rfuri punctele 6
1
- 6
2
-
6
,
- 6
.
. 9e/iunile sunt8 S
1
constituit din e#teriorul triun/(iului 6
1
6
2
6
.
-
re/iunea S
2
mr/init de triun/(iul 6
1
6
,
6
.
%i re/iunea S
,
av2nd conturul 6
1
-
6
2
- 6
.
- 6
,
- 6
1
. ;uc(iile orientate sunt cele indicate "n fi/ur8 T
1
- T
2
- T
,
- T
.
- T
4
.
=istele de pointeri sunt8
;C B IT
1
- T
4
- T
2
- T
,
J
;9 B I T
,
- T
,
- T
1
J
"n care prima ale/e- pentru fiecare v2rf- c2te o mucie din fascicolul de
muc(ii incidente "n acel v2rf iar a doua ale/e- pentru fiecare din cele trei
re/iuni- c2te o muc(ie aflat pe frontiera acelei re/iuni.
=ista du'lu cone# a celor 4 muc(ii este urmtoarea8
Muc%ia &' &( )s )d *s *c
T
1
6
2
6
1
S
1
S
,
T
4
T
2
T
2
6
,
6
1
S
,
S
2
T
.
T
1
T
,
6
1
6
.
S
1
S
2
T
1
T
.
T
.
6
.
6
,
S
,
S
2
T
4
T
2
T
4
6
2
6
.
S
,
S
1
T
1
T
,
Al!oritmul "e parcur!ere a conturului unei re!iuni
Folosind 'a$a de date aferent unui /raf planar- constituit din cele
patru liste %i din ta'elul du'lu cone# se pot ela'ora diferite al/oritme pentru
pro'leme cum ar fi parcur/erea conturului unei re/iuni. 6a%ii al/oritmului
sunt- pentru re/iunea S
i
- urmtorii8
1. Se iniiali$ea$ muc(ia T cu muc(ia TK din lista de pointeri ;9-
corespun$toare re/iunii S
i
. 0ceasta este o muc(ie aflat pe
S
2
S
1
T
.
T
2
6
,
T
1
T
,
T
4
6
.
6
2
6
1
S
,
conturul re/iunii S
i
. 6arcur/2nd aceast muc(ie "n sensul ei
re/iunea S
i
se va afla sau la st2n/a sau la dreapta- adic sau S
i
B
Ss>TK? sau S
i
B Sd>TK?.
2. Dac S
i
B Ss>TK? atunci se redefine%te T prin e/alitatea8 T B 9s>TK?.
Dac S
i
B Sd>TK? atunci se redefine%te T prin e/alitatea8 T B 9c>TK?.
,. Se continu pasul 2. p2n c2nd T devine TK.
EXEMPLU
6entru /raful din e#emplul de mai sus ne propunem s parcur/em
conturul re/iunii S
,
.
1. Din lista de pointeri ;9 B IT
,
- T
,
- T
1
J se ia muc(ia TK B T
1
corespun$toare re/iunii S
,
. 0ceasta se afl pe frontiera re/iunii S
,
%i are sensul de la 6
2
la 6
1
. Din ta'elul du'lu cone# al muc(iilor
/sim c Sd>T
1
? B S
,
.
2. 6entru pasul 2 se ia deci a doua variant %i deci se redefine%te T
prin e/alitatea T B 9c>TK?- adic T B 9c>T
1
? %i "n ta'el /sim 9c>T
1
?
B T
2
.
,.1 6entru T B T
2
/sim "n ta'elul du'lu cone# al muc(iilor Ss>T
2
? B S
,
deci se ia prima variant din pasul doi %i anume se redefine%te T
prin e/alitatea T B 9s>T
2
?- %i "n ta'el /sim 9s>T
2
? B T
.
.
,.2 6entru T B T
.
/sim "n ta'el S
,
B Ss>T? %i apoi- din acela%i ta'el
/sim 9s>T
.
? B T
4
.
,., 6entru T B T
4
/sim "n ta'el S
,
B Ss>T?- ca urmare cutm "n ta'el
9s>T
4
? care este T
1
astfel c T se redefine%te ca fiind TK B T
1
%i deci
se "nc(eie al/oritmul.
1n conclu$ie s!a /sit pentru conturul re/iunii S
,
sirul de muc(ii8 T
1
-
T
2
- T
.
- T
4
. 9emarcm faptul c acest contur este parcurs "n sensul invers celui
tri/onometric- adic "n sensul acelor ceasornicului. O modificare
corespun$toare a al/oritmului d ca re$ultat parcur/erea conturului re/iunii
"n sensul tri/onometric.
Comple#itatea al/oritmului este numrul de muc(ii ale conturului
re/iunii- care poate fi c(iar numrul total al muc(iilor /rafului. 9eamintim
c numrul muc(iilor are acela%i ordin de mrime ca %i numrul de v2rfuri ca
%i acela de re/iuni.
n al/oritm asemntor dar mult mai simplu se poate ela'ora pentru
enumerarea fasciculului de muc(ii incidente "ntr!un v2rf- parcur/erea
fascicolului fc2ndu!se fie "n sens tri/onometric fie invers.
.ia!rama )oronoi
Dat fiind o mulime ! de puncte 6
1
- 6
2
- ...- 6
n
din plan- fiecare punct
6
i
determin o re/iune S
i
"n care se /sesc punctele care sunt mai apropiate
de punctul 6
i
dec2t de celelalte puncte ale mulimii. 1ntre/ul plan va fi
"mprit "ntre aceste re/iuni care- evident- nu pot avea puncte interioare
comune. 0ceast "mprire se nume%te diagrama Boronoi a mulimii !.
rmtoarele e#emple ofer o introducere "n pro'lematica dia/ramelor
Coronoi.
EXEMPLE
a? Considerm mulimea ! constituit din dou puncte 0 %i P.
;ediatoarea se/mentului 0P "mparte planul "n dou re/iuni.
1n re/iunea "n care se afl punctul 0 sunt punctele care sunt mai
apropiate de 0 dec2t de P iar "n re/iunea cealalt sunt punctele mai
apropiate de P dec2t de 0.
6e mediatoare- frontiera dintre cele dou re/iuni- se afl punctele
situate la distane e/ale fa de 0 %i P.
;
&
6
a?
P 0
O
P
C
0
'?
O
O
O
0
P
C
D
O
c?
O
P
C
0
d?
'? Dac mulimea ! este constituit din trei puncte 0- P %i C atunci
mediatoarele laturilor triun/(iului 0PC se "nt2lnesc "n punctul O care este
centrul cercului circumscris- sin/urul punct din plan care se afl la aceea%i
distan de cele trei puncte 0- P- C.
0ceste trei mediatoare- "mpreun cu punctul O- delimitea$ cele trei
re/iuni ale dia/ramei Coronoi.
c? Se consider mulimea ! constituit din patru puncte 0- P- C %i D
aflate pe un cerc cu centrul "n punctul O.
;ediatoarele coardelor se "nt2lnesc "n punctul O. :le delimitea$ cele
partu re/iuni ale dia/ramei Coronoi.
De fapt re/iunea cuprins "ntre semidreptele ce pornesc din O %i au
drept suport mediatoarele se/mentele 0P %i 0C este format din punctele
care sunt mai apropiate de 0 dec2t de P %i de C. Dar mediatoarea cor$ii 0D-
care trece %i ea prin punctul O- "mparte planul "n dou re/iuni astfel c
re/iunea lui 0 conine "ntrea/a mulime a punctelor care sunt mai apropiate
de 0 dec2t de P %i de C.
6unctul O este sin/urul punct din plan care este e/al deprtat de cele
patru puncte.
:ste u%or de v$ut c aceast dia/ram se poate /enerali$a la ca$ul
c2nd mulimea ! este constituit din v2rfurile unui poli/on inscripti'il.
d? Considerm mulimea ! constituit din punctele 0- P- C %i O "n
care triun/(iul 0PC este ascuitun/(ic iar O este centrul cercului
circumscris triun/(iului 0PC- "n care se "nt2lnesc mediatoarele laturilor
triun/(iului.
;ediatoarele se/mentelor O0 %i OP se "nt2lnesc "n punctul ; situat
pe mediatoarea laturii 0P. 6unctul ; este centrul cercului circumscris
triun/(iului 0OP. 0nalo/- punctele &- respectiv 6 sunt centrele cercurilor
circumscrise triun/(iurilor 0OC respectiv POC.
<riun/(iul ;&6 delimitea$ re/iunea Coronoi corespun$toare
punctului O. 0ceasta este sin/ura re/iune mr/init a dia/ramei.
Propriet9i ale "ia!ramei )oronoi
1(. R#gi!+il#
Fiecare re/iune a dia/ramei Coronoi este o mulime conve#. 1ntr!
adevr- fie 6
i
un punct al mulimii ! B I6
1
- 6
2
- ...-6
n
J %i S
i
re/iunea
corespun$toare punctului 6
i
. 6entru fiecare indice 3 E i se consider
mediatoarea se/mentului 6
i
6
3
%i U
3
semiplanul "n care se afl punctul 6
i
"n
raport cu aceast mediatoare.
9e/iunea S
i
este intersecia tuturor semiplanelor U
3
. Cum intersecia
unor mulimi conve#e este conve# reVult c re/iunea S
i
este o mulime
conve#.
:vident c frontiera unei re/iuni este constituit din semidrepte sau
se/mente de dreapt.
9e/iunile mr/inite ale dia/ramei Coronoi sunt poli/oane conve#e.
2(. M!$6iil#
Orice muc(ie a dia/ramei Coronoi- mr/init sau nemr/init- separ
dou re/iuni 'ine determinate S
i
%i S
3
corespun$toare punctelor 6
i
%i 6
3
respectiv.
;ulimea punctelor acestei muc(ii este intersecia celor dou re/iuni.
6unctele muc(iei sunt la e/al distan de punctele 6
i
%i 6
3
.
3( /7r8!ril#
Orice v2rf 7 al dia/ramei Coronoi este intersecia a cel puin trei
re/iuni.
1ntr!adevr- dac punctul 7 ar fi captul comun al numai dou muc(ii
atunci ele ar mr/ini dou re/iuni. na din cele dou re/iuni nu va fi atunci
conve# deoarece din cele dou un/(iuri formate de muc(ii unul este mai
mare dec2t 150W.
6unctul 7 nu poate fi captul unei sin/ure muc(ii deoarece sco2nd
aceast muc(ie se o'ine o mulime care nu este conve#.
Dac numrul muc(iilor incidente "n punctul 7 este r X , atunci
punctul 7 este comun pentru r re/iuni care corespund la r puncte ale
mulimii !.
Ordon2nd aceste muc(ii "n sens tri/onometric sau invers- unghiul
dintre dou muchii consecutive trebuie s fie mai mic dec?t 'F(H deoarece
"ntre ele se afl o sin/ur re/iune.
0ceste puncte fiind e/al deprtate de punctul 7 "nseamn c 7 este
centrul cercului care conine toate aceste r puncte. 9e$ult c dac mulimea
! nu are patru puncte conciclice atunci n orice v?rf al diagramei Boronoi
sunt incidente e1act trei muchii.
9(. Poligo+!l i+,$ri)ti.il $or#,)!+4:tor !+!i 27r8.
Dac "n v2rful 7 al dia/ramei Coronoi sunt incidente r X , muc(ii
atunci 7 este punctul comun al re/iunilor corespun$toare la r puncte Q
1-
Q
2
-
...-Q
r
ale mulimii !. Deci punctul G fiind egal deprtat de cele r puncte4
acestea se gsesc pe un cerc cu centrul n G.
In interiorul acestui cerc nu se afl nici un punct al mulimii !* 1ntr!
adevr- dac "n interiorul acestui cerc s!ar /si un punct al mulimii ! atunci
punctul 7 ar fi mai apropiat de acest punct dec2t de cele r puncte %i deci 7
nu ar aparine re/iunilor definite de cele r puncte.
;(. C#l# &i &)ro)i&t# )#r#$6i "# )!+$t# &l# !l-iii M
Fie 6
i
un punct fi#at al mulimii ! %i 6
3
un punct aflat la distan
minim de punctul 6
i
. Com arta c frontiera regiunii lui P
i
conine o
muchie care desparte aceast regiune de regiunea lui P
9
.
6entru a dovedi acest lucru s notm H mi3locul se/mentului 6
i
6
3
%i d
mediatoarea acestui se/ment.
Cercul cu centrul "n 6
i
%i de ra$ 6
i
H este tan/ent dreptei d. 1n
interiorul acestui cerc nu se afl nici un punct al frontierei re/iunii lui 6
i
.
1ntr!adevr- dac punctul & situat "n interiorul cercului ar fi pe frontiera
re/iunii lui 6
i
atunci & se afl pe o muc(ie a acestei re/iuni- muc(ie ce o
separ de re/iunea Coronoi a unui alt punct 6
(
. 0ceast muc(ie are ca suport
mediatoarea se/mentului 6
i
6
(
%i deci 6
i
& B &6
(
. 6e de alt parte 6
i
& F 6
i
H %i
deci8 6
i
6
(
@ 6
i
& Y &6
(
B 26
i
& F 26
i
H B 6
i
6
3
. 0cest re$ultat contra$ice
ipote$a c punctul 6
3
se afl la distana minim de 6
i
.
0%adar interiorul cercului este "n "ntre/ime "n re/iunea Coronoi a
punctului 6
i
. Cum punctele de pe se/mentul H6
3
sunt mai apropiate de 6
3
dec2t de 6
i
"nseamn c punctele acestui se/ment nu se afl "n re/iunea
Coronoi a lui 6
i
. 1nseamn c punctul H se afl pe frontiera acestei re/iuni.
6unctul H nu poate fi v2rf al acestei re/iuni deoarece "n acest ca$ cel
puin una dintre muc(iile incidente acestui v2rf ar avea puncte "n interiorul
cercului av2nd "n vedere c un/(iul dintre ele tre'uie s fie strict mai mic
dec2t 150W.
1n conclu$ie- punctele mulimii ! care se afl la distana minim de
punctul fi1at P
i
se afl printre punctele ale cror regiuni sunt desprite de
regiunea lui P
i
prin muchiile regiunii lui P
i
*
Cut2nd- pentru fiecare punct 6
i
al mulimii ! punctele care sunt cele
mai apropiate de punctul 6
i
/sim cele mai apropiate perec(i de puncte ale
mulimii !.
<(. R#gi!+il# +#:rgi+it# &l# "i&gr&#i /oro+oi & !l-iii M
Considerm "nf%urtoarea conve# a mulimii ! B I6
1
- 6
2
- ...- 6
n
J.
0ceasta este un poli/on conve# av2nd drept v2rfuri puncte ale mulimii !.
Com arta c sin/urele re/iuni nemr/inite ale dia/ramei Coronoi
sunt cele care corespund punctelor mulimii ! situate pe frontiera acestui
poli/on.
6
i
&
6
(
6
3
H
d
Fie 6
i
%i 6
3
situate pe o latur a poli/onului care "nf%oar mulimea !.
Dreapta 6
i
6
3
"mparte planul "n dou re/iuni din care una- pe care o notm UK
conine toate punctele mulimii !.
Cercul cu centrul "ntr!un punct H almediatoarei se/mentului 6
i
6
3
%i de
ra$ e/al cu H6
i
B H6
3
nu conine alte puncte ale mulimii ! dec2t cele
situate "n se/mentul de cerc situat "nsemiplanul UK. Dac centrul H al
cercului se deplasea$ pe mediatoare "n direcia opus semiplanului UK- deci
ctre e#teriorul "nf%urtoarei- "n acest cerc vor rm2ne din ce "n ce mai
puine puncte ale mulimii !. Fie H
0
po$iia punctului H pentru care
interiorul cercului cu centrul "n H
0
nu conine nici un punct al mulimii !
dar arcul 6
i
6
3
conine astfel de puncte.
Dac punctul H se "ndeprtea$ pe mediatoare dincolo de H
0
atunci
punctele 6
i
%i 6
3
- aflate la distan e/al de punctul H- sunt cele mai apropiate
puncte ale lui ! de punctul H. Deci punctul H se afl pe frontiera care
desparte re/iunile Coronoi ale re/iunilor 6
i
%i 6
3
.
A,adar regiunea Boronoi a unui punct al mulimii ! situat pe
frontiera nf,urtoarei conve1e a acesteia va avea muchii nemrginite*
Deci regiunea este nemrginit*
9eciproc- s considerm un punct 6
i
al mulimii ! a crui re/iune
Coronoi are o muc(ie nemr/init d. 0ceast muc(ie desparte re/iunea lui
6
i
de re/iunea unui alt punct 6
3
iar muc(ia d va avea ca suport mediatoarea
se/mentului 6
i
6
3
.
6
i
6
3
H
H
0
H
UK
Cercul care prece prin punctele 6
i
%i 6
3
%i cu centrul pe semidreapta d
nu poate avea "n interior puncte ale mulimii !- "n ca$ contrar aceste puncte
ar fi mai apropiate de puncte ale lui d dec2t punctele 6
i
%i 6
3
.
Dar deprt2nd la nesf2r%it centrul cercului pe semidreapta d acest
cerc- la limit conine toate punctele semiplanului determinat de dreapta 6
i
6
3
%i "n care se afl semidreapta d.
6rin urmare semiplanul opus semidreptei d va conine toate punctele
mulimii !- adic se/mentul 6
i
6
3
se afl pe frontiera "nf%urtoarei conve#e a
mulimii !.
=(. 3r&8!l )l&+&r "#8i+it "# "i&gr&& /oro+oi & !+#i !l-ii M.
Dia/rama Coronoi este aproape un /raf planar %i c(iar format din
se/mente de dreapt. Sin/urul ei defect este c are muc(ii nemr/inite. Com
modifica dia/rama Coronoi astfel "nc2t s devin un /raf planar.
Fie Z un punct situat "n afara cercului care conine toate muc(iile
mr/inite ale dia/ramei Coronoi. :#teriorul acestui cerc fiind o mulime
cone# punctul Z se poate uni cu c2te un punct de pe fiecare muc(ie
nemr/init cu c2te o cur'- astfel c aceste cur'e s nu se "ntretaie %i nici
una s nu taie vreo muc(ie mr/init a dia/ramei Coronoi.
Se o'ine un /raf planar dar care nu este format numai din se/mente
de dreapt deoarece muc(iile incidente "n v2rful Z nu sunt "n /eneral
se/mente de dreapt. 0cest /raf planar are un v2rf "n plus fa de dia/rama
Coronoi- anume v2rful Z. Dac mulimea ! are n puncte atunci tot n v2rfuri
are dia/rama Coronoi dar /raful planar corespun$tor are n Y 1 v2rfuri.
>(. Co)l#*it&t#& &lgorit!l!i "# g:,ir# & )#r#$6ilor $#lor &i
apropiate ale mulimii ! B I6
1
- 6
2
- ... -6
n
J
6resupunem c am determinat dia/rama Coronoi a mulimii ! %i
avem %i ta'elul du'lu cone# al muc(iilor /rafului planar asociat. 1n aceast
situaie putem parcur/e conturul fiecrei re/iuni a /rafului- comple#itatea
acestei operaii fiind e/al cu numrul muc(iilor re/iunii.
6entru un punct fi#at 6
i
al mulimii ! parcur/em lista muc(iilor ce
constituie frontiera re/iunii punctului 6
i
. 0ceste muc(ii despart re/iunea
punctului 6
i
de alte re/iuni corespun$toare unor alte puncte 6
3
ale mulimii
!.
Din proprietatea 4? re$ult c printre aceste puncte se afl toate
punctele mulimii ! care se afl la distana minim de punctul 6
i
.
6entru fiecare punct 6
i
al mulimii ! se alctuie%te lista punctelor
celor mai apropiate puncte de punctul 6
i
precum %i distana comun
corespun$toare. Din aceste liste se rein cele pentru care distana este
minim. O'inem astfel lista tuturor perec(ilor de puncte ale mulimii !
aflate la distan minim.
1n ce prive%te comple#itatea al/oritmului admitem faptul c frontiera
unei re/iuni poate avea tot at2tea muc(ii c2te puncte are mulimea !- adic
n. 0r re$ulta c al/oritmul are comple#itatea n
2
.
<otu%i inem seam c fiecare muc(ie este luat "n calcul de e#act
dou ori. 6e de alt parte- am dedus- din teorema lui :uler c numrul
muc(iilor %i al v2rfurilor este de acela%i ordin de mrime ca %i numrul
re/iunilor care este n.
1n conclu$ie dac avem diagrama Boronoi a mulimii ! & I6
1
-
6
2
- ...-6
n
? ,i tabelul dublu cone1 al muchiilor grafului planar corespunztor
atunci algoritmul de determinare a listei perechilor de puncte aflate la
distana minim are comple1itatea n.
Construirea "ia!ramei )oronoi
0m artat cum pro'leme de pro#imitate privind mulimi ! de puncte
din plan se re$olv "n timp liniar dac se dispune de dia/rama voronoi a
acestei mulimi. Sunt %i alte pro'leme a cror re$olvare presupune de3a
construit dia/rama Coronoi.
6entru construirea dia/ramei se dispune de un al/oritm de
comple#itate nlo/n dac se asum ipote$a pe care am mai menionat!o %i
anume c mulimea ! nu are patru puncte pe acela%i cerc.
6re$entarea complet a acestui al/oritm- cu detaliile demonstrrii
consistenei- nu face o'iectul acestei e#puneri. &e mr/inim s dm o
descriere sumar a pa%ilor al/oritmului urmat de un e#emplu de aplicare a
acestuia.
0l/oritmul folose%te principiul cunoscut su' numele divide et impera.
Se "mparte mulimea ! "n dou su'mulimi- !
s
%i !
d
- apro#imativ e/ale ca
numr de elemente- dar "ndeplinind condiia c sunt separate printr!o linie
vertical de a'scis 1
(
8 6unctele din mulimea !
s
au a'scisa strict mai mic
dec2t 1
(
iar cele din mulimea !
d
au a'scisa strict mai mare dec2t 1
(
.
Se continu aceast divi$iune p2n c2nd se o'in su'mulimi suficient
de mici "nc2t s se poat construi direct dia/rama Coronoi a acestora- de
e#emplu dac se a3un/e la mulimi care au c2te trei sau patru puncte.
&umrul "mpririlor succesive este lo/
2
n.
Dup ce se o'in dia/ramele Coronoi ale mulimilor de pe ultimul
nivel- se cuplea$ dou c2te dou %i se o'in dia/ramele Coronoi ale
su'mulimilor de pe nivelul imediat superior. 9epet2nd acest proces se
a3un/e la dia/rama Coronoi a mulimii !.
Dificultatea al/oritmului const "n cuplarea dia/ramelor Coronoi a
dou su'mulimi. ;ai precis- folosindu!ne de dia/ramele Coronoi ale
su'mulimilor !
s
%i !
d
notate Cor
s
%i Cor
d
tre'uie construit dia/rama
Coronoi a mulimii !- pe care o notm Cor>!?
6rocesul de cuplare const "n adu/area unor noi muc(ii precum %i
eliminarea unora >sau poriuni? din muc(iile celor dou dia/rame.
Se folosesc "nf%urtoarele conve#e ale celor dou su'mulimi %i se
consider podul superior
s

d
%i podul inferior J
s
J
d
"n care
s
%i J
s
sunt
puncte ale mulimii !
s
iar
d
%i J
d
sunt puncte ale mulimii !
d
. Se consider
mediatoarele m
u
%i m
l
mediatoarele acestor se/mente.
1n continuare se parcur/e un drum de sus "n 3os- de la m
u
la m
l
"n pa%ii
cruia se adau/ la dia/ramele Coronoi ale celor dou su'mulimi noi
muc(ii %i se elimin unele din muc(iile vec(i sau poriuni ale acestora.
;ediatoarea m
u
serve%te drept suport al muc(iei Coronoi care
desparte re/iunea lui
s
de re/iunea lui
d
>acestea fiind puncte alturate de
pe "nf%urtoarea conve# a mulimii !- re/iunile lor vor avea ca muc(ie
comun o semidreapt situat pe mediatoarea m
u
?.
6e de alt parte- la distan suficient de mare pe mediatoare ne aflm
"n intersecia a dou re/iuni8 re/iunea Cor
s
>
s
? a lui
s
din dia/rama Cor
s
%i
re/iunea Cor
d
>
d
? cea a lui
d
din Cor
d
. ;ediatoarea va intersecta "ntr!un
punct 'ine determinat Q
s
frontiera re/iunii Cor
s
>
s
? %i "n punctul Q
d
frontiera re/iunii Cor
d
>
d
?. &otm Q
0
pe cel cu ordonata mai mare.
6unctul Q
0
va fi v2rf al dia/ramei nou construite Cor>!? iar
semidreapta de pe mediatoare de la infinit la Q
0
va fi muc(ie nou introdus
pentru dia/rama Cor>!?.
6e de alt parte- dac Q
0
B Q
s
atunci se elimin partea din muc(ia
re/iunii Cor
s
>
s
? de la Q
s
la infinit- iar dac Q
0
B Q
d
atunci se elimin partea
din muc(ia re/iunii Cor
d
>
d
? de la Q
d
la infinit.
1n ca$ul Q
0
B Q
s
- dac se continu deplasarea "n direcia mediatoarei-
se va trece "n re/iunea dia/ramei Cor
s
a unui punct
s4'
din !
s
care este
desprit de re/iunea Cor
s
>
s
? prin muc(ia lui Cor
s
care trece prin punctul
Q
s
. &e vom afla deci la intersecia re/iunilor Cor
s
>
s4'
? %i Cor
d
>
d
?.
1n aceast intersecie se /sesc punctele care sunt mai apropiate de

s4'
dec2t de toate punctele din !
s
%i mai apropiate de
d
dec2t de toate
punctele din !
d
* ;ediatoarea se/mentului
s4'

d
va despri re/iunea lui

s4'
de re/iunea lui
d
.
9emarcm c aceast mediatoare trece prin Q
s
deoarece acest punct
este centrul cercului circumscris triun/(iului
s

s'
. Deci din punctul Q
s
se
continu drumul pe direcia perpendicularei pe
s'

d
.
0nalo/ se procedea$ dac Q
0
B Q
d
.
Deplas2ndu!ne pe noua mediatoare >a lui
s'

d
? ne vom afla "n
intersecia re/iunilor Cor
s
>
s'
? %i Cor
d
>
d
? astfel c va intersecta "ntr!un
punct 'ine determinat frontiera primei re/iuni %i "n alt punct 'ine determinat
din frontiera celeilalte re/iuni. 6rimul dintre ele va fi noul v2rf Q
1
al
dia/ramei Cor.
Se repet procedeul p2n a3un/em la mediatoarea m
u
a podului
inferior.
EXEMPLU
6unctele 0- P- C constituie mulimea !
s
iar 0K- PK- CK mulimea !
d
.
Dia/rama Coronoi a mulimii !
s
are ca muc(ii mediatoarele laturilor
triun/(iului 0PC care se "nt2lnesc "n punctul O care este centrul cercului
0
P
C
CK
0K
PK
O
OK
Q
0
Q
1
Q
2
Q
,
m
u
m
l
circumscris acestui triun/(i. 6unctul O este sin/urul v2rf al dia/ramei
Coronoi a mulimii !
s
.
1n fi/ur sunt indicate muc(iile %i v2rful OK ale dia/ramei Coronoi a
mulimii !
d
.
6odul superior al celor dou mulimi este evident se/mentul 00K iar
cel inferior este PPK.
Se vede c mediatoarea m
u
a podului superior str'ate partea comun
a re/iunilor Coronoi ale punctelor 0 %i 0K . 1n aceast $on- cuprins "ntre
mediatoarele se/mentelor 0C %i 0KCK- sunt punctele care sunt mai apropiate
de 0 %i 0K dec2t de toate celelalte puncte. Deci "n aceast $on tre'uie
tran%at "ntre 0 %i 0K. 6oriunea din mediatoarea m
u
care se afl "n aceast
$on- >semidreapta lui m
u
av2nd captul "n Q
0
? este muc(ia dia/ramei
Coronoi a "ntre/ii mulimi ! care delimitea$ re/iunea lui 0 de re/iunea lui
0K.
1n punctul Q
0
mediatoarea m
u
traversea$ mediatoarea se/mentului
0KCK care desparte re/iunea lui 0K de re/iunea lui CK "n dia/rama Coronoi a
mulimii !
d
. Se trece astfel "n $ona comun dintre re/iunea lui CK din !
d
%i
tot re/iunea lui 0 din !
s
.
0ceste dou re/iuni sunt separate de mediatoarea se/mentului 0CK-
care trece prin Q
0
deoarece "n acest punct se "nt2lnesc mediatoarele laturilor
00K %i 0KCK ale triun/(iului 00KCK. Deci duc2nd perpendiculara din Q
0
pe
0CK aceasta este %i mediatoare a acestui se/ment.
6artea din mediatoarea lui 0KCK care trece dincolo de Q
0
nu mai are
nici un rol pentru dia/rama Coronoi a "ntre/ii mulimi.
6erpendiculara din Q
0
pe 0CK "nt2lne%te mediatoarea lui 0C "n
punctul Q
1
. Se/mentul Q
0
Q
1
este muc(ia comun dintre re/iunile lui 0 %i CK
"n dia/rama mulimii !.
1n punctul Q
1
se traversea$ mediatoarea lui 0C care separ re/iunea
lui 0 de re/iunea lui C "n dia/rama lui !
s
. Deci $ona "n care se trece este
comun re/iunilor lui C din !
s
%i a lui CK din !
d
.
6e de o parte poriunea din mediatoarea lui 0KCK care este dincolo de
punctul Q
1
nu mai face parte din dia/rama Coronoi a "ntre/ii mulimi !-
deci se %ter/e.
6e de alt parte- "n noua $on tre'uie s se separe re/iunea lui C de
re/iunea lui CK. 0ceast separare se face cu mediatoarea lui CCK care trece
prin punctul Q
1
care este intersecia dintre mediatoarele laturilor 0C %i 0CK
ale triun/(iului 0CCK.
;ediatoarea lui CCK "nt2lne%te frontiera re/iunii lui C din !
s
"n
punctul Q
2
de pe mediatoarea lui PC care separ re/iunea lui P de re/iunea
lui C din !
s
.
;ai departe se trece "n $ona comun dintre re/iunea lui P din !
s
%i
re/iunea lui CK din !
d
.
6e de o parte se %ter/e poriunea din mediatoarea lui PC situat
dincolo de punctul Q
2
.
6e de alt parte din Q
2
se continu "n direcia perpendicular pe PCK-
care va fi %i mediatoarea acestui se/ment.
0ceast mediatoare "nt2lne%te mediatoarea lui PPK >care este
mediatoarea m
l
a podului inferior? "n punctul Q
,
.
Se continu drumul din Q
,
pe direcia mediatoarei m
l
%i se %ter/e
poriunea din mediatoarea lui PKCK situat dincolo de punctul Q
,
.
1n final se o'ine dia/rama Coronoi a "ntre/ii mulimi ! care are O
v2rfuri8 O- OK- Q
0
- Q
1
- Q
2
- Q
,
. ;uc(iile acestei dia/rame sunt evideniate "n
desen prin linii "n/ro%ate. Din cele O re/iuni ale dia/ramei dou sunt
mr/inite %i anume re/iunea lui C- care este triun/(iul OQ
1
Q
2
- %i re/iunea
lui CK care este penta/onul OKQ
0
Q
1
Q
2
Q
,
.
Proleme
1. S se alctuiasc ta'elul du'lu cone# al /rafului constituit din .
v2rfuri8 0- P- C- D "n care punctul D este "n interiorul triun/(iului
0PC iar muc(iile- "n numr de O- unesc fiecare v2rf cu celelalte
trei.
2. S se determine dia/rama Coronoi a mulimii formate din
punctele 0- P- C- O "n care O este centrul cercului circumscris
triun/(iului 0PC.
,. Fie triun/(iul ascuitun/(ic 0PC %i D simetricul lui C fa de 0P.
&otm : %i F centrele cercurilor circumscrise triun/(iurilor 0PC
%i respectiv 0PD. Se cere dia/rama Coronoi a mulimii formate
din punctele 0- P- C- D- :- F.

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