HAL Id: inria-00072246
https://hal.inria.fr/inria-00072246
Submitted on 23 May 2006
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci-
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents
Tracing Execution of CLP(FD) Programs : A Trace Model and an Experimental Validation Environment
Ludovic Langevine, Pierre Deransart, Mireille Ducassé, Erwan Jahier
To cite this version:
Ludovic Langevine, Pierre Deransart, Mireille Ducassé, Erwan Jahier. Tracing Execution of CLP(FD) Programs : A Trace Model and an Experimental Validation Environment. [Research Report] RR-4342, INRIA. 2001. �inria-00072246�
ISRN INRIA/RR--4342--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
Tracing Execution of CLP(FD) Programs
A Trace Model and an Experimental Validation Environment
Ludovic Langevine — Pierre Deransart — Mireille Ducassé — Erwan Jahier
N° 4342
Novembre 2001
/
102435 637 849:;*<,. =>5@?A5<36+>
B DC4E ,. =
FHGI*JLK>MONPFRQTS*UWVXKYMOS*V[Z]\A^+MOV#_`_aV]bV#_`QcS*d`Qc_aegf\)hiMj_`VXMjkOkjVlb6G*N[Qcdad`m#nl\Ao+_apDQcS)qWQcr*MjVX_ts
u;vxwayDz{|~}axz+ X<za
z<R<[yc Xz
zR X#XzazR> xz
¡H¢¢T XH Lz£zavxzavxzc¤>¥X¦¥#{P|¨§H t©Xz<y=xz+{ªXªx«R|¨¥X¦=¢za
¬®¯a°<±t²x³°´µ z<©Xz< ¢xx¶ 6y4Xxx4 XX XR Xy4¸·¹ºza#xza¢Tza»¼ X½
y4z+ LzaxxX= [ ;za 6 l©[¾a 6 z¿L¢x ÀÂÁR tÃza©zaaÄ#z¿Lx¶ [ z
xHX ®vx LÃ;g 6¢T X=vxz<yÅ»¼ XyÆ z¢»¼ yÇ ¶x vxz<;;©za LÈxRT
z<¿L¢Tzay¶z<# »xz<Ã@ [ zay¶TYy¶z` ÉÀ>ʹËvXYcz<zaDvx tâza©# TYà ÌvaÄg»¼ y
¸Íz½¹xza =z¿Lza<L =<zÄ£[xy=TzaË »W#z<zax£©#z<ÃHc L X¢x XyÎz¿Lza<L
< x 6Tz+Xz<xzaza ®[<zLaÀ
ÊÏÐvxRz<¢c aÄcÃz¢x X¢T #z=4zaxz<+zyD L LzaY»¼ X¸< #Hz` XL XÐ[6 tÃx
ÑPy¶zvx L L XÒ Ó L% %y¶¢x t©z6Ô`ÀÑu;vz6Xzly¶ L Lz<DvxzͶ Xxz¢x X¢T #z`
»¼ X¸ÕÖØ×#ÙÛÚÛÜ#ÝR Ð L [z`Rx R¢xzz< l czvzxy4tz= xzXÀRu;vxzy¶z<vx L L X XRza l XÐvxz
»¼ X tÃxz<¢T<ÞË Lz<Íx ® »>+»¼ Xy4Ty¶ L Lz<W »<zÄ#z¿[ »Yzaza©t#L»¼ y4t XÂ[
=Xz+[¾az<`Ä#x¾a »vxz+z<¿#XEza 6L»¼ Xy4 lz<©Xz<É LzaxxX # XaÀ
ßz¢xzaz<#;vxzz£y¶ L Lz<> lly¶¢xzay¶z<# lÃvxv< xzaHDXz<`ÄLXz` 6 X
y¶z<t½¹Xz<¢xzza¸ÃzaÒÒÊàáR½¹Â ÄÉ ÒãâäcåçæL踽¹Ìz4T#¾az<`ÀDu;vzDz<Èz<<] »vxz
Xzaz`za @ Ó y¶zz<z<y¶zaX xz<xxXxÐ # Xza Ò XÓ<z®T[zz¿L¢cz<Ô½
y¶zaXza ÉÀÂu;v;à ̮zvxz+X»¼ Xz<xza¸L »*Tzavg©[ X; »ËÕtÖØ×[Ù¼ÚÛÜ[Ý¢x Xy4aÀ
é{êgë>H¶vx ©za X® »Yvz<¢c aÀ
ìÐí#îWïðñ ±tò¯´ X#¢x Xy¶yDxTÄt X¢x y¶y¶xÄt¢x Xy¶yDx£z<[©[ Xxy¶z<#aÄ# Lz½
xXxTÄXxÄX<zRT[<Ä[LÂ [ jÄ[¢Tza»¼ Xy4zR xz<xxXxÄ#©[¾a ÄX¢x X¢t½
#t X6T[<À
óYô`õØö÷WøEùOúRõØöûtüùÛýOþÿ¸ögûgûøEù¼ýÿ >ÿxü`ü>óûgùOøÏý !"#%$
&(' ' () '*+ -,ø.Hüõ0/1213TøEþ01ü465789";:.<>=4?";<.@ABCWô1ö/tüÿED+GFþH$8,IJ1gøLKaõ0.$Lü4/1M.NKaõ0/1LOõ0/gùOõü$Pù
Q ' ' -,1ø.Hüõ0/113TøEþ01ü45R78S";:.<T=4?";<.@BUWô1ö/tüÿVDGFþH$8,õ0ùÛùW$2ùOü4/göjüùÛýXOõ0/gùÛõü$Pù
Y ' '
*+ )
'
*+ -,Z!.:üK/+1C1ö27[`ýÛýöUÉø]\öGöL@.<.:4^@G;//1ö D1GFþH$[,_£õØùWõØþØþ0$21üöjöLOõØùÛõØö¹ü$Pù
`
'%a * ') ' '*+ b,ZÉü4û1gö1/gõKùÛöjõýjüõØùC1C7[ü4gþØõ0JT@.<.:4^!A/1/1öUD1GFþH$8,cTù¼÷ü4/J$düôgõ0ùXOõØùÛõØö¹ü$Pù
3 Y*'Å6 7 =C4E* 6H,. = 49;<,. =>5Ó36 C¸53£>
¯ ´ Yz] L<©Xz< ¢x¢cz<y¶zaX® ¢x¢xat T¶ÍTz`¶z®z<È4a<za4zaBYÇLzÐ XLz
xz]¢x ¢xz] XL® Lz]y¶z:¢T X#®¢cz<y¶z#®Ó©[t Ñz6z¿L¢xat X xz]
a L XÀ µ zx Xyxz<x¿l XLHw`¸¢T`aRz+ L<¢cz<T x# LzD®¢xtz<½O»¼ Xy¶z x: ©z<
XP L®<D<c aaÄTy4¸zax+¢ca< Ðzaz< ] xÔÈz<y¶z<# x¢LxzaR xz=¢xtz½
»¼ Xy¶zÒLzÐzy¶z]z¿L¢Tay¶z<# LzÐx Xx©z`L¿ XL<ÀBËz<x4 Lz`¶g©tL¿
#<z<x #yD X##¢¸ Lz<zaÍTxzaaÄT X]¢c x©t¸z<¿[z£ Lza XzaH Lz=©[xza
#az`#z`TXz<¿Lax l Lz+¢x y¶y¶za #xzaaÀ
µ zR¢x¢T XzH[¢cz¸ ¢¢x Lvxzz`LR¢c x LÍTxxy¶ L LwazR xzH<zHax<Xz
¢c  Lza ©zax>TaËxË£< # ¶ Lz L y4xzXÀËzy¶ L Lw<zzaËxxz¢xz<y¶w<zz<#t©z
< <z<#Y¸¢x Xy¶y4t X£g©XzaÂ< ##z`Yx*z`> L Xy4xzaYÍx;·j¸· µ ººEÀ#za*¢T Xx½
#x XYzaH<#z<y¶z<#Hz<¿[¢c X+xxzyD<vx L Lz¢T XxH< Lz<¸zRy¶< XzaaÀY¶y¶vx L Lzz<¢c Xz
xËzaË<¢Tz`©t#za;Þ* LÍÔ X¶ x4y¶ L Lwaz;»¼ Xy¶z<x xz;zXÄz¿[XE ¶ Lz`Ëx»¼ y¶
xz`Ë¢ËxzHLz LzXzXÄ¢xxËLt X4 LzHz<zL»¼ Xy4t XË xË LcazaXË x
xzy¶z6¢c #aÀ
Ḣxaz<#z£ L T¸ c z£y¶ [ xw<z£ xz¸XzXÄ#¢x;xz£y¶¢x# 6<z£6y¶t½
#za¢xwzÐa<®z<ã X XÓÊàá X LÓxBLzax LzÐXz! "$#>äWåçæLè=ÀÎ%zÈa
xz¶<zz4¢x¢ LvxzDza£zaaz4z+z<zDz`+<z4g©z`y¶¢x# Ò Lz4 Lz<x¿P L+y¶¢xza
¢c ©g#z<©[&¶DyDz£l¢T X#aÀ
z+g©t #xxz'¶»¼ X LzaR¶`t Xl XLRax<#xz`H Lzy¶z=Тc X£ Lz¢x ½
Xy¶yDz`HR· µ ºEÀ
é
{êgë>zaHxxz£©za X6< xz+ Lz<z¢¢T X`À
(ñ °`¯ ï ³) ¯l´ ¢x XyDy4 lg©za£< ##zaaÄ¢ Xy¶y4t #xzÄTz<[©[ xz<y¶z<#R Lz
¢ Xy¶y4t YÄg x<c XzXÄt<zÄLz Lz;XzÄX LÂ T[zÄXLz; xz¢Tza»¼ Xy4TzÄ
©[Tt XÄLLz Lz+¢ X¢#t YÀ
Model Generic Trace
...
Debugging tool 1
tool 2 Debugging
tool n Debugging ...
CP Platform m
CP Platform 2
CP Platform 1
xz¶«Þ y¶yxat X6czÃz<za6¢xt»¼ y4 6 [ XvxÌL ¶¶Xz<xzaRz£y¶ L Lz<
! =Y*436>
µ z<©Xz< ¢xxR +y4#xx+P¢ Xy4Écz<xz<Íx>»¼ y)©[¾at X z¿L¢x £ [ X
vvzD Xxza+ xzaXxza P#]vxz µ àTÂ#"Âx ¢cza¢x z`E
é
«X«EëjÀ £z¿xy¶¢xzÄvxz®ÁHÊÏ
zavx½Ozaz+ [
é
¦ªtëvxz<¢£z<x Lza Ðvxz4z Wza+ »lzav]¢ Lz` Lxz= XPvxzzav
¢Xz%$[T 4vz£à#½& g¿Dy¶ L Lza
é
«'tëÉ tÃHÂTza DT¢czavxz Xz¸ÃÔv®X¢xvx<c ®vxz<½
vaÉz<¢xzaz<# aÀ
ÁR tÃza©z<`Ägz¿Lx¸ [ X*zxxÔËD= vx LÃgXÀ>u;vxzaz<»¼ z¢c xR [ Y»¼ yÎ Xxz¢x½
»¼ Xy =x vxza©za¶ LÈxaÀá¸xzHvTË = L¢x<zRvxzHÃv z¸ Lz` ¶y¶¢xz<y¶zaXt X
z c Xza©z<¶y¶z 6vxz+¢T #xza; »*z¿L¢cz<y¶zaXt X6z£y¶Ôza ÉÀ
ßzvg©Xzvx tÃll¢xz<©[ Ã Ì4vTtaÄx»¼ Xy =Íxz<½jXxz` ®z<¿Lzax <zÄxD[xycz<H »
#zaz`x®©#z<ÃHc x¸ +¢x XyÅz<¿[z`L XR< x ÐczXz<xzaza l[<zT[
é
«a¦LÄ
{X{`ë¹ÀDÊÏvxza¢T X£Ãz4 Lz<Íxzzaxz<Xz=v<:cz4za :#:za©z<Ë LzaxxXx® [ <À
"v [ Y©za¶Tz<»¼x©[zaà »*vxzÕÖØ×#ÙÛÚÛÜ#Ý;z<¿Lzax Ó·¼zXÀTÀÂvz+Tza¶z<z+ Hvxz L Xy4
z;z<©X L ¶ Lxx+¸¢ X¢#t =zgºEÀ)(RÂvx tÃ=# Xxz£«XÄtvxz;XzÂz<z<tz` [
[4¢x»¼ XyÆÃvv6< y¶¢xXÃv6vxz+Xz<xzaRzy¶ L Lz<jÀËu;vxXz+<vxz<lczTz`
[®[4 [ YÃvxvH XyD¢Ttxz£ÃÔvlvx;<z£yD L LzaOÀ*(Î x 6z¿xvxz¸»¼ y4tH tÃH
[P # X ]cz®Tz` ÓÃÔv [:¢x»¼ Xy ·é'gë;©z`P Lz`<¢L XÓ »H,+.-Pɽ¹za »¼ Xy4tEºEÀ
"vÑ [ ¸zaz`E4vxz]z<z<©tX xÒ Lz<¶ @xx Ñ®z¿Lza<L ©[zaÃ+Àu;vxzaz<»¼ zÄvxz
Xz+Hx¢x¢c Xza < #Тc z<#6z»¼YL»¼ y4t YÀu;vxz+ [ H<cz Lza©za X¢Tz`
yxxz< Xl Pzaz` l LWz<z<#¢x»¼ Xy40/tÀu;v£¢¢x #vÐxy¶zaRv¸vxz<z¸
1
gù Yÿü !"N#xûtüù¼ý/1ùOöË÷YõØþØþ göø.gùýOùOü4;Aø+1þ[ýOø gõØþ0ýOøaøEþØö*õ0/£ýOô132 ' ?#% [B 'c 4#
ü4/16587 ùOøEþØø.M0";?##ûgþüýWPøEùWöL$
and analyzer Trace query
Tracer
prototype
Debugging
execution) Tool (abstract view of the data
Input
Trace
Trace filter
xz{LÞËu;vxz+z¿L¢cz<y¶zaXt XvYÞ>vxz£<z<`Ä#vxz£ÍzaRT vxz[¾az<`À
Xz<xza;XzRy¶ L LzaOÀ*ÊÏ® X xz< zaXv¶vx Lz`E©zXÄXÃz¸ÃÔv6z<z<y¶ L Lzac »ÉÍxz
x y4< #; ©[DÃvvl tÃH LzÍz+z<z<R<zza©zaX<À
à[ »Û`ÄHx Íxz½¹xz` Ñzaz¿L®»¼ X< #6 ©z<aÀ(ÊÏy¶¢xzay¶z<#x%@»¼ y4
xzÍxz` Ñz<z<Xz<4y4g@czPÓ Lza<zlÌcÄ;»+z<©zaãt®H¢c XxzÀAu;vx®za¢Tz`
z+vz #z¿[ »Ë T#H X©[xDÃvxz<z£vxz ©za;z£vxvx X¢Ly¶¾aza ÉÀu;vz<z»¼ zÄ
cz»¼ XzX x£»¼ za ;y¶¢xz<y¶z<#t YÄXËzaza#L z<c tz;z<©Xz<[Xzy¶ L Lz<ÂT
z<¿L¢Tzay¶z<#ÃÔv6vxz<ylÀ
ÊÏ X xz<Ë X X xzÍxzHvxz T# ©#x£XzHy¶ L Lz<jÄ[ 4XÂÃzR L D»¼ X X
é
{¦tëjÄWÃzz=P ¢cz<t X>zay¶#<¸za Ð X
é
{gëË
é
«`ëjÀ£ßzD Lz<Íxz=z¿Lza<L ]za©zaXR »
#zaz`DÃÔv@z`¢cza ]v¶z<y4#<aÀÒḠxzvT ÉÄ*vx»¼ Xy4¢¢x #vÓ¢xz<©Xz<#vxz
ÍTxza [½¹xz` PXz4y¶ L Lz< ]cz®¢»¼ y xz<¢cz< Lza#aÀá¸vz® vxz<v Ä>vxz6< z<<z
czÃz<za®vxz+y¶ L Lz<Y Tzz+ÕÖØ×#ÙÛÚÛÜ#Ý¢xt»¼ y4;v Dcz+©t tz` ÉÀ
ÊÏ Lz<4 % Lza©za X¢iÒÍz¿L¢cz<y¶z<#t YÄvxzP»¼ y4yD L Lza¸6y¶¢xz<y¶z<#za iX®
xy¶z<#z` ®y¶z<t½¹Xz<¢xzza¸Ãvxvz<¿xE®zza;aÀ
u;vxz¢x ¢c Xza ãxy¶z<#z` By¶zt½¹#z<¢xz<za®6Tz<»¼x Ñz¿L¢Tzay¶z<#©t xz:vxz
y¶ L LzaOÀ*ʹXz` X®Ãz<cÌ[x tî X Xy¶zt½¹#z<¢xz< 4zavxx#xza»¼ Xvxz£Â ¢
6 6vxz Lz`<cza ¢cz<t XÉz<y4#¸»¼ ;vxz X#;¢aÀ
u;vxzxy4tz #T »Évz¸y¶zt½¹#z<¢xz<za¸·ÛX
é
{¦tëçº D¢x t©[ Lz¸z<¿[z`Lxz¸¢czaÍx½
at X »T<zaaÀ>u;vxz<zazaxz<tza +[+vxz;y¶z½j#za¢xzz<* Xx vz<DTzza ©t tz
]z`R·O Òz<È4<za#º£XzaaÀ,(vxDXzÄzÈz<T »;vxz6y¶z½j#za¢xzz<+ =ÐÌXz<
xz$4Dza %DP¢ [¢cz®tvxz<DvT%X= z cz`E©zyD¢zayDza#t XÀ ÁR tÃza©z<=Ãz
¢z`zaXH y¶z£z`Ô; »>¢cz<»¼ y4<z£ Lz<; 4z`vz+¢xXEax4 »* H¢x¢x XXvÀ
à[Tv=<z<;y4g4zaxz<tz=Xz¸©X xy¶z¸ » xÀ*u;vzXz<xzaRzyTHcz+[¾<z`
¶Ízaz` ® X Lza D< LzazHv; xD L tÃ4 =¢x t©# LzRvxz£xÈ4<za#L»¼ y4t X4 =vxz
xz<xxXxÐ # XaÀ:u> P¢v@»¼xvxz<=vz6©t xt X@Ãz6vg©z®yDy¶ÌXza Ó]z[¾az< "
Ḣxy
é
«<¥tëÉvx tÃ4[ xz¸{xÀ*u;vḢxxyD½jÌXzRT#¾az< tÃH* XL® xWz<z<#Ì[ x
»;E+©[z<ÃH+ »vxzz¿Lz`L XÀ6u;vx+lÃ;gÐ ]vx tà v+vxz¢ X¢T #z` ]Xz4y¶ L Lz<
< #Tvxz+xz`za4L»¼ Xy4 6 ¶za¢x [ xz+z<©zaWz¿Lx4ÕtÖØ×[Ù¼ÚÛÜ[Ý; LzaxxX # XaÀ
óô1UGÏý¹ü5çõ0/ýùÛûgùWÏýùüûgûgùÛøü4¹ô=ýOøHýjùOü4>ûgùÛø.MEùOü4 +;`ýOõØø./göÂôtüöÂüþØùWü4`ÿ T;/Egöõ0/£ýOô1 Tó
ýjø<øEþBÿÉüùÛùOøHü4/622ùWG;/;MEõØþ0`ø^4#%$ 2>ø÷[KùT ó gø]ö2/gøý>ü4;öOö>ýOô1ÂûgùOøEûgü4MüýjõØø./ 1ÏýjüõØþØöL$ ËûgùOøEûøEöü
øEù*õ0/+PøEùWHüýjõK*ýOùOü4;.$
ÊÏÒvxza¢T X`ÄYÃz Tz<#z¶ vz T# X©[xТ`Ä><z¶ »vxz XD¢x ½
Xy¶yDx=¢ "&[
é
¦tëY 6Tz+#zatz` 46vxz£y¶z½j#za¢xzz<£·Ûz<z»¼ ;z<¿Ly¶¢xz
é
«gëçºÀËÊÏ
é
'gë¹Ä LÔ XÉ¢c z+xXzaz` 4 < ¢cz£ÃÔv vxzaH¢Tz`E; »vxz< y¶¢xLt YÀ
ÊÏvxzl»¼ tÃxTÄ;à[z`E Xã{:»¼ Xy4 Lz<Íxza®z¿Lza<L Ñy¶ L Lz<¸ »+ÕtÖØ×[Ù¼ÚÛÜ[ÝD tÃxTÀ
ÊÏ¢<xaÄW LzÍTxza£6za¢£ ¢cz<t X*z<y4#< » XX£ X©[xÀDu;vxzaz¶z<¢
z®vxzlX=»¼ Dvz6Xz®»¼ y¶¶ xzÍxz` ãà[za %¦À%à[z`E %¥:z<¿L¢xT=v tÃÇ xx
®xy¶z<#z` y¶zt½¹#za¢z<z<6 Lz< Dxx 6®z¿L¢cz<y¶zaXcz<[©[ yDza#aÀËà[za
X©Xza y¶z¢cz<»¼ y4<zËz`Ô<À*à[za ê¢xzaz<#DḢxyD½¹Ìz*Xz[¾<zaza X+vxz
xy¶z<#z` yDz<½j#z<¢xzz<`À¶à[z`E X ®xzP xzacza+z<¿L¢Tzay¶z<#£Ãvvz4¢x X¢T #z`
XzÐT % Xx¶<zÐ[¾<zaaÀ$Äà[za Ó L<zaDvxz] X#z<# »¸vxzl<zÃv
za¢czaE; 4z¿Lx4 LzaxxX # XaÀ
9:;*£> 5 4H,. =>-Æ -ÉY* = )*+*, ,.
ÊÏPvxz`E YÄcÃzD¢x X¢T #z=]z<¿[z`L XPy¶ L Lz< »·çÍxz¶ L Xy¶cºR< #R¢x y¶y¶x
ÃvvxzDT Lz<¢cz< xz<#aÀu;vxz4 X¢Tza Ëzay¶#<£ »; X#£¢x y¶y¶x6z½
x£»¼ y vxz< y »Ã l¢X Ly4<Þ+< # ËT :¢ X¢#t YÀDu;vxz< # *¢
xz<¢cz< x Xvxz¢ Xy¶y¶xRxz=Ãvxv=vz ©za>z<ycza Lza ÉÄX vxz;¢x ¢X
< z`¢c T x ]T tÃxÀ (Hvx XxvÒvxzx # L L<za Òvxzaz®z4z`z<#PxXXz
Lza¢Tza LzaX`ÄxÃzÃzvz<yÅvxz< #z<¿[; »*ÕÖØ×#ÙÛÚÛÜ#ÝÀ
!
ÊÏvxzz` »Évxz¸¢T¢cz<`Ä#"%$'&!( Lz<x z`Âvxz¸¢c tÃz<z »)& $*+,Ó Lzax zavxz Eå jåÛâl »vxz
z<t X%*.- &0/1 324- &Þ5*+,76489$;:=<>(+?:A@2CB7$;:=<>(D@*FE#À
u;vxz»¼ X tÃ=x ;z£tvxz` 4 D©txza; ®< #aÞGvxz+z »*Wvxz
ÍTxÔz6 L Xy4Ó©gz`+ »;vz®¢x xz<y $IH DlÍxzz<= XXxx]¢c Xxz©txza»¼
©txza*3G $J »¼xE XKJML#GONP"%$;H.(EÄXÃvxvX Ltza> +z`v¶©txzD:4xza#
x y4ÄY Lzax za [QJSR$ITUWVXRl 7TY9:ZRÐzDza¢Tz`E©za]vxz4 tÃza :x¢x¢cz<T Xx x+ »
J R $X[Ò¸vxz¶z£ »Âvxz=¢ Xxzay T#$]\^_£4»¼x Q[`Na"%$'Gb(ÄÉÃvxv: [<z`
¶zavl XXcd@%[PvxzzH »>©txza; »>vxz< #aÀ
' egf)h!ijklmonpf)q qr
-P[Ðz¿L¢x P [ ¸»¼ [<£ L y4z` L %·OzazD»¼ £z¿xy¶¢xz
é« #ÄY{t¥t뼺EÀDßãvxzaÒ< L½
#£zD¢x X¢#tza ÉÄcvzDza© XL XP »©txz= L Xy¶T££lz`#xz<<z= »Ãv xgÃ;R »
< za#©txzaaÀ (z`vza¢Ä[»¼ ;X©Xz<®< #aÄ[z »Y Xz<#©gzaÃvL½
xgÃ=»¼ Xy Xxz·Û ¶ = xzgº* L y4À*u;vxzazH©txz`Â<DczR Lz<zay¶xza ¶[=X Ôvxy4ËTv
X x L Lz] Xz<T Ä < z<< EÄ v[[¢Tza½Ï Tz<< c xT x Xza
xzacza ®»¼ z<¿Ly¶¢xz£[ -] H à[ÌXz<
é{ aë¹À
tÃx'xzaT =z<
é« aëjÄ#ÃzH LzÍzRza L ¶ ¢cz<t <À>u;vxzR¢¢x< ¶ »vxzHz½
xE X4 ¢cz<t X* » X#ÂX©Xza*vxz " âtsËå4âä "Ïâ£# L L<za ¶[ &zaxvyD X
é
{tëjÀ
x y z
x y z
x y z
1 3
2 redx
x > y
x y z x y z x y z
redz
y > z redx
x > y redy
redy y > z x > y
Xxz£¦Þ (H¢x¢x<t Xl »*z` LE X ¶vxzLzay 8 :
>>
E#À
í
°
Ûñ ®í
ò>³°
Oñ Òñí
±g²x°
ñ
±
ãza xE XD X¢Tza Xl*
R
å "! æ0OåÛâ " "%#"#$
Ïâ" â "åc " $ " "Eå"&% S: (';å )"*$Xâtè "tåâ+ " )" "Eå"&% æ #$Påc-,+å
jæ ."/$Xâtè "tå JSR7sËå)"âtæ ." " Ôæ 4â+ !:s0"[å#" "4å0âå sËå)" ."/$Xâtè "tå4â1
."Dâ." "Eå"2% " â+ sËå."3$ "ts " æ +å4$%câ #$65 R
*
R $J +798;:#<
>=
(o6 JSR@?A5QR
u;vxzaz¸zHÂy4#Dza L 4 X¢Tza ËtXvxza D c)©gz`Ë3\^_$'cp(EÀËÊÏ4Xz<xzaOÄ
»¼ XzÈz<TzaX X<ÄLDza L ¢cz<t L [za;x HÃÔv LgÃÉ XzaX©txz`<À
(Çy¶¢xz4z¿xyD¢z¶ »;za L ¢cz<t »¼ cCB :
VËÄYÃvz<z.V%6X©Xz<#z<zaaÄY
* R $J +D
RE
( 6 J.R@?O8;F+F%@JSRBGFGHOVIE#À
u;vxzDz<©X L P »ËvzD L Xy4¸a]czD©#z<Ãza P6za#xzaz= »¢¢x< ¸ »Âza xE X
X¢Tza Xvxz` Ò Pvxzl X# »vxzl zÀ "v@ X¢Tza X=<@cz6¢¢xza %za©za
y¶z`Âx#Tvxz y¶¢xxt X4z`vxz`£Íx¿[½¹¢T X#
é
«`ëjÀËu;vxËÍx¿[½¹¢T X#vxzRz »WÍT L Xy4
z`<À
(Rz<¿xy¶¢xzD »< y¶¢xLt ÃvÒz` L ¢cz<t X¸+vx tÃ: xz4¦xÀ¶u;vxz<z4z
vxz<zP©txza%:YÄ!>B
T Ã Ñ X#<Ä:
>B >
I
À (6vxzTzaxxxÄ
J R 6 JKJ 6 JKL 648&M#<#N<POEXÄ#z<¢xzaz<#z` ®[4vxz<z XyDT; »*ÃvxÔz#z`<À X LzaxDvxz
ÍTR X#`ÄxÔ¢x¢cza;vt!:P<xx ÌXz£vxz©txz « Äxczaaz+ vxz<Ãz£vxz<z+Ã Xx
cz+x 4©txz+»¼ X>6vvj:
>$RQPS;T
R
R2U J
ÃÔv LgÃHvxH< za#;©txz»¼ XymJ R Àu;v
ÃvT LgÃ;*+y4Ìz` PÃv@xÌ#zXÀ4ÊÏ:vxz®y¶z¶ÃgXÄVQPS;T
J
R2U J
ÃÔv LgÃHvxz4©txz
¦4»¼ XyÅvxz= L Xy4Ð »>WÀRu;vxz<YÄc< xz<x¶vxz=< #>
(
Äxvz ¢cz<t WQXSYT JJ U L
T
QPS;T LJ U L
ÃvT Lgà za¢Tz`E©zaPvxz6z<S8M E®T C8N<POE¶»¼ XyPJ J `J L ÀÄ*]z` X
¢x¢xat XÐ »ZQPS;T
R
R2U J
za LTza!JSR4 ®vxzDxXz< 8YOE#ÀRu;vxzÍx¿[½j¢c #¸RzaXvxza ÉÀu;vxzÍT
L X6<ÞD8: 6[Or<>.6\N<
6]M E#À
^ _a`7cbof)!eddjh 9gf+h f)h ] !hj j
(R z`z<#x »¸ XXD¢x ¢Xt XÓ=vxzäâä " "jåÛâ]iæ<æ<À@u;vx¶#xzaxz< L½
HYvxz< #;Ãvx #z+za xE XÐ ¢cz<t Xvg©Xz£ 4cz=¢x¢xz` ÉÀ (¸zavÐza¢Ð »*vxz
¢ X¢#t YÄ X#Ëz<zaEza ¶¶vxz¸¢x ¢Xt X=#xzaxzÄ[a Lx £X©Xz<4tza
xz<¢cz< Lx4 XÐy¶¢xz<y¶z<#t Ó·¼»¼ Hz<¿Ly¶¢xz4< #ÃÔvÐyD Xz+©txzaÍTºÀu;vxzz½
xE XÐ ¢cz<t XH »*vxzDzaz`Eza ]< #Rz¢x¢za ÉÀHu;vzaz=¢¢x< R<Ðy4ÌzxzaÃ
x y4Pza LTE T<À+ßãvxza6©txz= L Xy¶:x¢W xza ÄÉvxz¶[zay ¢xL£Pvxz4#xz<zD
vxz XX;Ãvxz<zvx©txz+¢x¢czaaÀËßãvxz<lvxz#xz<z+Tz` y¶z`;z<y¶¢LÄc=Íx¿[½j¢c #H
zaXvxza 6 ®vz¢ X¢#t 6z< <ÀËu;v[aÄ[vxzaz+zvxz<z»¼xT xy¶z<#É ¢cz<t XaÞ# jåÛâ
»¼ yÆvxz#xzaxzÄ #$æ jåÛâ] »©txz£ L y4 "ts "å 6 »*< #aÀ
ʹE4x ;xza<zaD DÃ;ÌXz¸D X#; 6zav6x¢W xtz »Y;©txz L Xy4<À
z¿xy¶¢xzÄ[z<z<©t# Ã;ÌXzHvz< #l:
>¶z`vy¶ L LÍT< 6 »=J R XbJKJ[À
u;vzza xE X6 X¢Tza »>vxH XXzxz£ DÃvT LgÃAD©gzÐ[ L Xy¶»
z<vxzavxz¸¢x¢Tzac »)J R x vzR tÃzac x ® »)JKJ£x¢W xza ÀÂÁHz<TzÄ[LÈ<zaX
¶ÃÌz¸vxz< #; XxÃvxz<l Xxz£ »Yvx Xz£¢yD L LÍTat T; [axaÀ
í ° Ûñ ]V ¬ ð ² í ³ ñ ò ° Ûñ "®gÃ;ÌXz<xx T LÔ XBâ+ " â "ålc å
"£ä0#$å " K$¹ä $tåæ`äxâ )"è4âY$tå " OåÛâ =â+ jJ +7 8 :#<
0=
"Lå â$åOåÛâ a"â $ s0"" 0 s
" ÔæsËå."3$ "ts " 0" %;è "2$% %..".â "tå 3#$tæOåÛâ ®âä "Ïâ " â$tåjåÛâ®åâäOåçè "
s0" :å "â $= Xx®Ãvxz< " 0 s " æ sËå."3$ "ts " ) " %è "2$
" " s " Tå â$åOåÛâ Òâ1 c!å4$%câ#$ % 2SRTX$Wcp(
u;vxz+XETÉgÃÌzax X L ;z »çzaD Xy¶¢x Xy¶zRczÃz<za®vxz< X »vxz<H Xy=½
¢L l vx tÃy¶[®gÃÌzaxXvxza¢xz<©za#aÀ
(H vz< X L :[¢Tz4¢cz<y¶Ô£zaza©t#gÃÌz<x# ÐTz4¢xz<©Xz<#z` ÉÀ¶zT+ T Lz<
P T#.c $Ô»vxz x y4 »HÔ©txzaz®TvÓv=x P»¼Lz6©gz®Ãv LgÃ;
a][©t xz=vxz¶ XX£»ÛXE XÄcvxz¶ X#£ l Tz <â #$tÀÊÏ:vTt+<zÄ
vxz£z` L ® X¢Tza X »vx T#<x ;y4Ìz[4xzaÃi©txzÃÔv LgÃW[#y¶ XzXÄ
xz`¸vxzLzay Ì#ÌLR l6»¼ yDza£¢T X#aÀ x X£z¿xy¶¢xzÄ»vxzDà l L Xy¶TpJ R T
J J zRv¶vTtlJSR J J 6xÄXÂz<zaË ¢¢xDvxzRza LTE 4 X¢Tza X* »]:6>WÀ*u;v#T<Ä
H;zaz` 4ÃÌz£¶ X©Xza ®< #aÀ
í ° Ûñ Yñ )"! í òÓ³ ñ ò ° Ûñ " ©z` =< L Òâ+ " â "tåXc å "ä#$tå "
$¹ä$tåæ`äâ )" " â+ J +798 :#<
>=
"Lå â $åOåÛâ "xâ $ =â #Ss0" ."-$âè "å " EæP"
." " c!å6<â #$
" <â #$ â $åOåÛâ Òâ1 c!å $ Wâ#$G%%$&')(&S;T*+RTX$'cp(
ßzR<¶x z;v£LÈ<zaX T LÔ X¶*vt©gz`*3\^_$Wcp(Ëz; xT Xy¶z
©txz`»¼[xDvxz< #aÀ
ÊÏlvxzzaH »vxz¢T¢cz<`Ķ¢xy¶©z XXHH Lz<Íxz` l#®vx #z£vxz<zvXEza<aÞ
Hz` LE X6 X¢Tza XaÄ#gÃ;ÌXz<xxD T LÔ XÐ X©Xza X L À
-, .bqrijkiqrf0/K1jf4] jFqlCFoqf
u;vz â "tå ) ¹â +2 Âvxzz< »ÉW XX*Ìza4# =<< x#[=vxz XyD¢L t
©z<Ðy¶ XyDza#aÀHßãvxzaÐvz= Xy¶¢xL ]cz<XT<ÄTvxzD z+¸z<y¶¢LXÀRu;vxzaÄÉ T#Rz
L©[ x= x Lz` X*ÃÔv LgÃ=a X Lx¸ ¸vxzH< # [¢`ÀYÊÏ=vxzH XzXÄ X#>y4g
vTg©z LczazaXtTT vxzR XzHa4czH¢ za D# +Í©zHxz Lzax za 3& <43I<653<&7<68=À
Queue Q
constraints Suspended S
Solved constraints T
Store A
REJECT TRUE SUSPEND SELECT
constraints R Rejected Constraint
Active
REDUCE
TOLD TELL
WAKE−UP
>z£¥Þ "©z<#;zaza ® DvxzTEz` 6 Xz
& =vxzÐz4 » "%Oå]< #aÀÓʹ¶¶z<vz<4:xz
·¼ Xx xzl X#D
E©Xz`º ;zayD¢x:·¼ ¶< #XE©zgºEÀËu;vxz+za LTE ¢cz<t X Ltza 4 ¶vxz
E©Xz+ T#;âcz<»¼ yÇvxz+za xE X; »©gz+ L Xy¶T<À
3 vxzPz T#ÃvxvBz] EæOä$%#$Äy¶z<%vxzaÑzÐÃ;xÓ @Tz
à ÌXz< ¸ ¢xxH# 56vxz+az¸ »> L y4y¶ [ xÔÍTat X » y¶z »vxz<©txz
·¼x Xxz+v;zay¶¢L® L Xy¶cºEÀ
5iËvxzRz » T#*¶vz;ä0âä " " OåÛâ iæ<æÄ#Ô< #TvxzR< #ËÃ;½
xD =cz+E©tza ÀËÊÏ6 X Lza ¶z`v4vxzÍx¿[½j¢c #Wza LTE ¢cz<t X Ltz`
Dvxz`z< #yTHcz X Lzaz` ÉÀ
7ivxz+z; » ©z` ®< #·Eæ`ºÄLy¶za4vxz+ X#Ãvxvvx Ãvza©z<
»¼Lxz+Ãv LgÃ;ÃTz£y4 xzÀ
8Yvxz;z* »zz`Ez` < #aÄajÀzXÀYvxz; T#Y»¼ Ãvxv+vz; x y4 »ct>zaX
xzD©txzD£z<y¶¢LÀDÊÏ¢xXE<z=+£zayD¢x] +lxXz< YÄz4X [ ¸vxzaz
z£< # 8Avxz+ zR X Lzaz` xtÍTxz ¸ ®vxz+ Xy¶¢xL
ÃY X##z£X<< L =vxz X# jÀ
!#"%$&'(#"
)*,+-
#$. /102354687:9%4<;>=#?7
@'AB(#"?$CD(#"
E>FHGI5JLKNM
POQ9RSTR(UVWYXZ[H\]4687^
OQ'OQ_!#"%$C`@ab(#"
)*c:KN
#$. /102354687:9%46d =1e?7^
;f=#`;f=8gd^=
d^=#;f=h^ij,k
= l
4<;Pmnpoqr l]s
7
)(K]
t9-uvZwyx?V,\zWYXZ[H\]4687g{
@t_(#"?$&|@}|Ba!#"
*KN,M:~Nc
HP
@AB(#"?$hOQ'Oba(#"
xz LÞ*Â ¢X ®za©zaX<À ¡xz£»¼ y4t+ÞY
FI^
(zk% <!N
C. <(]
;j!H < 6!]
-L
@
H
,g(#"?$pO:$L$|Y$L$L;
c
Xxz£êÞ # Wza©z<#
Qqon!d =
u;vz®z<©X L Ò »vxz z®<Óx tà Tzl LzaTz` Óz®Ô XÒ»¼x = za©z<#
XExÐÒvz® zÄÒvxz®[z »R}xz<z<©[v+z<©X ©[xÐXz<x
é
{ªgë¹ÀÐu;vx+z`
Xxz+¥Àßãvz<Тx ¢X ®cz<XT<ÄvxzazHlXE©Xz T#aÀu;vxz©z< #
¢x¢xz`HRz` LE XÐ ¢cz<t H;»Û¸XH¢c XxzÀ "Xv]¢x¢x<t XÐ »Â4za LTE Ð X¢Tza X
;P ¡aÜ¢gÕ!¡¸za©zaX`À*ʹ tÃHËvxz£ L y4 »Y xz£T ¶ z¸©txzÀʹ»>D L y4cza< y¶za
zay¶¢LÄvxz< #RzzaEza Ò·v ¡v£¡aÕ*¤Hz<©za#ºEÀ (Îzzaz` Ð T#¸4l »»ÛxzÀʹ»
=»Ûxz+ L<;T 6 D vxzaz` L Ð<6cz+y4 LzXÄLvxz< #zaÔvxz<R ©z` P·<¤, ¢?¡`º
X¢cz< Lz` Ò·<¥*¢?¥×5¡¦gÜ[ºEÀ*() ©z` 6< #ÃÉ Hczà ÌXz<[[yD XzXÀ (΢Tza Lz` < L½
#ÃLTz;à Ìza=X [ D*ËgÃ;ÌzaxxR X L Dvx xaÀËá¸DgÃÌzaxÄ`vxz< #
;¢xLvxz£¢x ¢X ®#xzaxz4·§&¨H©,¡*ª-¢X×£z<©Xz<#ºÀ*ßãvxz<vz<z;x ¶©z+ X#`ÄX Xxz£
z<zaz` Pvxz#xzaxzз<¥.¡Ö¡aÕ*¤º¸ Tz` XyDz`+©zÀDʹ»vxz#xzaxz¶+zay¶¢LÄÉvxz4¢x ¢X
za xaÀ
«
óôgõØöWùWöOýOùOõ0ÏýOõØø./ø.gþ0TËüþØþ0NK`õüýRýOøôtü4/gþ0 gþýjõØû`þ0ü4ÏýOõK(ø./`öOýOùjüõ0/ýjö;1PøEù[gü4ûgþ0Yýjøôtü4/1gþ01/gõ¬Zü5
ýjõØø./6K`õ0Ï÷8£üöL+güþØõýçÿ ø./göÛýjùOüõ0/ýjö*ø./ 22ùWgùjü4/H®ögø.Hüõ0/`öL$
¯
óô1*ýù±°p²?³.²?³Uø.Gö8PùOø.%öOýjü4/1tüùWgöjü4M.$ 'ýYõØöõ0/6Pü4Ïý*üöÏýL$