HAL Id: inria-00072646
https://hal.inria.fr/inria-00072646
Submitted on 24 May 2006
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
An Elementary Algorithm for Reporting Intersections of Red/Blue Curve Segments
Jean-Daniel Boissonnat, Antoine Vigneron
To cite this version:
Jean-Daniel Boissonnat, Antoine Vigneron. An Elementary Algorithm for Reporting Intersections of
Red/Blue Curve Segments. [Research Report] RR-3999, INRIA. 2000, pp.13. �inria-00072646�
ISSN 0249-6399 ISRN INRIA/RR--3999--FR+ENG
a p p o r t
d e r e c h e r c h e
THÈME 2
INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE
An Elementary Algorithm for Reporting Intersections of Red/Blue Curve Segments
Jean-Daniel Boissonnat — Antoine Vigneron
N° 3999
Septembre 2000
Unité de recherche INRIA Sophia Antipolis
2004, route des Lucioles, B.P. 93, 06902 Sophia Antipolis Cedex (France)
Téléphone : 04 92 38 77 77 - International : +33 4 92 38 77 77 — Fax : 04 92 38 77 65 - International : +33 4 92 38 77 65
!,.-0/1243527698:! (
;=<?>=@ABC>=@$DE<GFHJIKDMLNLOIK@@P>RQ?SPT@'QUIKDE@$<WVCDEXK@$<GYNIK@
Z\[#]U^W_a`abdcfeUg'hi_:jik?lmhinUhi_Uj
_UonqpGjinUr'jtsu=^av$k?jwhixyr#_
z!{kG|_Uoz!{his^W_
}JpG~'~$k?{o'_:{_n[#_U{n[#_gmmm bd=_U~'o_U^v'{_`mmmb q~7pGl_s
"q' _UopGg#fv$_o0ks_Uos:kG\ #¡¢^Wk?g#k?ok?g#_.pGg#£g#k?gK¡¢hwgRo_U{s_nUohwg'l£nUr'{¤_
s_Ulm^W_Ugyosq¥\§¦J¨WpGg#ª©«©0¦¬!¯®°_±lmhw¤_²p£g#_U&s0__U~K¡¢jwhwg#_²pGjwlk?{hwo['^§o[7pGo
{_U~$k?{osCo[#_³´hwgyo_U{s_nUohwg'l°~7pGhw{sWkGµs_Ulm^W_UgyosWkGf.·¶Jr'{.pGjwlk?{hwo['^r#s_sk?g'jwu¸o['{__
shw^~'ji_~'{_KhinqpGo_sfo[7pGo:pGjwjikq¹ok.'_nUhi'_hº!o»k¼s_Ulm^W_UgRosµhwgyo_U{s_nUoq¥hº»p.~k?hwgRohisJji_O½ofk?{
{hwlm[RoJok«pGg#k?o[#_U{J~$k?hwgyoq¥$pGg# hº»pW~k?hwgRohisfpGvk¾¤_m¥7v$_Ujikq¹k?{µk?g£ps_Ulm^W_UgRoqZ\[#_s_ao['{__
~'{_KhinqpGo_sµs__U^4okWv_:o[#_ashw^~'ji_so~'{_KhinqpGo_sJo[7pGoji_qp? ok.sr'vxRr7p?K{pGohinapGjwlk?{hwo['^Wsq
¶Jr'{apGjwlk?{hwo['^hisapGjw^Wkmsok?~'ohw^.pGj»hwgo['his:{_so{hinUo_^Wk='_Uj¿kGÀnk?^~'r'opGohik?g*.ÁÂosfohw^W_
nk?^~'ji_OÃKhwou¼hisJÄWÅÅƬ"Ç·³7ÈyÉwÊmË\¬È»pGg#±hwoÀ{_xRr'hw{_sµÄÅƬȿs~7p?n_m
Z\[#_spG^W_pGjwlk?{hwo['^Ì[7p?sµv__Ug£'_snU{hwv$_²hwg²k?r'{µ~'{_U¤Rhik?r#sµ{_U~$k?{oÍÏÎеZ\[7pGoµ{_U~$k?{o
~'{_s_Ugyo_ÑpGjiskWpGgpGjwlk?{hwo['^4Æk?{Ào[#_:l_Ug#_U{pGjtnqp?s_:v'r'ohwospGg7pGjwu=shisÀ0p?sÀg#k?oJnk?{{_nUoq
Ò ÓÔ$ÕÖ× ØÚÙ k?^~'r'opGohik?g7pGjcf_k?^W_Uo{u¥}k?v'r#sog#_ss¾¥7ÛÃ#p?nUoµpG{hwo['^W_Uohinm¥*R»__U~K¡¢jwhwg#_
pGjwlk?{hwo['^Ws
Ü$ÝGÞÏßà$áâ¢ãµÝGäNßåmæçæéè:ê?äâÆë¢ÞìäíÏíÏîßÆïêGêmáâÆë¢æðfåîJë¢Ýæ»ñòó#ôtõöÜ õ½÷°ø¾Ü$ôó#â¢áùöæéúÂë!ûáJüý¾þÿNÿ øRõ
äNè?ðë¢ÝGæ*úÂë¢ÞÏáNè:ðæôtæú¢ÝGæçâú¢ÝGæ ááOêçâäë¢ÞOæçáçëÆâ¢Þúéä
!(7!)ta( ,2 a( C!(1, ) ( , ) J2a.
=k?hwo'_UrKÃ _Ug#s_U^av'ji_sJÏpG{ns'_:nk?r'{v$_: #¡¢^Wk?g#k?ok?g#_sJ_UoKhisö|k?hwgyosJKr±~'jEpGg
_UoU¥m¹¦ ¨Àt_Uo¬¦ ©¼©¶Jg~'{es_UgRo_\r'gg#k?r'¤_Uj#pGjwlk?{hwo['^W_\~7pG{v7pGjEpuypGl_ÀxRr'h
'eUo_U{^hwg#_fji_s³.~7pGhw{_sÀÏpG{ns'_f xRr'hPs_fnk?r'~_UgRoq Ù _UopGjwlk?{hwo['^W_:gr'ohwjwhis_:xRr#_µo{k?his
~'{eKhinqpGos\eUjieU^W_UgRopGhw{_sÀxyr'h#~$_U{^W_Uoo_UgyoÀ'_J'enUhi'_U{0sh'_UrKÃ"pG{ns»s_nk?r'~_UgRoq¥Ksh7r'g"~k?hwgRo
_soK{k?hwo_ak?rlypGr#n[#_ar'g£pGr'o{_m¥7_UoshPr'g ~k?hwgRoJ_sopGrÑ'_ssr#sq¥#sr'{q¥#k?rÑpGr'_ssk?r#s
r'g±pG{nm Ù _s0o{k?his0~'{eKhinqpGosÀs_U^av'ji_UgRoUo{_µji_s»~'jwr#s\shw^~'ji_s0~'{eKhinqpGosÀxRr'h~$_U{^W_Uoo_Ugyo
k?v'o_Ug'hw{µr'gÑpGjwlk?{hwo['^W_sk?r#sé¡xRr7p?K{pGohixyr#_m ÏpGjwlk?{hwo['^W_Cpr'g#_ank?^~'ji_OÃKhwoe_Ug o_U^~#s
'_²ÄÅÅƬ²Ç¹³7ÈyÉwÊmË0¬È¥0n_xyr'h_so.~'{_sxyr#_k?~'ohw^.pGjJ#pGg#s.n_ ^WkR']Uji_ '_nqpGjinUr'j¢¥0_Uo.r'g#_
k=nnUr'~7pGohik?g ^WeU^Wk?hw{_'_aÄÅƬȥ#n_:xRr'ht_sok?~'ohw^.pGj¢
_^U^W_pGjwlk?{hwo['^W_p´eUoeÑ'enU{hwo¼#pGg#s«r'g5{pG~'~$k?{o"~'{ene'_UgRo°ÍÏÎÐ
Ù
_Ñ{pG~'~$k?{o
~'{es_UgyopGhwopGr#ssh=r'gCpGjwlk?{hwo['^W_\~$k?r'{ji_»nqp?sleUg#eU{pGjK^.pGhissk?gCpGg7pGjwuKs_»g_so~7p?snk?{{_nUo_m
¹× q Õ c:ek?^WeUo{hi_²pGjwlk?{hwo['^hixRr#_m¥}k?v'r#so_ss_m¥{hwo['^WeUohixRr#_²_OÃ'p?nUo_m¥JjwlkG¡
{hwo['^W_sJ'_fv7pGjEpuypGl_
3
%K:,C2a)tJ
Z\[#_r#sr7pGj#^Wk='_Uj#okapGg7pGjwu4q_Àl_k?^W_Uo{hinJpGjwlk?{hwo['^Ws»his!o[#_}J_qpGj7}654À['hin[.his¿p?ssr'^W_
oknk?^~'r'o_J_OÃ#p?nUojwuÀhwo[.{_qpGjgyr'^v_U{sfÍwqÎGÐZ\['his»^WkR'_Uj['hi'_s¿o[#_Æp?nUo¿o[7pGo»o[#_µpG{hwo[K¡
^W_UohinkG{_qpGj#nk?^~'r'o_U{s»[7p?s¿pµjwhw^hwo_~'{_nUhishik?g«pGg#hwlmg#k?{_sgRr'^W_U{hinqpGjpGg#{k?v'r#sog#_ss
hissr#_sq Js0pank?g#s_xyr#_Ug#n_fpKhw{_nUo\hw^~'ji_U^W_UgyopGohik?g kG pGg±pGjwlk?{hwo['^ o[7pGo»his0nk?{{_nUo0r'gK¡
'_U{!o[#_}_qpGj#}654^Wk='_Uj7'k=_s!g#k?og#_n_ssNpG{hwjwuo{pGg#sjEpGo_hwgyokpµ{k?v'r#so»pGg#17Gk?{¿_8.nUhi_Ugyo
~'{k?lm{pG^ ¥pGg# nqpGop?so{k?~'['hinv$_U[7p¤=hik?r'{sJpG{_ank?^^Wk?g'jwu¼k?v#s_U{¤_P
:9#{so!pG~'~'{kp?n[okµ{_U^W_Kuao['his~'{k?v'ji_U^hisokr#s_»_OÃ#p?nUopG{hwo['^W_Uohinm!Ágo[#_\nk?gyo_OÃKo
kG l_k?^W_Uo{hinpGjwlk?{hwo['^Wsq¥'^ar#n[±~'{k?lm{_ss\[7p?s0v__Ug±'k?g#_fhwg«o[#_µ{_n_UgyoÀ~7p?so:Íw;'¥q'¥<'¥
=?Ð Jg#k?o[#_U{±pG~'~'{kp?n[*¥ok´v$_ Æk?jwjikq0_ [#_U{_m¥À[7p?s¼_U^W_U{l_5{_n_UgRojwu?>f_nUhishik?g#s¼hwg
l_k?^W_Uo{hin£pGjwlk?{hwo['^Ws«'_U~_Ug#5k?g¯l_k?^W_Uo{hin~'{_KhinqpGo_s«À['hin[1pG{_ r#sr7pGjwjwu·pGjwl_Uv'{pGhin
_OÃK~'{_sshik?g#s¾A@#k?{_OÃ'pG^~'ji_m¥'ök?{po{hw~'ji_kG~k?hwgRoslmhw¤_Ug±vRu"o[#_Uhw{nqpG{o_shEpGgnkRk?{Khwg7pGo_s¾¥
'_nUhiKhwg'lÑÀ[7pGohis:o[#_Wk?{hi_UgRopGohik?g¸kGÀo[#_o{hEpGg'lmji_.{_Kr#n_sok _U¤mpGjwr7pGohwg'lCB½o[#_"shwlmg°kGD
p^ar'jwohw¤mpG{hEpGo_~$k?jwuRg#k?^hEpGjJkG:'_Ulm{__o0k'1ÁpGg5pGjwlk?{hwo['^§k?g'jwu r#s_s.~'{_KhinqpGo_s"kG
'_Ulm{__`«p?sµpWör'g#nUohik?g£kG»o[#_ahwg'~'r'o:#pGopK¥PpGg#²hºo[#_hwg'~'r'of#pGop¼pG{_nk='_p?sJshw^~'ji_
9'Ã'_ ~'{_nUhishik?gÑgRr'^av$_U{sq¥nk?^~'r'opGohik?g#s:nqpGgÑv_'k?g#_a_OÃ#p?nUojwu±r#shwg'l«o[#_g7pGohw¤_'k?r'v'ji_
~'{_nUhishik?g±[7pG{K0pG{_akGo[#_:nk?^~'r'o_U{qZ\[#_'_Ulm{__:kG!pGgpGjwlk?{hwo['^4his\o[#_U{_Oök?{_{_UjEpGo_
okao[#_~'{_nUhishik?g«{_xRr'hw{_.oka{r'g¼pGg¼pGjwlk?{hwo['^ r#shwg'l_OÃ#p?nUo0pG{hwo['^W_UohinmZ\['his»^Wk?ohw¤?pGo_s
o[#_»'_shwlmgkG7_8.nUhi_UgRopGjwlk?{hwo['^WskG'jik¾¸'_Ulm{__m}_Kr#nUhwg'lJo[#_»'_Ulm{__0kG'o[#_0pGjwlk?{hwo['^Ws
Àhwjwj!{_Kr#n_Wo[#_Cgyr'^av$_U{pGg#£o[#_nk?^~'ji_OÃKhwoukG\o[#_'_Ul_Ug#_U{pGo_Wnk?g9#lmr'{pGohik?g#sq¥ ^.pFE_
o[#_pGjwlk?{hwo['^Wsµ^Wk?{__Uji_U^W_UgRopG{u²pGg# ^Wk?{_l_Ug#_U{pGj¢¥{_Kr#n_ao[#_pG^Wk?r'gyo:kGgyr'^W_U{hinqpGj
nk?^~'r'opGohik?g#s¾¥À['hin[1his"r#sr7pGjwjwu xRr'hwo_ÑpjEpG{l_ö{p?nUohik?g1kGo[#_Ñok?opGjµ_OÃ'_nUr'ohik?g1ohw^W_
_s~_nUhEpGjwjwuhº^ar'jwohº¡¢~'{_nUhishik?g"nk?^~'r'ohwg'lhishwgR¤kE_P¥=pGg#C~$kmsshwv'jwupGjiskf{_O½{pGhwgo[#_\r#s_\kG
nk?^~'jwhinqpGo_#pGopso{r#nUor'{_sÀ{_sr'jwohwg'lhwg±jik¾+s~7p?n_f{_xRr'hw{_U^W_UgyosqHGJk¾»_U¤_U{q¥'{_Kr#nUhwg'l
o[#_À'_Ulm{__ÀkG*pGg.pGjwlk?{hwo['^ ^.pquhwg#nU{_qp?s_hwosohw^W_Ànk?^~'ji_OÃ=hwoÂuhwgo[#_À}J_qpGj#}65 ^Wk='_Uj¢
@7k?jwjikqÀhwg'l hik?oop_Uo\pGj¢ÍwqGÐ¥R»_µnk?g#shi'_U{»o[#_µ'_Ulm{__fkG*o[#_~'{_KhinqpGo_sÀp?s\pGg¼p?'Khwohik?g7pGj
^W_qp?sr'{_kGo[#_nk?^~'ji_OÃ=hwoÂuÑkG~'{k?v'ji_U^Ws:pGg#£pGjwlk?{hwo['^Wsq¥PpGg#hwgRo_Ug#Ñok"_Ujwr#nUhi#pGo_o[#_
{_UjEpGohik?g#s['hw~"v$_Uo0__Ug"ohw^W_O¡nk?^~'ji_OÃKhwou¼pGg#.'_Ulm{__µkG$o[#_~'{_KhinqpGo_sq!}_UjEpGo_.{_s_qpG{n[
nqpGgv_µÆk?r'g#¼hwgJIfgyr'o[sJs_U^hwg7pGj*0k?{E£Íwq`?Ð pGg#±hwg sk?^W_:{_n_UgRo~7pG~_U{sÍwqK¥=7¥#Ð
Ágo['his ~7pG~$_U{q¥?»_\nk?g#shi'_U{o[#_0~'{k?v'ji_U^kG#{_U~k?{ohwg'lfo[#_À³:hwgRo_U{s_nUohwg'l:~7pGhw{s!pG^Wk?g'l
ps_Uo kG7¬. #¡¢^Wk?g#k?ok?g#_\nUr'{¤_0s_Ulm^W_Ugyosq ®°_\p?'K{_ssto[#_»{_17v'jwr#_\nqp?s_m¥GÀ[#_U{_¿o['hiss_Uo his
~7pG{ohwohik?g#_Whwgyok:o»ksr'v#s_UokGg#k?ghwgyo_U{s_nUohwg'ls_Ulm^W_UgRosqZ\['his!~'{k?v'ji_U^nqpGgv$_0sk?jw¤_
hwgÑk?~'ohw^.pGjÄÅƬ:ÉwÊmË0¬.Ç ³7È»ohw^W_.ÍK<K¥7K¥*ÐLGµkq»_U¤_U{µo[#_s_pGjwlk?{hwo['^Wsr#s_~'{_KhinqpGo_sJkG
['hwlm[Ñ'_Ulm{__m¥#_ml#oknk?^~7pG{_ao[#_apGv#snUhissp?_:kGo0kWhwgRo_U{s_nUohik?g~$k?hwgyosJk?{okjik=nqpGo_pGg
hwgRo_U{s_nUohik?g.~$k?hwgyo»Àhwo[W{_s~$_nUookpf¤_U{ohinqpGjsjEpGv*Z\[#_s_À~'{_KhinqpGo_s[7pq¤_Jp:'_Ulm{__JpGg#
pGg«pGjwl_Uv'{pGhinJnk?^~'ji_OÃKhwouo[7pGo\pG{_r#sr7pGjwjwuC['hwlm[#_U{¿o[7pGg"o[#_hwgRo_U{s_nUohik?g"~'{_KhinqpGo_Mo['his
hisfhwg£~7pG{ohinUr'jEpG{o[#_Cnqp?s_Æk?{fjwhwg#_s_Ulm^W_UgyosapGg#nUhw{nUji_s_Ulm^W_UgyosÍÏжJr'{apGjwlk?{hwo['^Ws
ô ô&èONPQQQ
k?g'jwuÑr#s_o[#_Chwgyo_U{s_nUohik?g~'{_KhinqpGo_WpGg#£o»k±k?o[#_U{shw^~'ji_~'{_KhinqpGo_s Mo[#_~'{_KhinqpGo_
o[7pGosk?{os:o0k±~k?hwgRosvRu£pGv#snUhissp?_m¥tpGg#£o[#_~'{_KhinqpGo_o[7pGospuKsfhºÀp«~$k?hwgyo:hisv_Ujik¾¥
k?g*¥Àk?{¼pGvk¾¤_Ñps_Ulm^W_Ugyoq ÁÂg ~7pG{ohinUr'jEpG{q¥»_²'k°g#k?o"nk?^~'r'o_Ño[#_ÑpG{{pGg'l_U^W_UgRo¼g#k?{
o[#_.o{pG~_4qk?hi#pGj0^.pG~´kGÀo[#_"s_Ulm^W_Ugyosq+5²k?{_kq¤_U{q¥o[#_.~'{_KhinqpGo_sa0_.r#s_W'k g#k?ospu
pGgRuRo['hwg'l«pGvk?r'oÀo[#_fgRr'^av$_U{k?{Ào[#_:~$kmshwohik?g#sÀkGo[#_fhwgRo_U{s_nUohik?g ~$k?hwgyosq¥pGg#¼o[#_fohw^W_
nk?^~'ji_OÃKhwou5kGo[#_s_ÑpGjwlk?{hwo['^Ws¼'_U~$_Ug#'s"k?g'jwu¯k?g5o[#_gRr'^av$_U{«kGhwgRo_U{s_nUohwg'l ~7pGhw{s
kGs_Ulm^W_UgRosq¥g#k?oo[#_WgRr'^av$_U{kGÀhwgRo_U{s_nUohik?g´~$k?hwgyos BöKhP_U{_Ugyojwu£ö{k?^ o[#_Wk?o[#_U{g#k?g
o{hw¤=hEpGj pGjwlk?{hwo['^WsÍÏ`K¥7K¥);K¥)<'¥POÐ2DO
Z\[#_Cohw^W_Wnk?^~'ji_OÃ=hwoÂukG\k?r'{apGjwlk?{hwo['^ hisÄÅÅƬ±Ç1³7ÈyÉwÊmË0¬È¥PÀ['hin[hisp«jik?l¼¢p?nUok?{
ö{k?^ k?~'ohw^.pGj*pGg#"hwo¿r#s_s0k?~'ohw^.pGjPs~7p?n_:ÄÅƬÈZ\['his0{_sr'jwo¿l_Ug#_U{pGjwh4q_spashw^hwjEpG{»{_sr'jwo
Æk?{o[#_nqp?s_kG$~#s_Ur#'kG¡s_Ulm^W_Ugyos¾¥Rh¢_m!s_Ulm^W_Ugyos»o[7pGohwgyo_U{s_nUo0hwg"pGo^Wkmso»k?g#_À~$k?hwgyoµÍÏGÐ
®°_Cji_qpG{g#_°{_n_Ugyojwu£o[7pGoaZ: Ù [7pGg[7p?shwg#'_U~$_Ug#'_Ugyojwu°k?v'opGhwg#_p¼KhP_U{_UgyoCpGjwlkG¡
{hwo['^ o[7pGo.r#s_s«ps_Ulm^W_Ugyoé¡¢o{__ Í ¾Ð ÁÂosWohw^W_O¡nk?^~'ji_OÃKhwou5his¼ÄWÅÅƬ£Çª³7ÈyÉwÊmË0¬È¥
À['hin[hisav_Uoo_U{o[7pGgo[#_Wohw^W_.nk?^~'ji_OÃ=hwoÂukGk?r'{pGjwlk?{hwo['^ Æk?{³°¦:ÅƬ
ÈJv'r'ohwo
r#s_sJÄÅƬ.ǯ³7È¿s~7p?n_m
nUr'{¤_¼s_Ulm^W_UgRoChisa / O O ahºhwohiso[#_.lm{pG~'[·kGJp~7pG{ohEpGjwjwu´'_9#g#_¸r'g'hw¤mpG{hEpGo_
ör'g#nUohik?g B½h¢_mJpGgyu±¤_U{ohinqpGjjwhwg#_hwgRo_U{s_nUosfsr#n[£pWs_Ulm^W_UgRoJhwg£pGoJ^Wkmsoµk?g#_~$k?hwgyoDO _Uo
ª¦ ¨.¿v_:ps_UoÀkG ¬Ñ #¡¢^Wk?g#k?ok?g#_:nUr'{¤_:s_Ulm^W_UgRosÀsr#n[¼o[7pGoÀg#ko»k.s_Ulm^W_UgyosÀkG
B½{_s~*»J D0hwgyo_U{s_nUoq\Z\[#_:~'{k?v'ji_U^9hisÀok.{_U~k?{oo[#_³«~7pGhw{sJkG!s_Ulm^W_UgRosJkG o[7pGo
hwgRo_U{s_nUoq
_Uo¼pGg# "!v$_.o»k£s_Ulm^W_UgyoskGµ pGg#ji_Uo$#¯pGg#&% v_"o0k²_Ug#K~$k?hwgyoskGµsk?^W_
s_Ulm^W_UgyosakG"¥*g#k?og#_n_ssNpG{hwjwu£kG'.k?{( ! . Å#PÈJpGg#*)Å#Pȵ'_Ug#k?o_o[#_Wnk=k?{Khwg7pGo_skG
# ¥*pGg#+Åö tÈÀ'_Ug#k?o_so[#_C~k?hwgRokG,CÀ[#kms_WpGv#snUhissp"hisf B½hºÀsr#n[p"~$k?hwgyo_OÃKhisosDOa®°_
nk?g#shi'_U{o[#_fÆk?jwjikqÀhwg'lW~'{_KhinqpGo_s M
- Ó Ø.½K Ó*/ 1023!54¦76
- Ó Ø.½K Ó98 Å#PÈ;:· Å<%yÈ
- Ó Ø.½K Ó>= )Å#*È1:?)Å@Åö Å#PÈÈÈ
- Ó Ø.½K ÓBA )Å@yÅö Å#*ÈÈÈ;:?)Å@3!öÅö Å#*ÈÈÈ
- Ó Ø.½K Ó9C ED BF&G Å#PÈIH Å<%È<Jsr#n[o[7pGo$Åö tȦK !Åö tÈ
z!{_KhinqpGo_"ahis^.pGg##pGok?{uÀz!{_KhinqpGo_`WpGjwjik¾sok"sk?{oo[#_a_Ug#K~k?hwgRosqÀz!{_KhinqpGo_
o_UjwjisÀ[#_Uo[#_U{pGg°_Ug#K~k?hwgRojwhi_spGv$kq¤_Wk?{:v$_Ujikq p«s_Ulm^W_UgRoqz!{_KhinqpGo_ =±~'{k¾¤Rhi'_so[#_
k?{'_U{0kG*o0ks_Ulm^W_Ugyos\pGjik?g'lCp¤_U{ohinqpGjjwhwg#_J~7p?sshwg'lo['{k?r'lm[¼pGg«_Ug#K~k?hwgRoqz!{_KhinqpGo_:Î
n[#_n EKs*À[#_Uo[#_U{ o»kJs_Ulm^W_Ugyosthwgyo_U{s_nUo Àhwo['hwgp\¤_U{ohinqpGjysjEpGva'_9#g#_:vyufo»k_Ug#K~$k?hwgyos¾
õ½ûôtõ
®°_a'kWg#k?ofs~$_nUhº½u pC~'{_nUhis_a{_U~'{_s_UgRopGohik?g²ök?{Jo[#_as_Ulm^W_UgRosq¥7À['hin[£^.pu '_U~$_Ug#
k?g¼o[#_:pG~'~'jwhinqpGohik?g*L@7k?{\_OÃ#pG^~'ji_m¥Ko[#_µör'g#nUohik?g±p?sskRnUhEpGo_«okps_Ulm^W_UgyoÀ^.pqu.v$_µlmhw¤_Ug
_OÃK~'jwhinUhwojwuok?l_Uo[#_U{¿Àhwo["o[#_hwgRo_U{¤?pGjÀ[#_U{_hwo»his¿'_9#g#_P¥=k?{¿o[#_Àör'g#nUohik?g.^.pquv_lmhw¤_Ug
hw^~'jwhinUhwojwu£p?sµo[#_pGjwl_Uv'{pGhinör'g#nUohik?gkG»'_Ulm{__«o[7pGoµhwgRo_U{~k?jEpGo_sfÇlmhw¤_Ug²~$k?hwgyos
B½hwg#nUjwr#Khwg'l²o[#_«_Ug#K~k?hwgRoskGo[#_"s_Ulm^W_UgyoDO£¶Jo[#_U{{_U~'{_s_UgRopGohik?g#sWpG{_"pGjisk~kmsshwv'ji_m
Z\[#_.'_Ulm{__skGÀo[#_~'{_KhinqpGo_snUji_qpG{jwu°'_U~_Ug#´k?g°o[#_Wn[#kms_Ug{_U~'{_s_UgRopGohik?g* ÁÂgo[#_
opGv'ji_\v$_Ujikq Bös__pGjiskÍÏK¥KmUÐ2DO¥mo[#_À'_Ulm{__skG$z!{_KhinqpGo_s»`¡ÂÎ:pG{_\lmhw¤_UgCÆk?{!jwhwg#_Às_Ulm^W_Ugyos
{_U~'{_s_Ugyo_¼vyu«o[#_fnkRk?{Khwg7pGo_skGto[#_Uhw{_Ug#K~k?hwgRosq¥=Æk?{0[7pGjº½¡nUhw{nUji_sÀ'_9#g#_¼vyu¼n_Ugyo_U{s¾¥
{p?Khwht~'jwr#sJpv$kRk?ji_qpGgCB½ok.Khisohwg'lmr'his[ v$_Uo0__Ugo[#_:r'~'~$_U{JpGg#±o[#_:jik¾»_U{fpG{n DO¥'Æk?{nUhw{nUji_
s_Ulm^W_Ugyos'_9#g#_vyu¼o['{__:~$k?hwgyos B½hwg#nUjwr#Khwg'l.o[#_:o»k._Ug#K~$k?hwgyosJkGo[#_as_Ulm^W_UgyoDO¥pGg#
Æk?{JnUr'{¤_sf'_9#g#_²vyu²p~$k?jwuRg#k?^hEpGj_xyr7pGohik?g )¼¦Åö tȵ¶Jv#s_U{¤_o[7pGoµo[#_a~'{_KhinqpGo_s
pG{_fk?{'_U{_¼vRu.hwg#nU{_qp?shwg'lW'_Ulm{__sÀhwg pGjwj$o[#kms_fnqp?s_sqAGµkq0_U¤_U{q¥'o['hisÀk?{'_U{À^.pu"v_fKhº½¡
Æ_U{_UgyoÆk?{sk?^W_\k?o[#_U{!ou=~_s!kGs_Ulm^W_UgyosqA@#k?{hwg#sopGg#n_m¥mök?{[7pGjº½¡nUhw{nUji_s'_9#g#_Cvyuo['{__
g#k?g² #¡_OÃKo{_U^W_~k?hwgRosq¥7o[#_'_Ulm{__kG¿z!{_KhinqpGo_W`hisf`mWÀ['hwji_o[#_'_Ulm{__kG¿z!{_KhinqpGo_
hisk?g'jwu =#
z!{_KhinqpGo_ '_Ulm{__
jwhwg#_ [7pGjº nUhw{nUji_ ~k?j¢!kG
s_Ulm^W_UgRo nUhw{nUji_ s_Ulm^W_UgRo '_Ulm{__
~$k?hwgyos
` ` q`
`
` ` =
=#¥ÏÎ = q`
¶Jr'{.pGjwlk?{hwo['^k?g'jwu´{_xRr'hw{_sC~'{_KhinqpGo_sm¥Ï`£pGg#¯ÑÀ['hwji_±k?o[#_U{Wg#k?gK¡¢o{hw¤=hEpGjpGjwlkG¡
{hwo['^WsÀÍÏ`#¥?K¥O;K¥O<K¥KUÐ2Dt^.pFE_\r#s_\kGk?r'{ 9#¤_\~'{_KhinqpGo_sqZ\[yr#so[#_Uua[7p¤_\['hwlm[#_U{¿pGjwl_Uv'{pGhin
'_Ulm{__JÀ[#_Ug.0_Jnk?g#shi'_U{»jwhwg#_Js_Ulm^W_Ugyosq¥=[7pGjºtnUhw{nUji_s0k?{»nUhw{nUji_s0'_9#g#_.vRuWo['{__~$k?hwgyos¾
$é$
ÁÂg±o['hiss_nUohik?g*¥ B½{_s~*D0'_Ug#k?o_sµpv'jwr#_0B½{_s~*!{_1DÀs_Ulm^W_Ugyoq¥'o[7pGohis,F JÀpGg#
$F?!®°_fÀhwjwj*~'{kq¤_ao[#_µök?jwjik¾Àhwg'l.{_sr'jwoM
ÓR× Ó /H " %(')' -F /01 21 O %/ I %-F" 2aÄÅÅƬÇ
³7ÈyÉwÊmË0¬È6 2/0 O"ÄÅÆ¬È ' 2 "IO HBO"
®°_:~'{_s_UgyoµpCg#_U ~'jEpGg#_s0__U~ÑpGjwlk?{hwo['^4Æk?{o['hisÀ~'{k?v'ji_U^ +¤_U{ohinqpGjs»__U~jwhwg#_
^Wk¾¤_sp?nU{kmss:o[#_W~'jEpGg#_Cö{k?^ ji_Oöook±{hwlm[Roq.®1[#_Ug°hwo{_qp?n[#_spGg¸_Ug'~k?hwgRoq¥ sk?^W_.#pGop
ô ô&èONPQQQ
so{r#nUor'{_s«pG{_r'~#pGo_1pGg#¯hwgyo_U{s_nUohik?g#s±nqpGg v$_±{_U~k?{o_P \o¼pGgyu·ohw^W_m¥\0_Ñk?g'jwu
nk?g#shi'_U{ 2-Fs_Ulm^W_UgyosÀ['hin[£pG{_:o[#_:s_Ulm^W_Ugyoso[7pGonU{kmssÀo[#_as»__U~ jwhwg#_m
±Ó .M .×K/ "C21 ' 21 O H %'
/01 (" "0 /01 U ' L % "O1 -F UO" O
H %2 "O1 U
Ág o[#_²Æk?jwjikqÀhwg'l sr'v#s_nUohik?g#sq¥µ»_°'_snU{hwv_pGg+pGjwlk?{hwo['^ o[7pGo {_U~k?{os o[#_ "
hwgRo_U{s_nUohik?g#sqZ\[#_k?o[#_U{fhwgRo_U{s_nUohik?g#sapG{_{_U~k?{o_²vRuo[#_CspG^W_pGjwlk?{hwo['^ p½o_U{:_OÃ=¡
n[7pGg'lmhwg'l"o[#_k?{hi_UgyopGohik?gkG!o[#_uy¡ÂpÃKhisk?{Jo[#_ank?jik?{sµkGo[#_as_Ulm^W_UgRosqZ\[#_pGjwlk?{hwo['^
okCv$_:'_snU{hwv$_±hisÀo[#_U{_OÆk?{_apG~'~'jwhi_±Æk?r'{Àohw^W_sq
"!#$ %$&'
Z\[#_hi'_qphisokW{_U~k?{oo[#_alkRk=¼hwgyo_U{s_nUohik?g#sJÀ['hwji_a~'r#s['hwg'lWo[#_av'jwr#_s_Ulm^W_Ugyosµ'kqÀgK¡
\pG{'sqÛ¿p?n[°v'jwr#_s_Ulm^W_Ugyo:his:sok?{_£hwgp«s_Uo)(Å GÈ0Æk?{:sk?^W_Wp?nUohw¤_C{_s_Ulm^W_UgRoUm
Z\[#_fs_Uo\kG s_Ulm^W_UgRosÀhwg*(Å È!Àhwjwj$v_J^.pGhwgyopGhwg#_Kr'{hwg'lo[#_fs0__U~*ÁÂo0nk?g#shisos0kG o[#_
v'jwr#_fs_Ulm^W_UgRosÀo[7pGoÀnqpGg'g#k?oÀv_J~'r#s[#_¼'kqÀg±v$_nqpGr#s_µo[#_Uu«pG{_µv'jik=n E_±_Uhwo[#_U{ÀvRu Uµk?{
vRu"o[#_jikq»_soJs_Ulm^W_UgRokG"(CÅ UGÈ
Z\[#_apGvk¾¤_ 7v_Ujik¾+{_UjEpGohik?g#s['hw~ÑÀhwo['hwg B½{_s~*D0hisp~7pG{ohEpGjk?{'_U{q¥'À['hin[Ñhisp
ok?opGjk?{'_U{À[#_Ug {_so{hinUo_ok.p?nUohw¤_s_Ulm^W_Ugyos¾»®°_Àhwjwjt^.pGhwgyopGhwg²o[#_ak?{'_U{_jwhisokG
o[#_"p?nUohw¤_W{_°s_Ulm^W_UgRosahwg¸p¼v7pGjEpGg#n_s_qpG{n[o{__f|ér#so:jwhE_.hwg Ù [7pGgspGjwlk?{hwo['^ ÍK<GÐ
Æk?{À{_=¡¢v'jwr#_s_Ulm^W_UgRosq
@#k?{_qp?n[ v'jwr#_:s_Ulm^W_Ugyo q¥K»_p?ssk=nUhEpGo_p{_±s_Ulm^W_Ugyo,+ÂÅ qOÈ!®°_fÀhwjwjP{_xRr'hw{_fo[7pGo
o[#_fo»kWök?jwjik¾Àhwg'l.~'{k?~$_U{ohi_s{_U^.pGhwgspGohis97_ Kr'{hwg'lWo[#_nk?r'{s_:kGo[#_apGjwlk?{hwo['^ M
- ×-Ó Ô7/ " 21 O+ q.A & " O/ 1 .%( -/+ÂÅ qOÈ
-F O " -O' %102 3 ')45
-
×-Ó
Ô 86 %O 7H 98:+çÅOÈ " F;A + 0 -F I%A"
." /01 2
@#k?{W_qp?n[5p?nUohw¤_ {_·s_Ulm^W_Ugyo ¥¿»_±'_Ug#k?o_±vRu<(CÅ Èo[#_±s_UokGpGjwjp?nUohw¤_¼v'jwr#_
s_Ulm^W_Ugyos sr#n[o[7pGo=+çÅ OÈ¿¦GÀÁÂohissok?{_hwgÑp.#pGopWso{r#nUor'{_o[7pGoµpGjwjik¾sµr'g'hik?g*¥
^hwg'hw^r'^ _OÃ=o{p?nUohik?g°pGg#£sr'~'~'{_sshik?gÑhwgÄÅÆÉwÊmË»¬È0ohw^W_+Bö_ml#p.v'hwg#k?^hEpGj[#_qpG~DO:Z\[#_
r'g#'_U{jwu=hwg'l£k?{'_U{hiso[#_.¤_U{ohinqpGj\k?{'_U{CkGJp?nUohw¤_.{_¸s_Ulm^W_UgyospGjik?g'l²o[#_"s»__U~¸jwhwg#_m
>µk?o_Co[7pGo:»_.s[7pGjwjg#k?o^.pGhwgyopGhwg?+çÅ qOÈ_OÃ=~'jwhinUhwo_Ujwu¥p?s:hwo:hisfg#k?onUji_qpG{À[#_Uo[#_U{0_nqpGg
'k¼hwoaÀhwo['hwg°o[#_WspG^W_ohw^W_Wvk?r'g#'sqÁÂos:¤mpGjwr#_WnqpGgv$_{_Uo{hi_U¤_hwg°jik?lypG{hwo['^hin.ohw^W_
ö{k?^&o[#_[#_qpG~#s;(Å ¾È!@#k?{pGgyu±{_²s_Ulm^W_Ugyo U?¥o[#_s_Uo(ÅÈ\spGohis 97_sJo[#_Æk?jwjikqÀhwg'l
~'{k?~$_U{ou M
õ½ûôtõ
- ×-Ó Ô?= /2)2/ '/ (CÅ È " O !21 O O/ 1 2
(CÅ UÈ IO 1%10 21 U O2 0 " /01 % U + +
"21 /2)2/ '/ " ' )
e r
U(er ) e b
=l(eb)
sweep line
@hwlmr'{_WOM (Å UGÈ»pGg#plk=k=¼hwgyo_U{s_nUohik?g
GJk¾»_U¤_U{q¥Jo[#_Ñs_Uos*(CÅ È'k´g#k?o«[7p¤_pGgyu1shw^~'ji_^Wk?g#k?ok?g'hinUhwoÂu5~'{k?~$_U{ou?@7k?{
_OÃ#pG^~'ji_m¥hº U:hisJv_Ujik¾ !
¥7o[#_Ug?(Å È0^.pu v$__Ugyohw{_UjwuÑpGv$kq¤_ (Å3!
ÈÀk?{o[#_Uu^.pu v$_
hwgRo_U{jEp?n_CBös__69#lmr'{_` DO
e b
l(eb) e b’
l(eb’)
@ hwlmr'{_`M (Å ÈhisJpGvk¾¤_ (Å 3! È
? %& & &
®°_[7p¤_:okWnk?g#shi'_U{Æk?r'{ ERhwg#'sJkG_U¤_UgRoso[7pGok=nnUr'{À[#_Ug o[#_as»__U~Ñjwhwg#_:{_qp?n[#_sµpGg
_Ug#K~$k?hwgyoCkGp s_Ulm^W_UgRoqÛ¿p?n[¸_U¤_UgRonk?{{_s~k?g#'sok o[#_.hwg#s_U{ohik?g*¥o[#_.'_Uji_Uohik?g kGJp
v'jwr#_k?{Jp{_Ñs_Ulm^W_Ugyoq0®°_aÀhwjwjtg#kq¹_OÃ=~'jEpGhwgÑhwgÑ'_UopGhwj [#kq¹o[#_s__U¤_Ugyos:pG{_:[7pGg#Kji_P¥
pGg# ~'{kq¤_:o[7pGok?r'{hwgy¤mpG{hEpGgyosB½~'{k?~_U{ohi_sm¥#`K¥7 D\pG{_:^.pGhwgyopGhwg#_P
ô ô&èONPQQQ
=8/ Ó ¾ . Ó Ø1 Ó Ó
Z\[#_Wg#_U{_°s_Ulm^W_UgRo hisÀ|çr#soahwg#s_U{o_hwgo[#_WjwhisoakGp?nUohw¤_W{_°s_Ulm^W_UgRospGg#°o[#_
[#_qpG~(Å È¿hisÀhwg'hwohEpGjwh4q_²p?spGg _U^~'ou±s_Uoq0¶Jr'{hwgy¤mpG{hEpGgyosµpG{_k?vy¤=hik?r#sjwu¼^.pGhwgyopGhwg#_P
=88 Ó ¾ . Ó Ó Ó
®1[#_Ug²o[#_s»__U~jwhwg#_{_qp?n[#_s:o[#_C_Ug#K~$k?hwgyokG0p.v'jwr#_Cs_Ulm^W_UgyoqO¥0_ 9#{soµ'_Uo_U{^hwg#_
o[#_«{_·s_Ulm^W_UgRo
o[7pGojwhi_sµ|çr#soCv$_Ujikq o[#_±_Ug#K~$k?hwgyoq¸Á¢ qC'kR_sCg#k?oChwgyo_U{s_nUo
¥
o[#_Ug£hwofhisµhwg#s_U{o_£hwg (ŠȶJo[#_U{Àhis_m¥P»_{_U~$k?{ofo['hisfhwgyo_U{s_nUohwg'l ~7pGhw{pGg#²{_U~$_qpGo
o[#_spG^W_~'{kRn_ssJÀhwo[²o[#_p?nUohw¤_{_Ñs_Ulm^W_UgRofo[7pGoµhisJv$_Ujikq r'gRohwj»_{_qp?n[°p.{_
s_Ulm^W_Ugyoo[7pGo'k=_sÀhwgRo_U{s_nUo
e b
l(eb)
e r e
r -1
@ hwlmr'{_M!Ág#s_U{ohik?gÑkG q
Z\['his~'{kRn_Kr'{_ÀnqpGgCv$_¿À{hwoo_UghwgCo[#_»ök?jwjik¾Àhwg'l:0pqu¥À[#_U{_ U
'_Ug#k?o_s!o[#_Àp?nUohw¤_
{_±s_Ulm^W_Ugyoo[7pGojwhi_sÀhw^^W_KhEpGo_Ujwu±v_Ujik¾ U?
Ó HU
®1['hwji_\hwgRo_U{s_nUos
{_U~k?{oo[#_fhwgyo_U{s_nUohik?g
U
ÁÂg#s_U{o\hwg(CÅUÈ
Z\[#_hwgRo_U{s_nUohik?g#s:v$_Uo0__Ug fpGg#²o[#_{_£s_Ulm^W_UgRos:o[7pGopG{_v_Ujik¾¹o[#_Cji_Oöof_Ug#=¡
~$k?hwgyokG :pGg#°pGv$kq¤_ +çÅ OÈ[7pq¤_v$__Ug{_U~k?{o_P¥Po[#_U{_OÆk?{_~'{k?~$_U{ou Chisfo{r#_CÆk?{ q
\_shi'_s¾¥KhwoÀhissohwjwj*¤mpGjwhi«ök?{Ào[#_ak?o[#_U{v'jwr#_s_Ulm^W_UgRosq
õ½ûôtõ
Rhwg#n_,+çÅGÈ!{_U^.pGhwg#s\o[#_µspG^W_ök?{0_qp?n[ p?nUohw¤_µv'jwr#_Js_Ulm^W_UgRo m¥=~'{k?~_U{oÂu«`sohwjwj7[#k?ji's
pöo_U{Ào[#_:hwg#s_U{ohik?gÑkG q
@ hwg7pGjwjwu¥ji_Uoµr#sJn[#_n EÑ~'{k?~_U{oÂu²KÁ hiso[#_g#_U¹^hwg'hw^ar'^ kG (Å GÈ»À[#_U{_ U:¦
+çÅ qOÈ¥o[#_UgkG¿nk?r'{s_hwof'kR_sµg#k?ofnU{kmss +çÅOÈ 5Ñk?{_k¾¤_U{q¥Po[#_k?o[#_U{fs_Ulm^W_Ugyos:kG (CÅ UGÈ
^.pquk?g'jwu nU{kmss(Å È\k?gÑo[#_{hwlm[yofkGo[#_s»__U~²jwhwg#_m¥7o[#_U{_OÆk?{_o[#_Uu nqpGgÑg#k?ofnU{kmssJhwo
v$_OÆk?{_o[#_C{hwlm[Roa_Ug#K~$k?hwgyoakG µhisf{_qp?n[#_°shwg#n_ µjwhi_s:v$_Uo»__Ugo[#_s_s_Ulm^W_UgyospGg#
G!Z\[#_anqp?s_:À[#_U{_q»hisg#k?oo[#_:g#_U ^hwg'hw^r'^ kG (Å UÈ¿hisÀo{hw¤=hEpGj¢
=8= "Ó × . Ó Ø Ó Ó#
>µkqÌsr'~'~$kms_Ño[#_Ñs0__U~ jwhwg#_{_qp?n[#_s¼o[#_{hwlm[Ro _Ug#K~k?hwgRo¼kGp{_ s_Ulm^W_Ugyo G
'_Ug#k?o_sJo[#_^hwg'hw^r'^kG (CÅ UGÈ\Á¢hwgRo_U{s_nUos U ¥7o[#_UgÑ{_U~$k?{oo[#_ahwgyo_U{s_nUohik?g*¥
o{u²pGlypGhwgÑÀhwo[ wwJr'gRohwjp.s_Ulm^W_UgRo ¼hisÆk?r'g#Ño[7pGof'k=_sJg#k?oµhwgRo_U{s_nUo
Z\[#_Ug his^Wk¾¤_C½{k?^ (CÅ UGÈ*ok;(ÅU 'È¥RpGg#C0_ÀsopG{o¿pGlypGhwgÀhwo[o[#_\g#_U·^hwg'hw^ar'^
kG (ŠȶJo[#_U{Àhis_m¥yhº 'k=_s!g#k?o!hwgyo_U{s_nUo Um¥?»_shw^~'jwu^W_U{l_ (ÅUÈpGg# (CÅ U ?È
o[Rr#s^.pGhwgRopGhwg'hwg'l.~'{k?~$_U{ou K
Ág±o['hispGjwlk?{hwo['^ ¥ Ó ¾ hiso[#_:~'{kRn_Kr'{_»_'_snU{hwv$_±hwg±o[#_:~'{_U¤=hik?r#ss_nUohik?g*
®1['hwji_&¦$Å (CÅ UGÈÈhwgyo_U{s_nUos
{_U~k?{oo[#_fhwgyo_U{s_nUohik?g
_OÃ=o{p?nUo9½{k?^ (CÅ UGÈ
Ó ¾
(Å ?Ȧ (CÅ U ?È$¨*(CÅ UÈ
\p?¸hwgRo_U{s_nUohik?g#s^.puv_«{_U~$k?{o_¸Kr'{hwg'l£o['hisk?~$_U{pGohik?g*¥!»_«^.pqu |ér#soKhisnqpG{
o[#_U^&vyu¼nk?^~7pG{hwg'l.o[#_nk=k?{Khwg7pGo_skGo[#_:ji_Oöo_Ug#K~k?hwgRosq
>Jk?o_Ào[7pGo +ÂÅqOÈ*his!g#k?or'~$#pGo_.pöo_U{^W_U{lmhwg'l (CÅ U ?È pGg#/(CÅUGÈthwgWk?{'_U{ok E__U~
k?r'{Àohw^W_ank?^~'ji_OÃ=hwoÂu±vk?r'g#P
Z\[#_:hwgy¤mpG{hEpGgyosfpG{_f^.pGhwgyopGhwg#_£p?sÀhis_qp?shwjwu¼n[#_nE_Ñp?sÀhwgo[#_:~'{_U¤Rhik?r#snqp?s_m
=8A "Ó × . Ó Ó Ó#
_Uo fv$_Co[#_Ws_Ulm^W_UgRoaok±v$_C{_U^Wkq¤_¸pGg# U¦ +ÂÅ qOȵs:»_WsNpGhiv_OÆk?{_m¥ +çÅ qOÈnqpGg
v$_k?v'opGhwg#_"hwg¼ÄWÅÆÉwÊmË»¬Èohw^W_Àö{k?^ o[#_^W_U{l_qpGv'ji_µ[#_qpG~"#pGopso{r#nUor'{_o[7pGo0sok?{_s»o[#_
s_Uos=(źÈ
Á¢ hisCg#k?oo[#_¼^hwg'hw^ar'^ÚkG)(Å ¾È¥¿»_C|ér#soC{_U^Wkq¤_ hwoq ¶Jo[#_U{Àhis_m¥»»_sohwjwj\{_O¡
^Wk¾¤_ a½{k?^ (CÅ
È¥!v'r'oCo[#_Ug·»_«g#__ ok£n[#_nE´À[#_Uo[#_U{o[#_«g#_U ^hwg'hw^ar'^§kG
ô ô&èONPQQQ
(CÅ È»hwgRo_U{s_nUos \Á¢!hwoJ'k=_sq¥7»_~'r#s[hwoµ'kqÀgy\pG{'sfvyu {r'g'g'hwg'l«o[#_~'{k=n_Kr'{_ 5*Õ
Ó B¥U DO¥o[#_Ug²{_U~_qpGoµo[#_À[#k?ji_~'{k=n_ssÀhwo[²o[#_g#_U^hwg'hw^r'^9r'gRohwjhwoJ'k=_s
g#k?oÀhwgRo_U{s_nUo G¥7skCo[7pGo~'{k?~$_U{ou {_U^.pGhwg#so{r#_m
_OÃKo{p?nUo 0ö{k?^ (ÅÈ
À['hwji_&¦ $Å (Å ÈÈ»hwg#so_U{s_nUos
{_U~$k?{oo['hisÀhwgRo_U{s_nUohik?g
_OÃKo{p?nUo 9ö{k?^ (Å ¾È
Ó B ¥U D
¶Jg#n_apGlypGhwg*¥#o['his~'{kRn_Kr'{_a^.pu¼{_U~k?{ov7p?±hwgyo_U{s_nUohik?g²À['hin[²nqpGg v$_ 9'ÃK_ vyu p
shw^~'ji_:o_soq
ÁonqpGg v$_:_qp?shwjwu¼n[#_nE_ o[7pGoo[#_:hwgR¤?pG{hEpGgRosµpG{_f^.pGhwgRopGhwg#_P
Z\[#_ank?{{_nUog#_sskGo['hispGjwlk?{hwo['^ Khw{_nUojwu«Æk?jwjikqs½{k?^ ~'{k?~$_U{ohi_sapGg#K
3%
5£pGhwgyopGhwg'hwg'l"o[#_:k?{'_U{_±{_±s_Ulm^W_UgRosjwhisoÀopFE_sJÄWÅƬ:ÉwÊmË»¬Èohw^W_m
kRnqpGjwh4hwg'l«pGg _Ug#=¡
~$k?hwgyofk?{{_U^Wk¾¤Rhwg'l¼hwoJopFE_sfÄWÅÆÉwÊmË»¬ÈZ\[#_k?o[#_U{µ~7pG{osJkGo[#_CpGjwlk?{hwo['^ opFE_CpGoµ^Wkmso
ÄWÅÆÉwÊmË»¬È!Æk?{_qp?n[Ñ_U¤_Ugyoµk?{{_U~$k?{o_ hwgyo_U{s_nUohik?g*¥7o[#_Ug 0_À|ér#soÀg#__ okW~'{kq¤_o[7pGoµpGg
hwgRo_U{s_nUohik?gnqpGg'g#k?o:v$_{_U~k?{o_£oÂÀhin_m _UoUpGg# qµv_o0k±hwgyo_U{s_nUohwg'ls_Ulm^W_Ugyos¾
öo_U{"{_U~$k?{ohwg'l´o[#_Uhw{¼hwgRo_U{s_nUohik?g k?g#n_m¥ +çÅOÈ G 5²k?{_kq¤_U{q¥~'{k?~$_U{ou `°^W_qpGg#s
o[7pGo)+ÂÅ qOÈJnqpGg´k?g'jwu£lk 'k¾Àg´o[#_WjwhisoakGÀ{_p?nUohw¤_.s_Ulm^W_Ugyosq¥pGg#°0_Wg#_U¤_U{o_soao[#_
hwgRo_U{s_nUohik?gv$_Uo0__Ug qpGg#pCs_Ulm^W_Ugyoo[7pGojwhi_sJpGv$kq¤_+çÅqOÈ
& &3& $ & ! &'
Rhwg#n_o['his:pGjwlk?{hwo['^hisµ_Uji_U^W_UgyopG{u²»_Ck?g'jwug#__Ñok¼nk?g#shi'_U{pÆ_U¹'_Ul_Ug#_U{pGo_nqp?s_s
À['hin[or'{gWk?r'o!okµv_0¤_U{uC_qp?suokf[7pGg#Kji_mZ*0k.ERhwg#'s!kG$'_Ul_Ug#_U{p?nUu^.pquk=nnUr'{M_Uhwo[#_U{
o»k"_Ug#K~k?hwgRos[7p¤_o[#_spG^W_pGv$nUhisspCk?{JpGg _Ug#K~$k?hwgyoJjwhi_sk?gÑpCnUr'{¤_m
Z\[#_&9#{so0nqp?s_nqpGg«v$_sk?jw¤_"vyu._OÃKo_Ug#Khwg'lo[#_~7pG{ohEpGj$k?{'_U{0k?g¼_Ug#K~$k?hwgyosÀpGvnUhissp?_
okpGgRu´ok?opGjk?{'_U{q´Z\[#_±k?{'_U{Ws[#k?r'ji v_«o[#_¼spG^W_"Æk?{C_qp?n[ k?g#_¼kGJo[#_«Æk?r'{C~'jEpGg#_
s»__U~#s0_:~$_U{éök?{^ Æk?{k?o[#_U{Àhis_ask?^W_fhwgyo_U{s_nUohik?g#sJ»k?r'jig#_U¤_U{v_flk=k=P
Á¢pa~$k?hwgyoÀjwhi_s\k?g ps_Ulm^W_Ugyoq¥K»_0|ér#so\nk?g#shi'_U{\o[7pGo\hwo0hisÀpGv$kq¤_fo[#_fs_Ulm^W_UgRoKr'{hwg'l
o»k"s»__U~#spGg# v_Ujik¾ o[#_s_Ulm^W_UgRoKr'{hwg'l.o[#_fo»k.s»__U~#sÀhwo[o[#_:uy¡ÂpÃKhis\{_U¤_U{s_P
õ½ûôtõ
3 )N2a(
cfhw¤_Ug1p°s_Uo"kG:l_Ug#_U{pGjJ 7¡¢^Wk?g#k?ok?g#_Ñs_Ulm^W_Ugyosq¥À0_[7pq¤_~'{_s_Ugyo_ pGg1pGjwlk?{hwo['^ ok
{_U~$k?{oµo[#_a~7pGhw{sfkG{_=¡¢v'jwr#_Cs_Ulm^W_Ugyosµo[7pGoµhwgyo_U{s_nUoq¶Jr'{:pGjwlk?{hwo['^Ìr#s_sJk?g'jwuo['{__
shw^~'ji_~'{_KhinqpGo_sfo[7pGo:pGjwjikq¹ok.'_nUhi'_hº!o»k¼s_Ulm^W_UgRosµhwgyo_U{s_nUoq¥hº»p.~k?hwgRohisJji_O½ofk?{
{hwlm[RoJok«pGg#k?o[#_U{J~$k?hwgyoq¥$pGg# hº»pW~k?hwgRohisfpGvk¾¤_m¥7v$_Ujikq¹k?{µk?g£ps_Ulm^W_UgRoqZ\[#_s_ao['{__
~'{_KhinqpGo_sµs__U^4okWv_:o[#_ashw^~'ji_so~'{_KhinqpGo_sJo[7pGoji_qp? ok.sr'vxRr7p?K{pGohinapGjwlk?{hwo['^Wsq
¶Jr'{µpGjwlk?{hwo['^4hispGjw^Wkmsok?~'ohw^.pGj hwg±o['hisÀ{_so{hinUo_^WkR'_Uj*kG!nk?^~'r'opGohik?g*
ÁgRo_U{_sohwg'lmjwu¥o[#_«ohw^W_±nk?^~'ji_OÃKhwou´kGfk?r'{WpGjwlk?{hwo['^'_U~_Ug#'sk?g o[#_«gyr'^v_U{WkG
~7pGhw{s kG'hwgyo_U{s_nUohwg'lfs_Ulm^W_Ugyos¾¥¾g#k?ok?go[#_!gyr'^v_U{kG'hwgyo_U{s_nUohik?g~$k?hwgyosq Ág~7pG{ohinUr'jEpG{q¥
k?r'{pGjwlk?{hwo['^ »k?{EKs_U¤_Ug hºo[#_:s_Ulm^W_UgRoshwgRo_U{s_nUohwg9#g'hwo_Ujwu±^.pGgyu¼ohw^W_sq
®°_Wnk?g#nUjwr#'_WÀhwo[¸sk?^W_Wk?~$_Ug°~'{k?v'ji_U^Wsq @ hw{soq¥ nqpGg°0_W{_U^Wk¾¤_"p±ÉwÊmË0¬¸Æp?nUok?{hwg
k?r'{Àohw^W_ank?^~'ji_OÃ=hwoÂu±{_sr'jwos
Z\[#_$:ÅƬ ³ÀǬ:ÉwÊmË¿¬È jik¾»_U{\v$k?r'g#.[#k?ji's»Æk?{»l_Ug#_U{pGj$nUr'{¤_Js_Ulm^W_UgyosqÁÂo¿[7p?s0v$__Ug
~$kmsshwv'ji_ok¼'k¼v$_Uoo_U{fök?{fjwhwg#_s_Ulm^W_UgRosWÍÏGÐ Ù pGg0_WpGjisk±'k¼v$_Uoo_U{JÆk?{k?o[#_U{s~$_nUhEpGj
nUr'{¤_s_Ulm^W_Ugyossr#n[p?s:nUhw{nUji_s_Ulm^W_Ugyos¾=k?^W_C~'{_Ujwhw^hwg7pG{u£{_sr'jwosµÆk?{:o['hin E£k?vK|_nUos
[7pq¤_:v$__Ugk?v'opGhwg#_±vyuµhwlmg#_U{k?gÍw Ð
Ág´o['his~7pG~$_U{q¥»_"[7p¤_«{_so{hinUo_ k?r'{pGoo_Ugyohik?g·okÑ #¡¢^Wk?g#k?ok?g#_¼s_Ulm^W_UgRosq£Z\['his
^.pquCv_pµ{_so{hinUohik?g"À[#_UgWo[#_À~$k?hwgyos!Àhwo[«pf¤_U{ohinqpGj#opGg'l_Ugyo\pG{_Kh8.nUr'jwo¿ok:nk?^~'r'o_m
Z\['hishishwg ~7pG{ohinUr'jEpG{µo[#_anqp?s_fök?{JnUhw{nUji_s'_9#g#_Ñvyu¼o['{__~$k?hwgyosJÀ[#_U{_o[#_:~'{_KhinqpGo_
o[7pGonk?^~7pG{_s #¡_OÃKo{_U^W_~$k?hwgyos:[7p?sa'_Ulm{__.`m¼À['hwji_o[#_ChwgRo_U{s_nUohik?g~'{_KhinqpGo_.[7p?s
'_Ulm{__.q`k?g'jwu
¹!!a)!(
ÍwOÐÁ¤mpGg# ÀpGjEpGv7pGg* g k?~'ohw^.pGjpGjwlk?{hwo['^ ök?{9#g#Khwg'ls_Ulm^W_UgyohwgRo_U{s_nUohik?g#sqÁÂg
%$ !)1' *0F/! *A/!' / E¥K~7pGl_sJ`Km=`KqK¥tqmmÎK
ÍÏ`Ð# \_Ugyoji_UuÑpGg#²Z: ¶Joo^.pGg'g*Jjwlk?{hwo['^WsJök?{J{_U~k?{ohwg'l±pGg#nk?r'gRohwg'l¼l_kG¡
^W_Uo{hin:hwgyo_U{s_nUohik?g#s¾ ) ) *A/!' i¥ Ù ¡Â`O;BÆ DMK<F=y<F= =¥P=_U~'o_U^av$_U{q ?K
ÍÏÐ?¡>C \k?hissk?g'g7pGo!pGg##GRg#k=_UuRhwgE$=Û 8.nUhi_UgyopGjwlk?{hwo['^WsÆk?{tjwhwg#_\pGg#nUr'{¤_0s_Ulm^W_Ugyo
hwgyo_U{s_nUohik?g r#shwg'l²{_so{hinUo_¸~'{_KhinqpGo_sq *A/!' / 0 H %E¥À<Bé DO¥
`mmmK
Í=?Ð_qpGgK¡>:pGg'hi_Uj \k?hissk?g'g7pGopGg#C@'{pGg#nk ztz!{_U~7pG{pGopK«}k?v'r#so~'jEpGg#_Ws0__U~°Æk?{:hwgK¡
o_U{s_nUohwg'l.s_Ulm^W_UgRosq *A/!' E¥KokWpG~'~$_qpG{q
ô ô&èONPQQQ
ÍÏÎÐ_qpGgK¡>:pGg'hi_Uj \k?hissk?g'g7pGopGg# Jgyok?hwg#_ µhwlmg#_U{k?g*Û!ji_U^W_UgRopG{upGjwlk?{hwo['^WsÆk?{f{_O¡
~k?{ohwg'lhwgRo_U{s_nUohik?g#s"kG:nUr'{¤_ s_Ulm^W_UgRosq¯}µpG~'~k?{oW'_¼{_n[#_U{n[#_£O;m`mÎK¥»Á >J}JÁ ¥
qmmK
ÍK<ÐZ: 5¸ Ù [7pGg* shw^~'ji_¿o{pG~$_4qk?his0__U~pGjwlk?{hwo['^ªÆk?{{_U~k?{ohwg'lf{_17v'jwr#_\s_Ulm^W_Ugyo
hwgyo_U{s_nUohik?g#sq¿Ág * " *A H*A/!' O/ E¥'~7pGl_s`O<m=`O<O;K¥tqmF=#
Í ¾ÐZ:5´ Ù [7pGg*}_U~$k?{ohwg'l"nUr'{¤_s_Ulm^W_UgRoJhwgRo_U{s_nUohik?g#sfr#shwg'l.{_so{hinUo_~'{_KhinqpGo_sq
*A/!' O/ 0 %i¥P<B2= DO¥7`mmmK
ÍK;Ð 0_U{g7pG{ Ù [7pF4q_Ujwji_WpGg# GÛ¿'_Ujisv'{r'g'g#_U{q Jg²k?~'ohw^.pGj¿pGjwlk?{hwo['^ÌÆk?{fhwgyo_U{s_nUohwg'l
jwhwg#_:s_Ulm^W_UgyosJhwg±o[#_:~'jEpGg#_m *Ñ¥#mBé DMw=ÎF=#¥tqmm`K
ÍÏÐ I Ù jEpG{EKsk?gÑpGg# z#®ª7R[#k?{q ~'~'jwhinqpGohik?g#sJkG{pGg#'k?^9spG^~'jwhwg'lWhwgnk?^~'r'op¡
ohik?g7pGj*l_k?^W_Uo{u¥7ÁÁO. *A/!' / E¥=)MÏO; =y`Km¥*qO;mK
ÍwqÐ @0$J^Wk?{_m¥*z cC @'{pGg#nUhikmspK¥pGg#c
hik?oopK {k?v'r#so:{_Ulmhik?gpG~'~'{kp?n[´ok«o[#_
nk?^~'r'opGohik?gCkG'l_k?^W_Uo{hin0lm{pG~'[#sqRÁgcC 0hwjEpG{Kh¢¥cC @\ÁopGjwhEpGg#k'¥ ¾z!hi_Uo{p?nqpG~'{hwg7pK¥
pGg#5cC¿zr#nnUh¢¥À_Khwok?{sq¥ !% / ¥0¤k?jwr'^W_= <KkG ' O
*A/!' E¥K~7pGl_sa ?Î;O<KR~'{hwg'l_U{é¡ _U{jEpGl#¥qmO;K
ÍwmOжJjwhw¤Rhi_U{0>f_U¤=hwjwji_U{sq¥ ji_OÃ#pGg#K{p @'{k?gR¤Rhwjwji_m¥ \_U{g7pG{ 5²k?r'{{pGhwg*¥ÀpGg# 5Ñk?g'hixRr#_ Z _Uhwjº¡
jEpGr#P¿ÛÃ#p?nUo~'{_KhinqpGo_sök?{nUhw{nUji_pG{nsJpG{{pGg'l_U^W_Ugyos¾0ÁÂg " !))' *
'0/F *A/!' / E¥K~7pGl_saqm= =¥`mmmK
Íwq`Ð >µk?g7pGji.Û Ifgyr'o[* / '" '%%(O¥y¤k?jwr'^W_!<mO<:kG ' O *AO/ '
R~'{hwg'l_U{é¡ _U{jEpGl#¥Gµ_Uhi'_Ujwv_U{l#¥cf_U{^.pGgyu¥ qmm`K
ÍwqÐcµhwr#s_U~'~$_ hik?oopK¥@'{pGg#nkµz Gz!{_U~7pG{pGopK¥ypGg#}k?v$_U{okZpG^.p?sshEpK=}k?v'r#so*~'{kqÃ=hw^hwoÂu
xyr#_U{hi_sM Jghwjwjwr#so{pGohik?gkG\'_Ulm{__O¡K{hw¤_Ug¸pGjwlk?{hwo['^ '_shwlmg* !*AO/ ' E¥
`O;BÆ DMK;O<F= ;O;mK¥tqmO;K
Íw=?ÐRuRjw¤mpGhwg¯z!hik?g*¯ÁÂgyo_U{¤mpGjJpG{hwo['^W_UohinOMÑpGg¯_8.nUhi_UgRo.hw^~'ji_U^W_UgRopGohik?g pGg#¯pGg1pG~'~'jwhº¡
nqpGohik?g5ok¸nk?^~'r'opGohik?g7pGjl_k?^W_Uo{uªÁg O O H %IO 1 - %
!%0 . 70F / " *A1 %º¥K~7pGl_sJmmqK¥*qmmK
ÍwqÎÐ @0Kz#z!{_U~7pG{pGopWpGg#+5¸KÁN#R[7pG^Wkmsq *AO/ ' <O O% /0 70 !+1 "'
R~'{hwg'l_U{é¡ _U{jEpGl#¥G{±_Khwohik?g*¥$¶µnUok?v_U{aqmmK
Íw<ÐRo_OÆpGg =n['hw{{pK}Jk?v'r#sog#_ss£pGg#¹~'{_nUhishik?gªhissr#_sÑhwg¹l_k?^W_Uo{hin·nk?^~'r'opGohik?g*
Ág ?{l?¡}#Khwl_U{"Kp?nE´pGg#yk?{l_J{{r'ohEpK¥_Khwok?{sq¥ " *A/!' <O %
õ½ûôtõ
/0 0?¥$n[7pG~'o_U{W=#¥~7pGl_s:Îm <mm`KPÛ!jis_U¤Rhi_U{=nUhi_Ug#n_Cz!r'v'jwhis[#_U{s f >µk?{o[K¡
GJk?jwjEpGg#P¥ J^Wso_U{#pG^ ¥7`mmmK
Íw ¾ÐgRok?hwg#_ µhwlmg#_U{k?g* jwlk?{hwo['^W_s²eUjieU^W_UgyopGhw{_s£~$k?r'{{_U~$k?{o_U{ji_shwgyo_U{s_nUohik?g#s
k?vK|é_Uosnk?r'{v$_sq}µpG~'~k?{o'_ >µÛ ¹pGjwlk?{hwo['^hixRr#_m¥7zpG{hisq¥)@'{pGg#n_m¥ qmmK
Íw;Ð Ù »pG~*»Z kq\pG{'sµ_OÃ#p?nUol_k?^W_Uo{hinnk?^~'r'opGohik?g* *A/!' / O70 H %E¥
Bé DMÏ=`mK¥*qm =
ÍwqÐ Ù )I»pG~*À}Jk?v'r#sol_k?^W_Uo{hinnk?^~'r'opGohik?g*Ág yp?nk?vÑÛcfk=kRK^.pGg£pGg# kms_U~'[
¶}k?r'{E_m¥!_Khwok?{sq¥ " " *A/!' < %O/ 70m¥!n[7pG~K¡
o_U{mÎK¥'~7pGl_s<mÎm<O<O;K
Ù } Ù
z{_ss
* Ù ¥ \kRnqpC}µpGok?g*¥@
¥*qm =
ô ô&èONPQQQ
Unité de recherche INRIA Sophia Antipolis
2004, route des Lucioles - B.P. 93 - 06902 Sophia Antipolis Cedex (France)
Unité de recherche INRIA Lorraine : Technopôle de Nancy-Brabois - Campus scientifique 615, rue du Jardin Botanique - B.P. 101 - 54602 Villers lès Nancy Cedex (France)
Unité de recherche INRIA Rennes : IRISA, Campus universitaire de Beaulieu - 35042 Rennes Cedex (France) Unité de recherche INRIA Rhône-Alpes : 655, avenue de l’Europe - 38330 Montbonnot St Martin (France)
Unité de recherche INRIA Rocquencourt : Domaine de Voluceau - Rocquencourt - B.P. 105 - 78153 Le Chesnay Cedex (France)
Éditeur
INRIA - Domaine de Voluceau - Rocquencourt, B.P. 105 - 78153 Le Chesnay Cedex (France)