French slides from curriculum INF442 at Ecole Polytechnique.
English book entitled "Introduction to HPC with MPI for Data Science" (Springer, 2016)
http://www.springer.com/us/book/9783319219028
21. ÚÓÐÙØ ÓÒ × ÔÖÓ ×× ÙÖ×
r´eseau
ordinateur
(CPU)
carte m`ere carte m`ere
CPU CPU
CPU CPU
cœur
un seul socketsocket socket
socketsocket
4 ordinateurs interconnect´es par un r´eseau une carte m`ere avec 4 processeurs un processeur quad-cœur
ordinateur
(CPU)
ordinateur
(CPU)
ordinateur
(CPU)
cœur
cœurcœur
ÈÓÙÖ Ô ×× Ö Ð³ ÐÐ ¸ Ò× Ð Ð ÙÐ ÙØ Ô Ö ÓÖÑ Ò ¸ Ð ÙØ ÙØ Ð × Ö ÙÒ
ÐÙ×Ø Ö Ñ Ò ×
22. ÐÙ×Ø Ö ÑÓ ÖÒ ´ ÐÙ×Ø Öµ
r´eseau
d’interconnexion
(topologie)
nœud
Central Processing Unit
m´emoire
nœud
CPU CPU
CPUCPU
m´emoire
ordinateur simple
ordinateur quad processeurs
ordinateur moderne:
CPU multicœurs avec plusieurs cartes GPUs
node
cœur
m´emoire
GPU
GPU
C
P
U
Grappe d’ordinateurs
(computer cluster)
cœur
cœur cœur
23. Ö Ø ÓÖ ÕÙ Ð Ö ÒØ Ð ÔÖ Ø ÕÙ Ñ × ÙØ Ð ººº
Ì ´ Ó µ ÙÒ ÔÖÓ Ö ÑÑ Ü ÙØ Ö ÕÙ ÓÒÒ Ð Ù ÙÒ ÔÖÓ ××Ù×
ÇÖ ÓÒÒ Ò ÙÖ ×Ø ÓÒÒ Ö × Ö ××ÓÙÖ × ÕÙ Ó × Ø Ð³ Ø Ø ÓÒ ×
Ø × ´ Ó ×µ ÙÜ Ö ××ÓÙÖ × Ù ÐÙ×Ø Ö ´ Ò × ÐÐ × Ò Ó¸ ËÄÍÊŵ
Ö Ø ÓÖ ÕÙ ÔÓÙÖ ÓÙÖ× ÐÓÖ×ÕÙ³ÓÒ Ò ÐÝ× ÙÒ Ð ÓÖ Ø Ñ Ô Ö ÐÐ Ð
ÙÒ ÔÖÓ ××Ù× P ØÓÙÖÒ ×ÙÖ ×ÓÒ ÔÖÓÔÖ ÔÖÓ ×× ÙÖ ´ÙÒ ÈÍ ÑÓÒÓ¹ ÙÖµ
³ÙÒ Ñ Ò ÕÙ ÓÒ×Ø ØÙ ÙÒ Ò Ù Ù ÐÙ×Ø Öº
Ò ÔÖ Ø ÕÙ ÐÙ×Ø Ö Ø ÖÓ Ò Ñ Ò × ´ÑÙÐØ ¹ ÙÖ׸ Ú È͵º
ÈÐÙ× ÙÖ× ÔÖÓ ××Ù× Ô ÙÚ ÒØ × Ö ØÖÓÙÚ Ö Ñ ÔÔ × Ô Ö Ð³ÓÖ ÓÒÒ Ò ÙÖ ×ÙÖ Ð
Ñ Ñ ÔÖÓ ×× ÙÖ ´ÔÓØ ÒØ ÐÐ Ñ ÒØ ×ÙÖ Ð Ñ Ñ ÙÖµ
24. ÀÈ Ô Ö ÐÐ Ð ×Ñ Ø Ö ÒÙÐ Ö Ø
Ö ÒÙÐ Ö Ø ÔÖÓÔÓÖØ ÓÒ × Ð ÙÐ× ´ Ö Ò× Ð ÙÐ× ÐÓ Ùܵ ×ÙÖ Ð ×
ÓÑÑÙÒ Ø ÓÒ× ´ ÒØ Ö¹ÔÖÓ ××Ù×µº Ö ÕÙ Ò × ÓÑÑÙÒ Ø ÓÒ× ´ÓÙ
×ÝÒ ÖÓÒ × Ø ÓÒµ ÒØÖ Ð × ÔÖÓ ××Ù׺
Ö Ò Ò ´Ô Ø Ø Ö Ò¸ Ò ¹ Ö Ò µ ÔÐ Ò Ô Ø Ø × Ø ×¸ ÓÒÒ ×
×ÓÙÚ ÒØ ØÖ Ò× Ö × ÒØÖ Ð × ÔÖÓ ××Ù× ÔÖ × Ô Ø Ø× Ð ÙÐ׺
ÖÓ× Ö Ò ´ Ó Ö× ¹ Ö Ò µ Ð × ÓÒÒ × Ò ×ÓÒØ Ô × Ò × ×ÓÙÚ ÒØ
Ø ÔÖ × × ÖÓ× Ð ÙÐ׺ × ÜØÖ Ñ ¸ Ñ ÖÖ × Ò ÐÝ Ô Ö ÐÐ Ð
È Ö ÐÐ Ð ×Ñ Ø ÓÒ ÙÖÖ Ò
È Ö ÐÐ Ð ×Ñ Ø × Ü ÙØ × Ð Ø Ö Ð Ñ ÒØ Ò Ñ Ñ Ø ÑÔ׸
ÓÒ ÙÖÖ Ò Ù ÑÓ Ò× ÙÜ Ø × ÕÙ ÔÖÓ Ö ×× ÒØ ÓÒ Ó ÒØ Ñ ÒØ Ò× Ð
Ø ÑÔ׺ È × Ò ×× Ö Ñ ÒØ Ò Ñ Ñ Ø ÑÔ× ´Ø Ñ ¹×Ð Ò ×ÙÖ ÙÒ Ñ Ñ
È͸ ÑÙÐØ ¹Ø ×ÙÖ ÙÒ ÙÖµ
31. Ê Ö ÜÔÐÓÖ ØÓ Ö Ä Ö ÖÓÙÔ Ñ ÒØ ´ ÐÙ×Ø Ö Ò µ
È ÖØ Ø ÓÒÒ Ö Ð × ÓÒÒ ×
X = {x½, ..., xn}¸ n ÓÒÒ × ¸ ÙÒ ÓÑÔÓÖØ ÒØ d ØØÖ ÙØ×
xi = (x
(½)
i , ..., x
(j)
i , ..., x
(d)
i )º
È ÖØ Ø ÓÒÒ X Ò k ∈ N ÖÓÙÔ × × Ó ÒØ× ÐÙ×Ø Ö×
X = G½ ∪ G¾ ∪ ... ∪ Gk, Gi ∩ Gj = ∅ ∀i = j
Ô ÖÑ Ø Ø ÓÖ × Ö Ð × ÓÒÒ × Ò ÓÒÒ ÒØ ÙÒ × Ò× × Ñ ÒØ ÕÙ ÙÜ
ÖÓÙÔ × ÓÑÓ Ò × → ³ ×Ø Ð³ ÔÔÖ ÒØ ×× ÒÓÒ¹×ÙÔ ÖÚ × º
ÈÓÙÖ ÕÙ ÖÓÙÔ Gi ¸ ÓÒ Ô ÙØ Ò Ö ÙÒ ÒØÖ ci ¸ ÔÔ Ð ÔÖÓØÓØÝÔ
ÓÙ Ö ÔÖ × ÒØ ÒØ Ù ÐÙ×Ø Ö ´×ÓÙ×¹ Ð ×× ³ Ð ÓÖ Ø Ñ × ÔÔ Ð ÒØ Ö¹ ×
ÐÙ×Ø Ö Ò µ
ººº Ñ × Ð ÐÙ×Ø Ö Ò »Ö ÖÓÙÔ Ñ ÒØ × ÖØ Ù×× ÙÒ ÕÙ ÒØ Ø ³ ÙØÖ ×
Ð ÓÖ Ø Ñ ×ººº
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹¿½
32. È ÖØ Ø ÓÒÒ Ö Ð × ÓÒÒ × Ð ÐÙ×Ø Ö Ò
ÈÖÓ Ð Ñ Ú ¿ ØÝÔ × Ö Ò ÙÖ×
n Ð ÒÓÑ Ö ÓÒÒ ×
d Ð Ñ Ò× ÓÒ × ÓÒÒ ×
X ×Ø Ú ×Ù Ð × ÓÑÑ ÙÒ ÒÙ ÔÓ ÒØ× Ò× Rd
ØØÖ ÙØ× ÒÙÑ Ö Õ٠׸ Ø ÓÖ ÐÐ × ÓÙ × Ñ ¹ Ø ÓÖ ÐÐ ×
k Ð ÒÓÑ Ö ÐÙ×Ø Ö× ´k ≤ n Ú ×ÓÙÚ ÒØ k << nµ
×ÓÙÚ ÒØ Ò ÓÒÒÙ ÔÖ ÓÖ
Ò Ö Ð Ñ Òظ ÓÒ n >> d ´n ØÖ × Ö Ò Ú ÒØ dµ Ø k << n ´k ØÖ × Ô Ø Ø
Ú ÒØ n¸ Ò Ð Ð µ Ò ÓÒÒÙ¸ Ñ × ÓÒ Ô ÙØ Ù×× ÚÓ Ö d >> n Ø k = Θ(n)
ÆÓØ Ø ÓÒ a >> b × a > b Ø a
b = ÓÒ×Ø ÒØ
ÜÔn >> n¾ >> n >> ÐÓ n
n½+ >> n ÐÓ a
n ∀ > ¼, a ∈ N
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹¿¾
33. ÎÓØÖ Ì Ù ÓÙÖ ³ Ù ÌÖÓÙÚ Ö × ×Ô × Ú Ø Ð × ººº
ÍÒ´ µ ÓÐÐ Ù ÔÓÙÖ Ñ Ò Ð ×× Ö ÙÒ × Ô ÓØÓ× n ÙÖ× ³ Ö ×
´ × ÓÒÒ ×¸ µ Ò ×ÓÙ×¹ Ñ ÐÐ × × Ñ Ð Ð ×
ÇÒ ÜØÖ Ø ÔÓÙÖ ÕÙ Ô ÓØÓ Pi ÙÒ ØØÖ ÙØ xi ∈ R ´ ØÙÖ ÜØÖ Ø ÓÒµ
´½µ ÐÓÒ Ù ÙÖ × Ô Ð Ò Ñ¸ ´¾µ Ð Ö ÙÖ × Ô Ð Ò Ñ¸ ´¿µ ÐÓÒ Ù ÙÖ
Ô Ø Ð Ò Ñ¸ ´ µ Ð Ö ÙÖ Ô Ø Ð Ò Ñ
ººº
º¿¸¿º ¸½º ¸¼º¾
º¼¸¿º¿¸½º ¸¼º¾
º¼¸¿º¾¸ º ¸½º
º ¸¿º¾¸ º ¸½º ¸
ººº
Ð ×× Ö ÕÙ Ô ÓØÓ Pi Ò× ÙÒ × ×ÓÙ×¹ Ñ ÐÐ × ´ Ò× ×ÓÒ ÐÙ×Ø Öµ
ÓÑ Ò Ñ ÐÐ × ´→ ØÖÓÙÚ Ö kµ
Ì ¾ Ö ÐÙ×Ø Ö Ò ×ÙÖ ÔÐÙ× ÙÖ× Ñ Ò × Ò Ô Ö ÐÐ Ð
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹¿¿
34. ÓÑÑ Ò ÓÒ× Ú Ð × × ÑÔÐ k = ½ ÐÙ×Ø Ö
ÓÑÑ ÒØ ØÖÓÙÚ Ö Ð ÒØÖ ´ÔÖÓØÓØÝÔ µ Ù ÐÙ×Ø Ö
ÍÒ Ö Ø Ö ×Ø Ñ Ò Ñ × Ö Ð Ú Ö Ò Ù ÐÙ×Ø Ö ´× ×Ô Ö× ÓÒ µ
v(X, c½) =
n
i=½
xi − c½
¾
Ú p − q ¾ = d
j=½(p(j) − q(j))¾¸ Ð ×Ø Ò Ù Ð ÒÒ Ù ÖÖ
p − q ¾ = p − q, p − q Ó x, y = d
j=½ x(j)y(j) ÔÖÓ Ù Ø × Ð Ö
ÇÒ Ú ÙØ Ñ Ò Ñ × Ö
Ñ Òc½
v(X, c½) = Ñ Òc½
n
i=½
xi − c½
¾
Å Ò Ñ × Ö v(X, c½) ≡ Ñ Ò Ñ × Ö ½
n v(G½, c½) ´× ÒÓÖÑ Ð × Ø ÓÒµº
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹¿
35. ÒØÖ Ø Ú Ö Ò ³ÙÒ ÐÙ×Ø Ö
ÈÓ×ÓÒ× Ð ÔÖÓ Ð Ñ Ñ Ø Ñ Ø ÕÙ Ñ ÒØ
Î Ö Ò Ù ÐÙ×Ø Ö Ñ Ò Ñ × v½(X, c)
Ñ Òc
v½(X, c) =
n
i=½
xi − c ¾
ÒØÖ Ù ÐÙ×Ø Ö
c½ = Ö Ñ Òc
v(X, c) = Ö Ñ Òc
n
i=½
xi − c ¾
, v½(X) = v½(X, c½)
Ö Ñ Ò Ö ÒÚÓ Ð³ Ö ÙÑ ÒØ ÕÙ ÓÒÒ Ð Ù Ù Ñ Ò ÑÙѺ Ò × ³ Ð Ø ¸ ÓÒ
Ö ÒÚÓ Ð ÔÐÙ× Ô Ø Ø ×Ù Ú ÒØ ÙÒ ÓÖ Ö ÓÒÒ º
È Ö Ü ÑÔÐ ¸ ÔÓÙÖ ÙÒ Ø Ð Ù
t[¼] = −¿, t[½] = , t[¾] = − , t[¿] = ½¼, t[ ] = − , t[ ] = ½¾º ÓÖ Ö ≤ ×ÙÖ Ð ×
Ò Ü × ÒØ Ö×
Ñ Ò
i
t[i] = − , Ö Ñ Ò
i
t[i] = ¾
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹¿
36. Ê ÔÔ Ð ×ÙÖ Ð³ÓÔØ Ñ × Ø ÓÒ ÓÒÚ Ü
ÍÒ ÓÒ Ø ÓÒ f ∈ C¾ ×Ø
×ØÖ Ø Ñ ÒØ ÓÒÚ Ü ×× º ÔÓÙÖ
x = y¸ ∀α ∈ (¼, ½)
f (αx+(½−α)y) < αf (x)+(½−α)f (y)
ÕÙ Ú Ð ÒØ f (x) > ¼ ´x ∈ Rµ
Ñ Ò ÑÙÑ ÙÒ ÕÙ x∗ ××
∃!x∗, f (x∗) = ¼ ´Ô ÙØ Ò Ô ×
Ü ×Ø Ö ÓÑÑ ex µ
Ò ÐÝ× ÑÙÐØ Ú Ö Ú Ø ÙÖ
Â Ó Ò ∇xf (x) = (∂f (x)
∂xi
)i Ø
Ñ ØÖ À ×× ÒÒ
∇¾
x f (x) = (∂¾f (x)
∂xi ∂xj
)i,j ¼
x y
(x, f(x))
(y, f(y))
αx + (1 − α)y
f(αx + (1 − α)y)
αf(x) + (1 − α)f(y)
z = f(x)
f(x)
f(y)
x∗
f(x∗
)
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹¿
37. ÒØÖ Ñ ×× ¸ ÒØÖ Ö Ú Ø ÓÙ ÒØÖÓ
ÅÓÒØÖÓÒ× ÕÙ c½ = ½
n
n
i=½ xi = ¯x¸ ×Ø Ð ÒØÖ Ñ ×× ÔÔ Ð Ù××
ÒØÖÓ º
Ñ Òc½
n
i=½
xi − c½, xi − c½ =
n
i=½
( xi , xi − ¾ xi , c½ + c½, c½ )
n
i=½ xi , xi ×Ø ÙÒ ÓÒ×Ø ÒØ Ø Ñ ØØÓÒ× Þ ÖÓ Ð × Ö Ú × Ô ÖØ ÐÐ ×
e(c½) = n
i=½(−¾ xi , c½ + c½, c½ )º
∇c½e½(c½) =
n
i=½
(−¾xi + ¾c½) = ¼ ⇒ c½ =
½
n
n
i=½
xi
c½ ×Ø ÙÒ ÕÙ Ö Ð × Ö Ú × Ô ÖØ ÐÐ × × ÓÒ × ∇¾
c½e½(c½) = (¾, ¾, ..., ¾)
×ÓÒØ ×ØÖ Ø Ñ ÒØ ÔÓ× Ø Ú × e(c½) ×Ø ×ØÖ Ø Ñ ÒØ ÓÒÚ Ü º
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹¿
38. ÁÐÐÙ×ØÖ Ø ÓÒ Ô Ø Ø Ø Ö Ò Ú Ö Ò × ´ ×Ô Ö× ÓÒ×µ ³ÙÒ
ÐÙ×Ø Ö
È Ø Ø Ø Ö Ò Ú Ö Ò ´ ×Ô Ö× ÓÒµ ÙØÓÙÖ Ù ÒØÖ
v½(G½) =
½
n
n
i=½
xi −
½
n
n
l=½
xl
¾
v½(G½) =
½
n
n
i=½
xi
¾
− ¯x ¾
, ¯x =
½
n
n
i=½
xi
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹¿
39. Ä ÐÙ×Ø Ö Ò Ô Ö Ð ÓÒ Ø ÓÒ × ÓÖ × k¹ÑÓÝ ÒÒ ×
ÇÒ Ö ØÖÓÙÚ Ö Ð × ÖÓÙÔ × Ú Ð × k ÒØÖ × c½, ..., ck ´ÔÖÓØÓØÝÔ ×µ ÕÙ
Ñ Ò Ñ × Ð ÓÒ Ø ÓÒ Ó Ø
ek(X; c½, ..., ck ) = ek (X; C) =
n
i=½
Ñ Ò
j∈{½,...,k}
xi − cj
¾
³ ×Ø ÕÙ Ú Ð ÒØ
ek(X; C) =
k
j=½ x∈Gj
x − cj
¾
Ú
Gj = {xi ∈ X : xi − cj ≤ xi − cl , ∀l ∈ {½, ..., k}}
Æ Ò × ³ Ð Ø × ×Ø Ò ×¸ ÓÒ Ø ×Ù Ú ÒØ Ð³ÓÖ Ö Ð Ü Ó Ö Ô ÕÙ
× ÐÙ×Ø Ö× Ò Ö ×Ô Ø Ö Ð ÔÖÓÔÖ Ø Ô ÖØ Ø ÓÒ º
→ ÇÒ Ú ÙØ Ñ Ò Ñ × Ö Ð ×ÓÑÑ × Ú Ö Ò × × ÐÙ×Ø Ö× ´×ÓÑÑ ×
×Ô Ö× ÓÒ×µº
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹¿
40. ÌÖ Ø Ð Ø Ù ÐÙ×Ø Ö Ò Ô Ö Ð × k¹ÑÓÝ ÒÒ ×
Ð ÙÐ Ö ÙÒ ÐÙ×Ø Ö Ò ½¹ÑÓÝ ÒÒ Ó Ø O(dn) ´Ø ÑÔ× Ð Ò Ö µ
Å Ò Ñ × Ö Ð ÓÒ Ø ÓÒ Ó Ø × k¹ÑÓÝ ÒÒ × ×Ø Æȹ ÙÖ ÕÙ Ò d > ½
Ø k > ½
ÈÓÐÝÒÓÑ Ð Ò Ø ÑÔ× O(n¾k) ÕÙ Ò d = ½ ´½ ØØÖ ÙØ» ÓÒÒ µ Ô Ö
ÔÖÓ Ö ÑÑ Ø ÓÒ ÝÒ Ñ ÕÙ
→ ÇÒ Ú ÓÒ Ö Ö × ÙÖ ×Ø ÕÙ × ÔÓÙÖ Ö ×ÓÙ Ö Ð × k¹ÑÓÝ ÒÒ × ÕÙ Ò
k > ½ Ø d > ½º
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹ ¼
41. À ÙÖ ×Ø ÕÙ × ÔÓÙÖ Ð × k¹ÑÓÝ ÒÒ ×
À ÙÖ ×Ø ÕÙ × ÐÓ Ð × ÓÒ Ö Ð × k ÒØÖ × × ÖÓÙÔ × × Ò×
ÓÒ ÙÖ Ø ÓÒ Ò Ø Ð × ÒØÖ ×
À ÙÖ ×Ø ÕÙ × ÐÓ Ð × ÓÒ Ô ÖØ ³ÙÒ ÓÒ ÙÖ Ø ÓÒ × k ÒØÖ ×¸ Ø ÓÒ
Ñ Ð ÓÖ ÐÓ Ð Ñ ÒØ Ð ×ÓÐÙØ ÓÒ
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹ ½
42. À ÙÖ ×Ø ÕÙ Ò Ø Ð × Ø ÓÒ Ð ØÓ Ö
Ó × Ö Ð × k Ö Ò × ×Ø Ò Ø × ´× ×µ Ð ØÓ Ö Ñ ÒØ Ò× X ´Ñ Ø Ó
Ø ÓÖ Ý¸ ÒØÖ × Ò Ø ÙÜ Ð Ñ ÒØ× Xµ
Ó × Ö Ð ØÓ Ö Ñ ÒØ Ò× ÙÒ Ó Ø Ò ÐÓ ÒØ ÕÙ ÓÒØ ÒØ Ð × ÓÒÒ ×
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹ ¾
43. À ÙÖ ×Ø ÕÙ ÄÐÓÝ Ð ÓÖ Ø Ñ Ø Ö Ø
ü Ô ÖØ Ö ³ÙÒ ÓÒ ÙÖ Ø ÓÒ G½, ..., Gk ´ Ú c½, ..., ck µ¸ ÓÒ Ñ Ð ÓÖ
Ø Ö Ø Ú Ñ ÒØ Ð ×ÓÐÙØ ÓÒ Ú × ÙÜ Ø Ô ×
ÐÐÓ Ø ÓÒ × ÓÒÒ × ÙÜ ÖÓÙÔ ×º
ÈÓÙÖ ØÓÙØ xi ∈ X¸ ×Ó Ø li = Ö Ñ Òl xi − cl
¾¸ Ø ÓÖÑÓÒ× Ð ×
ÖÓÙÔ × Gj = {xi : li = j} Ö Ò Ð Ø nj = |Gj |º
Å × ÓÙÖ × ÒØÖ × × ÖÓÙÔ ×º
ÈÓÙÖ ØÓÙØ j ∈ [k] = {½, ..., k}¸ Ð ÙÐ Ö Ð ÒØÖ Ñ ××
cj = ½
nj x∈Gj
xº
Ê Ô Ø Ö × ÙÜ Ø Ô × Ù×ÕÙ³ ÓÒÚ Ö Ò º
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹ ¿
44. ÐÐÓ Ø ÓÒ × ÓÒÒ × ÙÜ ÖÓÙÔ × Ô ÖØ Ø ÓÒ ÎÓÖÓÒÓ
c1
c2
c3c4
c5
c6
p|lC(p) = 1
q|lC(q) = 3
Vj = {x ∈ Rd
: x − cj ≤ x − cl ∀l ∈ {½, ..., n}}.
lC (x) = Ö
k
Ñ Òj=½
x − cj
¾
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹
45. ÓÒÚ Ö Ò Ð³ Ð ÓÖ Ø Ñ Ø Ö Ø ÄÐÓÝ
Ì ÓÖ Ñ
Ä × k¹ÑÓÝ ÒÒ × ÄÐÓÝ ÓÒÚ Ö ÓÒ ÑÓÒÓØÓÒ Ò ÙÒ ÒÓÑ Ö Ò
³ Ø Ô ×º
ËÓ Ø G(Ct) = {G
(t)
½ , ..., G
(t)
k } Ð Ô ÖØ Ø ÓÒ X г Ø Ô t Ó Ø ck(X, Ct)º
г Ø Ô t + ½¸ ÔÙ ×ÕÙ³ÓÒ ÐÐÓÙ Ð × ÔÓ ÒØ× ÙÜ ÐÙ×Ø Ö× ÓÒØ Ð × ÒØÖ × ×ÓÒØ
Ð × ÔÐÙ× ÔÖÓ ×¸ ÓÒ Ñ Ò Ñ × ÓÒ
ck(G(C(t+½)
), Ct) ≤ ck (X, Ct)
Ê ÔÔ ÐÓÒ× Õ٠гÓÒ ck (G(C(l)), Cl ) = k
j=½ v(G
(l)
j , cj ) ´×ÓÑÑ × Ú Ö Ò ×
× ÐÙ×Ø Ö×µº
ÄÓÖ× Ð Ö Ñ × ÓÙÖ × ÒØÖ × Ô Ö Ð × ÒØÖÓ × × ÖÓÙÔ ×¸ ÔÓÙÖ
ÕÙ ÖÓÙÔ ÓÒ v(G
(t+½)
j , c(t+½) = c(G
(t+½)
j )) ≤ v(G
(t+½)
j , c
(t)
j )¸ Ø ÓÒ
ck(X, Ct+½) ≤ ck(G(C(t+½)
), Ct) ≤ ck(X, Ct)
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹
46. ij ÙÖ ×Ø ÕÙ ÄÐÓÝ Ò Ø ÓÒ Ð × ÔÓ ÒØ× Ò Ø ÙÜ
n = ½ ÔÓ ÒØ× ´•µ Ø k = ¾ Ö Ò × ´×µ
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹
47. ij ÙÖ ×Ø ÕÙ ÄÐÓÝ Ò Ø ÓÒ
Ø Ø ÓÒ × ÔÓ ÒØ× ÙÜ ÒØÖ × ´ Ø Ô ½µ
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹
48. ij ÙÖ ×Ø ÕÙ ÄÐÓÝ Ò Ø ÓÒ
ÒÓÙÚ ÙÜ ÒØÖ × ÒØÖÓ × × ÖÓÙÔ × ´ Ø Ô ½µ
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹
49. ij ÙÖ ×Ø ÕÙ ÄÐÓÝ Ò Ø ÓÒ
Ø Ø ÓÒ × ÔÓ ÒØ× ÙÜ ÒØÖ × ´ Ø Ô ¾µ
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹
50. ij ÙÖ ×Ø ÕÙ ÄÐÓÝ Ò Ø ÓÒ
ÒÓÙÚ ÙÜ ÒØÖ × ÒØÖÓ × × ÖÓÙÔ × ´ Ø Ô ¾µ
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹ ¼
51. ij ÙÖ ×Ø ÕÙ ÄÐÓÝ Ò Ø ÓÒ
ÓÒÚ Ö Ò Ð × ÔÓ ÒØ× ×ÓÒØ ÐÐÓÙ × ÙÜ Ñ Ñ × ÖÓÙÔ × ´ Ø Ô ¿µ ÕÙ ÐÓÖ×
Ð ÔÖ ÒØ Ø Ö Ø ÓÒ
Ø Ô ¾ Ø Ô ¿
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹ ½
52. Ð ÓÖ Ø Ñ ÄÐÓÝ Ð × × ÐÙ×Ø Ö× Ú ×
ÇÒ Ô ÙØ ÚÓ Ö × ÐÙ×Ø Ö× ÕÙ Ú ÒÒ ÒØ Ú × ´ × Ö Ö × Ò ÔÖ Ø ÕÙ Ñ ×
Ô ÙØ ÖÖ Ú Ö µº Ò× ×¸ ÓÒ Ô ÙØ Ô ÖØ ÐÐ Ñ ÒØ Ö Ó × Ö ÙÒ ÓÙ ×
ÒÓÙÚ ÐÐ × Ö Ò ×¸ Ø Ð ×ÓÑÑ × Ú Ö Ò × × ÐÙ×Ø Ö× ÓÒØ ÒÙ Ñ ÒÙ Ö
´Ô ÖØ Ð Ö × Ò µ
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹ ¾
53. ÍÒ ÒÓÑ Ö ÜÔÓÒ ÒØ Ð Ñ Ò Ñ ÐÓ ÙÜ
Ä ÓÒ Ø ÓÒ Ó Ø × k¹ÑÓÝ ÒÒ × Ô ÙØ ÚÓ Ö ÙÒ ÒÓÑ Ö ÜÔÓÒ ÒØ Ð
Ñ Ò Ñ ÐÓ Ùܺ
Ñ Ò ÑÙÑ ÐÓ Ð ¼.¿ ´ µ Ø ´ µ
Ñ Ò Ñ ÐÓ ÙÜ ∼ ¼. ½ ´ µ Ø ´ µ
ÇÒ Ö ÔÐ ÕÙ ×ÓÙ×¹ Ò× Ñ Ð Ò Ô ÕÙ Ø× Ò Ð × ÐÓ Ò ÒØ ØÖ × ÐÓ Ò× Ð × ÙÒ× ×
ÙØÖ ×
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹ ¿
54. Ð ÓÖ Ø Ñ ÄÐÓÝ
Å Ö ÜÔ Ö Ñ ÒØ Ð Ñ ÒØ ØÖ × Ò ÑÔÐ Ñ ÒØ Ö ÙÒ Ö Ø Ö ÔÓÙÖ ×ØÓÔÔ Ö
Ð × Ø Ö Ø ÓÒ× ÐÓÖ×ÕÙ Ð ÖÓ ×× Ò Ð ÓÒ Ø ÓÒ Ó Ø Ô ×× ×ÓÙ× ÙÒ
× Ù Ð ÓÒÒ È Ö Ü ÑÔÐ ¸ ek(X, Ct) − ek (X, Ct+½) ≤ ´ÓÙ × Ù Ð Ö Ð Ø Ò
ÔÓÙÖ ÒØ µº
ÓÑÔÐ Ü Ø ÄÐÓÝ O(dn) Ò Ñ ÑÓ Ö Ø O(dns) Ó s ÒÓÑ Ö
³ Ø Ö Ø ÓÒ׺
Ò Ø ÓÖ ¸ г ÙÖ ×Ø ÕÙ ÄÐÓÝ Ô ÙØ ÓÙ Ð Ö ÙÒ ÒÓÑ Ö
ÜÔÓÒ ÒØ ÐÐ Ñ ÒØ Ó × ´Ð Ò Ö Ò ½ µº ººº Ø ×ÓÙÚ ÒÓÒ× ÒÓÙ× ÕÙ
Ñ Ò Ñ × Ö Ð × k¹ÑÓÝ ÒÒ × ×ÓÒØ Æȹ ÙÖ×
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹
55. k¹ÑÓÝ ÒÒ × Ð Ó Ü Ù ÒÓÑ Ö ÐÙ×Ø Ö× k
ÍÒ ÔÖÓ Ð Ñ ÑÔÓÖØ ÒØ Ø ÖÑ Ò Ö Ð ÒÓÑ Ö ÐÙ×Ø Ö× k
ÈÓÙÖ Ò³ ÑÔÓÖØ ÕÙ Ð k¸ ÓÒ Ð ÓÒ Ø ÓÒ k¹ÑÓÝ ÒÒ ÓÔØ Ñ Ð ek (X)
´ Ú ÐÙ Ö ÑÔ Ö ÕÙ Ñ ÒØ Ú Ð³ ÙÖ ×Ø ÕÙ ÄÐÓÝ ×ÙÖ ÔÐÙ× ÙÖ×
Ò Ø Ð × Ø ÓÒ×µ
ek(X) ÖÓ Ø ÓÒ ÑÓÒÓØÓÒ Ù×ÕÙ³ en(X) = ¼ ´ÙÒ ÔÓ ÒØ Ô Ö ÐÙ×Ø Ö¸
Ú Ö Ò ÒÙÐÐ µ
Å Ø Ó Ù ÓÙ ÓÒ ×× Ò Ð ÓÒ Ø ÓÒ (k, ek (X)) Ø ÓÒ Ó × Ø k Ù
Ò Ú Ù Ù ÓÙ ´ Ð ÓÛµº
k
2 3 4 5 6 7 8 9 10
fonctiondecoˆutdesk-moyennesek(X)
avant-brasbras
coude
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹
56. Ä × Ð Ñ Ø Ø ÓÒ× Ð Ø Ò ÕÙ × k¹ÑÓÝ ÒÒ ×
È ÖÑ Ø ØÖÓÙÚ Ö × ÐÙ×Ø Ö× ÓÒØ Ð × ÒÚ ÐÓÔÔ × ÓÒÚ Ü × × ÖÓÙÔ × ×ÓÒØ
ÙÜ ÙÜ × Ô Ö Ð × ´ÔÖÓÔÖ Ø ÎÓÖÓÒÓ µº
È Ö Ü ÑÔÐ ¸ Ò Ô ÖÑ Ø Ô × Ô ÖØ Ø ÓÒÒ Ö ÓÖÖ Ø Ñ ÒØ Ù ÓÒÒ ×
´ÈÓÙÖ Ò ÓÖÑ Ø ÓÒ¸ ÔÖÓ Ð Ñ Ö ×ÓÐÙ Ô Ö Ð × k¹ÑÓÝ ÒÒ × ÒÓÝ Ùµ
Ö Ò Æ Ð× Ò ¿ºk¹ÑÓÝ ÒÒ × ½¹
57. Î Ö Ø Ø ÖÖ Ò
Ë Ò× Ú Ö Ø Ø ÖÖ Ò¸ ÙÒ Ò ÐÝ× ×Ù Ø Ú × ÐÙ×Ø Ö× Ô ÖÑ Ø Ñ ØØÖ
Ò Ú Ð ÙÖ Ø ÐÐ ÓÙ Ø ÐÐ Ø Ò ÕÙ ÐÙ×Ø Ö Ò º
Å × ÕÙ Ò d > ¿ ÓÑÑ ÒØ Ú ×Ù Ð × Ö
ÄÓÖ×Õ٠гÓÒ ×ÔÓ× Ú Ö Ø × Ø ÖÖ Ò× Ô Ö × ÙÜ ÓÒÒ × ÓÒØ ÓÒ
ÓÒÒ Ø Ð³ ÔÔ ÖØ Ò Ò ÙÜ ÐÙ×Ø Ö× ´ ³ ×ع ¹ Ö Ð Ð ×× ÔÓÙÖ
ÕÙ ÓÒÒ µ¸ ÓÒ Ô ÙØ Ð ÙÐ Ö Ú Ö× Ò Ü × ÕÙ ÑÓÒØÖ ÒØ Ð
ÓÒ ÓÖ Ò Ù Ö ×ÙÐØ Ø Ú ÐÙ Ø ÕÙ Ø ´×ÙÔÔÓ× ÓÔØ Ñ Ðµº
ÆÓØ Þ Ð ÔÖÓ Ð Ñ Ñ Ð³ Ø ÕÙ ØØ ÔÙ ×ÕÙ Ð × ÐÙ×Ø Ö× Ò ×ÓÒØ Ô ×
ÓÖ Ñ ÒØ ÒÙÑ ÖÓØ × Ú Ð × Ñ Ñ × ÒÙÑ ÖÓ× k! Ô ÖÑÙØ Ø ÓÒ׺
58. ij Ò Ü Ê Ò × Ñ Ð Ö Ø ÒØÖ ÙÜ ÐÙ×Ø Ö Ò ×
Å ×ÙÖ × Ñ Ð Ö Ø ÒØÖ ÙÜ ÐÙ×Ø Ö Ò × G = Gi Ø G Gi ´ ×ÓÒ׸ ÐÙ
Ó Ø ÒÙ Ô Ö Ð × k¹ÑÓÝ ÒÒ × Ø ÙÒ Ù ÓÒÒ × ÓÖÖ Ø Ñ ÒØ Ø ÕÙ Ø µº
ÓÑÔ Ö ØÓÙØ × Ð × n
¾ Ô Ö × (xi , xj ) ÔÓ ÒØ× Ø ÓÑÔØ ÙÜ ÕÙ × ØÖÓÙÚ ÒØ
Ò× Ð × Ñ Ñ × ÐÙ×Ø Ö× ´aµ Ø ÙÜ ÕÙ × ØÖÓÙÚ ÒØ Ò× × ÐÙ×Ø Ö× Ö ÒØ×
´bµº
R(G, G ) =
a + b
n
¾
, ¼ ≤ R ≤ ½
a #{(i, j) : l(xi ) = l(xj) ∧ l (xi ) = l (xj )}
b #{(i, j) : l(xi ) = l(xj ) ∧ l (xi ) = l (xj )}
ÓÒ Ø ÓÒ½ ∧ ÓÒ Ø ÓÒ¾ ÚÖ ×× º ÓÒ Ø ÓÒ ½ Ø ¾ ×ÓÒØ ÚÖ ×
ÇÒ Ú Ø Ö Ö ÒÙÑ ÖÓØ Ö Ð × k ÖÓÙÔ × ´k! Ô ÖÑÙØ Ø ÓÒ×µº
59. ÈÖÓ Ö ÑÑ Ö Ð × k¹ÑÓÝ ÒÒ ×
Ò Ô Ö ÐÐ Ð
´½µ ÈÖÓ Ö ÑÑ Ö Ò ··
´¾µ ÈÖÓ Ö ÑÑ Ö Ú ÅÈÁ
60. Ä Ð Ò ÓÖ ÒØ Ó Ø ´Çǵ ··
Ö Ô Ö ÖÒ ËØÖÓÙ×ØÖÙÔ Ò ½ ¿
ÇÖ ÒØ Ó Ø Ú ØÝÔ ×Ø Ø ÕÙ º ü Ò Ù Ò Â Ú Ø Ö Ú
Ó ÓÑÔ Ð Ö Ô
ÇÒ Ö ×Ó ¹Ñ Ñ Ð Ñ ÑÓ Ö Ô × Ö Ñ ×× Ñ ØØ ´ Ö
ÓÐÐ ØÓÖ¸ µº ØØ ÒØ ÓÒ ÙÜ ÖÖ ÙÖ× ÐÓÖ× Ð³ Ü ÙØ ÓÒ ´×Ý×Ø Ñ Ö × ¸
× Ñ ÒØ Ø ÓÒ ÙÐص
Ö Ø Ñ Ø ÕÙ ÔÓ ÒØ ÙÖ× Ô ÖÑ × ´=Â Ú Ô ×× Ô Ö Ú Ð ÙÖ ÓÙ Ô Ö
Ö Ö Ò ÔÓÙÖ Ð × Ó Ø×µ
ÜØ Ò× ÓÒ× Ö× º º ÔÔ º ÜÜ º ·· º º º ÔÔ º ÜÜ º ··
ÍØ Ð × ·· ´ ÆÍ ÓÑÔ Ð Ö ÓÐÐ Ø ÓÒµ Ð ÓÒ Ø ÓÒ ÆÍ
62. ÓÑÔ Ð Ö Ø Ü ÙØ Ö ÙÒ ÔÖÓ Ö ÑÑ Ò ··
Ò ÐÙ Ó×ØÖ Ñ
Ù× Ò Ò Ñ ×Ô ×Ø »» ÔÓÙÖ Ð × ÒØÖ ×»ËÓÖØ ×
ÒØ Ñ Ò ´µ
ß
ÒØ Ú Ö½ ¾
ÒØ ∗ Ú Ö¾
Ú Ö¾ ²Ú Ö½ »» Ú Ö¾ ÔÓ ÒØ ×ÙÖ Ú Ö½
ÓÙØ Ú Ð ÙÖ Ú Ö¾ Ú Ö¾ Ò Ð
ÒØ Ú Ö¿ ´∗Ú Ö¾ µ
ÓÙØ Ú Ð ÙÖ Ú Ö¿ Ú Ö¿ Ò Ð
Ö ØÙÖÒ ¼ »» Ò × Ò× Ð ÑÓ Ò Ö ÔÖÓ Ð Ñ ¹ µ
ÓÒ×ÓÐ ·· ÔÖÓ Ö ÑÑ º ÔÔ ¹Ó ÑÓÒÔÖÓ Ö ÑÑ º Ü
ÓÒ×ÓÐ ÑÓÒÔÖÓ Ö ÑÑ º Ü
63. Ä ÓÒ Ø ÓÒ ×Û Ô ×ÙÖ Ð ØÝÔ ÒØ Ö Ò ··
Ê ÔÔ Ð ×ÙÖ Ð Ñ ÑÓ Ö Ô Ð ´ÔÓÙÖ ÑÔ Ð Ö Ð × ÔÔ Ð× ÓÒ Ø ÓÒµ Ø Ø × ´ÔÓÙÖ
Ð Ñ ÑÓ Ö ÐÓ Ð Ù ÔÖÓ Ö ÑÑ Ü ÙØ ÔÖÓ ××Ù×µ
Ú Ó ×Û Ô ´ Ò Ø ¸ Ò Ø µ
ß Ò Ø
»» Ô ×× Ô Ö Ö Ö Ò ´ ÓÖ Ñ ÒØ Ò Ø Ð × ×µ
Ú Ó ÓÓ ×Û Ô ´ Ò Ø² ¸ Ò Ø² µ
ß Ò Ø
»» Ö ÙÑ ÒØ× ÔÓ ÒØ ÙÖ× ´Ô ÙØ ØÖ ÆÍÄÄ ÓÙ ¼µ
Ú Ó ÓÓ ×Û ÔÔØÖ ´ Ò Ø ∗ ¸ Ò Ø ∗ µ
ß Ò Ø ´∗ µ ´∗ µ ´∗ µ ´ ∗ µ
Ò Ø ¸ ½¼
×Û Ô ´ ¸ µ »» Ô ×× Ô Ö Ú Ð ÙÖ
Ó Ù Ø Ò Ð »» ½¼
ÓÓ ×Û Ô ´ ¸ µ »»Ô ×× Ô Ö Ö Ö Ò
Ó Ù Ø Ò Ð »»½¼
64. Ò ·· Ô ×× Ô Ö Ö Ö Ò × Ø Ô Ö ÔÓ ÒØ ÙÖ×
Ò » ··¸ ÓÒ Ô ×× Ð × Ö ÙÑ ÒØ× ÙÜ ÔÖÓ ÙÖ × Ô Ö Ö ÓÔ º
Ò Ð Ù Ó × Ø Ö Ñ
Ù × Ò Ò Ñ ×Ô × Ø
Ú Ó Ò Ö Î Ð Ù Ö ´ Ò Ø Ü µ ß Ü·· »∗ ¸ ³ × Ø ¿ ∗»
Ú Ó Ò Ö È Ó Ò Ø Ù Ö ´ Ò Ø ∗ ÔÜ µ ß ´∗ ÔÜ µ··
Ú Ó Ò Ö Ê Ö Ò ´ Ò Ø ² Ü µ ß Ü··
Ò Ø Ñ Ò ´ Ò Ø Ö ¸ Ö ∗ Ö Ú µ ß
Ò Ø Ü ¾
Ò Ö Î Ð Ù Ö ´ Ü µ
Ó Ù Ø Ü Ü Ò Ð »» ¾
Ò Ö È Ó Ò Ø Ù Ö ´²Ü µ
Ó Ù Ø Ü Ü Ò Ð »» ¿
Ò Ö Ê Ö Ò ´ Ü µ
Ó Ù Ø Ü Ü Ò Ð »»
Ö Ø Ù Ö Ò ¼
È ×× Ô Ö ÔÓ ÒØ ÙÖ Ú Ø Ð Ö ÓÔ × ÖÓ× Ö ÙÑ ÒØ× ´Ó Ø×µ¸ Ø
Ô ÖÑ Ø Ô ×× Ö ÆÍÄÄ
È ×× Ô Ö Ö Ö Ò Ð × ´ØÓÙ ÓÙÖ× Ò Ø Ð × µ¸ Ô × ³ Ö Ø Ñ Ø ÕÙ ×
77. Å ×× È ×× Ò ÁÒØ Ö ´ÅÈÁµ
Ä × ÔÖÓ ××Ù× ÓÑÑÙÒ ÕÙ ÒØ ÒØÖ ÙÜ Ö × Ñ ×× × ´ ÓÒØ Ò ÒØ Ð ×
ÓÒÒ ×µ
ÔÔÐ Ø ÓÒ ÈÖÓ Ö ÑÑ Ò ÁÒØ Ö ´ ÈÁµ
Ò Ø Ð ×ÝÒØ Ü ´ Ø × Ñ ÒØ ÕÙ µ ³ÙÒ Ð ÓØ ÕÙ ÖÓÙØ Ò ×
×Ø Ò Ö × × ÔÓÙÖ Ö Ö × ÔÖÓ Ö ÑÑ × ÙØ Ð × ÒØ × Ò ×
Ñ ×× ×º Æ Ô Ò Ô × Ù Ð Ò ×ÓÙ×¹ ÒØ ÓÑÑ Ð ¸ ··¸
Â Ú ¸ ÓÖØÖ Ò¸ ÈÝØ ÓÒ¸ Ø º ´ÔÐÙ× ÙÖ× Ò Ò × Ð³ ÈÁ ×ÓÒØ ×ÔÓÒ Ð ×µ
ÒÚ ÖÓÒÒ Ñ ÒØ Ô Ö ÐÐ Ð Ñ ÑÓ Ö ×ØÖ Ù ½ ½ ´ÛÓÖ × ÓÔµ¸ ÅÈÁ¹Á
´½ ¾µ¸ ÅÈÁ¹¾¸ ÅÈÁ¹¿ ´¾¼¼ µ
ÈÐÙ× ÙÖ× ÑÔÐ Ñ ÒØ Ø ÓÒ× ×ÔÓÒ Ð × ÅÈÁ
ÇÒ ÙØ Ð × ÇÔ ÒÅÈÁ ´ ØØÔ »»ÛÛÛºÓÔ Ò¹ÑÔ ºÓÖ »µ Ò × ÐÐ × Ñ Ò ×
Ú ··º
78. ÈÖÓ Ö ÑÑ ÅÈÁ ´ Ò Ò Ò µ ÕÙ ×Ù × º ÔÔ
Ò ÐÙ ÑÔ º
ÒØ Ñ Ò´ ÒØ Ö ¸ Ö∗∗ Ö Ú µ
ß
ÒØ ¸ Ô ¸ Ò Ñ Ð Ò
Ö ÔÖÓ ××ÓÖ Ò Ñ ÅÈÁ Å ÈÊÇ ËËÇÊ Æ Å
ÅÈÁ ÁÒ Ø´ ² Ö ¸ ² Ö Ú µ »» Ò Ø Ð × ÅÈÁ
ÅÈÁ ÓÑÑ × Þ ´ÅÈÁ ÇÅÅ ÏÇÊÄ ¸²Ôµ »» ÒÓÑ Ö ÔÖÓ ××Ù×
ÅÈÁ ÓÑÑ Ö Ò ´ÅÈÁ ÇÅÅ ÏÇÊÄ ¸² µ »» Ö Ò Ù ÔÖÓ ××Ù×
ÅÈÁ Ø ÔÖÓ ××ÓÖ Ò Ñ ´ÔÖÓ ××ÓÖ Ò Ñ ¸ ²Ò Ñ Ð Òµ »»
ÒÓÑ Ù ÔÖÓ ×× ÙÖ
Ô Ö Ò Ø ´ ÈÖÓ ×× ÙÖ ±× Á ± Ò ¸ ÔÖÓ ××ÓÖ Ò Ñ ¸ µ
ÅÈÁ Ò Ð Þ ´ µ »» ÓÒ Ø ÖÑ Ò ÅÈÁ
Ö ØÙÖÒ ¼
79. ÓÑÔ Ð Ö Ø Ü ÙØ Ö ×ÓÒ ÔÖÓ Ö ÑÑ ÅÈÁ
Ä ÓÑÔ Ð Ø ÓÒ × Ø Ô Ö
ÑÔ ·· ÕÙ ×Ù × º ÔÔ ¹Ó ÕÙ ×Ù ×
´× гÓÔØ ÓÒ ¹Ó Ò³ ×Ø Ô × Ñ × ¸ Ö Ø Ò× ÙÒ Ö ºÓÙص
Ü ÙØ ÓÒ ×ÙÖ × Ñ Ò ÐÓ Ð Ñ ÒØ ´ ÓÐÐ Ò µ
ÓÐÐ Ò ÅÈÁ ° ÑÔ ÖÙÒ ¹ÒÔ ÕÙ ×Ù ×
ÈÖÓ ×× ÙÖ ÓÐÐ Ò ºÔÓÐÝØ Ò ÕÙ º Ö Á ¿
ÈÖÓ ×× ÙÖ ÓÐÐ Ò ºÔÓÐÝØ Ò ÕÙ º Ö Á ¼
ÈÖÓ ×× ÙÖ ÓÐÐ Ò ºÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ ÓÐÐ Ò ºÔÓÐÝØ Ò ÕÙ º Ö Á ¾
80. Ü ÙØ Ö ×ÙÖ ÔÐÙ× ÙÖ× Ñ Ò ×
Ö Ò ½ ° ÑÔ ÖÙÒ ¹ÒÔ ¹ Ó×Ø Ò Ð Ø ÖÖ ¸ ÙØÖ ÕÙ ×Ù ×
ÈÖÓ ×× ÙÖ ÙØÖ ºÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ ÙØÖ ºÔÓÐÝØ Ò ÕÙ º Ö Á ¿
ÈÖÓ ×× ÙÖ Ò Ð Ø ÖÖ ºÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ Ò Ð Ø ÖÖ ºÔÓÐÝØ Ò ÕÙ º Ö Á ¼
ÈÖÓ ×× ÙÖ Ò Ð Ø ÖÖ ºÔÓÐÝØ Ò ÕÙ º Ö Á
⇒ ÑÔ ÖÙÒ ×Ø ÙÒ Ð × ÔÓÙÖ ÓÖØ ÖÙÒ
½ Ñ Ò × Ò× Ð × × ÐР׸ ÓÖ Ò × × Ò ÐÙ×Ø Ö× Ñ Ò × ´¿ × ¼ + ½ µ
81. ÍØ Ð × Ö Ð³ÓÖ ÓÒÒ Ò ÙÖ ËÄÍÊÅ ×ÙÖ Ð × ÐÙ×Ø Ö×
¿ ÐÙ×Ø Ö× ¼ Ò Ù × Ø ÙÒ ÐÙ×Ø Ö ½ Ò Ù ×
× Ò Ó ÚÓ Ö × Ò ÓÖÑ Ø ÓÒ× ×ÙÖ Ð ÐÙ×Ø Ö Ð ÕÙ ÐÐ ÚÓØÖ Ñ Ò ÔÔ ÖØ ÒØ
Ö Ò ¾ ½ ° × Ò Ó
È ÊÌÁÌÁÇÆ Î ÁÄ ÌÁÅ ÄÁÅÁÌ ÆÇ Ë ËÌ Ì ÆÇ ÄÁËÌ
Ù ¶ ÙÔ ½ ¼¼ ½ Ð ÐÐ Ñ Ò ¸
Ò Ð Ø ÖÖ ¸ ÙØÖ ¸ Ð ÕÙ ¸ ×Ô Ò ¸ ÒÐ Ò ¸
Ö Ò ¸ ÖÓ ÒÐ Ò ¸ ÓÐÐ Ò ¸ ÓÒ Ö ¸ ÖÐ Ò ¸ ×Ð Ò
¸Ð ØÙ Ò ¸Ñ ÐØ ¸ÑÓÒ Ó ¸ÔÓÐÓ Ò ¸ÔÓÖØÙ Ð ¸ÖÓÙÑ Ò ¸
×Ù
82. ÍØ Ð × Ö Ð³ÓÖ ÓÒÒ Ò ÙÖ ËÄÍÊÅ ×ÙÖ Ð × ÐÙ×Ø Ö×
¹ × ¹ º½° ×× ××ÓÒÒ
Ä ×Ø ÐÓ Ò Ö Å Ö ¾¼ ½ ¾ ¾¼½ ÖÓÑ Ð Òº
ÔÓÐÝØ Ò ÕÙ º Ö
××ÓÒÒ ½ ° × Ò Ó
È ÊÌÁÌÁÇÆ Î ÁÄ ÌÁÅ ÄÁÅÁÌ ÆÇ Ë ËÌ Ì ÆÇ ÄÁËÌ
Ëƾ ¶ ÙÔ ½ ¼¼ ¼ Ð Ð ØØ ¸ Ò
¸ ÐÐ Ö ¸ Ò Ó × ¸ Ò Ù ÐÐ ¸ Ö ÒÒ × ¸ Ö Ù ¸ Ö Ù ¸
Ù ÖÓ ¸ ÖÓ Ø ¸ ÖÑÓÖ ¸ ÖÖ Ð Ø ¸ Ö ÒØ ¸ Ö ¸
Ö Ù× ¸ ÓÖ Ó Ò ¸ ÓÙ × ¸ ××ÓÒÒ ¸ Ò ×Ø Ö ¸ Ö ÓÒ ¸
ÖÓÒ ¸ ÝÑÒÓØ ¸ Ò Ö ¸ ÙÖ ¸Ð Ö ¸Ð Ò × ¸Ð Ù ¸
ÐÓ Ö ¸ÐÓØØ ¸Ñ Ò ¸Ñ ÖÒ ¸Ñ Ý ÒÒ ¸ÑÓÖ Ò ¸ÑÓ× ÐÐ
¸ÑÙÐ Ø ¸ÑÙÖ Ò ¸Ô Ö Ò ¸Ö ¸Ö ÕÙ Ò ¸ÖÓÙ Ø ¸
ÖÓÙ×× ØØ ¸× ÓÒ ¸× ÙÑÓÒ ¸× ÐÙÖ ¸×ÓÐ ¸×ÓÑÑ ¸Ø ÓÒ ¸
ØÖÙ Ø ¸Ú Ò ¸ÚÓ× ×
83. ××ÓÒÒ ½ ° × ÐÐÓ ¹¹ÒØ × × ¿¾ ¹¹ÒØ × × ¹Ô Ö ¹ÒÓ
×
× ÐÐÓ Ö ÒØ Ó ÐÐÓ Ø ÓÒ
××ÓÒÒ ½ ° × Ø Ö Ô ËÄÍÊÅ
ËÄÍÊÅ ÂÇ Á
ËÄÍÊÅ ÂÇ ÈÍË È Ê ÆÇ ³ ´Ü µ³
ËÄÍÊÅ ÂÇ Á
ËÄÍÊÅ ÂÇ ÆÇ ÄÁËÌ Ò ¸ ÐÐ Ö ¸ Ö ÒÒ × ¸ ÖÑÓÖ
ËÄÍÊÅ ÂÇ ÆÍÅ ÆÇ Ë
ËÄÍÊÅ ÂÇ È ÊÌÁÌÁÇÆ Ëƾ
ËÄÍÊÅ ÆÆÇ Ë
ËÄÍÊÅ ÆÇ ÄÁËÌ Ò ¸ ÐÐ Ö ¸ Ö ÒÒ × ¸ ÖÑÓÖ
ËÄÍÊÅ ÆÇ ÄÁ Ë Ë ³´ÒÙÐе³
ËÄÍÊÅ ÆÈÊÇ Ë ¿¾
ËÄÍÊÅ ÆÌ ËÃË ¿¾
ËÄÍÊÅ ÆÌ ËÃË È Ê ÆÇ
ËÄÍÊÅ ËÍ ÅÁÌ ÁÊ »Ù× Ö×»ÔÖÓ ×» Ò Ó»Ò Ð× Ò» ½
ËÄÍÊÅ ËÍ ÅÁÌ ÀÇËÌ ××ÓÒÒ ºÔÓÐÝØ Ò ÕÙ º Ö
ËÄÍÊÅ Ì ËÃË È Ê ÆÇ ³ ´Ü µ³
84. ××ÓÒÒ ½ ° ÑÔ ÖÙÒ ÕÙ ×Ù ×
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½½
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¿¼
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á ¿
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½¼
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½¾
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á ¼
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¿½
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ¾¼
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ¾½
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ¾¾
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ¾¿
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½¿
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
85. Æ Ô × ÓÙ Ð Ö ÖÑ Ö Ð × ÔÓÙÖ Ö Ò Ö Ð × Ö ××ÓÙÖ × ËÄÍÊÅ
××ÓÒÒ ½ ° Ü Ø
Ü Ø
× ÐÐÓ Ê Ð ÒÕÙ × Ò Ó ÐÐÓ Ø ÓÒ
88. Ð ÙÐ π Ô Ö ÙÒ Ñ Ø Ó ÅÓÒØ ¹ ÖÐÓ
π
≈
nc
n
, πn =
nc
n
Ð Ñn→∞
πn = π.
89. Ð ÙÐ π Ô Ö ÙÒ Ñ Ø Ó ÅÓÒØ ¹ ÖÐÓ
Ò Ø Ö Ù Ö ¼
»» Ò Ö Ø ÙÖ Ð ØÓ Ö Ö ÒØ × ÒÓÒ Ð × ÔÖÓ º Ð × Ñ Ñ ×
× Ö Ò ´ ÑÓ µ
Ó Ö ´ ¼ Ò ··µ ß
Ü ´ Ó Ù Ð µ Ö Ò ´ µ »Ê Æ Å Ý ´ Ó Ù Ð µ Ö Ò ´ µ »Ê Æ Å
»» ÓÑÔØ Ð × ÔÓ ÒØ× ÕÙ ØÓÑ ÒØ Ò× Ð ÕÙ Ö ÒØ Ù ×ÕÙ
´ Ü ∗Ü·Ý ∗Ý ½º¼µ Ò Ø Ö Ù Ö ··
Ô Ô Ö Ó Ü Ô º ¼ ∗ Ò Ø Ö Ù Ö »´ Ó Ù Ð µ ´ Ò µ
Ô Ö Ò Ø ´ Ô Ô Ô Ö Ó Ô Ö Ð Ô Ö Ó º ± Ú ± Ô Ó Ò Ø × ± Ö Ö Ù Ö
± Ò ¸ ÑÓ ¸ Ò ¸ Ô Ô Ö Ó Ü Ô ¸ × ´ Ô Ô Ö Ó Ü Ô −Å ÈÁµ µ
»» Å ÒØ Ò ÒØ ÓÒ ÙÑÙÐ ØÓÙ× Ð × Ö ×ÙÐØ Ø× Ú ÙÒ Ö Ù Ø ÓÒ
ÅÈÁ Ê Ù ´² Ò Ø Ö Ù Ö ¸² Ø Ó Ø Ð Á Ò Ø Ö Ù Ö ¸ ½ ¸ ÅÈÁ ÁÆÌ ¸ ÅÈÁ ËÍŸ ¼ ¸
ÅÈÁ ÇÅÅ ÏÇÊÄ µ
´ ÑÓ ¼µß Ô Ô Ö Ó Ü Ô º ¼ ∗ Ø Ó Ø Ð Á Ò Ø Ö Ù Ö »´ Ó Ù Ð µ ´ Ò Ô Ö Ó × ∗Ò µ
Ô Ö Ò Ø ´ Ù Ñ Ù Ð Ø Ó Ò Ô Ô Ô Ö Ó Ú ± Ô Ó Ò Ø × ± Ò ¸ Ò∗
Ò Ô Ö Ó × ¸ Ô Ô Ö Ó Ü Ô µ
Ô Ö Ò Ø ´ Ö Ö Ù Ö ³ Ô Ô Ö Ó Ü Ñ Ø Ó Ò ± Ò ¸ × ´ Ô Ô Ö Ó Ü Ô −Å ÈÁµ µ
90. ÑÔ ÖÙÒ ¹ÒÔ ½¾ ¹ Ó×Ø Ø ÓÒ ¸ ÙÖ ¸ × Ñ Ô ÅÓÒØ ÖÐÓ ¾ º Ü
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º ¾ Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ¿ ·¼¼ ÖÖ ÙÖ ½º¼¼½ ¹¼
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ¾½ ¾ ·¼¼ ÖÖ ÙÖ º ¹¼
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º ½½ Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ¿¾ ·¼¼ ÖÖ ÙÖ ½º¿ ½¼ ¹¼
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ·¼¼ ÖÖ ÙÖ ½º¾¿ ¿¿ ¹¼
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ¿ ·¼¼ ÖÖ ÙÖ º ¿¿ ¼ ¹¼
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º ¿ Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ¿ ·¼¼ ÖÖ ÙÖ ½º ¼ ¹¼
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ½ ·¼¼ ÖÖ ÙÖ ¾º¿ ¾ ½ ¹¼
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º ¼ Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ·¼¼ ÖÖ ÙÖ ½º¼ ¾ ¹¼
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º ½¼ Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ½ ·¼¼ ÖÖ ÙÖ º ¿ ½ ¹¼
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º ½ Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ·¼¼ ÖÖ ÙÖ ½º¼ ¾ ¹¼
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ¾ ·¼¼ ÖÖ ÙÖ ½º ¼ ¿ ¹¼
Ô ÔÔÖÓ Ô Ö Ð ÔÖÓ º Ú ½¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ·¼¼ ÖÖ ÙÖ º¼ ¿ ¼ ¹¼
ÙÑÙÐ Ø ÓÒ Ô ÔÔÖÓ Ú ½¾¼¼¼¼¼¼¼¼ ÔÓ ÒØ× ¿º½ ½ ·¼¼
ÖÖ ÙÖ ³ ÔÔÖÓÜ Ñ Ø ÓÒ º¾½ ¹¼
91. Ð ÓÖ Ø Ñ Ô Ö ÐÐ Ð ÔÓÙÖ Ð ×
k¹ÑÓÝ ÒÒ ×
È Ö ÐÐ Ð k¹Ñ Ò×
Ö Ò Æ Ð× Ò ºk¹ÑÓÝ ÒÒ × Ò ÅÈÁ ½¹ ½
92. È Ö ÐÐ Ð × Ø ÓÒ ÔÖÓÔÖ Ø ÓÑÔÓ× Ø ÓÒ Ù ÒØÖÓ
ËÓ Ø X Ø X ÙÜ ÙÜ ÓÒÒ × ÔÓÒ Ö × Ú Ð ÙÖ× ×ÓÑÑ × × ÔÓ ×
ØÓØ ÙÜ W Ø W º ÐÓÖ× ÓÒ
¯x(X ∪ X ) =
W
W + W
¯x(X) +
W
W + W
¯x(X )
ÌÖ × ÙØ Ð ÔÓÙÖ Ô ÖØ Ö Ð Ð ÙÐ × ÓÒÒ × ×ÙÖ ÔÐÙ× ÙÖ× ÔÖÓ ×× ÙÖ׺ºº
ÈÖÓÔÖ Ø Ð ÓÑ ØÖ Ù Ð ÒÒ ´Ò³ ×Ø Ô × ÚÖ Ò ÓÑ ØÖ
ÝÔ Ö ÓÐ ÕÙ µ
Ö Ò Æ Ð× Ò ºk¹ÑÓÝ ÒÒ × Ò ÅÈÁ ½¹ ¾
93. È Ö ÐÐ Ð × Ø ÓÒ Ð³ ÙÖ ×Ø ÕÙ ÄÐÓÝ
ËÙÔÔÓ×ÓÒ× n = O(½)¸ k = O(½) Ø p ÔÖÓ ×× ÙÖ× P¼, ..., Pp−½ ´ØÓÙ× Ð ×
ÔÖÓ ×× ÙÖ× Ð × ÒØ Ð × ÓÒÒ ×µº
ÍØ Ð ×ÓÒ× Ð ÔÖÓÔÖ Ø ÓÑÔÓ× Ø ÓÒ × ÒØÖÓ ×
c½(X) = p−½
i=¼
½
p c½(Xp)º
ÍÒ × ÔÖÓ ×× ÙÖ׸ ×ÓÒ× P¼ ×³Ó ÙÔ Ð³ Ò Ø Ð × Ø ÓÒ × ÒØÖÓ ×¸
ÔÙ × Ù× ´ ÖÓ ×ص ØØ Ò Ø Ð × Ø ÓÒ ØÓÙ× Ð × ÙØÖ × ÔÖÓ ×× ÙÖ׺
Ò ÅÈÁ¸ ÓÑÑ Ò ÅÈÁ ×غ
ÕÙ ÔÖÓ ×× ÙÖ Pr ×³Ó ÙÔ ³ ÙÒ Ô ÕÙ Ø n
p ÓÒÒ ×
Xr = {xr n
p
...x(r+½) n
p
−½} Ò Ð ÙÐ ÒØ Ð ×Ø Ò Ñ Ò Ñ Ð × × xi ÙÜ
ÒØÖ ×º ÇÒ Ñ Ø ÓÙÖ Ð ÓÒ Ø ÓÒ Ó Ø Ø ÓÒ Ð ÙÐ Ð × ÒØÖÓ × Ø
Ö Ò Ð Ø Ò Ô Ò ÑÑ ÒØ Ò× ÕÙ Ô ÕÙ Ø G½(r), ..., Gk (r) Ú
n½(r) = |G½(r)|, ..., nk (r) = |Gk(r)|º
ÈÙ × ÓÒ Ö Ù Ø ´ÓÔ Ö Ø ÓÒ Ö Ù µ ØÓÙ× Ð × cj (r) Ø nj (r) Ò × ÒØ Ð
×ÓÑÑ ´ÓÔ Ö Ø ÓÒ ÅÈÁµ ÅÈÁ ÐÐÖ Ù
ÇÒ Ö Ô Ø Ù×ÕÙ³ ÓÒÚ Ö Ò ´ÓÙ ÐÓÖ×ÕÙ Ð ÖÓ ×× Ò Ð ÓÒ Ø ÓÒ
Ó Ø Ô ×× ×ÓÙ× ÙÒ × Ù Ðµº
Ö Ò Æ Ð× Ò ºk¹ÑÓÝ ÒÒ × Ò ÅÈÁ ½¹ ¿
99. INF442 : Traitement des donn´ees massives
A2 : Le HPC et le regroupement hi´erarchique
Frank Nielsen
X2013
15 avril 2015
3 avril 2015
100. HPC : quelques cas pour le Super-Computing (SC)
HPC = on recherche l’ efficacit´e !
Utiliser des mod`eles pour de la simulation parce que sinon
c’est
trop difficile `a construire (souffleries)
trop cher `a construire (crash d’avion/voiture)
trop lent `a attendre (´evolution du climat, galaxies)
trop dangereux (armes, drogues, pollutions, ´epid´emies)
Avoir des r´esultats rapides voire en ligne
on-line, incremental :
valeur temporelle du r´esultat (m´et´eo)
ˆetre le premier `a avoir le r´esultat (bourse, trading HFT)
ˆetre le premier `a avoir “une analyse” (incluant le coˆut de
d´evelopement)
Donn´ees massives, le Big Data :
analyse du g´enome/d’une famille de g´enomes
recherche d’intelligence extraterrestre (SETI)
101. Acc´el´eration, efficacit´e et scalabilit´e
tseq : temps ´ecoul´e par le programme s´equentiel
tP : ... par programme parall`ele sur P proc.
t1 : ... par le programme parall`ele ex´ecut´e en s´equentiel, P = 1
bien sˆur, t1 ≥ tseq sinon on aurait un meilleur algo. s´equentiel
Acc´el´eration : speedup(P) =
tseq
tP
, souvent
tseq
tP
t1
tP
Efficacit´e : e(P) = speedup(P)
P =
tseq
P×tP
par rapport au speed-up lin´eaire, e(P) = 1 ⇔ tP =
tseq
P
Speed-up, efficiency
102. Loi d’Amdahl (1967) : un frein au parall´elisme ?
gain de performance id´eal :
α = fraction du code parall`elisable
αseq = fraction du code non-parall`elisable
avec αseq + α = 1
speedup(P) =
t1
tn
=
(αseq + α )t1
(αseq +
α
P )t1
=
1
αseq +
α
P
lim
P→∞
speedup(P) =
1
αseq
=
1
1 − α
⇒ acc´el´eration born´ee par la fraction de code αseq
non-parall`elisable (celle qui est intrins´equement s´equentielle)
104. Loi d’Amdahl : un exemple visuel pour concr´etiser
αseq = 20% et donc α = 80%
Temps
P = 1 P=2 P=4 P=8
S = 1 S = 5
3
S = 2
5
S = 10
3
S = 5
P → ∞
seq
par
...
lim
P→∞
speedup(P) =
1
αseq
=⇒ speedup ≤ ×5
Est-ce alors int´eressant d’avoir des grands clusters de machines ?
105. Loi de Gustafson : scale speed-up, `a la rescousse !
Simulation : taille des mailles d’une grille 2D/3D = fonction de P
Vid´eo : SD, HD, 4K, 8K, etc.
Concept = Charge de travail (workload) grandit avec P
n n’est pas fix´e ! (= cas d’Amdahl)
speedupGustafson(P) = αseq + P × α
speedupGustafson(P) = αseq + P × (1 − αseq)
Gustafson = parall´elisme de donn´ees
106. Loi de Gustafson : un exemple visuel
Loi de Gustafson : speedup(P) = αseq + P × α . scale speed-up
P = 1 P = 2 P = 4 P = 8
n 2n 4n 8n
temps
la taille des donn´ees n augmente
seq
par
speedup(P) = 0.2 + 0.8 × P
Parfois, en pratique, on obtient un speed-up super-lin´eaire
(hyper-lin´eaire), qui s’explique par le cache hi´erarchique des
donn´ees
Pensez au cheminement complexe des donn´ees vers le processeur
dans le mat´eriel !
108. Cluster de machines : une architecture `a m´emoire
distribu´ee
espace m´emoire local associ´e `a chaque processeur
processeurs connect´e par un r´eseau d’interconnexion
acc`es m´emoire aux autres processeurs explicite par ´echanges
de messages sur le r´eseau
le r´eseau d’interconnexion d´etermine la vitesse d’acc`es aux
donn´ees
caract´eristiques du r´eseau :
transmission avec mod`ele de coˆut
α + τ × Longueur(message) :
latence : temps pour initier une communication (α)
bande passante : vitesse de transfert des donn´ees (τ)
topologie : architectures physique (mat´eriel) et logique (utilis´e
par les algorithmes //)
109. E/S (I/Os) et syst`emes de fichiers parall`eles
E/S : entr´ees/sorties , I/O : input/output
Big Data : Lire et sauvegarder des gros fichiers ou beaucoup de
petits fichiers
gestion parall`ele des E/S impl´ement´e explicitement dans les
programmes (en MPI, la partie appel´ee MPI-IO)
E/S g´er´e par un syst`eme de fichier parall`ele :
Lustre : logiciel libre utilis´e par les gros calculateurs
http://lustre.opensfs.org/
GPFS (General Parallel File System) : d´evelopp´e par IBM pour
des volumes de donn´ees d´epassant le p´etaoctet (1 PB, 1015
)
http://www-03.ibm.com/systems/platformcomputing/products/gpfs/
approche g´er´ee automatiquement par MapReduce avec le GFS
(Google File System)
→ E/S tr`es important en pratique mais pas couvert dans ce cours
d’introduction
110. INF442 : rappel sur notre vocation !
Introduction `a l’algorithmique et `a la programmation parall`ele en
C++/MPI pour l’analyse de donn´ees massives sur un cluster de
machines `a m´emoires distribu´ees (calculs `a gros grains).
111. Processus
Les syst`emes d’exploitation modernes sont multi-tˆaches :
plusieurs applications non-bloquantes peuvent tourner en “mˆeme
temps” (time-slicing).
un seul processus en cours d’ex´ecution sur le CPU `a un
instant donn´e,
un ordonnanceur de tˆaches qui alloue les processus aux
CPUs/cœurs,
´etat d’un processus : en cours d’ex´ecution, prˆet en attente de
CPU, bloqu´e (suspendu/attente de r´eveil).
112. Tˆaches (jobs) sous UNIX
[france ~]$ sleep 10000 &
[1] 12027
[france ~]$ sleep 15000 &
[2] 12065
[france ~]$ jobs
[1]- Running sleep 10000 &
[2]+ Running sleep 15000 &
[france ~]$ kill %1
[1]- Terminated sleep 10000
[france ~]$ fg %2
sleep 15000
Une tˆache peut lancer plusieurs processus (mais souvent c’est un
seul)
113. Tˆaches (jobs) sous UNIX
[ france ~]$ ps
PID TTY TIME CMD
10241 pts /0 00:00:00 bash
12167 pts /0 00:00:00 ps
[ france ~]$ ps -a
PID TTY TIME CMD
12168 pts /0 00:00:00 ps
[ france ~]$ sleep 10000 &
[1] 12169
[ france ~]$ ps -F
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
11234 10241 10240 0 1236 1456 6 10:08 pts /0 00:00:00 -bash
11234 12169 10241 0 953 472 1 10:50 pts /0 00:00:00 sleep 10000
11234 12170 10241 0 1132 900 1 10:50 pts /0 00:00:00 ps -F
[ france ~]$ kill 12169
[1]+ Terminated sleep 10000
114. Processus et fils de calcul (multi-threading)
Un fil de calcul (“processus l´eger”) `a l’int´erieur d’un
processus,
Multi-threading : ex´ecution `a l’int´erieur d’un processus de
plusieurs sous-tˆaches. Ex´ecution “concurrente” de fils de
calcul (par exemple, votre navigateur Web),
Les ressources allou´ees `a un processus sont partag´ees entre
les fils de calcul qui le composent : m´emoire partag´ee pour les
fils de calcul (INF431).
Un processus a au moins un thread qui contient la fonction
main.
115. Diff´erence entre processus et threads
Les processus ont leurs propres m´emoires d’adressage deux `a
deux disjointes. La communication entre processus doit se
faire de fa¸con m´ethodique (→ standard MPI)
Les threads d’un mˆeme processus partagent la mˆeme zone
m´emoire (code + donn´ees). Facile d’acc´eder aux donn´ees
mais difficult´es li´ees `a l’acc`es simultan´e de la m´emoire (source
de plantage !).
Threads bien adapt´es aux architectures multi-cœurs d’un
processeur.
Multi-threads : plus rapide, application non-bloquante (par
exemple, un navigateur web)
Multi-threading : parall`elisme avec une m´emoire commune partag´ee
116. mpirun est un alias pour orterun
https://www.open-mpi.org/doc/v1.4/man1/orterun.1.php
-hostfile ou -machinefile
fichier maconfigMPI :
machine1 slots=2
machine2 slots=2
machine3 slots=2
G´en´eralement slots est le nombre de cœurs et la somme des slots
´equivaut `a l’option -np
Utilisez l’ ordonnanceur SLURM pour l’allocation automatique des
ressources sur un cluster
117. Programmer avec la Message Passing Interface (MPI)
Multiple Program Multiple Data : MPMD
Single Program Multiple Data : SPMD
118. Op´erations MPI
Outre les calculs locaux de chaque processus, on a aussi :
des mouvements de donn´ees via des envois et r´eceptions de
messages (broadcast, scatter, gather, all-to-all, etc.),
de la synchronisation (barri`ere o`u tous les processus
s’attendent avant de pouvoir continuer),
du calcul global (comme des op´erations de sommes cumul´ees,
reduce et scan ou parallel prefix).
119. MPI : Les communications collectives usuelles
Concernent tous les processus d’un groupe de communication
(souvent WORLD)
diffusion
broadcast
Mi
M1 M2 M3
M
M M M
M
diffusion
personnalis´ee
scatter
M1 M2 M3
rassemblement
gather
Mi
M1 M2 M3
2 3 1 r´eduction
reduce
2 3 1
6
processus appelant
AVANT APR`ES
P0
P1 P2 P3
message
messages personnalis´es M1, M2, M3 `a envoyer
Mi
messages personnalis´es M1, M2, M3 re¸cus
120. MPI : Les communications collectives
un `a tous (one-to-all) :
La diffusion, Broadcast : MPI Bcast, message entier
La difusion personnalis´ee, Scatter : MPI Scatter, message
partitionn´e en morceaux
tous `a un (all-to-one) :
La r´eduction, Reduce : MPI Reduce, op´eration comme
MPI SUM, etc.
Le rassemblement, Gather : MPI Gather, assemble le
message `a partir des messages par morceaux
tous `a tous (all-to-all, total exchange), le comm´erage :
MPI Alltoall
121. MPI : les deux op´erations de base send et receive
Communications bloquantes
send(&data, n, Pdest) :
Envoie n donn´ees point´ees par &data au processeur Pdest
receive(&data,n, Psrc) :
Re¸coit n donn´ees `a l’adresse point´ee par &data du processeur
Psrc
Que se passe t’il dans ce petit exemple ?
P0 P1...
a=442;
send(&a, 1, P1);
a=0;
...
receive(&a, 1, P0);
cout << a << endl;
123. MPI Init (&argc ,& argv ) ;
MPI Comm size (MPI COMM WORLD,&numprocs ) ;
MPI Comm rank (MPI COMM WORLD,&myid ) ;
tag =442; source =0; d e s t i n a t i o n =1; count =1;
i f ( myid == source ) {
b u f f e r =2015;
MPI Send(& buffer , count , MPI INT ,
d es t i n a t i on , tag ,MPI COMM WORLD) ;
p r i n t f ( ”Le p r oces s eu r %d a envoye %dn”
, myid , b u f f e r ) ;
}
i f ( myid == d e s t i n a t i o n ) {
MPI Recv(& buffer , count , MPI INT , source ,
tag ,MPI COMM WORLD,& s t a t u s ) ;
p r i n t f ( ”Le p r oc e s s e u r %d a recu %dn” ,
myid , b u f f e r ) ;
}
124. Minimiser les temps d’attente
Pour des communications bloquantes, on cherche donc `a minimiser
le temps d’attente (on verra plus tard l’´equilibrage de charge, le
load balancing).
125. Temps d’attente pour le receveur
Receveur prˆet avant l’envoyeur (communications bloquantes)
126. MPI : les situations de blocages (deadlocks)
Que se passe t’il dans cet exemple ?
P0 P1
send(&a, 1, P1);
receive(&b, 1, P1);
send(&a, 1, P0);
receive(&b, 1, P0);
Envoyeur P0 attend le “OK pour envoi” de P1
Envoyeur P1 attend le “OK pour envoi” de P0
C¸a bloque. On est en situation de deadlock !
(Ctrl-C pour tuer le programme...)
127. MPI : les blocages (deadlocks)
Les communications bloquantes sont n´ecessaires pour assurer
la consistence (s´emantique) des programmes mais font
apparaˆıtre des situations ind´esirables de blocage.
Pour le send, on peut pr´e-allouer un espace m´emoire “buffer
donn´ees” (Data buffer, DB) `a chaque processus, puis envoyer
les donn´ees en deux temps :
Envoi sur le Data Buffer DB,
Sur le processeur receveur, recopie le DB `a l’endroit &data,
Implant´e soit mat´eriellement soit par un protocole logiciel.
N´eanmoins, il subsiste toujours une situation de blocage
lorsque le buffer de donn´ees DB devient plein
128. MPI : les blocages (deadlocks)
Mˆeme si on g`ere bien les appels send, le probl`eme du deadlock
subsiste
Blocage avec les communications bufferis´ees : le probl`eme des
receive
P0 P1
receive(&a, 1, P1);
send(&b, 1, P1);
receive(&a, 1, P0);
send(&b, 1, P0);
129. MPI : Send/Receive non-bloquantes et non-bufferis´ees
Comment envoyer/recevoir des messages avec des communications
non-bloquantes...
L’envoyeur poste un message “Demande d’envoi” (pending
message) et continue l’ex´ecution de son programme,
Le receveur poste un “OK pour envoi”, et le transfert de
donn´ees s’effectue,
Quand le transfert de donn´ees est fini, un check status
indique qu’on peut toucher aux donn´ees sans danger
130. commnonbloq442.cpp
MPI Status s t a t u s ; MPI Request r eq u es t ;
MPI Init (&argc ,& argv ) ;
MPI Comm size (MPI COMM WORLD,&numprocs ) ;
MPI Comm rank (MPI COMM WORLD,&myid ) ;
tag =442; source =0; d e s t i n a t i o n =1; count =1;
r e q u e s t=MPI REQUEST NULL ;
i f ( myid == source ) {
b u f f e r =2015;
MPI Isend(& buffer , count , MPI INT ,
d es t i n a t i on , tag ,MPI COMM WORLD,&
r e q u e s t ) ;
}
i f ( myid == d e s t i n a t i o n ) {
MPI Irecv (& buffer , count , MPI INT , source
, tag ,MPI COMM WORLD,& r e q u e s t ) ;
}
131. r e q u e s t=MPI REQUEST NULL ;
i f ( myid == source ) {
b u f f e r =2015;
MPI Isend(& buffer , count , MPI INT ,
d es t i n a t i on , tag ,MPI COMM WORLD,&
r e q u e s t ) ;
}
i f ( myid == d e s t i n a t i o n ) {
MPI Irecv (& buffer , count , MPI INT , source
, tag ,MPI COMM WORLD,& r e q u e s t ) ;
}
p r i n t f ( ” a t t en t e avec MPI WAIT . . . n”) ;
MPI Wait(&request ,& s t a t u s ) ;
attente avec MPI_WAIT ...
attente avec MPI_WAIT ...
[proc 0] status de MPI_WAIT : 0
Le processeur 0 a envoye 2015
[proc 1] status de MPI_WAIT : 0
132. MPI : Les six routines standards sont...
proc´edures , types de donn´ees et constantes sont pr´efix´ees par
MPI (fichier mpi.h)
100+ proc´edures dont les six principales sont :
MPI Init Initialisation de la biblioth`eque
MPI Finalize Termine l’utilisation de MPI
MPI Comm size Donne le nombre de processus
MPI Comm rank ´Etiquette du processus appelant
MPI Send Envoi un message (bloquant)
MPI Recv Re¸coit un message (bloquant)
Ces proc´edures retournent MPI SUCCESS en cas de succ`es,
sinon un code d’erreur.
133. Quelques hypoth`eses sur la concurrence
le processeur (ou PE) peut effectuer plusieurs op´erations en
mˆeme temps
Par exemple, on peut supposer
MPI IRecv(), non-bloquant
MPI ISend(), non-bloquant
+ calcul local
il faut donc que ces 3 op´erations soient ind´ependantes !
donc on ne peut pas envoyer le r´esultat du calcul
on ne peut pas forwarder = envoyer ce que l’on re¸coit
en pseudo-code, on note les activit´es concurrentes par || (une
double barre)
Activit´e1||Activit´e2||Activit´e3
134. MPI : Les types de donn´ees enMPI
Type MPI Type dans le langage C
MPI CHAR signed char
MPI SHORT signed short int
MPI INT signed int
MPI LONG signed long int
MPI UNSIGNED CHAR unsigned char
MPI UNSIGNED SHORT unsigned short int
MPI UNSIGNED unsigned int
MPI UNSIGNED LONG unsigned long int
MPI FLOAT float
MPI DOUBLE double
MPI LONG DOUBLE long double
MPI BYTE
MPI PACKED
135. MPI : La primitive send
https://www.open-mpi.org/doc/v1.4/man3/MPI_Send.3.php
Syntaxe en C :
#i n c l u d e <mpi . h>
i n t MPI Send ( void ∗buf , i n t count ,
MPI Datatype datatype , i n t dest , i n t tag ,
MPI Comm comm)
Syntaxe en C++ (plus mis `a jour depuis MPI-2) :
#i n c l u d e <mpi . h>
void Comm : : Send ( const void ∗ buf , i n t count ,
const Datatype& datatype , i n t dest , i n t tag
) const
tag : Message tag (integer), utile pour la filtration et
l’appariemment des op´erations send/receive. Par d´efault, tag=0
136. MPI : les communications non-bloquantes (API en C)
i n t MPI Isend ( void ∗buf , i n t count ,
MPI Datatype datatype , i n t dest , i n t tag ,
MPI Comm comm, MPI Request ∗ req )
i n t MPI Irecv ( void ∗buf , i n t count ,
MPI Datatype datatype , i n t src , i n t tag ,
MPI Comm comm, MPI Request ∗ req )
L’objet MPI Request est utilis´e dans les routines suivantes :
Retourne *flag=1 si l’op´eration *req est finie, 0 sinon
i n t MPI Test ( MPI Request ∗req , i n t ∗ flag ,
MPI Status ∗ s t a t u s )
Attend jusqu’`a ce que l’op´eration associ´ee avec *req soit finie.
i n t MPI Wait ( MPI Request ∗req , MPI Status ∗
s t a t u s )
137. MPI : les groupes de communication, communicators
D´efini le cadre des op´erations de communication,
Chaque processus inclus dans un communicator a un rang
associ´e,
Par d´efaut, MPI COMM WORLD inclut tous les p processus,
rang de 0 `a p − 1,
On peut cr´eer des communicators pour des groupes de
processus,
int MPI Comm size(MPI Comm comm, int *size) et int
MPI Comm rank(MPI Comm comm, int *size)
138. Barri`ere de synchronisation : MPI Barrier
MPI Barrier : Bloque jusqu’`a temps que tous les processus
arrivent `a cette routine = synchronisation !
Barri`ere de synchronisation
Barri`ere de synchronisation
139. Mesurer le temps sous MPI : MPI Wtime
double start, end;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Barrier(MPI_COMM_WORLD); /* IMPORTANT */
start = MPI_Wtime();
/* faire le calcul ici */
calculINF442();
MPI_Barrier(MPI_COMM_WORLD); /* IMPORTANT */
end = MPI_Wtime();
MPI_Finalize();
if (rank == 0) {cout<< end-start <<endl;}
Ou alors utiliser MPI Reduce() pour calculer les temps
minima/maxima (et autres statistiques) des processus...
140. MPI : Calcul globaux Reduce
C :
#i n c l u d e <mpi . h>
i n t MPI Reduce ( void ∗ sendbuf , void ∗ recvbuf ,
i n t count , MPI Datatype datatype , MPI Op op
, i n t root , MPI Comm comm)
https://www.open-mpi.org/doc/v1.5/man3/MPI_Reduce.3.php
141. MPI : Reduce, op´erations de calcul pr´ed´efinies
Op´erateur binaire associatif et commutatif
Nom Signification
MPI MAX maximum
MPI MIN minimum
MPI SUM sum
MPI PROD product
MPI LAND logical and
MPI BAND bit-wise and
MPI LOR logical or
MPI BOR bit-wise or
MPI LXOR logical xor
MPI BXOR bit-wise xor
MPI MAXLOC max value and location
MPI MINLOC min value and location
142. Exemple : calcul de la factorielle...
factoriellempireduce442.cpp
i n t i , moi , nproc s ;
i n t nombre , g l o b a l F a c t =−1, l o c a l F a c t ;
MPI Init (&argc ,& argv ) ;
MPI Comm size (MPI COMM WORLD,& nproc s ) ;
MPI Comm rank (MPI COMM WORLD,&moi ) ;
nombre=moi+1;
// dans l e s arguments , se r a p p e l e r l ’ o r d r e ( source , d e s t i n a t i o n )
MPI Reduce(&nombre ,& globalFac t , 1 , MPI INT ,MPI PROD , 0 ,MPI COMM WORLD) ;
i f ( moi==0)
{ p r i n t f (” f a c t o r i e l l e avec re duc e pour %d p r o c e s s u s = %dn” , nprocs , g l o b a l F a c t ) ;}
l o c a l F a c t =1; f o r ( i =0; i<nproc s ; i ++) { l o c a l F a c t ∗=( i +1);}
i f ( moi==0)
{ p r i n t f (” f a c t o r i e l l e l o c a l e : %dn” , l o c a l F a c t ) ;}
M P I F i n a l i z e () ;
143. MPI : Les commandes Scan/ Pr´efixe parall`ele
i n t MPI Scan ( void ∗ sendbuf , void ∗ recvbuf , i n t
count , MPI Datatype datatype , MPI Op op ,
MPI Comm comm )
processus P0 P1 P2 P3
entr´ee (vi ) 1 2 3 4
sortie 1 3 (= 1 + 2) 6 (= 1 + 2 + 3) 10 (= 1 + 2 + 3 + 4)
144. P0
P1
P2
P3
a
b
c
d
a + b + c + d
b
c
d
reduce
P0
P1
P2
a0
a1
c0b0
b1
c2a2 b2
c1
scan
a0
a0 + a1
a0 + a1 + a2
b0
b0 + b1
b0 + b1 + b2
c0
c0 + c1
c0 + c1 + c2
P0
P1
P2
P3
a
b
c
d
a + b + c + d
Allreduce a + b + c + d
a + b + c + d
a + b + c + d
145. Communications : uni-directionelles ou bi-directionnelles
Uni-directionelle (one-way communication )
Dans un seul sens : on envoie ou on re¸coit
MPI Send / MPI Recv
Bi-directionnelle
Dans les deux sens (two-way communication)
MPI Sendrecv
https://www.open-mpi.org/doc/v1.8/man3/MPI_Sendrecv.3.php
146. Les k-moyennes : Un
clustering par partition
= clustering plat
vs
Regroupement hi´erarchique
149. Le clustering/regroupement hi´erarchique ascendant
On part des donn´ees X = {x1, ..., xn} qui sont des feuilles et on
fusionne r´ecursivement au fur et `a mesure les sous-arbres jusqu’`a
ne plus qu’avoir un seul arbre. Les feuilles initiales forment une
forˆet d’arbres `a une feuille, puis on fait de la fusion d’arbres...
Plusieurs crit`eres pour la fusion de deux sous-arbres (dont les
sous-ensembles de donn´ees Gi et Gj sont stock´ees dans leurs
feuilles). On calcule Δ(Gi , Gj ) la distance entre deux
sous-ensembles.
strat´egie du saut minimum :ΔSL → Single Linkage (SL)
strat´egie du saut maximum (ou diam`etre) : ΔCL →
Complete Linkage (CL)
strat´egie du saut moyen : ΔGA → Group Average (GA)
etc.
150. Pour se fixer une id´ee : saut moyen, Single Linkage (SL)
Fonction de chaˆınage
Δ(Gi , Gj ) = min
xi ∈Gi ,xj ∈Gj
D(xi , xj )
o`u D(x, y) est une distance ´el´ementaire .
151. Quelle distance ´el´ementaire entre deux donn´ees ?
On doit toujours avoir bien entendu Δ({xi }, {xj }) = D(xi , xj ).
Exemples de distances ´el´ementaires :
Distance Euclidienne (L2) : D(p, q) = d
i=1(pi − qi )2
Distance de Manhattan (city block, L1) :
D1(p, q) = d
i=1 |pi − qi |
Distance de Minkowski induite par Lp :
Dp(p, q) =
d
i=1
|pi − qi |p
1
p
Distance de Mahalanobis :
DΣ(p, q) = (p − q) Σ−1(p − q) = D(L p, L q),
avec Σ−1 = L L provenant de la factorisation de Cholesky
M´etrique, non-m´etrique, distance & similarit´e, etc.
152. Le clustering par agglom´eration
Hierarchical Cluster Analysis (HCA) : regroupement hi´erarchique
Initialiser xi dans un cluster singleton Gi = {xi }
Tant qu’il reste au moins deux clusters :
Choisir Gi et Gj tel que Δ(Gi , Gj ) soit minimal
Fusionner Gi,j = Gi ∪ Gj (ajouter Gi,j et retirer Gi et Gj )
Retourner le dernier nœud comme la racine de l’arbre de fusion
⇒ le r´esultat d’un regroupement hi´erarchique est un arbre binaire
appel´e dendrogramme . On fusionne n − 1 fois (les ´etapes de
fusion).
Diff´erent d’un algorithme de partitionnement comme les
k-moyennes :
Clustering hi´erarchique = not Clustering plat (par partition)
153. Distance de chaˆınage Δ(Gi, Gj)
Single Linkage
saut minimum
Complete Linkage
saut maximum
diam`etre
Group Average
saut moyen
154. Dessinons un dendrogramme...
Par exemple, choisissons la hauteur comme le nombre de fusions :
I N F 4 4 2
I, N 4, 4
I, N, F 4, 4, 2
I,N,F,4,4,2
feuilles
nœuds internes
hauteur :
nombre de fusions
0
1
2
3
Dendrogramme = Graphique d’un arbre binaire, arbre plong´e dans
le plan.
155. Autre visualisation de la hi´erarchie par inclusion
I N F 4 4 2
I, N 4, 4
I, N, F 4, 4, 2
I,N,F,4,4,2
I
N
F
4
4
2
156. Dendrogramme : iris (4D)
Dendrogramme = Graphique d’un arbre binaire (arbre plong´e dans
le plan) o`u chaque nœud a une hauteur.
157. Dendrogrammes et arbres philog´en´etiques
Vous avez souvent d´ej`a vu des dendrogrammes dans la th´eorie des
´evolutions des esp`eces.
Dans ce cas, on a un “temps chronologique” sur l’axe vertical
(horloge), un cas particulier de dendrogrammes.
158. Le clustering hi´erarchique : single linkage (SL)
Δ(Gi , Gj ) = min
xi ∈Gi ,xj ∈Gj
D(xi , xj )
R´epeter tant que toutes les donn´ees xi ne soient pas contenues
dans un seul cluster, on fusionne les deux groupes les plus proche.
`A chaque instant tous les sous-arbres forment une forˆet (partitition
de X).
S’il existe plus d’une paire de groupes donnant le Δ minimal,
on choisit un ordre (lexicographique). Si on fait une
permutation sur les donn´ees, on n’obtiendra pas le mˆeme
dendrogramme (unicit´e).
Probl`eme (artefact) de chaˆınage dans le clustering final
Complexit´e : na¨ıf O(n3), algorithme SLINK en O(n2)
160. Le clustering hi´erarchique : Complete Linkage
Complete linkage (CL) : CLINK in O(n2) (1977)
ΔCL(Gi , Gj ) = max
xi ∈Gi ,xj ∈Gj
D(xi , xj ) ,
appel´e aussi diam`etre.
Probl`eme du diam`etre : si un point artefact (outlier) est tr`es
´eloign´e des autres, la distance inter-groupe devient grande (et n’est
pas significative).
162. Le clustering hi´erarchique : Average Linkage
Average Linkage (AL) : O(n2) (1984)
ΔAL(Gi , Gj ) =
1
ni nj
xi ∈Gi xj ∈Gj
D(xi , xj )
La moyenne de toutes les paires de distance !
165. Crit`ere de fusion de Ward : variance
Variance = somme des distances euclidiennes au carr´e par rapport
au centro¨ıde :
v(X) =
x∈X
x − c(X) 2
, c(X) =
1
|X|
x∈X
x
Distance entre clusters (crit`ere de Ward) pour Gi (ni = |Gi |) et Gj
(nj = |Gj |) :
Δ(Gi , Gj ) = v(Gi ∪ Gj) − (v(Gi ) + v(Gj ))) =
ni nj
ni + nj
c(Gi ) − c(Gj ) 2
Δ({xi }, {xj }) = D(xi , xj ) = xi − xj
2
Quand on fusionne deux groupes, la variance ne peut pas diminuer !
168. Le clustering hi´erarchique par division
Version top-down : on part d’un cluster contenant toutes les
donn´ees X et on divise r´ecursivement jusqu’`a temps qu’on
obtienne les n feuilles qui contiennent les donn´ees
individuelles.
Pour casser un cluster en deux, on utilise un algorithme de
clustering par partitionnement pour k = 2 (comme celui des
k-moyennes par exemple)
En g´en´eral, plus coˆuteux qu’un regroupement hi´erarchique
agglom´eratif (bottom-top)
169. Dendrogramme : obtenir des partitions `a partir du
dendrogramme
Pour k ∈ [n] = {1, ..., n}, on peut obtenir une partition en
k-sous-ensembles de X.
Pas n´ecessaire d’ˆetre `a une hauteur fix´ee.
171. Convertir un clustering hi´erarchique en une partition
On choisit une hauteur pour trouver une partition en k clusters
Meilleure hauteur par Programmation Dynamique. Meilleure
hauteur pour T (X) `a k sous-ensembles :
Fit(T = (L, R), k) = min
k1,k2 k1+k2=k
Fit(L, k1) + Fit(R, k2)
Pour les k-moyennes (clustering plat, NP-dur en g´en´eral) on
obtient une k-partition optimale `a partir d’un clustering
hierarchique (facile `a calculer, SL) sous l’hypoth`ese de
satisfaire un crit`ere de s´eparabilit´e.
172. Distances : m´etriques et ultram´etriques
Une distance d(·, ·) est :
m´etrique si elle satisfait les axiomes :
d(x, y) ≥ 0 avec ´egalit´e pour x = y seulement
d(x, y) = d(y, x) sym´etrie
d(x, y) ≤ d(x, z) + d(z, y), in´egalit´e triangulaire
ultram´etrique si elle satisfait les axiomes :
d(x, y) ≥ 0 avec ´egalit´e pour x = y seulement
d(x, y) = d(y, x) sym´etrie
d(x, y) ≤ max(d(x, z), d(z, y))
173. Distance et ´evolution (horloge)
Dans les arbres phylog´en´etiques, la distance entre deux esp`eces
impose des restrictions sur la fonction distance.
Arbre additif (additive tree) : poids sur chaque arˆete tel
que pour chaque paire de feuilles, la distance est la somme
des distances des arˆetes les reliant.
Arbre ultram´etrique : distances entre deux feuilles Gi et Gj et
leur ancˆetre commun Gk sont ´egales : di,k = dj,k.
hk = 1
2 di,j (hauteur) correspond au temps ´ecoul´e
permet de d´efinir une horloge globale sur l’axe vertical
175. Regroupement hi´erarchique avec l’algorithme UPGMA
UPGMA : Unweighted Pair Group Method using arithmetic
Averages
Clustering hi´erarchique avec la distance de chaˆınage Average
Linkage (AL) :
Δ(Gi , Gj ) =
1
ni nj
xi ∈Gi xj ∈Gj
D(xi , xj ) = Δi,j
UPGMA garantie de produire un arbre ultram´etrique
176. Regroupement hi´erarchique par UPGMA
Initialise xi a son cluster Ci et positionne ce nœud `a hauteur
t = 0.
Tant qu’il reste plus de deux clusters :
Trouver les clusters Ci et Cj qui ont la distance Δi,j minimale
D´efinir un nouveau cluster Ck = Ci ∪ Cj et calculer la distance
Δk,l pour tout l
Ajouter un nœud k avec les fils Ci et Cj et positionner le `a
hauteur tk = 1
2 Δi,j
Retirer Ci et Cj de la liste des clusters, et continuer jusqu’`a
temps d’avoir deux clusters
Pour les deux derniers clusters Ci , and Cj , placer la racine `a
hauteur 1
2Δ(Ci , Cj )
177. Regroupement hi´erarchique par UPGMA
Th´eor`eme
Si les donn´ees sur les distances sont ultram´etriques (v´erifiable sur
la matrice des distances), alors il existe un unique arbre
ultram´etrique et l’algorithme UPGMA le construit.
... malheureusement les donn´ees (bruit´ees) ne sont pas
ultram´etriques en g´en´eral !
178. Dissimilarit´e, similarit´e et inversions
similarit´e entre deux groupes : S(Xi , Xj ) = −Δ(Xi , Xj ). Ainsi
si on a Δ(Gi , Gk) > Δ(Gi , Gj ) alors on a l’ordre inverse
S < S(Gi , Gj )
pour un chemin du dendrogramme d’une feuille `a la racine,
s´equence de fusion monotone ssi. la similarit´e d´ecroit quand
on se rapproche de la racine : S1 ≥ S2 ≥ ... ≥ Sracine.
Autrement dit, la valeur du crit`ere de fusion augmente quand
on va vers la racine.
non-monotone s’il existe au moins une inversion Si < Si+1 sur
un chemin du dendrogramme. Cela veut dire que deux
groupes peuvent ˆetre plus similaire `a l’´etape i + 1 que les deux
groupes fusionn´es `a l’´etape i.
crit`ere de Ward ne garantie pas la monotonie
(inversions). Par contre, Single Linkage, Complete Linkage et
Average Linkage garantissent la monotonie.
182. Les arbres : Rappel sur une impl´ementation en Java
class BinaryTree <E>
{
E node ;
BinaryTree left ,right;
BinaryTree (E v)
{left =right=null ; node =v;}
BinaryTree (E v, BinaryTree l, BinaryTree r)
{node =v; left =l;right=r;}
}
...
BinaryTree BT;
BT=new BinaryTree (442, new BinaryTree (421,new
BinaryTree (311,null ,new BinaryTree (321)),new
BinaryTree (431)),new BinaryTree (411)) ;
...
183. Impl´ementation en Java
class BinaryTree <E>
{
...
String serialize (){ String lefts , rights;
if (left == null ) lefts="nil";
else lefts=left .serialize ();
if ( right== null ) rights="nil";
else rights=right. serialize ();
return "(node ="+node +"("+lefts+","+rights+")";
}
}
...
System.out.println (BT.serialize ());
...
On ne g´ere pas la d´esallocation m´emoire...
184. C++ : Contenu des m´ethodes `a l’ext´erieur des classes
#i n c l u d e <iostream >
using namespace std ;
c l a s s CEntier
{
p u b l i c : i n t v a l ;
CEntier ( i n t v ) { t h i s −>v a l=v ;}
void ajoute ( i n t v2 ) ;
};
// D´efinition `a l’ext´erieur de class
void CEntier : : ajoute ( i n t v2 ) { v a l+=v2 ;}
i n t main ()
{ CEntier ∗e1=new CEntier (5) ; e1−>ajoute (8) ;
cout<<e1−>val <<endl ;
r e t u r n 0;}
185. Structures de donn´ees abstraites
D´efini une interface pour acc´eder aux donn´ees.
Peut-ˆetre cod´e du plusieurs mani`eres diff´erentes.
les piles (Last In First Out, LIFO)
les files (First In First Out,FIFO)
les arbres
les graphes
etc.
Par exemple, les piles et files peuvent ˆetre implant´e soit avec des
tableaux soit avec des listes chaˆın´ees.
186. c l a s s CNoeud{C++ : // la classe nœud
p u b l i c : CNoeud ∗gauche , ∗ d r o i t ;
i n t v a l ;
p u b l i c :
CNoeud( i n t v ) { t h i s −>v a l=v ; gauche=d r o i t=NULL
;}
CNoeud( i n t val , CNoeud∗ Arbre1 , CNoeud∗ Arbre2
)
{ t h i s −>v a l=v a l ; gauche=Arbre1 ; d r o i t=Arbre2 ;}
s t r i n g P r i n t ()
{ char b u f f e r [ 2 0 ] ; s t r i n g s v a l=s t r i n g ( i t o a ( val ,
buffer ,10) ) ;
s t r i n g sgauche , s d r o i t ;
i f ( gauche==NULL) sgauche=” n i l ” ;
e l s e sgauche=gauche−>P r i n t () ;
i f ( d r o i t==NULL) s d r o i t=” n i l ” ;
e l s e s d r o i t=d r oi t −>P r i n t () ;
187. . . .
CNoeud ∗ Arbre442=new CNoeud (3 , new CNoeud (2) ,
new CNoeud (1 , new CNoeud (4) ,new CNoeud (5) ) ) ;
cout<<Arbre442−>P r i n t ()<<endl ;
(3,(2,nil,nil),(1,(4,nil,nil),(5,nil,nil)))
188. C++ : r´ecup´eration de la m´emoire
˜CNoeud ()
{
i f ( gauche!=NULL)
d e l e t e gauche ;
i f ( d r o i t !=NULL)
d e l e t e d r o i t ;
cerr <<” d e l e t e ”<<val <<endl ;
}
(3,(2,nil,nil),(1,(4,nil,nil),(5,nil,nil)))
delete 2
delete 4
delete 5
delete 1
delete 3
189. Diff´erences principales entre C++ et Java
null en Java et NULL en C++
this.variable en Java/C++ (r´ef´erence) et
this->variable en C++ (pointeur)
class INF442{} en Java et class INF442{}; en C++
On peut rajouter le corps des m´ethodes en C++ apr`es sa
d´eclaration dans la classe : void CNoeud::Addition(int v)
ajouter un destructeur dans la classe en C++
array.length en Java mais on doit implanter
array.length() en C++
import en Java et include en C++ (STL) etc.
En C++ dans les classes, mettre explicitement public (sinon
on est private par d´efaut)
190. R´esum´e A2
HPC : acc´el´eration, loi d’Amdahl et de Gustafson
MPI :
les communications bloquantes, situation de blocage,
communications non-bloquantes, barri`eres de synchronisation
les calculs collaboratifs : r´eduction (somme, reduce &
Allreduce), et les op´erations de pr´efixe parall`ele (scan)
Science des donn´ees : regroupement hi´erarchique vs.
regroupement plat. Arbre ultram´etrique et chaˆınage par saut
moyen
C++ : les classes objets. Lire le memento C++ sur la page
Moodle
Pour la prochaine fois : lire le chapitre 8 et relire le chapitre 2
du polycopi´e