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
ÚÓÐÙØ ÓÒ ×ÔÖÓ ×× ÙÖ×
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.
ÀÈ Ô ÖÐÐ Ð ×Ñ Ø Ö ÒÙÐ Ö Ø
Ö ÒÙÐ Ö Ø ÔÖÓÔÓÖØ ÓÒ × Ð ÙÐ× ´ Ö Ò× Ð ÙÐ× ÐÓ Ùܵ ×ÙÖ Ð ×
ÓÑÑÙÒ Ø ÓÒ× ´ ÒØ Ö¹ÔÖÓ ××Ù×µº Ö ÕÙ Ò × ÓÑÑÙÒ Ø ÓÒ× ´ÓÙ
×ÝÒ ÖÓÒ × Ø ÓÒµ ÒØÖ Ð × ÔÖÓ ××Ù׺
Ö Ò Ò ´Ô Ø Ø Ö Ò¸ Ò ¹ Ö Ò µ ÔÐ Ò Ô Ø Ø × Ø ×¸ ÓÒÒ ×
×ÓÙÚ ÒØ ØÖ Ò× Ö × ÒØÖ Ð × ÔÖÓ ××Ù× ÔÖ × Ô Ø Ø× Ð ÙÐ׺
ÖÓ× Ö Ò ´ Ó Ö× ¹ Ö Ò µ Ð × ÓÒÒ × Ò ×ÓÒØ Ô × Ò × ×ÓÙÚ ÒØ
Ø ÔÖ × × ÖÓ× Ð ÙÐ׺ × ÜØÖ Ñ ¸ Ñ ÖÖ × Ò ÐÝ Ô Ö ÐÐ Ð
È Ö ÐÐ Ð ×Ñ Ø ÓÒ ÙÖÖ Ò
È Ö ÐÐ Ð ×Ñ Ø × Ü ÙØ × Ð Ø Ö Ð Ñ ÒØ Ò Ñ Ñ Ø ÑÔ׸
ÓÒ ÙÖÖ Ò Ù ÑÓ Ò× ÙÜ Ø × ÕÙ ÔÖÓ Ö ×× ÒØ ÓÒ Ó ÒØ Ñ ÒØ Ò× Ð
Ø ÑÔ׺ È × Ò ×× Ö Ñ ÒØ Ò Ñ Ñ Ø ÑÔ× ´Ø Ñ ¹×Ð Ò ×ÙÖ ÙÒ Ñ Ñ
È͸ ÑÙÐØ ¹Ø ×ÙÖ ÙÒ ÙÖµ
Ê Ö ÜÔÐÓÖØÓ Ö Ä Ö ÖÓÙÔ Ñ ÒØ ´ ÐÙר Ö Ò µ
È ÖØ Ø ÓÒÒ Ö Ð × ÓÒÒ ×
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.
Ä Ð ÒÓÖ ÒØ Ó Ø ´Çǵ ··
Ö Ô Ö ÖÒ ËØÖÓÙרÖÙÔ Ò ½ ¿
ÇÖ ÒØ Ó Ø Ú ØÝÔ ×Ø Ø ÕÙ º ü Ò Ù Ò Â Ú Ø Ö Ú
Ó ÓÑÔ Ð Ö Ô
ÇÒ Ö ×Ó ¹Ñ Ñ Ð Ñ ÑÓ Ö Ô × Ö Ñ ×× Ñ ØØ ´ Ö
ÓÐÐ ØÓÖ¸ µº ØØ ÒØ ÓÒ ÙÜ ÖÖ ÙÖ× ÐÓÖ× Ð³ Ü ÙØ ÓÒ ´×Ýר Ñ Ö × ¸
× Ñ ÒØ Ø ÓÒ ÙÐØµ
Ö Ø Ñ Ø ÕÙ ÔÓ ÒØ ÙÖ× Ô ÖÑ × ´=Â Ú Ô ×× Ô Ö Ú Ð ÙÖ ÓÙ Ô Ö
Ö Ö Ò ÔÓÙÖ Ð × Ó Ø×µ
ÜØ Ò× ÓÒ× Ö× º º ÔÔ º ÜÜ º ·· º º º ÔÔ º ÜÜ º ··
ÍØ Ð × ·· ´ ÆÍ ÓÑÔ Ð Ö ÓÐÐ Ø ÓÒµ Ð ÓÒ Ø ÓÒ ÆÍ
ÓÑÔ Ð ÖØ Ü ÙØ Ö ÙÒ ÔÖÓ Ö ÑÑ Ò ··
Ò ÐÙ Ó×ØÖ Ñ
Ù× Ò Ò Ñ ×Ô ×Ø »» ÔÓÙÖ Ð × ÒØÖ ×»ËÓÖØ ×
ÒØ Ñ Ò ´µ
ß
ÒØ Ú Ö½ ¾
ÒØ ∗ Ú Ö¾
Ú Ö¾ ²Ú Ö½ »» Ú Ö¾ ÔÓ ÒØ ×ÙÖ Ú Ö½
ÓÙØ Ú Ð ÙÖ Ú Ö¾ Ú Ö¾ Ò Ð
ÒØ Ú Ö¿ ´∗Ú Ö¾ µ
ÓÙØ Ú Ð ÙÖ Ú Ö¿ Ú Ö¿ Ò Ð
Ö ØÙÖÒ ¼ »» Ò × Ò× Ð ÑÓ Ò Ö ÔÖÓ Ð Ñ ¹ µ
ÓÒ×ÓÐ ·· ÔÖÓ Ö ÑÑ º ÔÔ ¹Ó ÑÓÒÔÖÓ Ö ÑÑ º Ü
ÓÒ×ÓÐ ÑÓÒÔÖÓ Ö ÑÑ º Ü
63.
Ä ÓÒ ØÓÒ ×Û Ô ×ÙÖ Ð ØÝÔ ÒØ Ö Ò ··
Ê ÔÔ Ð ×ÙÖ Ð Ñ ÑÓ Ö Ô Ð ´ÔÓÙÖ ÑÔ Ð Ö Ð × ÔÔ Ð× ÓÒ Ø ÓÒµ Ø Ø × ´ÔÓÙÖ
Ð Ñ ÑÓ Ö ÐÓ Ð Ù ÔÖÓ Ö ÑÑ Ü ÙØ ÔÖÓ ××Ù×µ
Ú Ó ×Û Ô ´ Ò Ø ¸ Ò Ø µ
ß Ò Ø
»» Ô ×× Ô Ö Ö Ö Ò ´ ÓÖ Ñ ÒØ Ò Ø Ð × ×µ
Ú Ó ÓÓ ×Û Ô ´ Ò Ø² ¸ Ò Ø² µ
ß Ò Ø
»» Ö ÙÑ ÒØ× ÔÓ ÒØ ÙÖ× ´Ô ÙØ ØÖ ÆÍÄÄ ÓÙ ¼µ
Ú Ó ÓÓ ×Û ÔÔØÖ ´ Ò Ø ∗ ¸ Ò Ø ∗ µ
ß Ò Ø ´∗ µ ´∗ µ ´∗ µ ´ ∗ µ
Ò Ø ¸ ½¼
×Û Ô ´ ¸ µ »» Ô ×× Ô Ö Ú Ð ÙÖ
Ó Ù Ø Ò Ð »» ½¼
ÓÓ ×Û Ô ´ ¸ µ »»Ô ×× Ô Ö Ö Ö Ò
Ó Ù Ø Ò Ð »»½¼
64.
Ò ·· Ô×× Ô Ö Ö Ö Ò × Ø Ô Ö ÔÓ ÒØ ÙÖ×
Ò » ··¸ ÓÒ Ô ×× Ð × Ö ÙÑ ÒØ× ÙÜ ÔÖÓ ÙÖ × Ô Ö Ö ÓÔ º
Ò Ð Ù Ó × Ø Ö Ñ
Ù × Ò Ò Ñ ×Ô × Ø
Ú Ó Ò Ö Î Ð Ù Ö ´ Ò Ø Ü µ ß Ü·· »∗ ¸ ³ × Ø ¿ ∗»
Ú Ó Ò Ö È Ó Ò Ø Ù Ö ´ Ò Ø ∗ ÔÜ µ ß ´∗ ÔÜ µ··
Ú Ó Ò Ö Ê Ö Ò ´ Ò Ø ² Ü µ ß Ü··
Ò Ø Ñ Ò ´ Ò Ø Ö ¸ Ö ∗ Ö Ú µ ß
Ò Ø Ü ¾
Ò Ö Î Ð Ù Ö ´ Ü µ
Ó Ù Ø Ü Ü Ò Ð »» ¾
Ò Ö È Ó Ò Ø Ù Ö ´²Ü µ
Ó Ù Ø Ü Ü Ò Ð »» ¿
Ò Ö Ê Ö Ò ´ Ü µ
Ó Ù Ø Ü Ü Ò Ð »»
Ö Ø Ù Ö Ò ¼
È ×× Ô Ö ÔÓ ÒØ ÙÖ Ú Ø Ð Ö ÓÔ × ÖÓ× Ö ÙÑ ÒØ× ´Ó Ø×µ¸ Ø
Ô ÖÑ Ø Ô ×× Ö ÆÍÄÄ
È ×× Ô Ö Ö Ö Ò Ð × ´ØÓÙ ÓÙÖ× Ò Ø Ð × µ¸ Ô × ³ Ö Ø Ñ Ø ÕÙ ×
Å ×× È×× Ò ÁÒØ Ö ´ÅÈÁµ
Ä × ÔÖÓ ××Ù× ÓÑÑÙÒ ÕÙ ÒØ ÒØÖ ÙÜ Ö × Ñ ×× × ´ ÓÒØ Ò ÒØ Ð ×
ÓÒÒ ×µ
ÔÔÐ Ø ÓÒ ÈÖÓ Ö ÑÑ Ò ÁÒØ Ö ´ ÈÁµ
Ò Ø Ð ×ÝÒØ Ü ´ Ø × Ñ ÒØ ÕÙ µ ³ÙÒ Ð ÓØ ÕÙ ÖÓÙØ Ò ×
ר Ò Ö × × ÔÓÙÖ Ö Ö × ÔÖÓ Ö ÑÑ × ÙØ Ð × ÒØ × Ò ×
Ñ ×× ×º Æ Ô Ò Ô × Ù Ð Ò ×ÓÙ×¹ ÒØ ÓÑÑ Ð ¸ ··¸
Â Ú ¸ ÓÖØÖ Ò¸ ÈÝØ ÓÒ¸ Ø º ´ÔÐÙ× ÙÖ× Ò Ò × Ð³ ÈÁ ×ÓÒØ ×ÔÓÒ Ð ×µ
ÒÚ ÖÓÒÒ Ñ ÒØ Ô Ö ÐÐ Ð Ñ ÑÓ Ö ×ØÖ Ù ½ ½ ´ÛÓÖ × ÓÔµ¸ ÅÈÁ¹Á
´½ ¾µ¸ ÅÈÁ¹¾¸ ÅÈÁ¹¿ ´¾¼¼ µ
ÈÐÙ× ÙÖ× ÑÔÐ Ñ ÒØ Ø ÓÒ× ×ÔÓÒ Ð × ÅÈÁ
ÇÒ ÙØ Ð × ÇÔ ÒÅÈÁ ´ ØØÔ »»ÛÛÛºÓÔ Ò¹ÑÔ ºÓÖ »µ Ò × ÐÐ × Ñ Ò ×
Ú ··º
78.
ÈÖÓ Ö ÑÑÅÈÁ ´ Ò Ò Ò µ ÕÙ ×Ù × º ÔÔ
Ò ÐÙ ÑÔ º
ÒØ Ñ Ò´ ÒØ Ö ¸ Ö∗∗ Ö Ú µ
ß
ÒØ ¸ Ô ¸ Ò Ñ Ð Ò
Ö ÔÖÓ ××ÓÖ Ò Ñ ÅÈÁ Å ÈÊÇ ËËÇÊ Æ Å
ÅÈÁ ÁÒ Ø´ ² Ö ¸ ² Ö Ú µ »» Ò Ø Ð × ÅÈÁ
ÅÈÁ ÓÑÑ × Þ ´ÅÈÁ ÇÅÅ ÏÇÊÄ ¸²Ôµ »» ÒÓÑ Ö ÔÖÓ ××Ù×
ÅÈÁ ÓÑÑ Ö Ò ´ÅÈÁ ÇÅÅ ÏÇÊÄ ¸² µ »» Ö Ò Ù ÔÖÓ ××Ù×
ÅÈÁ Ø ÔÖÓ ××ÓÖ Ò Ñ ´ÔÖÓ ××ÓÖ Ò Ñ ¸ ²Ò Ñ Ð Òµ »»
ÒÓÑ Ù ÔÖÓ ×× ÙÖ
Ô Ö Ò Ø ´ ÈÖÓ ×× ÙÖ ±× Á ± Ò ¸ ÔÖÓ ××ÓÖ Ò Ñ ¸ µ
ÅÈÁ Ò Ð Þ ´ µ »» ÓÒ Ø ÖÑ Ò ÅÈÁ
Ö ØÙÖÒ ¼
79.
ÓÑÔ Ð ÖØ Ü ÙØ Ö ×ÓÒ ÔÖÓ Ö ÑÑ ÅÈÁ
Ä ÓÑÔ Ð Ø ÓÒ × Ø Ô Ö
ÑÔ ·· ÕÙ ×Ù × º ÔÔ ¹Ó ÕÙ ×Ù ×
´× гÓÔØ ÓÒ ¹Ó Ò³ ר Ô × Ñ × ¸ Ö Ø Ò× ÙÒ Ö ºÓÙØµ
Ü ÙØ ÓÒ ×ÙÖ × Ñ Ò ÐÓ Ð Ñ ÒØ ´ ÓÐÐ Ò µ
ÓÐÐ Ò ÅÈÁ ° ÑÔ ÖÙÒ ¹ÒÔ ÕÙ ×Ù ×
ÈÖÓ ×× ÙÖ ÓÐÐ Ò ºÔÓÐÝØ Ò ÕÙ º Ö Á ¿
ÈÖÓ ×× ÙÖ ÓÐÐ Ò ºÔÓÐÝØ Ò ÕÙ º Ö Á ¼
ÈÖÓ ×× ÙÖ ÓÐÐ Ò ºÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ ÓÐÐ Ò ºÔÓÐÝØ Ò ÕÙ º Ö Á ¾
80.
Ü ÙØ Ö×ÙÖ ÔÐÙ× ÙÖ× Ñ Ò ×
Ö Ò ½ ° ÑÔ ÖÙÒ ¹ÒÔ ¹ Óר Ò Ð Ø ÖÖ ¸ ÙØÖ ÕÙ ×Ù ×
ÈÖÓ ×× ÙÖ ÙØÖ ºÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ ÙØÖ ºÔÓÐÝØ Ò ÕÙ º Ö Á ¿
ÈÖÓ ×× ÙÖ Ò Ð Ø ÖÖ ºÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ Ò Ð Ø ÖÖ ºÔÓÐÝØ Ò ÕÙ º Ö Á ¼
ÈÖÓ ×× ÙÖ Ò Ð Ø ÖÖ ºÔÓÐÝØ Ò ÕÙ º Ö Á
⇒ ÑÔ ÖÙÒ ×Ø ÙÒ Ð × ÔÓÙÖ ÓÖØ ÖÙÒ
½ Ñ Ò × Ò× Ð × × ÐР׸ ÓÖ Ò × × Ò ÐÙר Ö× Ñ Ò × ´¿ × ¼ + ½ µ
81.
ÍØ Ð ×Ö Ð³ÓÖ ÓÒÒ Ò ÙÖ ËÄÍÊÅ ×ÙÖ Ð × ÐÙר Ö×
¿ ÐÙר Ö× ¼ Ò Ù × Ø ÙÒ ÐÙר Ö ½ Ò Ù ×
× Ò Ó ÚÓ Ö × Ò ÓÖÑ Ø ÓÒ× ×ÙÖ Ð ÐÙר Ö Ð ÕÙ ÐÐ ÚÓØÖ Ñ Ò ÔÔ ÖØ ÒØ
Ö Ò ¾ ½ ° × Ò Ó
È ÊÌÁÌÁÇÆ Î ÁÄ ÌÁÅ ÄÁÅÁÌ ÆÇ Ë ËÌ Ì ÆÇ ÄÁËÌ
Ù ¶ ÙÔ ½ ¼¼ ½ Ð ÐÐ Ñ Ò ¸
Ò Ð Ø ÖÖ ¸ ÙØÖ ¸ Ð ÕÙ ¸ ×Ô Ò ¸ ÒÐ Ò ¸
Ö Ò ¸ ÖÓ ÒÐ Ò ¸ ÓÐÐ Ò ¸ ÓÒ Ö ¸ ÖÐ Ò ¸ ×Ð Ò
¸Ð ØÙ Ò ¸Ñ ÐØ ¸ÑÓÒ Ó ¸ÔÓÐÓ Ò ¸ÔÓÖØÙ Ð ¸ÖÓÙÑ Ò ¸
×Ù
82.
ÍØ Ð ×Ö Ð³ÓÖ ÓÒÒ Ò ÙÖ ËÄÍÊÅ ×ÙÖ Ð × ÐÙר Ö×
¹ × ¹ º½° ×× ××ÓÒÒ
Ä ×Ø ÐÓ Ò Ö Å Ö ¾¼ ½ ¾ ¾¼½ ÖÓÑ Ð Òº
ÔÓÐÝØ Ò ÕÙ º Ö
××ÓÒÒ ½ ° × Ò Ó
È ÊÌÁÌÁÇÆ Î ÁÄ ÌÁÅ ÄÁÅÁÌ ÆÇ Ë ËÌ Ì ÆÇ ÄÁËÌ
ËÆ¾ ¶ ÙÔ ½ ¼¼ ¼ Ð Ð ØØ ¸ Ò
¸ ÐÐ Ö ¸ Ò Ó × ¸ Ò Ù ÐÐ ¸ Ö ÒÒ × ¸ Ö Ù ¸ Ö Ù ¸
Ù ÖÓ ¸ ÖÓ Ø ¸ ÖÑÓÖ ¸ ÖÖ Ð Ø ¸ Ö ÒØ ¸ Ö ¸
Ö Ù× ¸ ÓÖ Ó Ò ¸ ÓÙ × ¸ ××ÓÒÒ ¸ Ò ×Ø Ö ¸ Ö ÓÒ ¸
ÖÓÒ ¸ ÝÑÒÓØ ¸ Ò Ö ¸ ÙÖ ¸Ð Ö ¸Ð Ò × ¸Ð Ù ¸
ÐÓ Ö ¸ÐÓØØ ¸Ñ Ò ¸Ñ ÖÒ ¸Ñ Ý ÒÒ ¸ÑÓÖ Ò ¸ÑÓ× ÐÐ
¸ÑÙÐ Ø ¸ÑÙÖ Ò ¸Ô Ö Ò ¸Ö ¸Ö ÕÙ Ò ¸ÖÓÙ Ø ¸
ÖÓÙ×× ØØ ¸× ÓÒ ¸× ÙÑÓÒ ¸× ÐÙÖ ¸×ÓÐ ¸×ÓÑÑ ¸Ø ÓÒ ¸
ØÖÙ Ø ¸Ú Ò ¸ÚÓ× ×
83.
××ÓÒÒ ½ °× ÐÐÓ ¹¹ÒØ × × ¿¾ ¹¹ÒØ × × ¹Ô Ö ¹ÒÓ
×
× ÐÐÓ Ö ÒØ Ó ÐÐÓ Ø ÓÒ
××ÓÒÒ ½ ° × Ø Ö Ô ËÄÍÊÅ
ËÄÍÊÅ ÂÇ Á
ËÄÍÊÅ ÂÇ ÈÍË È Ê ÆÇ ³ ´Ü µ³
ËÄÍÊÅ ÂÇ Á
ËÄÍÊÅ ÂÇ ÆÇ ÄÁËÌ Ò ¸ ÐÐ Ö ¸ Ö ÒÒ × ¸ ÖÑÓÖ
ËÄÍÊÅ ÂÇ ÆÍÅ ÆÇ Ë
ËÄÍÊÅ ÂÇ È ÊÌÁÌÁÇÆ ËÆ¾
ËÄÍÊÅ ÆÆÇ Ë
ËÄÍÊÅ ÆÇ ÄÁËÌ Ò ¸ ÐÐ Ö ¸ Ö ÒÒ × ¸ ÖÑÓÖ
ËÄÍÊÅ ÆÇ ÄÁ Ë Ë ³´ÒÙÐе³
ËÄÍÊÅ ÆÈÊÇ Ë ¿¾
ËÄÍÊÅ ÆÌ ËÃË ¿¾
ËÄÍÊÅ ÆÌ ËÃË È Ê ÆÇ
ËÄÍÊÅ ËÍ ÅÁÌ ÁÊ »Ù× Ö×»ÔÖÓ ×» Ò Ó»Ò Ð× Ò» ½
ËÄÍÊÅ ËÍ ÅÁÌ ÀÇËÌ ××ÓÒÒ ºÔÓÐÝØ Ò ÕÙ º Ö
ËÄÍÊÅ Ì ËÃË È Ê ÆÇ ³ ´Ü µ³
84.
××ÓÒÒ ½ °ÑÔ ÖÙÒ ÕÙ ×Ù ×
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½½
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¿¼
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á ¿
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½¼
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½¾
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ Ò º ÔÓÐÝØ Ò ÕÙ º Ö Á ¼
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ½
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¿½
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ¾¼
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ¾½
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ¾¾
ÈÖÓ ×× ÙÖ Ö ÒÒ × º ÔÓÐÝØ Ò ÕÙ º Ö Á ¾¿
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ ÐÐ Öº ÔÓÐÝØ Ò ÕÙ º Ö Á ½¿
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
ÈÖÓ ×× ÙÖ ÖÑÓÖº ÔÓÐÝØ Ò ÕÙ º Ö Á ¾
85.
Æ Ô ×ÓÙ Ð Ö ÖÑ Ö Ð × ÔÓÙÖ Ö Ò Ö Ð × Ö ××ÓÙÖ × ËÄÍÊÅ
××ÓÒÒ ½ ° Ü Ø
Ü Ø
× ÐÐÓ Ê Ð ÒÕÙ × Ò Ó ÐÐÓ Ø ÓÒ
Ð ÙÐ πÔ Ö ÙÒ Ñ Ø Ó ÅÓÒØ ¹ ÖÐÓ
π
≈
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¹ÑÓÝ ÒÒ × Ò ÅÈÁ ½¹ ¿
INF442 : Traitementdes donn´ees massives
A2 : Le HPC et le regroupement hi´erarchique
Frank Nielsen
X2013
15 avril 2015
3 avril 2015
100.
HPC : quelquescas 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 etscalabilit´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)
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 !
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) etsyst`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 : rappelsur 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’exploitationmodernes 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) sousUNIX
[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) sousUNIX
[ 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 filsde 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 processuset 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 unalias 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 laMessage Passing Interface (MPI)
Multiple Program Multiple Data : MPMD
Single Program Multiple Data : SPMD
118.
Op´erations MPI
Outre lescalculs 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 : Lescommunications 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 : Lescommunications 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 : lesdeux 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;
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 tempsd’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 pourle receveur
Receveur prˆet avant l’envoyeur (communications bloquantes)
126.
MPI : lessituations 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 : lesblocages (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 : lesblocages (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/Receivenon-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 st 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 qu 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 : Lessix 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 surla 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 : Lestypes 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 : Laprimitive 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 : lescommunications 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 : lesgroupes 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 tempssous 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 : Calculglobaux 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 : calculde 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 : Lescommandes 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-directionellesou 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
Le clustering/regroupement hi´erarchiqueascendant
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 fixerune 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´ementaireentre 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 paragglom´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...
Parexemple, 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 dela 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 arbresphilog´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)
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).
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 !
Crit`ere de fusionde 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 !
Le clustering hi´erarchiquepar 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 : obtenirdes 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.
Convertir un clusteringhi´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´etriqueset 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
Regroupement hi´erarchique avecl’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 parUPGMA
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 parUPGMA
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 etinversions
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.
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
classBinaryTree <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++ : Contenudes 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´eesabstraites
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 as 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´erationde 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 entreC++ 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
Ä
Ð ××ÙÖ k¹ÆÆ× Ö ×ÙÑ × Ú ÒØ × Ø Ò
ÓÒÚ Ò ÒØ×
Ð ×× ÙÖ k¹ÈÈÎ× Ô Ø Ø ×¸ Ö Ò Ú Ö Ò
ººº
◮ Ú ÒØ ×
◮ Ë ÑÔÐ Ñ ØØÖ Ò ÙÚÖ
◮ ÓÒÒ × Ô Ö ÓÖÑ Ò
× ×ÝÑÔØÓØ ÕÙ × ´×ÓÙ×
ÓÒ Ø ÓÒ
³ ÔÔÖ ÒØ ×× ×Ø Ø ×Ø ÕÙ µ
◮
Ð Ô Ö ÐÐ Ð × Öººº
◮ ÁÒ
ÓÒÚ Ò ÒØ×
◮ Ñ Ò Ù
ÓÙÔ Ñ ÑÓ Ö ´Ð Ù ³ ÔÔÖ ÒØ ×× µ
◮ Ä × Ö Ò × Ñ Ò× ÓÒ׺ºº ×ÝÑÔØÓØ ÕÙ ¸ Ö ÕÙ Ø × k¹ÆÆ¸
Ù × Ö Ò × Ñ Ò× ÓÒ× ´
ÙÖ× Ó Ñ Ò× ÓÒ Ð ØÝµ¸
º
Ì ×ÙÖ Ð Ø ÓÖ Ñ ÂÓ Ò×ÓÒ¹Ä Ò Ò×ØÖ Ù××
◮ Ó Ü k ÔÓÙÖ Ð Ö Ð k¹ÈÈκ
ÌÖÓÙÚ Ö ÙÒ Ùר Ñ Ð Ù ÒØÖ
◮ Ö Ò k ÖÓÒØ Ö ×
Ð ×× × ÔÐÙ× Ð ×× ¸ ר Ñ Ø ÓÒ
ÒÓÒ¹Ô Ö Ñ ØÖ ÕÙ ÔÐÙ× Ð
◮ Ñ ×ººº ÔÐÙ×
Ó Ø ÙÜ Ò Ø ÑÔ× Ö ÕÙ Ø × k¹ÆÆ¸ ר Ñ Ø ÓÒ
ÑÓ Ò× ÐÓ
Ð ººº
238.
Ä Ö Ðk¹ÆÆ Ò
Ð
ÙÐ ×ØÖ Ù
◮ ÌÓÙØ
ÓÑÑ
Ñ Ò(x½, x¾, x¿, x ) = Ñ Ò(Ñ Ò(x½, x¾), Ñ Ò(x¿, x ))¸ Ð Ö ÕÙ Ø
× k ÔÐÙ× ÔÖÓ
× ÚÓ × Ò× x ר
ÓÑÔÓ× Ð ÔÓÙÖ
X = X½ X¾ ÙÒ Ô ÖØ Ø ÓÒ X Ò×ÓÙ×¹ Ò× Ñ Ð × × Ó ÒØ×
X½ Ø X¾¸ ÒÓÙ× ÚÓÒ×
ÆÆk(x, X) = ÆÆk (x, ÆÆk(x, X½) ∪ ÆÆk(x, X¾))
◮ ÈÓÙÖ p ÔÖÓ
×× ÙÖ׸ ÓÒ Ô ÖØ Ø ÓÒÒ ÓÒ
X Ò p Ô ÕÙ Ø× Xi
Ø ÐÐ
n
p ¸ Ø ÓÒ Ø Ð Ö ÕÙ Ø ÆÆk(x, Xi ) Ò×
ÕÙ Ô ÕÙ Ø
Ò Ô Ö ÐÐ Ð º
◮ Ä ÔÖÓ
×× ÙÖ Ñ ØÖ P¼ Ö Ó Ø kp Ð Ñ ÒØ× ¸ Ø Ø ÙÒ
Ö ÕÙ Ø × k ÔÐÙ× ÔÖÓ
× ÚÓ × Ò× ×ÙÖ
ÐÙ
ÆÆk(x, X) = ÆÆk x,
p
i=½
ÆÆk(x, Xi )
◮ ÇÒ Ô ×× O(dnk) ÔÓÙÖ p = ½ ´× ÕÙ ÒØ е
O (dk n
p ) + O(dkkp) = O (dk n
p ) ÕÙ Ò p = O( n
k )º
239.
ÍØ Ð ÈÖÓÖ ÑÑ Ö Ò ÅÈÁ ÙÒ (Ñ Ò, Ö Ñ Ò) Ú
ÙÒ Ö Ù
Ø ÓÒ
Ò
Ð Ù ÑÔ º
Ò
Ð Ù × Ø Ó º
Ò Æ ½¼¼¼
Ò Ø Ñ Ò ´ Ò Ø Ö
¸
Ö ∗∗ Ö Ú µ ß
Ò Ø Ö Ò ¸ ÒÔÖÓ
× ¸ Ò ¸
ÓÒר Ò Ø ÖÓÓØ ¼
ÅÈÁ ÁÒ Ø ´² Ö
¸ ² Ö Ú µ
ÅÈÁ ÓÑÑ × Þ ´ÅÈÁ ÇÅÅ ÏÇÊÄ ¸ ²ÒÔÖÓ
× µ ÅÈÁ ÓÑÑ Ö Ò ´ÅÈÁ ÇÅÅ ÏÇÊÄ ¸
²Ö Ò µ
Ð Ó Ø Ú Ð Æ℄ ¸ Ñ ÒÚ Ð »» Ø Ð Ù ÐÓ
Ð Ú Ð ÙÖ×
Ò Ø ÑÝÖ Ò ¸ Ñ ÒÖ Ò ¸ Ñ Ò Ò Ü
»» ÓÒ Ö ÑÔÐØ Ð Ø Ð Ù Ú Ð ÙÖ× Ð ØÓÖ ×
×Ö Ò ´ ¾· Ö Ò µ
Ó Ö ´ ¼ Æ ··µ ß Ú Ð ℄ Ö Ò ´µ
»» ÍÒ
Ð Ö ØÓÒ ×ØÖÙ
ØÙÖ
ÓÑÔÓ×
× Ø Ö Ù
Ø ß Ð Ó Ø Ú Ð Ù Ò Ø Ò Ü Ò ¸ ÓÙØ
»» ÓÒ
Ö
³ ÓÖ ÐÓ
Ð Ñ ÒØ Ð Ú Ð ÙÖ ÑÒÑ Ð
Ò º Ú Ð Ù Ú Ð ¼ ℄ Ò º Ò Ü ¼
Ó Ö ´ ½ Æ ··µ
´ Ò º Ú Ð Ù Ú Ð ℄ µ ß
Ò º Ú Ð Ù Ú Ð ℄ Ò º Ò Ü
»» ÓÒ Ò ÕÙ Ð Ö Ò ÐÓ Ð Ð³Ò Ü
Ò º Ò Ü Ö Ò ∗Æ · Ò º Ò Ü
»» Ñ ÒØ Ò ÒØ ÓÒ Ö
Ö
ÐÓ Ð Ñ ÒØ Ð Ú Ð ÙÖ ÑÒÑ Ð
ÅÈÁ Ê Ù
´ ´ ÚÓ ∗µ ² Ò ¸ ´ ÚÓ ∗µ ²ÓÙØ ¸ ½ ¸ ÅÈÁ ÄÇ Ì ÁÆÌ ¸ ÅÈÁ ÅÁÆÄÇ ¸
ÖÓÓØ ¸ ÅÈÁ ÇÅÅ ÏÇÊÄ µ
»» Ð Ö ÔÓÒ× × ØÖÓÙÚ ×ÙÖ Ð ÔÖÓ
××Ù× ÖÓÓØ
´ Ö Ò ÖÓÓØ µ ß
Ñ ÒÚ Ð ÓÙØ º Ú Ð Ù Ñ ÒÖ Ò ÓÙØ º Ò Ü » Æ Ñ Ò Ò Ü ÓÙØ º Ò Ü ±
Æ
Ô Ö Ò Ø ´ Ú Ð Ù Ö Ñ Ò Ñ Ð ± ×ÙÖ ÔÖÓ
º ± Ð Ô Ó × Ø Ó Ò ± Ò ¸ Ñ ÒÚ Ð ¸
Ñ ÒÖ Ò ¸ Ñ Ò Ò Ü µ
ÅÈÁ Ò Ð Þ ´µ
240.
Ð ×× ÙÖÑÓ Ò×
ÓÙÖÑ Ò Ò Ñ ÑÓ Ö
ÓÑ Ò ÒØ Ð ×
r¹ÑÓÝ ÒÒ × Ú
Ð Ö Ð
× k¹ÈÈÎ×
241.
Ð ×× ÙÖÑÙÐØ ¹
Ð ×× ÓÔØ Ñ ×
ÇÒ Ò Ú ÙØ Ô × Ö Ö Ð × n ÒØÖ × Ù Ù ³ ÒØÖ Ò Ñ ÒØ ÕÙ ×ÓÒØ
ÙØ Ð × × Ô Ö Ð
Ð ×× ÙÖ × k¹ÈÈÎ׺ ËÓ Ø m
Ð ×× ×º
◮ ÈÓÙÖ
ÕÙ
Ð ×× ¸ ÓÒ Ø ÙÒ Ö ÖÓÙÔ Ñ ÒØ Ú
Ð ×
r¹ÑÓÝ ÒÒ × ÔÓÙÖ ØÖÓÙÚ Ö r ÔÖÓØÓØÝÔ ×º Ò ØÓÙØ¸ m × r
ÔÖÓØÓØÝÔ × Ø ÕÙ Ø × ÕÙ ÒØ ÖÚ ÒÒ ÒØ Ò× Ð ÓÒ
Ø ÓÒ ˆl Ù
Ð ×× ÙÖº
◮ ÈÓÙÖ ÙÒ Ö ÕÙ Ø q¸ ÓÒ
Ð ×× Ú
Ð Ö Ð × k¹ÈÈÎ× ×ÙÖ Ð ×
m × r ≪ n ÔÖÓØÓØÝÔ ×º
ÑÙ×ÓÒ× ÒÓÙ× ×× ººº
Ò
Ð Ù Ó × Ø Ö Ñ
Ù × Ò Ò Ñ ×Ô
× Ø
Ò Ø Ñ Ò ´ µ
ß
Ò Ø Ø ℄
Ò Ø ∗ Ô
Ô Ø ∗Ô ½ ¼
Ô·· ∗Ô ¾ ¼
Ô ²Ø ¾ ℄ ∗Ô ¿ ¼
»» Ö Ø Ñ Ø ÕÙ ÔÓ ÒØ ÙÖ×
Ô Ø · ¿ ∗Ô ¼
»» Ö Ø Ñ Ø ÕÙ ÔÓ ÒØ ÙÖ× Ö Ö Ò
Ô Ø ∗´ Ô· µ ¼
Ó Ö ´ Ò Ø Ò ¼ Ò Ò··µ
Ó Ù Ø Ø Ò ℄
Ö Ø Ù Ö Ò ¼ »» ½¼ ¾¼ ¿¼ ¼ ¼
254.
ij Ö ØÑ Ø ÕÙ ÔÓ ÒØ ÙÖ×
ËÓ Ø Ì ÙÒ ØÝÔ ÔÖ Ñ Ø ÓÙ ÙÒ ØÝÔ Ó Ø
ÍÒ ÔÓ ÒØ ÙÖ ÔØÖ ØÝÔ Ì¶ ר ÙÒ Ú Ö Ð ×ÙÖ ÙÒ ÞÓÒ Ñ ÑÓ Ö
Ø ÐÐ × Þ Ó ´Ìµº
ÄÓÖ×ÕÙ³ÓÒ Ò
Ö Ñ ÒØ ÔØÖ ´ Ò × ÒØ ÔØÖ··µ¸ ÓÒ ÓÙØ Ð Ú Ð ÙÖ
Ñ ÑÓ Ö × Þ Ó ´Ìµ
Ó Ù Ð Ø ℄ ß ½ ¸ ¾ ¸ ¿ ¸ ¸ ¸ ∗ Ô Ø Ö Ø
Ö Ø
℄ ß ³ ³ ¸ ³ ³ ¸ ³ ³ ¸ ³ ³ ¸ ³ ³ ¸ ∗ Ô Ø Ö
Ø
»»
´ Ø×µ Ø ½
Ö Ö × Þ Ó ´ Ó Ù Ð µ × Þ Ó ´
Ö µ
Ò Ð
»»
Ø ´ ØØ ÒØ ÓÒ ÙÜ Ò
×µ
Ö Ö ∗´ Ø ·¿µ ∗´ Ø
· µ Ò Ð
255.
ij Ö ØÑ Ø ÕÙ ÔÓ ÒØ ÙÖ×
Ì ØÝÔ Ó Ø
»» Å
Ò ½ ÑÓØ Ó
Ø Ø× Ø×
»» ¿ ÑÓØ× ¾ Ó
Ø Ø×
Ð × × Ð Ú ß Ô Ù Ð
× Ø Ö Ò ÒÓÑ ¸ ÔÖ ÒÓÑ
Ò Ø Ö Ó Ù Ô
»» ¾ ÑÓØ× ½ ¾Ü Ó
Ø Ø×
Ð × × Ñ ¾ ß Ô Ù Ð
Ò Ø Ò Ð Ú ×
Ð Ú ∗ Ô Ø Ö Ð Ú
º º º
Ó ÙØ × Þ Ó ´ Ð Ú µ ³ ³ × Þ Ó ´ Ñ ¾ µ Ò Ð
256.
Ð × ×Ð Ú ß Ô Ù Ð
× Ø Ö Ò ÒÓÑ ¸ ÔÖ ÒÓÑ
Ò Ø ÖÓÙÔ
Ð Ú ´ × Ø Ö Ò Ò ¸ × Ø Ö Ò Ô ¸ Ò Ø µ
ßÒÓÑ Ò ÔÖ ÒÓÑ Ô ÖÓÙÔ
Ö Ò ×Ø Ó×ØÖ Ñ² ÓÔ Ö ØÓÖ ´ ר Ó×ØÖ Ñ² ×ØÖ Ñ ¸
ÓÒר Ð Ú ² µ
ß ×ØÖ Ñ º ÒÓÑ º ÔÖ ÒÓÑ º ÖÓÙÔ Ö Ø Ù Ö Ò ×ØÖ Ñ
Ò Ø Ñ Ò ´µ
ß
Ð Ú
Ð × × ¾℄ ß Ð Ú ´ Ö Ò ¸ Æ Ð × Ò ¸½µ ¸ Ð Ú ´ Ð Ù ¸ ³
Ñ ÖÓ× Ó ¸¾µ
Ð Ú ∗ Ô Ø Ö
Ð × ×
ÓÙØ ∗ Ô Ø Ö Ò Ð ∗´ Ô ØÖ··µ Ò Ð
Ö Ø Ù Ö Ò ¼
Ä × ÔÓÒØ ÙÖ× ÔÓ ÒØ ÙÖ×
Ê ÔÔ Ð ÈÓ ÒØ ÙÖ Ú Ö Ð ÕÙ
ÓÑÑ Ú Ð ÙÖ Ð Ö Ö Ò
Ñ ÑÓ Ö ³ÙÒ ÙØÖ Ú Ö Ð º
Ó Ù Ð
Ó Ù Ð ∗
Ó Ù Ð ∗∗
Ó Ù Ð ∗∗∗
¿ º ½ ½ ¾
²
²
²
Ó Ù Ø ³ Ò ³
Ò Ð Ò Ð
259.
Ä × ÔÓÒØ ÙÖ× ÔÓ ÒØ ÙÖ×
double a;
double* b;
double** c;
double*** d;
a=3.14;
b=a;
c=b;
d=c;
a b c
3.14 0x22aac0
0x22aac0
0x22aab8
0x22aab8
0x22aab0
0x22aab0 d
d
260.
Ä × ÔÓÒØ ÙÖ× ÚÓ
ËÝÒØ Ü ÚÓ ¶ÔØÖÎÓ
◮ ÙÒ ØÝÔ ×Ô
Ð ÔÓ ÒØ ÙÖ× ÔÓ ÒØ ×ÙÖ ÙÒ ÞÓÒ Ñ ÑÓ Ö
ÒÓÒ ØÝÔ
◮ ÔÖ Ø ÕÙ
Ö ÓÒ Ô ÙØ ÔÓ ÒØ Ö ×ÙÖ Ò³ ÑÔÓÖØ ÕÙ Ð ØÝÔ
Ú Ö Ð ´ ÒØ¸ ×ØÖ Ò ¸ ̵
◮ ººº Ñ × ÓÒ Ô ÙØ Ô × Ö Ò
Ö Ò Ñ Ñ Ö Ð³ Ö Ø Ñ Ø ÕÙ
ÔÓ ÒØ ÙÖ× ´ÔÙ ×ÕÙ³ÓÒ Ò
ÓÒÒ Ø Ô × × Þ Ó ´Ìµµº ÈÓÙÖ
Ö ¸ ÓÒ Ó Ø Ö Ð
Ó Ö
ÓÒ ´ ØÝÔ
ר Ò µ ̶
ÔØÖÌ ´Ì ¶µÔØÖÎÓ
Ó Ù Ð Ø ℄ ß ½ ¸ ¾ ¸ ¿ ¸ ¸ ¸ ∗ Ô Ø Ö Ø
Ö Ö ∗´ Ø ·¿µ Ò Ð »»
Ö ∗ Ô Ø Ö
¾ ´
Ö ∗µ Ø
Ú Ó ∗ ´ Ô Ø Ö
¾ ·¿∗ × Þ Ó ´ Ó Ù Ð µ µ
Ö Ö ´∗´ Ó Ù Ð ∗µ ´ µ µ Ò Ð »» »»
261.
Ä × ÔÓÒØ ÙÖ× ÚÓ
ÍØ Ð ÐÓÖ×ÕÙ³ÓÒ Ñ Ò ÔÙÐ × Ö Ö
×
Ð ×× ×¸
ÔÓÐÝÑÓÖÔ ×Ñ ÝÒ Ñ ÕÙ º
Ò
Ð Ù × Ø Ð º
Ò
Ð Ù Ó×ØÖ Ñ
Ù× Ò Ò Ñ ×Ô
ר
ÓÙ Ð Ö Ò ¾ ´µ
ß Ö Ø Ù Ö Ò ´ ÓÙ Ð µ Ö Ò ´µ » Ê Æ Å
Ð × × ÈÓÐÝ ÓÒ ß Ô Ù Ð
Ò Ø Ò × Ø Ö Ò Ò Ñ
Ð × × ÌÖ Ò Ð Ô Ù Ð
ÈÓÐÝ ÓÒ ß Ô Ù Ð
ÌÖ Ò Ð ´µ ßÒ ¿ Ò Ñ Ø Ö Ò Ð
Ð × × ÖÖ Ô Ù Ð
ÈÓÐÝ ÓÒ ß Ô Ù Ð
ÖÖ ´µ ßÒ Ò Ñ
Ö Ö
Ò Ø Ñ Ò ´µ
ß
ÈÓÐÝ ÓÒ ∗ ÔØ Ö
×Ö Ò ´ Ø Ñ ´ÆÍÄĵ µ
´ Ö Ò ¾ ´µ ¼º µ Ô Ø Ö Ò Û ÖÖ ´µ
Ð × Ô Ø Ö Ò Û Ì Ö Ò Ð ´µ
ÓÙØ
ÓØ × ÔØÖ− Ò
Ö Ø Ù Ö Ò ¼
262.
Ä × ÔÓÒØ ÙÖ× ÚÓ
ÍØ Ð ÐÓÖ×ÕÙ³ÓÒ Ñ Ò ÔÙÐ × Ö Ö
×
Ð ×× ×¸ Ô ××
ÔÓ ÒØ ÙÖ× ÒÓÒ¹ØÝÔ × Ò× Ð × ÓÒ
Ø ÓÒ׸ Ø
º
Ò
Ð Ù × Ø Ð º
Ò
Ð Ù Ó×ØÖ Ñ
Ù× Ò Ò Ñ ×Ô
ר
ÓÙ Ð Ö Ò ¾ ´µ
ß Ö Ø Ù Ö Ò ´ ÓÙ Ð µ Ö Ò ´µ » Ê Æ Å
Ð × × ÈÓÐÝ ÓÒ ß Ô Ù Ð
Ò Ø Ò × Ø Ö Ò Ò Ñ
Ð × × ÌÖ Ò Ð Ô Ù Ð
ÈÓÐÝ ÓÒ ß Ô Ù Ð
ÌÖ Ò Ð ´µ ßÒ ¿ Ò Ñ Ø Ö Ò Ð
Ð × × ÖÖ Ô Ù Ð
ÈÓÐÝ ÓÒ ß Ô Ù Ð
ÖÖ ´µ ßÒ Ò Ñ
Ö Ö
Ò Ø Ñ Ò ´µ
ß
ÚÓ ∗ Ô Ø Ö
×Ö Ò ´ Ø Ñ ´ÆÍÄĵ µ
´ Ö Ò ¾ ´µ ¼º µ Ô Ø Ö Ò Û ÖÖ ´µ
Ð × Ô Ø Ö Ò Û Ì Ö Ò Ð ´µ
ÈÓÐÝ ÓÒ ∗ Ô ØÖ È ÓÐ Ý
ÔØ ÖÈ ÓÐ Ý ´ÈÓÐÝ ÓÒ ∗µ Ô Ø Ö
ÓÙØ
ÓØ × ÔØÖÈÓÐÝ − Ò
Ö Ø Ù Ö Ò ¼
263.
Ä ÔÓ ÒØÙÖ ÆÍÄÄ
◮ Ò ÔÓ ÒØ Ô × ×ÙÖ ÙÒ Ö Ö Ò
Ú Ð ÓÖ ÙÒ Ö ×× Ñ ÑÓ Ö
ÓÙ Ð ¶ ÔØÖ ÆÍÄÄ
ººº Ð× Ö ØÙÖÒ Ò Û ÆÓ Ù ´ Ù ÐÐ ¸ ÆÍÄĸ ÆÍÄĵ
◮ ÙØ Ð Ò× Ð
ÓÒרÖÙ
Ø ÓÒ Ö
ÙÖ× Ú ×ØÖÙ
ØÙÖ × ÓÒÒ ×
´Ð ר ׸ Ö Ö ×¸ Ö Ô ×¸ Ñ ØÖ
×
Ö Ù× ×¸ Ø
ºµ
◮ ØØ ÒØ ÓÒ ÙÜ × Ñ ÒØ Ø ÓÒ ÙÐØ×
Ì ∗ Ô Ø Ö Ô Ø Ö Ñ Ó Ò
Ø Ó Ò Ë Ù Ô Ö ¾ ´ µ
Ó ÙØ ´ ∗̵ Ò Ð
264.
Ä × ÔÓÒØ ÙÖ ÓÒ
Ø ÓÒ×
ÍÒ
Ó ´ ×ÓÒ× ÙÒ ÓÖÑÙÐ µ ר ÙÒ
Ö Ø ÜØ
ÓÑÑ ÙÒ
ÔÓ × ÓÙ ÙÒ Ð ÚÖ º Ä
ÓÑÔ Ð Ø ÙÖ Ó Ø Ö ÙÒ Ò ÐÝ× Ð Ü
Ð
´ÑÓØ×
Ð ×
ÓÑÑ × Ò, ÜÔ µ ÔÙ × ×ÝÒØ Ü ÕÙ ´Ú Ö Ö ÕÙ Ð ÓÖÑÙÐ
×Ó Ø Ò ÓÖÑ µ¸ Ø
ÓÒרÖÙ Ø ÙÒ Ö Ö ×ØÖ Ø ÔÓÙÖ Ð³ Ú ÐÙ Ø ÓÒº
ÇÒ ÔÓÙÖÖ Ø Ö ÓÙØ Ö Ù ÙÖ Ø Ñ ×ÙÖ × ÓÔ Ö Ø ÙÖ Ò Ö ×
´
ÓÑÑ × ÔÐÙ ×¹ Ò×µº
»» ÔÓ ÒØ ÙÖ ÓÒ
Ø ÓÒ×
Ò Ø Ø Ó Ò ´ Ò Ø ¸ Ò Ø µ
ß Ö Ø Ù Ö Ò ´ · µ
Ò Ø × Ó Ù × Ø Ö
Ø Ó Ò ´ Ò Ø ¸ Ò Ø µ
ß Ö Ø Ù Ö Ò ´ − µ
Ò Ø Ó Ô Ö Ø Ù Ö Ò Ö ´ Ò Ø Ü ¸ Ò Ø Ý ¸ Ò Ø ´∗
Ù Ò
Ø Ó
Ð Ð µ ´ Ò Ø ¸ Ò Ø µ µ
ß Ö Ø Ù Ö Ò ´ ∗ Ù Ò
Ø Ó
Ð Ð µ ´ Ü ¸ Ý µ
265.
Ò
ÐÙ Ó × Ø Ö Ñ
Ù × Ò Ò Ñ ×Ô
× Ø
Ò Ø Ø Ó Ò ´ Ò Ø ¸ Ò Ø µ
ß Ö Ø Ù Ö Ò ´ · µ
Ò Ø × Ó Ù × Ø Ö
Ø Ó Ò ´ Ò Ø ¸ Ò Ø µ
ß Ö Ø Ù Ö Ò ´ − µ
Ò Ø Ó Ô Ö Ø Ù Ö Ò Ö ´ Ò Ø Ü ¸ Ò Ø Ý ¸ Ò Ø ´∗
Ù Ò
Ø Ó
Ð Ð µ ´ Ò Ø ¸ Ò Ø µ µ
ß Ö Ø Ù Ö Ò ´ ∗ Ù Ò
Ø Ó
Ð Ð µ ´ Ü ¸ Ý µ
Ò Ø Ñ Ò ´ µ
ß Ò Ø Ñ¸ Ò
Ñ Ó Ô Ö Ø Ù Ö Ò Ö ´ ¸ ¸ Ø Ó Ò µ
Ò Ó Ô Ö Ø Ù Ö Ò Ö ´ ¾ ¼ ¸ Ѹ × Ó Ù × Ø Ö
Ø Ó Ò µ
Ó Ù Ø Ò
Ö Ø Ù Ö Ò ¼
266.
Ä × ÒÖ× × ÔÓ ÒØ ÙÖ× Ò Ð Ò ÔÓ ÒØ Ö
ÍÒ ÔÓ ÒØ ÙÖ ÕÙ Ò ÔÓ ÒØ ×ÙÖ Ö Ò Ò Ð Ò ÔÓ ÒØ Ö
Ò Ø Ñ Ò ´ µ
ß Ò Ø ∗ Ö Ö Ý È Ø Ö ½
Ò Ø ∗ Ö Ö Ý È Ø Ö ¾ Ò Û Ò Ø ¾ ℄
Ö Ö Ý È Ø Ö ½ Ö Ö Ý È Ø Ö ¾
Ð Ø ℄ Ö Ö Ý È Ø Ö ¾
»» × ÓÒ Ð
Ò
ÕÙ ÐÕÙ
Ó× × ÒÓÒ
»» ÙÒ × Ñ ÒØ Ø ÓÒ ÙÐØ¸ Ô Ò Ù Ø ×
Ó Ù Ø Ö Ö Ý È Ø Ö ½ ½ ℄
Ö Ø Ù Ö Ò ¼
ÆÓÑ Ö ÙÜ Ø× ÓÖ × ÑÔÖ Ú × Ð × ÔÓ×× Ð × Ô Ò
г רÓÖ ÕÙ Ð³ÙØ Ð × Ø ÓÒ Ù Ø × ´ Ôµ
267.
Ä × ÒÖ× × ÔÓ ÒØ ÙÖ× ÞÓÒ × ÒÓÒ¹
×× Ð ×
ÇÒ Ô ÙØ Ö × ÖÚ Ö × ÞÓÒ × Ñ ÑÓ Ö × ÕÙ Ò × ÖÓÒØ ÔÐÙ×
×× Ð ×
Ò Ø ∗ È Ø Ö ½ ¾ ¼ ½
Ò Ø ∗ È Ø Ö ¾ ¾
È Ø Ö ½ È Ø Ö ¾
ÁÑ Ò Þ Ñ ÒØ Ò ÒØ
Ò Ø ∗ È Ø Ö ½ Ò Û Ò Ø ¾ ¼ ½ ℄
Ò Ø ∗ È Ø Ö ¾ ¾
È Ø Ö ½ È Ø Ö ¾
ÓÙØ Ó Ñ ÑÓÖÝ
ÇÙØ Ð Ú ×Ù Ð × Ø ÓÒ ÝÒ Ñ ÕÙ Ø ×Ù Ú Ð Ñ ÑÓ Ö ÐÓÖ×
г Ü
ÙØ ÓÒ ÔÖÓ Ö ÑÑ ×º ØØÔ »»Ú Ð Ö Ò ºÓÖ »
268.
Ä × ÖÖ Ò
× Ø Ð × Ð ×
Ò Ø Ú Ð ½ ¾
Ò Ø Ú Ð ¾ ¾¼½
»» Ð ×
Ò Ø ² Ö Î Ð ½ Ú Ð ½
Ó Ù Ø Ö Î Ð ½ Ò Ð »» ¾
Ö Î Ð ½ Ú Ð ¾
»»
¹ ××ÓÙ׸ Ð Ô ÒÓÑ Ò ³ Ð ×
Ó Ù Ø Ú Ð ½ Ò Ð »»¾¼½
269.
È ×× ÔÖ Ú Ð ÙÖ× Ø Ô ×× Ô Ö Ö Ö Ò
×
ÚÓ ×Û Ô ´ Ò Ø² Ü ¸ Ò Ø² Ý µ
ß Ò Ø Ø ÑÔ Ü Ü Ý Ý Ø ÑÔ
ÚÓ ×Û ÔÈØÖ ´ Ò Ø ∗ ÈØÖ½ ¸ Ò Ø ∗ ÈØÖ¾ µ
ß Ò Ø ∗ ÈØÖ ÈØÖ ÈØÖ½ ÈØÖ½ ÈØÖ¾ ÈØÖ¾ ÈØÖ
ÚÓ ×Û Ô ÓÓ ÈØÖ ´ Ò Ø ∗ Ü ¸ Ò Ø ∗ Ý µ
ß Ò Ø Ø ÑÔ ∗Ü ∗Ü ∗Ý ∗Ý Ø ÑÔ
Ò Ø Ñ Ò ´µ
ß
Ò Ø ¾ ¸ ¿
×Û Ô ´ ¸ µ
ÓÙØ Ò Ð »» ÇÃ
¾ ¿ Ò Ø ∗ ÈØÖ ² ¸∗ ÈØÖ ²
×Û ÔÈØÖ ´ ÈØÖ ¸ ÈØÖ µ
ÓÙØ ∗ÈØÖ ∗ÈØÖ Ò Ð »» ÒÓÒ
×Û Ô ÓÓ ÈØÖ ´ ÈØÖ ¸ ÈØÖ µ
ÓÙØ ∗ÈØÖ ∗ÈØÖ Ò Ð »» ÓÙ
270.
ÈÓ ÒØ ÙÖר Ö Ö Ò
×
◮ ÙÒ Ö Ö Ò
ר ØÓÙ ÓÙÖ× Ò ¸ ³ÙÒ ØÝÔ ÓÒÒ ¸ Ø Ò Ô ÙÜ
Ñ ×
Ò Öº È × ³ Ö Ø Ñ Ø ÕÙ Ö Ö Ò
× Ò
Ó Ö
ÓÒº
◮ Ò ··¸ Ô ×× Ô Ö Ú Ð ÙÖ ÓÙ Ô Ö Ö Ö Ò
Ë Ð Ú Ð ÙÖ ×Ø
ÙÒ ÔÓ ÒØ ÙÖ¸ Ð ÓÒ
Ø ÓÒ ÔÓÙÖÖ
Ò Ö Ð
ÓÒØ ÒÙ ×
× ×
Ñ ÑÓ Ö × ÔÓ ÒØ ׸ Ñ × Ù Ö ØÓÙÖ Ð ÓÒ
Ø ÓÒ¸ Ð × ÔÓ ÒØ ÙÖ×
Ö ÙÑ ÒØ× Ö ×Ø ÒØ Ò
Ò ×º
◮ È ×× Ô Ö Ö Ö Ò
Ò
ÓÔ Ô × Ð³Ó Ø ×ÙÖ Ð Ô Ð ³ ÔÔ Ð
× ÓÒ
Ø ÓÒ×
Ò Ø Ó Ò
Ø Ó Ò È × × È Ö Ê ´
Ó Ò × Ø Å Ð × × ²
Ð × × Ç Ø µ ß º º º
271.
ÍÒ Ñ ÙÚ× Ü ÑÔÐ ³ÙØ Ð × Ø ÓÒ × Ö Ö Ò
×
Ò Ð Ò Ö Ö Ò
Ò Ø² Ú Ö Ð Ä Ó
Ð ´ µ
ß Ò Ø Ü ¾ Ö Ø Ù Ö Ò Ü
ÓÑÔ Ð Ú
ÙÒ Ñ ×× ³ Ð ÖØ ´Û ÖÒ Ò µ
Á Ò Ù Ò
Ø Ó Ò Ò Ø² Ú Ö Ð Ä Ó
Ð ´ µ
Ô Ø Ö ½ ¾ º
ÔÔ Ø Ø Ò Ø Ó Ò Ö Ö Ò
Ø Ó Ð Ó
Ð
Ú Ö Ð Ü Ö Ø Ù Ö Ò −ÏÖ ØÙÖÒ −Ð Ó
Ð − Ö ℄
ß Ò Ø Ü ¾ Ö Ø Ù Ö Ò Ü
ÈÓÙÖ ØÖ Ò× ÓÖÑ Ö
× Ð ÖØ × Ò ÖÖ ÙÖ
ÓÑÔ Ð Ø ÓÒ¸ Ö ··
¹Ï ÖÖÓÖ
272.
ÈÓ ÒØ ÙÖ××ÙÖ × ×ØÖÙ
ØÙÖ × Ò ´ Ø Ô Ö Ò
ÐÙ× ÓÒ ··µ
× Ø Ö Ù
Ø ÑÓÒÈÓ ÒØ ß Ó Ù Ð Ü ¸ Ý
× Ø Ö Ù
Ø ÑÓÒÈÓ ÒØ Ô Ô º Ü ¾¿ Ô º Ý ¼ º
× Ø Ö Ù
Ø ÑÓÒÈÓ ÒØ Õ Ô »∗
ÓÔ ×
ÒÖ ×ØÖ Ñ ÒØ× ∗»
ÇÒ ÙØ Ð × ×ÓÙÚ ÒØ ÙÒ ØÝÔ
Ø Ý Ô × Ø Ö Ù
Ø ß Ó Ù Ð Ü ¸ Ý ÑÓÒÈÓ ÒØ
ÑÓÒÈÓ ÒØ Ô ß ½ ¸ ¿
Ø ÓÒ Ô ÙØ ÙØ Ð × Ö Ð × ÔÓ ÒØ ÙÖ× Ø Ð × Ö Ö Ò
× ×ÙÖ Ð × ×ØÖÙ
ØÙÖ ×
ÑÓÒÈÓ ÒØ ∗ Ö ²Ô
´ ∗ Ö µ º Ü
Ö− Ü
273.
Ü Ö
Ð ÓÒ
Ø ÓÒ Ñ ÕÙ
Ò
Ð Ù × Ø Ó º
Ò Ø ¾¿
Ò Ø ÓÒ
Ø ÓÒÅ ÕÙ ´ Ò Ø ¸ Ò Ø ∗Ô½ ¸ Ò Ø ∗Ô¾ ¸ Ò Ø Ü µ ß
Ò Ø
½
½
Ü ½
∗Ô½ ½
½
Ô¾ ²
∗Ô¾ ½
Ö Ø Ù Ö Ò
Ò Ø Ñ Ò ´µ ß
Ò Ø ½¼ ¸
½½ ¸ ½¾ ¸ ½¿ ¸
ÓÒ
Ø ÓÒÅ ÕÙ ´ ¸ ²
¸ ² ¸ µ
Ô Ö Ò Ø ´ ± ر ر ر ر ر Ò ¸ ¸ ¸
¸ ¸ ¸ µ
»» ½ ½¼ ½ ½¾ ½¿ ½
Ö Ø Ù Ö Ò ¼
274.
Ê ×ÙÑ ×ÙÖÐ × ÔÓ ÒØ ÙÖ× Ø Ö Ö Ò
×
² ÓÔ Ö Ø ÙÖ Ö Ö Ò
Ö ××
¶ ÓÔ Ö Ø ÙÖ Ö Ö Ò
Ú Ð ÙÖ ÔÓ ÒØ Ô Ö
◮ ÔÓ ÒØ ÙÖ× Ð × Ú Ð ÙÖ× Ö ×× × Ñ ÑÓ Ö ×º Ë ÙÚ Ö ÙÒ
Ö Ö Ò
×ÙÖ ÙÒ ÙØÖ Ú Ö Ð º
◮ ÔÓ ÒØ ÙÖ× Ø Ø Ð ÙÜ ´→ ÔÓ ÒØ ÙÖ×
ÓÒר ÒØ×µ¸ ÔÓ ÒØ ÙÖ×
ÔÓ ÒØ ÙÖ׸ ººº
◮ Ö Ø Ñ Ø ÕÙ ÔÓ ÒØ ÙÖ× ´ÔØÖ··¸ × Þ Ó ¸ ·· Ú ÒØ ¶µ
◮ ÔÓ ÒØ ÙÖ× ÚÓ ÔÓ ÒØ ×ÙÖ Ò³ ÑÔÓÖØ ÕÙ Ð ØÝÔ Ñ × Ò
Ô ÙØ¹ ØÖ Ö Ö Ò
´→
Ó Ö
ÓÒ¸ ØÝÔ
ר Ò µ
◮ ÔÓ ÒØ ÙÖ× ÆÍÄÄ
◮ ÔÓ ÒØ ÙÖ× ÓÒ
Ø ÓÒ×
◮ ÔÓ ÒØ ÙÖ× Ø Ñ ÑÓ Ö Ù Ø × Ò Ð Ò ÔÓ ÒØ Ö× ´Ñ ÑÓ Ö
× ÐÐÓÙ → × Ñ ÒØ Ø ÓÒ ÙÐØµ¸ ÔÐÙ×
×× Ð ´ Ö µ
◮ Ö Ö Ò
× ÙØ Ð ÔÓÙÖ Ð Ô ×× ³ Ö ÙÑ ÒØ× ÙÜ ÓÒ
Ø ÓÒ׺
È × ³ Ö Ø Ñ Ø ÕÙ Ö Ö Ò
׸
ר Ò º ÍÒ Ö Ö Ò
Ò
Ò Ñ × Ø Ò Ô ÙØ ØÖ ÆÍÄÄ
INF442 : Traitementdes donn´ees massives
A4 : Alg`ebre lin´eaire distribu´ee
Frank Nielsen
X2013
6 mai 2015
277.
Plan
◮ un peude MPI
◮ produit matriciel sur la topologie du tore
◮ la g´en´ericit´e avec la biblioth`eque C++ STL
278.
MPI : pasde m´emoire globale !
→ m´emoire locale pour chaque processus, ´echange de messages
Diff´erent d’un fil de calcul (fork) avec m´emoire globale partag´ee
(INF431)
i n t main ( i n t argc , char ∗∗ argv ) {
i n t rang , n , var ;
i n t ∗ ptr=var ;
MPI Init (argc , argv ) ;
MPI Comm size (MPI COMM WORLD, n ) ;
MPI Comm rank (MPI COMM WORLD, rang ) ;
∗ ptr=rang ; ( ∗ ptr )++;
p r i n t f ( ”P%d var=%dn” , rang , var ) ;
MPI Finalize () ;}
P0 var =1
P2 var =3
P1 var =2
P3 var =4
279.
#i n cl u d e s t d i o . h
#i n c l u d e mpi . h
i n t main ( i n t argc , c har∗∗ argv ) {
i n t rang , p , autre , taga =0, tagb =1; double a , b ;
MPI Status s t a t u s ; MPI Request r e q u e s t ;
MPI Init (argc , argv ) ; MPI Comm size (MPI COMM WORLD, p ) ; MPI Comm rank (
MPI COMM WORLD, rang ) ;
i f (p==2)
{
// M´emoire locale de chaque processus
a u t r e=1−rang ; // l’autre processus
a=0; b=1;
p r i n t f (” Proc . %d a u t r e=%d avant a=%f b=%f n” , rang , autre , a , b ) ;
// double swap en utilisant une op´eration de communication sans variable locale tmp !
// on utilise en fait le buffer de communication pour tmp
MPI Isend(a , 1 , MPI DOUBLE, autre , taga , MPI COMM WORLD, r e q u e s t ) ;
MPI Isend(b , 1 , MPI DOUBLE, autre , tagb , MPI COMM WORLD, r e q u e s t ) ;
p r i n t f (” Attendons avec MPI WAIT que l e s messages s o i e n t bie n p a r t i s . . . n” ) ;
MPI Wait( re que st , s t a t u s ) ;
// Re¸coit dans a le message avec tagb (donc la valeur de b)
MPI Recv(a , 1 , MPI DOUBLE, autre , tagb , MPI COMM WORLD, s t a t u s ) ;
// Re¸coit dans b le message avec taga (donc la valeur de a)
MPI Recv(b , 1 , MPI DOUBLE, autre , taga , MPI COMM WORLD, s t a t u s ) ;
p r i n t f (” Proc . %d apre s a=%f b=%f n” , rang , a , b ) ;
} e l s e
i f ( rang==0) p r i n t f (” Executez avec mpirun −np 2 mpiswap442 . exe ” ) ;
M P I F i n a l i z e () ;}
280.
taga=0; tagb=1;
a=0;
b=1;
Isend(a,P1,taga);
Isend(b,P1,tagb);
MPI Wait;
Recv(a,tagb);
Recv(b,taga);
P0
taga=0;tagb=1;
a=0;
b=1;
Isend(a,P0,taga);
Isend(b,P0,tagb);
MPI Wait;
Recv(a,tagb);
Recv(b,taga);
P1
0, taga
1, tagb1, tagb
0, taga
m´emoire locale P0 m´emoire locale P1
[ france ~]$ mpirun -np 2 mpiswap442 .exe
Proc . 1 autre =0 avant a =0.000000 b =1.000000
Attendons avec MPI_WAIT que les messages soient bien partis ...
Proc . 0 autre =1 avant a =0.000000 b =1.000000
Attendons avec MPI_WAIT que les messages soient bien partis ...
Proc . 1 apres a =1.000000 b =0.000000
Proc . 0 apres a =1.000000 b =0.000000
281.
Alg`ebre lin´eaire enparall`ele : la r´egression
Frank Nielsen 1.Les matrices en HPC-1.R´egression A6-6
282.
La r´egression lin´eaire
◮on veut pr´edire ˆy = f (x) avec f (x) = ˆβ0 + d
i=1
ˆβi xi .
◮ les observations (xi , yi ) sont dans Rd × R. Pour des classes
C0 et C1 (valeurs de y), on peut encoder y = 0 ssi. xi ∈ C0 et
y = 1 ssi. xi ∈ C1
◮ on classifie avec la r´egression en ´evaluant ˆyi = f (xi ) puis en
seuillant : xi ∈ C0 ssi. ˆyi 1
2 et xi ∈ C1 ssi. ˆyi ≥ 1
2
◮ on peut augmenter l’espace des donn´ees en rajoutant une
coordonn´ee x0 = 1. Ainsi x ← (x, 1) et
f (x) = d
i=0
ˆβi xi = x⊤
i β (d + 1 param`etres `a ´evaluer)
◮ l’erreur que l’on veut minimiser est les moindres carr´es
( Residual Sum of Squares , RSS) :
ˆβ = min
β
n
i=1
(yi − x⊤
i β)2
Frank Nielsen 1.Les matrices en HPC-1.R´egression A6-7
283.
La r´egression lin´eaireet la classification
Fronti`ere de d´ecision = hyperplan (espace affine de dimension
d − 1 dans Rd )
Frank Nielsen 1.Les matrices en HPC-1.R´egression A6-8
284.
La r´egression lin´eaireordinaire
Soit X la matrice des donn´ees de dimension n × (d + 1), y le
vecteur colonne de dimension n et β le vecteur param`etre de
dimension d + 1. On a la somme des diff´erences au carr´e :
RSS(β) =
n
i=1
(yi − x⊤
i β)2
= (y − Xβ)⊤
(y − Xβ)
En prenant le gradient ∇βRSS(β), on trouve l’´equation dite
normale ( normal equation ) :
X⊤
(y − Xβ) = 0
Pour X⊤X non-singuli`ere, on trouve ˆβ minimisant les moindres
carr´es par la matrice pseudo-inverse (Penrose-Moore) :
ˆβ = (X⊤
X)−1
X⊤
y = X†
y
Frank Nielsen 1.Les matrices en HPC-1.R´egression A6-9
285.
La r´egression lin´eaireen Scilab
rand(’seed ’,getdate(’s’))
x = -30:30; a=0.8; b=5; y=a
*x+b;
// on perturbe avec un bruit
uniforme
bruit=rand(1,61,’uniform ’)
-0.5;
y = y+10*bruit;
// regression lin´eaire en scilab
[aa , bb] = reglin(x, y);
plot(x, y,’r+’ );
plot(x, a*x+b,’bo -’)
Frank Nielsen 1.Les matrices en HPC-1.R´egression A6-10
286.
La r´egression lin´eaire: ordinaire ou totale
x
y
y = a × x
(x1, y1)
(x2, y2)
(x3, y3)
ordinary regression vs. total regression
Frank Nielsen 1.Les matrices en HPC-1.R´egression A6-11
287.
Comparaison de laclassification par r´egression ou par
k-PPV
Classifieur sur un vecteur al´eatoire = variable al´eatoire ⇒ variance
et biais
Frank Nielsen 1.Les matrices en HPC-1.R´egression A6-12
288.
Comparaison de laclassification par r´egression vs. k-PPV
◮ r´egression = bon pour interpoler et extrapoler mais mod`ele
rigide avec l’hypoth`ese globale d’une fonction lin´eaire f (x)
(faible complexit´e = d + 1 param`etres).
⇒ grand biais et petite variance
◮ k-PPV : mod`ele f (x) localement constant, flexible, mais
grande complexit´e = d × n “param`etres”.
⇒ petit biais mais grande variance
Frank Nielsen 1.Les matrices en HPC-1.R´egression A6-13
289.
Alg`ebre lin´eaire :les briques de base
◮ des vecteurs colonnes :
v =
v1
...
vl
◮ des matrices (square, skinny, ou fat) :
M =
m1,1 ... m1,c
...
...
...
ml,1 ... ml,c
◮ plusieurs types de matrices avec leur stockage m´emoire :
matrices denses O(lc), matrices diagonales, matrices
sym´etriques, matrices triangulaires, matrices creuses O(l + c).
Alg`ebre multi-lin´eaire et tenseurs.
Frank Nielsen 1.Les matrices en HPC-1.R´egression A6-14
290.
Les op´erations/primitives enalg`ebre lin´eaire
Soit l = c = d les dimensions des matrices et vecteurs.
◮ le produit scalaire v1 · v2 = v⊤
1 × v2 : O(d)
◮ le produit matrice-vecteur M × v : O(d2)
◮ le produit matrice-matrice M1 × M2 : O(d3)
◮ la factorisation (d´ecomposition) LU M = L × U (pour
r´esoudre les syst`emes lin´eaires), QR, etc.
Toutes ces primitives sont impl´ement´ees dans la biblioth`eque BLAS,
Basic Linear Algebra Subroutines en plusieurs niveaux
http://www.netlib.org/blas/
Frank Nielsen 1.Les matrices en HPC-1.R´egression A6-15
291.
La multiplication matricielle: un d´efi = probl`eme ouvert !
◮ mˆeme en s´equentiel, on ne connait pas d’algorithme
optimal !
◮ borne inf´erieure : Ω(d2), nombre d’entr´ees de la matrice
carr´ee r´esultat.
◮ meilleur algorithme connu `a ce jour : O(d2.3728639) , analyse
fine de l’algorithme de Coppersmith et Winograd.
Le Gall, Fran¸cois (2014), “Powers of tensors and fast matrix
multiplication,” Proceedings of the 39th International
Symposium on Symbolic and Algebraic Computation (ISSAC
2014), arXiv:1401.7714
Frank Nielsen 1.Les matrices en HPC-1.R´egression A6-16
292.
Diff´erents motifs pourle parall´elisme de donn´ees
◮ acc`es et transmissions des donn´ees M et v sur un cluster de
machines : d´epend de la topologie du r´eseau d’interconnexion
◮ dispositions bloc-colonnes et bloc-colonne cycliques
→ largeur b du bloc ´el´ementaire (chaque bloc tient dans la
m´emoire locale)
Idem si on prend les lignes (= colonnes de la matrice transpos´ee)
293.
Diff´erents motifs pourle parall´elisme des donn´ees
Motif 2D bloc ligne-colonne , et 2D bloc ligne-colonne cyclique
Damier, ´echiquier
Produit matrice-vecteur surl’anneau : Bloc colonne 1D
En BLAS, une op´eration de base :
y ← y + Ax
A(i) = Ai× n
p
:(i+1)× n
p
−1,·: sous-matrice bloc ligne de dimension
n × n
p
y(i) ← y(i) + A(i) × x(i) = y(i) +
j
A[i][j] × x[j]
◮ initialement, A(i), x(i) et y(i) sont stock´es sur le processus Pi
◮ faire tourner les sous-vecteurs x(i) sur la topologie de
l’anneau orient´e
produitMatriceVecteur (A, x, y ) {
q = Comm rank () ; // rang du processus
p = Comm size () ; // nombre de processus
r = n/p ; // taille des blocs
f o r ( step =0; stepp ; step++) {
// on envoie le bloc de x sur le prochain nœud de l’anneau
send ( x , r ) ; // communication non-bloquante
// calcul local : produit matrice-vecteur bloc
f o r ( i =0; ir ; i++) {
f o r ( j =0; jr ; j++) {
y [ i ] = y [ i ] + a [ i , (q−step mod p) r + j
] ∗ x [ j ] ;
}
}
// on re¸coit le bloc de x du processus pr´ec´edent de l’anneau
r e c e i v e (temp , r ) ;
x = temp ;}
}
299.
Produit matriciel parall`ele
Lesalgorithmes parall`eles vont d´ependre :
◮ des motifs des donn´ees
◮ de la topologie du r´eseau d’interconnexion des machines
◮ des types d’op´erations de communications utilis´es
Coˆut d’une communication entre deux nœuds voisins :
Temps Message = Latence + #longeur × temps par unit´e de longeur
Temps Message = α + τl
◮ on mesure α et τ en ´equivalent FLOPS
◮ efficacit´e : temps s´equentiel/(P × temps parall`ele)
◮ speed-up optimal ⇔ efficacit´e = 1
Frank Nielsen 1.Les matrices en HPC-4.Complexit´e des communications A6-24
300.
Le produit matricielsur un cluster de machines
C = A × B
◮ les ´el´ements des matrices n × n sont initialement distribu´es
sur les P processus P1, ..., PP−1
◮ on ´echange par messages des matrices blocs (rappel MPI : pas
de m´emoire partag´ee globale)
◮ plusieurs motifs de d´ecompositions :
◮ blocs de lignes
◮ blocs de colonnes
◮ blocs de damiers
◮ les d´ecompositions sont en rapport avec les algorithmes et le
r´eseau d’interconnexion (graphe complet, anneau, tore)
301.
Le tore 2D
◮on consid´ere
√
P ∈ N le cˆot´e de la grille torique `a√
P ×
√
P = P processeurs (NB : anneau = tore 1D)
◮ chaque processeur Pi peut communiquer avec ses 4 voisins :
Nord, Sud, Est, Ouest
302.
Produit matriciel C= A × B sur le tore
◮ initialement, les matrices sont stock´es par bloc avec le motif
de damier (par bloc 2D) sur le tore.
◮ le processus Pi,j pour i, j ∈ {1, ...,
√
P} est responsable du
calcul de
C(i, j) =
√
P
k=1
A(i, k) × B(k, j)
Plusieurs fa¸cons de transmettre les matrices blocs A(·, ·),
B(·, ·) et C(·, ·).
→ nous allons voir trois principaux algorithmes
Algorithme de Cannon: vue g´en´erale
◮ n´ecessite des op´erations de pre-skewing des matrices avant
les calculs locaux et des op´erations de post-skewing apr`es ces
calculs locaux
◮ les communications des sous-matrices A et B sont des
rotations horizontales (←) et des rotations verticales (↑).
Frank Nielsen 3.Produit matriciel-1.L’algorithme de Cannon A6-29
// Pr´e-traitement desmatrices A et B
// Preskew ← : ´el´ements diagonaux de A align´es
verticalement sur la premi`ere colonne
PreskewHorizontal(A);
// Preskew ↑ : ´el´ements diagonaux de B align´es
horizontalement sur la premi`ere ligne
PreskewVertical(B);
// Initialise les blocs de C `a 0
C = 0;
pour k = 1 `a
√
P faire
C ← C+ProduitsLocaux(A,B);
// d´ecalage vers la gauche ←
RotationHorizontale(A);
// d´ecalage vers le haut ↑
RotationVerticale(B);
fin
// Post-traitement des matrices A et B : op´erations
inverses du pr´e-traitement
// Preskew →
PostskewHorizontal(A);
// Preskew ↓
PostskewVertical(B);
Frank Nielsen 3.Produit matriciel-1.L’algorithme de Cannon A6-32
Algorithme de Fox
◮initialement, les donn´ees ne bougent pas (= pas de
pr´e-traitement)
◮ diffusions horitonzales des diagonales de A (d´ecal´ees vers la
droite)
◮ rotations verticales de B, de bas en haut
... appel´e aussi algorithme broadcast-multiply-roll
Frank Nielsen 3.Produit matriciel-2.Algorithme de Fox A6-34
// Initialise lesblocs de C `a 0
C = 0;
pour i = 1 `a
√
P faire
// Broadcast
Diffusion de la i-i`eme diagonale de A sur les lignes de processus
du tore;
// Multiply
C ← C+ProduitsLocaux(A,B);
// Roll
// Rotation verticale : d´ecalage vers le haut ↑
RotationVerticale(B);
fin
Frank Nielsen 3.Produit matriciel-2.Algorithme de Fox A6-37
Produit matriciel :algorithme de Snyder
◮ initialement, on transpose B : B ← B⊤
◮ sommes globales (reduce) sur les lignes de processeurs
◮ accumulation des r´esultats sur les diagonales principales de
C (d´ecal´ees `a chaque ´etape vers la droite)
◮ rotations verticales de bas en haut
A0,0 A0,1 A0,2
A1,0 A1,1 A1,2
A2,0 A2,1 A2,2 premi`ere diagonale
deuxi`eme diagonale
troisi`eme diagonale
Frank Nielsen 3.Produit matriciel-3.Algorithme de Snyder A6-39
315.
A0,0 A0,1 A0,2
A1,2A1,1A1,0
A2,0A2,1 A2,2
B0,0 B0,1 B0,2
B1,2B1,1B1,0
B2,0 B2,1 B2,2
Initialisation
Pre-processing :
Transpose B → B⊤
´etape 1:
Calculs locaux et
accumulation sur
la premi`ere diagonale
de C
B0,0
B1,1
B2,2
B1,0 B2,0
B0,2
B0,1 B2,1
B1,2
C0,0
C1,1
C2,2
B⊤
A0,0 A0,1 A0,2
A1,2A1,1 A1,0
A2,0 A2,1A2,2
A0,0 A0,1 A0,2
A1,2A1,1 A1,0
A2,0 A2,1A2,2
B0,0
B1,1
B2,2
B1,0 B2,0
B0,2
B0,1 B2,1
B1,2
Frank Nielsen 3.Produit matriciel-3.Algorithme de Snyder A6-40
316.
´etape 1’:
Rotation verticale
deB
A0,0 A0,1 A0,2
A1,2A1,1 A1,0
A2,0 A2,1A2,2 B0,0 B1,0 B2,0
B1,1B0,1 B2,1
B2,2B0,2 B1,2
´etape 2:
Calculs locaux et
accumulation sur
la deuxi`eme diagonale
de C
´etape 2’:
Rotation verticale de B
A0,0 A0,1 A0,2
A1,2A1,1 A1,0
A2,0 A2,1A2,2 B0,0 B1,0 B2,0
B1,1B0,1 B2,1
B2,2B0,2 B1,2
C0,1
C1,2
C2,0
A0,0 A0,1 A0,2
A1,2A1,1 A1,0
A2,0 A2,1A2,2
B0,0 B1,0 B2,0
B1,1B0,1 B2,1
B2,2B0,2 B1,2 C0,2
C1,0
C2,1
´etape 3:
Calculs locaux et
accumulation sur
la troisi`eme diagonale
de C
Frank Nielsen 3.Produit matriciel-3.Algorithme de Snyder A6-41
317.
// Preskewing
Transpose B;
//Phase de calcul
for k = 1 to
√
P do
// Produit scalaire ligne par ligne sur A et B
Calcule localement par bloc : C = A × B;
// On calcule les matrices blocs d´efinitives de C
pour la k-i`eme diagonale
// Somme globale ´equivaut au produit scalaire
d’une ligne de A avec une ligne de B
Somme globale de C sur les processeurs lignes pour la
k-i`eme diagonale de C;
D´ecalage vertical de B;
end
// On transpose B afin de retrouver la matrice
initiale
Transpose B;
Frank Nielsen 3.Produit matriciel-3.Algorithme de Snyder A6-42
318.
En r´esum´e
Le produitmatriciel sur le tore :
◮ algorithme de Cannon (pr´e-processing)
◮ algorithme de Fox (broadcast-multiply-roll)
◮ algorithme de Snyder (sommes globales)
Comparatif des trois algorithmes :
Algorithme Cannon Fox Snyder
pr´etraitement preskewing de A et B rien transposition B ← B⊤
produits matriciels en place en place sur les lignes PEs
mouvements A gauche → droite diffusion horizontale rien
mouvements B bas → haut bas → haut bas → haut
Frank Nielsen 3.Produit matriciel-3.Algorithme de Snyder A6-43
Les classes g´en´eriquesen C++
But de la g´en´ericit´e = produire du code ind´ependant des
types (instanci´es lors de l’usage):
// returns 0 if equal, 1 if value1 is bigger, -1 otherwise
i n t compare ( const i n t value1 , const i n t value2 ) {
i f ( value1 value2 ) r e t u r n −1;
i f ( value2 value1 ) r e t u r n 1 ;
r e t u r n 0 ;
}
// returns 0 if equal, 1 if value1 is bigger, -1 otherwise
i n t compare ( const s t r i n g value1 , const s t r i n g
value2 ) {
i f ( value1 value2 ) r e t u r n −1;
i f ( value2 value1 ) r e t u r n 1 ;
r e t u r n 0;}
⇒ factorisation du code puis `a la compilation, code polymorphique
pour les divers types requis : g´en´eration des codes sp´ecifiques pour
les types demand´es.
321.
#i n cl u d e iostream
#i n c l u d e s t r i n g
// returns 0 if equal, 1 if value1 is bigger, -1 otherwise
template c l a s s T
i n t compare ( const T value1 , const T value2 ) {
i f ( value1 value2 ) r e t u r n −1;
i f ( value2 value1 ) r e t u r n 1 ;
r e t u r n 0 ;
}
// On est gentil ici pour le compilateur :
// on indique explicitement les types demand´es
i n t main ( i n t argc , char ∗∗ argv ) {
std : : s t r i n g h (” h e l l o ” ) , w( ” world ” ) ;
std : : cout comparestd : : s t r i n g (h , w) std : :
endl ;
std : : cout compareint (10 , 20) std : : endl ;
std : : cout comparedouble (50.5 , 5 0 .6 ) std : :
endl ;
r e t u r n 0;}
322.
Inf´erence des typesdemand´es par le compilateur
#i n c l u d e iostream
#i n c l u d e s t r i n g
// returns 0 if equal, 1 if value1 is bigger, -1 otherwise
template c l a s s T
i n t compare ( const T value1 , const T value2 ) {
i f ( value1 value2 ) r e t u r n −1;
i f ( value2 value1 ) r e t u r n 1 ;
r e t u r n 0 ;
}
// Le compilateur doit trouver le type demande ici :
// inf´erence de types
i n t main ( i n t argc , char ∗∗ argv ) {
std : : s t r i n g h (” h e l l o ” ) , w( ” world ” ) ;
std : : cout compare (h , w) std : : endl ;
std : : cout compare (10 , 20) std : : endl ;
std : : cout compare (5 0 .5 , 5 0 .6 ) std : : endl ;
r e t u r n 0;}
323.
M´ecanisme de compilation
◮le compilateur ne g´en´ere pas de code directement lorsqu’il
rencontre une classe/fonction template parce qu’il ne connaˆıt
pas encore quelles seront les types demand´es.
◮ quand le compilateur rencontre une fonction template
utilis´ee, il sait quel type est demand´e : Il instancie alors le
template et compile le code correspondant
⇒ les classes/fonctions templates doivent donc se trouver dans le
fichier d’en-tˆete, header .h
Le m´ecanisme de template ressemble donc a une macro
expansion...
324.
fichier compare.h :
#if n d e f COMPARE H
#d e f i n e COMPARE H
template c l a s s T i n t comp( const T a , const T b )
{
i f ( a b ) r e t u r n −1;
i f (b a ) r e t u r n 1 ;
r e t u r n 0;}
#e n d i f // COMPARE H
fichier main.cpp :
#i n c l u d e iostream
#i n c l u d e ”compare . h”
using namespace std ;
i n t main ( i n t argc , char ∗∗ argv )
{ cout compint (10 , 20) ; cout endl ;
r e t u r n 0 ; }
325.
Lire un fichierdans un vector de la STL
Vous avez d´ej`a utilis´e la classe vector de la STL ! (tableaux
dynamiques)
i f s t r e a m f i n ;
f i n . open ( ” f i c h i e r . t x t ” ) ;
vector s t r i n g t e x t e ; s t r i n g mote ;
while ( f i n mot )
{ t e x t e . push back (mot ) ;}
f i n . c l o s e ( ) ;
◮ La boucle while lit jusqu’`a temps de rencontrer EOF (End
Of File)
◮ Les donn´ees sont des chaˆınes de caract`eres s´epar´ees par des
d´elimiteurs (espace, tab, retour `a la ligne, point virgule pour
les fichiers CSV, Comma-Separated Values)
326.
STL : unecollection de structures de donn´ees
Le concept fondamental est le containeur avec son iterator , le
tout en template !
Structure de donn´ees nom STL #include
tableau dynamique vector vector
liste chaˆın´ee list list
pile stack stack
file queue queue
arbre binaire set set
table de hachage map set
tas ordonn´e file de priorit´e queue
Les #include sont `a faire sans le .h
327.
La STL :structures de donn´ees g´en´eriques
set s t r i n g mots ;
l i s t Eleve PromoX2013 ;
stack vector int nombres ;
`A chaque container STL, on a un it´erateur (iterator) associ´e de
type containerT::iterator
set s t r i n g :: i t e r a t o r p=mots . f i n d ( ” cours ”) ;
l i s t Eleve :: i t e r a t o r premier=PromoX2013 . begin
() ;
stack vector int :: i t e r a t o r f i n=nombres . end
() ;
On d´eref´erence un it´erateur comme pour un pointeur : *it
328.
Les containeurs stockentpar valeur, pas par ref´erence
◮ quand on ins´ere un objet, le containeur va en faire une copie
◮ quand le containeur doit r´earranger les objets, il proc´ede en
faisant des copies de ceux-ci. Par exemple, si on tri, ou si on
ins´ere sur un containeur map, etc.
◮ si on veut ´eviter cela, il faudra donc faire des containeurs de
pointeurs !
C++11 a le mot clef auto pour inf´erer directemement les types et
un “foreach” (pour les curieux !) :
f o r ( vector Printer :: i t e r a t o r i t = vec . begin () ; i t
vec . end () ; i t ++) { cout ∗ i t endl ; }
f o r ( auto i t = vec . begin () ; i t vec . end () ; i t ++) {
cout ∗ i t endl ; }
std : : s t r i n g s t r ( ” Bonjour INF442” ) ; f o r ( auto c :
s t r ) { std : : cout c endl ; }
329.
Fonctions membres communes`a la STL
Toutes les classes containeurs ont les fonctions membres :
i n t s i z e ()
i t e r a t o r begin ()
i t e r a t o r end ()
bool empty ()
Pour lister tous les ´el´ements d’un containeur, on fait :
l i s t s t r i n g :: i t e r a t o r i t=maListe . begin () ;
while ( i t != maListe . end () )
{ cout ∗ i t endl ; i t e r ++;}
Notons que end() est un ´el´ement sentinel . On ne peut pas
d´eref´erencer end().
330.
Diff´erents acc`es aux´el´ements d’un containeur
◮ pour vector, on peut acc´eder aux ´el´ements en utilisant un
index [i] :
vector int vec442double ;
vec442 [0]=280;
... mais les crochets ne peuvent pas ˆetre utilis´es pour
listint par exemple
◮ on peut rajouter un ´el´ement `a la fin d’une liste ou d’un
vecteur avec push back :
monVecteur . push back (2013) ;
maListe . push back (2013) ;
... mais il n’ y a pas de push_back pour les ensembles (cod´es
par des arbres binaires) :
set int monEnsemble ;
monEnsemble . push back (2013) ; // Erreur !!!
331.
La liste (doublementchaˆın´ee)
On peut ajouter `a la tˆete ou `a la queue d’une liste en temps
constant :
maListe . push back (2013) ;
maListe . p u s h f r on t (2015) ;
On peut ins´erer ou supprimer un ´el´ement avec un it´erateur :
l i s t s t r i n g :: i t e r a t o r p=maListe . begin () ;
p=maListe . e r a s e ( p ) ;
p=maListe . i n s e r t (p , ”HPC” ) ;
On peut avancer ou reculer dans une liste avec les op´erateurs
unaires ++ et -- :
p++; p−−; // faire attention aux d´ebordements possibles
Seul b´emol : on ne peut pas directement acc´eder i-i`eme ´el´ement
(cela demande de parcourir la liste, pas de crochets).
332.
La liste doublementchaˆın´ee en STL
Voir INF311/INF411
NULL
NULL
C++ HPC MPI
liststring::iterator it=liste.find(HPC)
q=it-- q=it++
333.
Les piles etles files
◮ Piles ( stacks ) et files ( queues ) sont des sous-classes de la
classe deque
◮ Une pile est une liste chaˆın´ee avec la propri´et´e Dernier Arriv´e
Premier Sorti, DAPS (LIFO : Last In First Out).
◮ Une file est une liste chaˆın´ee avec la propri´et´e Premier Arriv´e
Premier Sorti, PAPS (FIFO : First In First Out).
◮ On acc´ede au dernier ´el`eement au sommet de la pile ou au
premier ´el´ement d’une file avec les primitives push et pop
◮ Pour les piles, on a aussi top, et pour les files front et back
334.
Les piles :illustration
stack s t r i n g S ;
S . push ( ”A”) ;
S . push ( ”B”) ;
S . push ( ”C”) ;
S . pop () ;
Q. pop () ;
S . push ( ”D”) ;
Q. push ( ”D”) ;
cout S . top () ;
335.
Les files :illustration
queues t r i n g Q;
Q. push ( ”A”) ;
Q. push ( ”B”) ;
Q. push ( ”C”) ;
Q. pop () ;
Q. push ( ”D”) ;
cout Q. f r o n t () Q. back () ;
336.
Les files depriorit´e
On doit d´efinir un operator .
La plus grande valeur est sur le haut (max-heap, top).
p r i o r i t y q u e u e int Q;
Q. push (23) ; Q. push (12) ; Q. push (71) ; Q. push (2) ;
cout Q. top () ;
Q. pop () ;
cout Q. top () ;
pour la plus petite valeur (min-heap), il faut donc changer le sens
s´emantique de l’op´erateur ...
http://en.cppreference.com/w/cpp/language/operator_comparison
337.
On peut trierfacilement avec une file de priorit´e...
#i n c l u d e queue
#i n c l u d e iostream
using namespace std ;
s t r u c t comparator {
bool o perato r () ( i n t i , i n t j ) { r e t u r n i j ;}
} ;
i n t main ( i n t argc , char const ∗ argv [ ] )
{
p r i o r i t y q u e u e int , std : : vector int ,
comparator minHeap ;
minHeap . push (10) ; minHeap . push (5) ;
minHeap . push (12) ; minHeap . push (3) ;
minHeap . push (3) ; minHeap . push (4) ;
while ( ! minHeap . empty () ) {
cout minHeap . top () ” ” ;
minHeap . pop () ;
}
r e t u r n 0;} // 12 10 5 4 3 3
338.
Les ensembles :set (arbres binaires ´equilibr´es)
On doit d´efinir operator . Toutes les valeurs sont uniques
(sinon, utiliser un multiset).
insert(value), erase(value), erase(iterator),
iterator find(value)
set s t r i n g s ;
s . i n s e r t ( ” Ecole ” ) ;
s . i n s e r t ( ” Polytechnique ” ) ;
s . e r a s e ( ” Ecole ” ) ;
cout ∗( s . f i n d ( ” Polytechnique ”) ) ;
339.
Le hachage (map)
◮Diff´erence entre hachage ferm´e (tableau) et hachage ouvert
(tableau de pointeurs sur des listes).
◮ Templates pour la clef et le type de donn´ees mapK,T.
◮ On doit d´efiniroperator pour le type K.
mapint , s t r i n g monHachage ;
monHachage [23121981] = ” A n n i v e r s a i r e Toto” ;
monHachage [05031953] = ” A n n i v e r s a i r e T i t i ” ;
. . .
maps t r i n g , int monHachageRev ;
monHachageRev [ ”Toto” ] = 23121981;
monHachageRev [ ” T i t i ” ] = 05031953;
340.
Le hachage (map)
Lesfonctions membres pour la classe STL map :
erase(iterator), erase(K clef), map_name(K key)
maps t r i n g , int M;
M[ ”A” ] = 23;
M[ ”B” ] = 12;
M[ ”C” ] = 71;
M[ ”D” ] = 5;
M. e r a s e ( ”D” ) ;
cout M[ ”B” ] ;
341.
La classe STLpaire `a la rescousse
maps t r i n g , int maMap;
pair s t r i n g , int p a i r e ( ”Tutu” , 606) ;
maMap. i n s e r t ( p a i r e ) ;
. . .
// on cr´e´e un nouvel enregistrement en faisant aussi :
maMap[ ”Tata” ] = 707;
⇒ op´erateur crochet [K]
342.
Les temps d’acc´esaux structures de donn´ees
Pour un containeur `a n ´el´ements :
vecteur list set map
Ins´erer/supprimer O(n) O(1) O(log n) ˜O(1)
Rechercher O(n) O(n) O(log n) ˜O(1)
Voir INF311/INF411.
343.
Les it´erateurs
Chaque containeurest equipp´e d’un it´erateur :
container T:: i t e r a t o r i t ;
i t=C. begin () ;
◮ ++ et -- pour avancer ou reculer
◮ * pour d´eref´erencer
◮ == et =! pour les tests de comparaisons
Seulement dans la classe vector, on peut bouger de p ´el´ements
(arithm´etique) en faisant
vector T:: i t e r a t o r i t ;
i t=i t+p ;
i t=i t −p ;
344.
Les it´erateurs :premier et dernier ´el´ements
Le dernier ´el´ement est une sentinelle :
cout ∗( L . begin () ) ; // oui, si pas vide !
cout ∗( L . end () ) ; // toujours non !
l i s t s t r i n g :: i t e r a t o r p = L . end () ;
p−−;
cout ∗p ; // ok, si pas vide !
345.
La classe STLalgorithm
Proc´edures (pas des m´ethodes de classe) : find, remove, count,
shuffle, replace, sort, for each, min element,
binary search, transform, copy, swap :
i t e r = f i n d (L . begin () , L . end () , ” Cours INF442”
) ;
i n t x = count (L . begin () , L . end () , ” i n s c r i t en
INF442” ) ;
r e p l a c e (L . begin () , L . end () , ”DEP442” , ”INF442”
) ;
if : prend une fonction bool´eene utilisateur :
r e p l a c e i f (L . begin , L . end () , appartient442S , ”
Tutorat ”) ;
Boost
◮ un ensemblede biblioth`eques qui se comportent bien avec la
STL :
http://www.boost.org/
◮ liste des biblioth`eques de Boost :
http://www.boost.org/doc/libs/
Graph BGL generic graph components
MPI MPI interface in Boost style
Rational rational number class
Thread Portable multi-threading
uBlas linear algebra for vector/matrix
Xpressive regular expression
Install´e dans le r´epertoire /usr/local/boost-1.56.0
348.
Boost : labiblioth`eque uBLAS
#i n c l u d e boost / numeric / ublas / matrix . hpp
#i n c l u d e boost / numeric / ublas / i o . hpp
using namespace std ;
using namespace boost : : numeric : : ublas ;
i n t main () {
matrix double m (3 , 3) ;
f o r ( unsigned i = 0; i m. s i z e 1 () ; ++ i )
f o r ( unsigned j = 0; j m. s i z e 2 () ;
++ j )
m ( i , j ) = i + j ∗ j ;
cout m endl ;
}
# i nc l u d e boost / numeric / ublas / matrix . hpp
# i n c l u d e boost / numeric / ublas / i o . hpp
# i n c l u d e boost / numeric / ublas / matrix . hpp
using namespace boost : : numeric : : ublas ;
using namespace std ;
i n t main () {
matrix double myMat (3 ,3 , 2 . 5 ) ;
myMat (0 ,0)= myMat (2 ,2) =1.0;
myMat (0 ,2)= −3.6; myMat (2 ,0) =5.9;
cout ”My Mat : ” myMat endl ;
cout ”Num Rows : ” myMat . s i z e 1 () endl ;
cout ”Num Cols : ” myMat . s i z e 2 () endl ;
cout ”My Mat Transp : ” t r a n s (myMat) endl
;
cout ”My Mat Real Part : ” r e a l (myMat)
endl ;
myMat . r e s i z e (4 ,4) ;
cout ”My Resized Mat : ” myMat endl ;
r e t u r n 0;}
351.
matrix double myMat (3 ,3 , 2. 5) ;
myMat (0 ,0)= myMat (2 ,2) =1.0;
myMat (0 ,2)= −3.6; myMat (2 ,0) =5.9;
mpirun -np 1 matricefun442.exe
My Mat :[3 ,3]((1 ,2.5 , -3.6) ,(2.5 ,2.5 ,2.5)
,(5.9 ,2.5 ,1))
Num Rows :3
Num Cols :3
My Mat Transp :[3 ,3]((1,2.5 ,5.9)
,(2.5 ,2.5 ,2.5) ,( -3.6 ,2.5 ,1))
My Mat Real Part :[3 ,3]((1 ,2.5 , -3.6)
,(2.5 ,2.5 ,2.5) ,(5.9 ,2.5 ,1))
My Resized Mat :[4 ,4]((1,2.5 , -3.6 ,3.57355e
-115) ,(2.5,2.5,2.5 ,2.02567e -322)
,(5.9 ,2.5 ,1 ,0) ,(0,0,0,0))
352.
R´esum´e A4
la classificationpar r´egression lin´eaire (et comparaison avec le
classifieur k-PPV)
le produit matrice-vecteur sur l’anneau orient´e
produits matriciels sur le tore : algorithmes de Cannon
(pre-processing), de Fox (broadcast-multiply-roll) et de Snyder
(sommes globales)
la g´en´ericit´e avec la biblioth`eque C++ STL
la biblioth`eque Boost uBLAS
Pour la prochaine fois : lire le chapitre 5 du polycopi´e
353.
ÁÆ ¾ ÌÖØ Ñ ÒØ × ÓÒÒ × Å ×× Ú ×
Ä ØÖ Ô Ö ÐÐ Ð Ø Ð Ö Ù
Ø ÓÒ Ñ Ò× ÓÒ
Ö Ò Æ Ð× Ò
Ò Ð× ÒРܺÔÓÐÝØ
Ò ÕÙ º Ö
¾¼½¿
½¿ Ñ ¾¼½
354.
ÈÐ Ò
◮ ÙÒÔÓ ÒØ ×ÙÖ Ð
ÓÙÖ×
◮ Ð ØÖ Ô Ö ÐÐ Ð ×ÙÖ
ÐÙר Ö×
◮ Ð × ÓÒÒ × Ò ´ØÖ ×µ Ö Ò × Ñ Ò× ÓÒ×
ÓÑ ØØÖ Ð Ù × Ö Ò × Ñ Ò× ÓÒ× Ô Ö Ð Ö Ù
Ø ÓÒ Ñ Ò× ÓÒ
355.
Ê ÔÔ Ð×ÙÖ Ð × Ó
Ø × ³ÁÆ ¾
ÍÒ
ÓÙÖ×
ÓÒ
ÒØÖ ÑÙÐØ ¹
ØØ × ÔÓÙÖ Ü Ö Ð × ÔÖ Ñ Ö × × ×
◮ Ò Ø Ø ÓÒ Ù ÀÈ Ø ÙÜ Ø
◮ Ò Ø Ø ÓÒ ÙÜ ×
Ò
× × ÓÒÒ ×
◮ Ð ÓÖ Ø Ñ ÕÙ Ô Ö ÐÐ Ð ´×ÙÖ Ñ ÑÓ Ö ×ØÖ Ù »
Ò Ñ ×× ×µ
◮ ÔÖÓ Ö ÑÑ Ö Ò ·· ´ Ú
Ð ËÌÄ» ÓÓרµ Ø Ò ÅÈÁ
◮ ÙØ Ð × Ö ÙÒ
ÐÙר Ö Ñ
Ò × Ò Ì ×
⇒ ÓÙ
× Ò ¿ ÁÆ Ç Ô Ö
ÓÙÖ× ÀÈ ¸ Ë
Ò
× ÓÒÒ ×¸
ÁÑ ¹Î × ÓÒ¹ ÔÔÖ ÒØ ×× ¸ ŠȹÁÆ Ç¸ Ø
ÓÒÒ ×× Ò
× Ò Ö Ð × ÙØ Ð ×
ÔÓÙÖ ØÓÙØ Ð ÑÓÒ
ÌÖ × ÕÙÒØ Ð ØÖ ÙÐÐ Ù Ð ËÓÖØ
ÌÖ Ö n ÓÒÒ × x½, ..., xn Ò ÓÖ Ö ×
Ò ÒØ
x½ ≤ ... ≤ xn
→ Ò ¸
Ð ÔÖÓ Ö ÑÑ Ö Ñ × Ø ÑÔ× ÕÙ Ö Ø ÕÙ O(n¾)
4 3 2 1
3 4 2 1
3 42 1
3 42 1
3 42 1
3 42 1
3 42 1
3 42 1
3 421
Phase 1:
Le plus grand ´el´ement
remonte
Phase 2:
Le deuxi`eme plus grand
´el´ement remonte
Phase 3:
Le troisi`eme plus grand
´el´ement remonte
Bulle
Ö Ò Æ Ð× Ò ½ºÌÖ ¹½ºË ÕÙ ÒØ Ð ¹
360.
ÌÖ × ÕÙÒØ Рг Ð ÓÖ Ø Ñ ÉÙ
×ÓÖØ
Ð ÓÖ Ø Ñ Ö
ÙÖ× Ö Ò ÓÑ × Ú
Ô ÚÓØ x
◮ ÙÒ Ø Ð Ù ÙÒ Ð Ñ ÒØ ר ÙÒ Ø Ð Ù ØÖ
× Ø ÖÑ Ò Ð Ð
Ö
ÙÖ× ÓÒ
◮ × ÒÓÒ
Ó × Ö ÙÒ Ð Ñ ÒØ Ô ÚÓØ x¸ Ô ÖØ Ø ÓÒÒ Ö Ð Ø Ð Ù X Ò ÙÜ
×ÓÙ×¹Ø Ð ÙÜ X≤x Ø Xx¸ Ø ÔÔ Ð Ö Ö
ÙÖ× Ú Ñ ÒØ
ÉÙ
ËÓÖØ(X) = (ÉÙ
ËÓÖØ(X≤x), ÉÙ
ËÓÖØ(Xx ))
Ì ÑÔ× ÑÓÖØ ˜O(n ÐÓ n)¸ ˜O(n ÐÓ p) × p Ð Ñ ÒØ× ×Ø Ò
Ø×
ØØ ÒØ ÓÒ Ò³ÓÙ Ð Þ Ô × Ö ÙÒ Ô ÖÑÙØ Ø ÓÒ Ð ØÓ Ö ´ Ò Ø ÑÔ×
Ð Ò Ö µ Ú ÒØ ³ ÔÔ Ð Ö ÉÙ
ËÓÖØ × ÒÓÒ ÚÓÙ× Ö ×ÕÙ Þ ÙÒ Ø ÑÔ× ÕÙ Ö Ø ÕÙ
O(n¾)
Ö Ò Æ Ð× Ò ½ºÌÖ ¹½ºË ÕÙ ÒØ Ð ¹
361.
Ø Ñ ÔÐ Ø
Ð × × Ì Ú Ó Õ Ù
Ë Ó Ö Ø ´ Ú
Ø Ó Ö Ì ²Ú ¸ Ù Ò × Ò Ò Ø
ÐÓÛ ¸ Ù Ò × Ò Ò Ø µ
ß
´ ÐÓÛ µ Ö Ø Ù Ö Ò
»» × Ð
Ø ÓÒÒ Ð Ú Ð ÙÖ Ù Ô ÚÓØ
Ù Ò × Ò Ò Ø Ô Ú Ó Ø Á Ò Ü ´ ÐÓÛ · µ » ¾
»» Ô ÖØ Ø ÓÒÒ Ð Ú
Ø ÙÖ
Ô Ú Ó Ø Á Ò Ü Ô Ú Ó Ø ´ Ú ¸ ÐÓÛ ¸ ¸ Ô Ú Ó Ø Á Ò Ü µ
»» ØÖ Ð × ÙÜ ×ÓÙ×¹Ú
Ø ÙÖ× Ö
ÙÖ× Ú Ñ ÒØ
´ ÐÓÛ Ô Ú Ó Ø Á Ò Ü µ Õ Ù
Ë Ó Ö Ø ´ Ú ¸ ÐÓÛ ¸ Ô Ú Ó Ø Á Ò Ü µ
´ Ô Ú Ó Ø Á Ò Ü µ Õ Ù
Ë Ó Ö Ø ´ Ú ¸ Ô Ú Ó Ø Á Ò Ü · ½ ¸
µ
Ø Ñ Ô Ð Ø
Ð × × Ì Ú Ó Õ Ù
Ë Ó Ö Ø ´ Ú
Ø Ó Ö Ì ² Ú µ
ß
Ù Ò × Ò Ò Ø ÒÙÑ Ö Ð Ñ ÒØ× Ú º × Þ ´ µ
´ ÒÙÑ Ö Ð Ñ ÒØ× ½ µ
Õ Ù
Ë Ó Ö Ø ´ Ú ¸ ¼ ¸ ÒÙÑ Ö Ð Ñ ÒØ× − ½ µ
Ö Ò Æ Ð× Ò ½ºÌÖ ¹½ºË ÕÙ ÒØ Ð ¹
362.
Ø Ñ ÔÐ Ø
Ð × × Ì Ù Ò × Ò Ò Ø Ô Ú Ó Ø ´ Ú
Ø Ó Ö Ì ² Ú ¸
Ù Ò × Ò Ò Ø × Ø Ö Ø ¸ Ù Ò × Ò Ò Ø × Ø Ó Ô ¸ Ù Ò × Ò Ò Ø
Ô Ó × Ø Ó Ò µ
ß »» ÓÒ
Ò Ð Ô ÚÓØ Ú
Ð ÔÓ× Ø ÓÒ Ò Ø Ð
×Û Ô ´ Ú × Ø Ö Ø ℄ ¸ Ú Ô Ó × Ø Ó Ò ℄ µ
»» Ô ÖØ Ø ÓÒÒ Ð × Ú Ð ÙÖ×
Ù Ò × Ò Ò Ø ÐÓÛ × Ø Ö Ø · ½
Ù Ò × Ò Ò Ø × Ø Ó Ô · ½
Û Ð ´ ÐÓÛ µ
´ Ú ÐÓÛ ℄ Ú × Ø Ö Ø ℄ µ
ÐÓÛ··
Ð × ´ Ú −− ℄ Ú × Ø Ö Ø ℄ µ
×Û Ô ´ Ú ÐÓÛ ℄ ¸ Ú ℄ µ
»» Ø ÓÒ Ö ¹
Ò Ð Ô ÚÓØ × ÔÐ
Ò Ø Ð
×Û Ô ´ Ú × Ø Ö Ø ℄ ¸ Ú −−ÐÓÛ ℄ µ
Ö Ø Ù Ö Ò ÐÓÛ
Ö Ò Æ Ð× Ò ½ºÌÖ ¹½ºË ÕÙ ÒØ Ð ¹½¼
363.
»» È ØØ Ü ÑÔÐ ÑÓÒ×ØÖ Ø ÓÒ
Ò Ø Ñ Ò ´ µ ß
Ú
Ø Ó Ö Ò Ø Ú ´ ½ ¼ ¼ µ
Ó Ö ´ Ò Ø ¼ ½ ¼ ¼ ··µ
Ú ℄ Ö Ò ´ µ ± ¾
Õ Ù
Ë Ó Ö Ø ´ Ú µ
Ú
Ø Ó Ö Ò Ø Ø Ö Ø Ó Ö Ø Ö Ú º Ò ´ µ
Û Ð ´ Ø Ö Ú º Ò ´ µ µ ß
Ó Ù Ø ∗ Ø Ö
Ø Ö ··
Ó Ù Ø Ò
Ö Ø Ù Ö Ò ¼
Ö Ò Æ Ð× Ò ½ºÌÖ ¹½ºË ÕÙ ÒØ Ð ¹½½
364.
Ð
ÙÐ Ö Ðk¹ Ñ ÔÐÙ× Ô Ø Ø Ð Ñ ÒØ S
Ç
Ø Ö ÒØ Ö ÙÒ Ø ÑÔ× O(n ÐÓ n) Ò
Ð
ÙÐ ÒØ Ð Ñ Ò º
Ø S ÙÒ Ò× Ñ Ð n = |S| ÒÓÑ Ö ×¸ k ∈ N
Ê ×ÙÐØ Ê ØÓÙÖÒ Ð k¹ Ñ Ð Ñ ÒØ S
n ≤ Ø Ò
»»
× Ø ÖÑ Ò Ð Ð Ö
ÙÖ× Ú Ø
ØÖ Ö S Ø Ö ØÓÙÖÒ Ö Ð k¹ Ñ Ð Ñ ÒØ
Ð×
Ú × Ö S Ò ⌈n
⌉ ÖÓÙÔ ×
»» Ä ÖÒ Ö ÖÓÙÔ ´
ÓÑÔРص ÓÙ n ÑÓ Ð Ñ ÒØ×
Ð
ÙÐ Ö Ð × Ñ Ò × × ÖÓÙÔ × M = {m½, ..., m⌈ n
⌉}
»» Ð
ÙÐ Ù Ô ÚÓØ x¸ Ð Ñ Ò
x ← Ë Ä Ì(M, ⌈n
⌉, ⌊
⌈ n
⌉+½
¾ ⌋)
È ÖØ Ø ÓÒÒ Ö S Ò ÙÜ ×ÓÙ×¹ Ò× Ñ Ð × L = {y ∈ S : y ≤ x} Ø
R = {y ∈ S : y x}
k ≤ |L| Ø Ò
Ö ØÙÖÒ Ë Ä Ì(L, |L|, k)
Ð×
Ö ØÙÖÒ Ë Ä Ì(R, n − |L|, k − |L|)
Ò
Ò
⇒ Ø ÑÔ× Ø ÖÑ Ò ×Ø Ð Ò Ö ´ÓÖ Ö ×Ø Ø ×Ø
×µ
Ö Ò Æ Ð× Ò ½ºÌÖ ¹½ºË ÕÙ ÒØ Ð ¹½¾
Ò ÐÝ× Ð
ÓÑÔÐ Ü Ø
◮ ØÖ Ò Ø Ð O( n
P ÐÓ
n
P )
◮ Ö P Ô × ×
◮ ØÖ Ö Ð × ÔÐÙ× Ô Ø Ø × Ø Ö Ò × Ú Ð ÙÖ× Ò×
ÕÙ Ô × O( n
P )
´ Ù× ÓÒÒ Ö Ð × Ð ×Ø × Ø Ö Ö Ð ÑÓ Ø
ÓÒ
ÖÒ µ
◮
ÓÑÑÙÒ
Ø ÓÒ× O( n
P ) ´ и × Ò× Ø ÑÔ× Ð Ø Ò
µ
◮
ÓÑÔÐ Ü Ø ÐÓ Ð O( n
P ÐÓ
n
P + n) ººº Ô × ØØÖ
Ø ººº
◮ Ñ × ÒØ Ö ×× ÒØ ×ÙÖ ÙÒ Ö × Ù
ÓÑÑÙÒ
Ø ÓÒ Ò ÒÒ Ù
Ö
Ø ÓÒÒ Ð ººº
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹
398.
Ä × ÐÓÖ Ø Ñ × ØÖ Ò Ô Ö ÐÐ Ð ÙÒ Ö ×ÙÑ
ÇÒ ØÙ
× Ð ÓÖ Ø Ñ × ×Ø Ò Ö × ÔÓÙÖ Ð ØÖ
◮ Ê Ò ËÓÖØ
◮ È Ö ÐÐ Ð ÉÙ
ËÓÖØ
◮ ÀÝÔ ÖÕÙ
×ÓÖØ
◮ È Ö ÐÐ Ð ËÓÖØ Ò Ý Ê ÙÐ Ö Ë ÑÔÐ Ò ´ÈËÊ˵
◮ Ç ¹ Ú Ò ÌÖ Ò×ÔÓ× Ø ÓÒ ËÓÖØ
Ä Ô Ö ÓÖÑ Ò
Ò ÔÖ Ø ÕÙ Ô Ò Ù×× ×
ÓÑÑÙÒ
Ø ÓÒ×
→ Ô Ò Ð ØÓÔÓÐÓ Ù Ö × Ù ³ ÒØ Ö
ÓÒÒ Ü ÓÒ
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹
399.
Ê Ù
Ø ÓÒÑ Ò× ÓÒ
Ú
Ð Ø ÓÖ Ñ
ÂÓ Ò×ÓÒ¹Ä Ò Ò×ØÖ Ù××
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹
400.
Ä Ù ×Ö Ò × Ñ Ò× ÓÒ×
ÙÖ× Ó Ñ Ò× ÓÒ Ð ØÝ
´ ÐÐÑ Ò¸ ÒÚ ÒØ ÙÖ Ð ÔÖÓ Ö ÑÑ Ø ÓÒ ÝÒ Ñ ÕÙ µ
◮
Ø × Ð ÓÖ Ø Ñ × Ô Ò Ð Ñ Ò× ÓÒ d × ØØÖ ÙØ×
◮
Ð
ÙÐ ×Ø Ò
× ÓÙ × Ñ Ð Ö Ø × Ò Ω(d)
◮ Ð ÓÖ Ø Ñ × Ø ×ØÖÙ
ØÙÖ × ÓÒÒ × ×ÓÙÚ ÒØ Ú
ÙÒ
ÓÒר ÒØ
ÜÔÓÒ ÒØ ÐÐ Ò d
Ò× Ð ÒÓØ Ø ÓÒ O(·) Od (½)º
◮
Ð Ú ×Ù Ð × Ö Ð × ÓÒÒ × Ò Ö Ò × Ñ Ò× ÓÒ×
Ù ÓÙÖ ³ Ù ¸ Ò× Ð ØÖ Ø Ñ ÒØ × ÓÒÒ ×
◮ ØÖ ×
ÓÙÖ ÒØ ØÖ Ú ÐÐ Ö Ò Ñ Ò× ÓÒ ½¼¼¼ Ø ÔÐÙ×
◮
× Ù×× Ó d ≫ n ´ Ñ Ò× ÓÒ ÒØÖ Ò× ÕÙ » ÜØÖ Ò× ÕÙ µ
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹
401.
× Ô ÒÓÑÒ × ÒÓÒ¹ ÒØÙ Ø × Ò Ö Ò × Ñ Ò× ÓÒ×
◮ ÚÓÐÙÑ Ð ÐÐ Ò×
Ö Ø Ò× Ð
Ù ÙÒ Ø Ø Ò Ú Ö× Þ ÖÓ
Bd =
π
d
¾
Γ(d
¾ + ½)
rd
, r =
½
¾
◮ Ö ÐÐ Ö ÙÐ Ö Rd Ò l ×ÓÙ×¹ Ú × ÓÒ× Ô Ö
Ø Ô ÖØ Ø ÓÒÒ Ð³ ×Ô
Ò
ld ÝÔ Ö
Ù × ÜÔÓÒ ÒØ Ð Ò d ´ld = ed ÐÓ l µº
ij ÔÔÖÓ
Ð Ö ÐÐ ÔØ Ø Ú Ò Ô ÖÑ Ø Ô × ÒÓÒ ÔÐÙ× Ô ×× Ö
г
ÐÐ ººº
◮ ÒØ Ö Ø ÓÒ ×ØÓ
ר ÕÙ Ð ÅÓÒØ ¹ ÖÐÓ ´ ≈ µ Ú ÒØ ÒÙØ Ð × Ð
ººº
◮ ÓÒ Ò ×Ø Ò Ù ÔÐÙ× Ð ÔÐÙ× ÔÖÓ
ÚÓ × Ò Ù ÔÐÙ× ÐÓ ÒØ Ò ÚÓ × Ò ººº
ººº Ø ×Ø Ò
ØÓ Ø Ò Ö ×Ø Ø ÔÓ ÒØ ÔÔÖÓ
× Ø ×Ø Ò
ØÓ Ø
ÖØ ר Ø ÔÓ ÒØ ººº ´ Ý Ö¸ ½ µ
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹
402.
Ü ÑÔÐ ½ØÖÓÙÚ Ö Ð × Ñ × ÙÔÐ ÕÙ ×
Ò Ö ÙÔÐ
Ø Ñ Ø
Ø ÓÒ
◮ ÙÒ Ñ I[y][x] Ò
ÓÙÐ ÙÖ ÊÎ Ø ÐÐ w × h ר
ÓÒÚ ÖØ Ò ÙÒ
Ú
Ø ÙÖ v(I) Ñ Ò× ÓÒ R¿wh ´Ú
ØÓÖ Þ Ø ÓÒµ
◮ Ð ×Ø Ò
ÒØÖ ÙÜ Ñ × I½ Ø I¾ ר Ð ×ÓÑÑ × Ö Ò
× Ù
ÖÖ ´ ×ÙÑ Ó ×ÕÙ Ö Ö Ò
× µ
ËË (I½, I¾) =
h
i=½
w
j=½
(I½[i][j] − I¾[i][j])¾
= v(I½) − v(I¾) ¾
◮ ÙÒ Ñ ×Ø Ò ÓÙ Ð Ò× ÙÒ × ³ Ñ × × ×ÓÒ ÔÐÙ× ÔÖÓ
ÚÓ × Ò
ר ÕÙ × Ñ ÒØ ÒØ ÕÙ ËË (I, ÈÈÎ(I)) ≤ ǫ
⇒
ÓÑÑ ÒØ
Ð
ÙÐ Ö Ð × ÔÐÙ× ÔÖÓ
× ÚÓ × Ò× Ò Ö Ò × Ñ Ò× ÓÒ× Ò Ø ÑÔ×
×ÓÙ×¹Ð Ò Ö ¸ o(d)
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹ ¼
403.
Ü ÑÔÐ ¾Ö ÖÓÙÔ Ö ÙÒ
ÓÐÐ
Ø ÓÒ ³ Ñ ×
Ü ÑÔÐ Ð × ÅÆÁËÌ ×
Ö × ÔÓר ÙÜ ´Í˵
n = ¼¼¼¼¸ d = ¾
¾ =
ØØÔ »»Ý ÒÒºÐ
ÙÒº
ÓÑ» Ü »ÑÒ ×Ø»
Á Ð Ñ ÒØ¸ ØÖÓÙÚ Ö Ð × Ü
ÐÙר Ö× ÔÓÙÖ Ð ×
Ö × ³¼³ ³ ³
◮ ÙØ Ð × Ö Ð³ Ð ÓÖ Ø Ñ × k¹ÑÓÝ ÒÒ × ÄÐÓÝ Ò Ñ Ò× ÓÒ ×Ø ØÖÓÔ
Ð ÒØ ººº
◮
ÓÑÑ ÒØ Ö
→ Ö Ù Ö Ð Ñ Ò× ÓÒ Ò
ÓÒ× ÖÚ ÒØ Ð ÒÓØ ÓÒ ×Ø Ò
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹ ½
404.
Ä Ö Ù
ØÓÒ Ñ Ò× ÓÒ ÓÖÑÙÐ Ö Ð ÔÖÓ Ð Ñ
◮ ÓÒÒ × X n ÔÓ ÒØ× Rd
◮ X ÒØ ÖÔÖ Ø
ÓÑÑ ÙÒ Ñ ØÖ
Ø ÐÐ n × d
´ÙÒ ÓÒÒ Ô Ö Ð Ò ¸ Ú
Ø ÙÖ Ð Ò µ
◮ ÙÜ Ø
Ò ÕÙ × ÔÓÙÖ Ö Ù Ö Ð Ñ Ò× ÓÒ
◮ × Ð
Ø ÓÒÒ Ö Ð × Ñ Ò× ÓÒ×
ÓÒ× ÖÚ Ö ´ ØÙÖ × Ð
Ø ÓÒµ
◮ Ö
ÓÑÔÓ× Ö Ð × Ñ Ò× ÓÒ× Ü ×Ø ÒØ × Ò ÒÓÙÚ ÐÐ × Ñ Ò× ÓÒ× ØÓÙØ Ò
Ö ÒØ г Ò ÓÖÑ Ø ÓÒ ´Ð ÒÓØ ÓÒ ×Ø Ò
µ
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹ ¾
405.
Ä Ö Ù
ØÓÒ Ñ Ò× ÓÒ Ð Ò Ö
××Ó
ÓÒ× ÙÒ Ú
Ø ÙÖ y = y(x) ∈ Rk ØÓÙØ x
A : Rd
→ Rk
ÄÓÖ×ÕÙ y(x) ר ÙÒ ÓÒ
Ø ÓÒ Ð Ò Ö ¸
Ö ØÙÖ Ñ ØÖ
ÐÐ
y = x × A, Y = X × A
A Ñ ØÖ
Ø ÐÐ d × k ´x Ø y Ú
Ø ÙÖ× Ð Ò ×µ
⇒ Y Ó Ø ØÖ Ð X
∀x, x′
∈ X, y − y′ ¾
= xA − x′
A ¾
≈ x − x ¾
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹ ¿
406.
Ä Ø ÓÖÑ ÂÓ Ò×ÓÒ¹Ä Ò Ò×ØÖ Ù×× ´½ µ
ËÓ Ø X n ÔÓ ÒØ× Rd Ø ǫ ∈ (¼, ½)¸ ÐÓÖ× Ð Ü ×Ø ÙÒ ØÖ Ò× ÓÖÑ Ø ÓÒ
Ð Ò Ö A : Rd → Rk Ú
k = O( ½
ǫ¾ ÐÓ n) Ø ÐÐ ÕÙ
∀x, x′
∈ X, (½ − ǫ) x − x′ ¾
≤ xA − x′
A ¾
≤ (½ + ǫ) x − x′ ¾
→ÐÓÛ ×ØÓÖØ ÓÒ Ñ Ò
´ Ö ÒØ Ù
× Ó
³ ר Ô Ö Ø ÔÐÓÒ Ñ ÒØ ×Ó¹Ñ ØÖ ÕÙ µ
ÇÒ Ô ×× Ð Ñ Ò× ÓÒ d Ð Ñ Ò× ÓÒ k = O( ½
ǫ¾ ÐÓ n)¸ Ò Ô Ò ÒØ
d
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹
407.
Å ØÖ
× A ÔÓÙÖ Ð × ÔÖÓ
Ø ÓÒ Ð ØÓ Ö ×
ÈÖÓ
Ø ÓÒ Ð ØÓ Ö A
◮ ÇÒ Ø Ö Ð ×
Ó
ÒØ× Ð Ñ ØÖ
A′ Ð ØÓ Ö Ñ ÒØ ×Ù Ú ÒØ ÙÒ ÐÓ
ÒÓÖÑ Ð ×Ø Ò Ö ´ µ
A′
= [ai,j], ai,j ∼ N(¼, ½)
◮ ÇÒ Ó Ø ÒØ ÙÒ
ÒØ ÐÐÓÒ Ð ØÓ Ö ³ÙÒ ÐÓ ÒÓÖÑ Ð ×Ø Ò Ö N(¼, ½)
Ô ÖØ Ö ÐÓ × ÙÒ ÓÖÑ × U½ Ø U¾ Ò Ô Ò ÒØ × Ô Ö
N = −¾ ÐÓ U½
Ó×(¾πU¾)
← ØÖ Ò× ÓÖÑ Ø ÓÒ ÓܹÅÙÐÐ Ö
◮ ÓÒ Ùר г
ÐÐ
A =
k
d
A′
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹
408.
ÈÓÙÖÕÙÓ
ÐÑ Ö
ÔÖÓ
Ø ÓÒ× Ð ØÓ Ö ×
◮ ×Ó Ø ÙÒ ×Ô
k¹ Ò Ð ØÓ Ö A Ú
k ≥ ÐÓ n
ǫ¾
¾
− ǫ¿
¿
º
◮ ÒÓØÓÒ× ˜x = d
k ÔÖÓ Ax ÔÖÓ
Ø ÓÒ ÓÖØ Ó ÓÒ Ð x ×ÙÖ Aº
Ä ÑÑ
∀p, q ∈ X, P
˜p − ˜q ¾
p − q ¾
∈ [½ − ǫ, ½ + ǫ] ≤
¾
n¾
◮ ÈÖ ÙÚ ÈÖÓ Ð Ø ÕÙ ˜x × Ø × ×× Ð Ø ÓÖ Ñ ÂÄ
≥ ½ −
n
¾
¾
n¾
=
½
n
◮ ÇÒ Ô ÙØ
Ó × Ö O(n) ÔÖÓ
Ø ÓÒ× Ø Ö ÒØ Ö ÙÒ ÔÖÓ Ð Ø ×Ù
×
ÓÒר ÒØ
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹
409.
Ä Ì ³Ù ÓÙÖ ³ Ù ººº Ê ÖÓÙÔ Ö × Ñ ×
ÁÑÔÐ Ñ ÒØ Ö Ð × ÂÓ Ò×ÓÒ¹Ä Ò Ò×ØÖ Ù×× k¹ÑÓÝ ÒÒ × ÔÓÙÖ ÙÒ ×
³ Ñ ×
ÇÒ Ú Ô ×× Ö R¾ ¼¼¼¼ R ¿¾ ØÓÙØ Ò ØÖÓÙÚ ÒØ × Ô ÖØ Ø ÓÒ× × Ñ Ð Ð × ººº
Ö Ò Ò Ö Ô Ø
ÓÑÔÐ Ü Ø Ô ×× ÒØ O(sdkn) Oǫ(skn ÐÓ n) Ó s ר Ð ÒÓÑ Ö
³ Ø Ö Ø ÓÒ× ´ Ú
Oǫ(nd ÐÓ n) ÔÓÙÖ
Ð
ÙÐ Ö Ð × ÔÖÓ
Ø ÓÒ×µ
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹
410.
Ê ×ÙÑ
ØÖ ÔÖ ÐÐ Ð ´ ÕÙ Ð Ö Ö Ð
Ö ÀÝÔ ÖÉÙ
ËÓÖØ¸ ÈËÊ˵
Ð Ö Ù
Ø ÓÒ Ñ Ò× ÓÒ ÔÓÙÖ Ð × ÓÒÒ × Ò Ö Ò × Ñ Ò× ÓÒ×
ÈÓÙÖ Ð ÔÖÓ
Ò Ó × Ð Ö Ð ×
Ô ØÖ × Ø ½¼ Ù ÔÓÐÝ
ÓÔ
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ØÖ ×¹½ºØÖ Ò×ÔÓ× Ø ÓÒ× Ô Ö×» ÑÔ Ö× ¹
411.
ÁÆ ¾ ÌÖØ Ñ ÒØ × ÓÒÒ × Å ×× Ú ×
Å ÔÊ Ù
Ø × Ø ÙÜ Ì ÒÝ Ø
Ö Ò Æ Ð× Ò
Ò Ð× ÒРܺÔÓÐÝØ
Ò ÕÙ º Ö
¾¼½¿
¾¼ Ñ ¾¼½
412.
ÈÐ Ò
◮ ÐÓÖÑ Ð ×Ñ Å ÔÊ Ù
´ÓÙ À ÓÓÔ Å ÔÊ Ù
µ
◮ × Ø ÙÜ Ì ÒÝ Ø Ú
Ð × ×ÓÙ×¹ Ò× Ñ Ð ×
ÙÖ×
ÓÖ × Ø×
◮
Ö Ö ×ÓÒ Å Ð
413.
Ä ÓÖÑ Ð×Ñ Å ÔÊ Ù
È Ö ÐÐ Ð ×Ñ Ò
Ö ÒÙÐ Ö Ø
Ö Ò Æ Ð× Ò ½ºÅ ÔÊ Ù
¹¿
414.
Ä
ÖÅ ÔÊ Ù
◮ ÑÓ Ð ×ØÖ Ø ÔÖÓ Ö ÑÑ Ø ÓÒ Ô Ö ÐÐ Ð ÔÓÙÖ Ð × Ö Ò × ÓÒÒ ×
×ÙÖ ÙÒ ØÖ × Ö Ò
ÐÙר Ö Ñ
Ò ×
◮ Ö
Ø
ØÙÖ Ñ ØÖ »× ÖÚ Ø ÙÖ×
◮ × ÑÔÐ ÙØ Ð × Ö
◮
Ð Ñ ÒØ ÜØ Ò× Ð
◮ Ö × ×Ø Ò
ÙÜ Ú Ö× × Ô ÒÒ × Ñ Ø Ö ÐР׸ Ö × Ùܸ Ø
º
◮ Ú ÐÓÔÔ ÓÖ Ò ÐÐ Ñ ÒØ Ô Ö ÓÓ Ð Ò ¾¼¼¿ Ò ·· ´À ÓÓÔ
Å ÔÊ Ù
Ò Â Ú Ê µ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹
415.
Ä × ÖÒ × ÓÒÒ × ººº Ä × Ø
◮ ½ Ì Ö ÝØ ´Ì µ ½¼¾ ÝØ ´ µ
◮ ½ È Ø ÝØ ´È µ ½¼¾ Ì Ö ÝØ
◮ Ò ¾¼¼ ¸ ÓÓ Ð ØÖ Ø Ø ¾¼ È Ô Ö ÓÙÖ ÓÒÒ × ººº
ÈÓÙÖ × Ü Ö Ð × × ½ È ¸
³ ר
◮ ≈ ½¼ Ñ ÐÐ Ö × Ô ÓØÓ× ´
ÓÓ ¸ Ð
Ö¸ ÁÒר Ö Ñ¸ ºººµ
◮ ½¿ ÒÒ × Ú Ó À ´ ÓÙÌÙ ¸ ÐÝÑÓØ ÓÒ¸ ºººµ
→ ×ÙÖ ÙÒ È ×Ø Ò Ö ¸ Ð Ù Ö Ø · ÒÒ × ÔÓÙÖ ØÖ Ø Ö Ò Ø ÑÔ×
Ð Ò Ö ¾¼ È ººº
ÓÑÑ ÒØ Ö ÔÓÙÖ ØÖ Ø Ö Ò Ø ÑÔ× Ö ×ÓÒÒ Ð × Ö Ò × ÓÒÒ ×
→ Ô Ö ÐÐ Ð ×Ñ Ò Ö ÒÙÐ Ö Ø ´ËÈÅ µ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹
416.
ÌÖ Ø ÑÒØ Ñ ×× × ÓÒÒ ×
◮ Ò Ü Ö Ð × Ó
ÙÑ ÒØ× ×ÙÖ ÁÒØ ÖÒ Ø ´Ô Ö
Ö ÛÐ Ò µ
◮ Ò ÐÝ× Ö Ð ×
Ö× ÐÓ × Ö ÕÙ Ø × ×ÙÖ Ð × × Ø × Û ×
◮ ÓÒÒ Ö Ð × ÑÓØ×
Ð × Ù ÓÙÖ ´ ÓÓ Ð Þ Ø ×Ø¸ Ø
ºµ
◮ Ø
º
ººº Ñ × Ù×× Ù ÕÙÓØ Ò ÔÓÙÖ
◮ Ò ÐÝ× ÒÓÑ ×
◮ Ò ÐÝ× × Ø Ð ×
ÓÔ × Ø ÙØÖ ÓÒÒ × ××Ù ×
ÔØ ÙÖ× Ô Ý× ÕÙ ×
◮ Ò ÐÝ× Ù ØÖ
ÖÓÙØ Ö
◮ Ø
º
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹
417.
Å ÔÊ Ù
× ÑÔÐ Ñ × Ö
Ò ÔÔÐ
Ø ÓÒ×
Ù
ÓÙÔ ÔÖÓ Ð Ñ × Ô ÙÚ ÒØ ØÖ Ö ×ÓÐÙ Ò ÙÜ Ø Ô × Ð Ñ ÒØ Ö ×
½º Ò Ñ ÔÔ ÒØ ÙÒ ÓÒ
Ø ÓÒ ×ÙÖ ÙÒ × ÕÙ Ò
ÓÒÒ × ÔÓÙÖ ÔÖÓ Ù Ö ×
Ð Ñ ÒØ× ÒØ ÖÑ Ö × ººº
¾º ÔÙ × Ò Ö Ù × ÒØ
× ÒÓÙÚ ÙÜ Ð Ñ ÒØ× ÒØ ÖÑ Ö ×
→ Ö ÒÙÐ Ö Ø Ò Ù Ô Ö ÐÐ Ð ×Ñ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹
418.
ÈÖ Ò
ÔÅ ÔÊ Ù
Ð ÔÖÓ Ö ÑÑ Ø ÓÒ ÓÒ
Ø ÓÒÒ ÐÐ
ÙÜ ÔÖ Ñ Ø Ú × × × Ð Ò × ÓÒ
Ø ÓÒÒ Ð×
ÓÑÑ Ð Ä ×Ô ´ ÓÑÑÓÒ
Ä ×Ô»Ë
Ñ µ ÓÙ Ç ÑÐ ØØÔ »»
Ñк ÒÖ º Ö»Ó
Ñл
◮ Ñ Ô
(x½, ..., xn)
f
−→ (f (x½), ..., f (xn))
◮ Ö Ù
(x½, ..., xn) −→
n
i=½
xi
ÓÔ Ö Ø ÙÖ Ò Ö ·
ÓÑÑÙØ Ø ÓÙ ÒÓÒ
ÓÑÑ ÔÓÙÖ Ð ÔÖÓ Ù Ø
Ñ ØÖ
×
◮ Ô × Ú Ö Ð × × Ð Ò × ÑÔ Ö Ø × ÓÒ
Ð Ñ ÒØ Ô Ö ÐÐ Ð × Ð
◮ ÓÙØ Ð× ÔÓÙÖ Ð
ÓÒØÖÐ Ø ÑÓÒ ØÓÖ Ò × ÙÜ Ø
× Ñ Ô ² Ö Ù
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹
419.
ÙÐØÙÖ Ò ÖÐ Å Ô ² Ê Ù
Ò Ä ×Ô
◮ Ñ Ô
Ö
ĹÍË Ê ´Ñ Ô
Ö ³×ÕÖØ ³´¿ µµ
´½º ¿¾¼ ¼ ¾º¼ ¾º¾¿ ¼ ¾º ¾º ½¿µ
◮ Ö Ù
ĹÍË Ê ´Ö Ù
³· ³´½ ¾ ¿ µµ
½
ÈÓÙÖ ÓÙ Ö¸ Òר ÐÐ Þ Ä ×Ô
ØØÔ »»ÛÛۺР×ÔÛÓÖ ×º
ÓÑ»
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹
420.
ÙÐØÙÖ Ò ÖÐ Å Ô Ò Ç ÑÐ
ËÝÒØ Ü ÔÓÙÖ ÙÒ ÓÔ Ö Ø ÙÖ ÙÒ Ö
ÓÑÑ Ð
ÖÖ
Ð Ø ×ÕÙ Ö Ü Ü¶Ü
Ú Ð ×ÕÙ Ö ÒØ ¹ ÒØ ÙÒ
Ð Ø Ñ ÔÐ ×Ø Ä ×ØºÑ Ô ×ÕÙ Ö
Ú Ð Ñ ÔÐ ×Ø ÒØ Ð ×Ø ¹ ÒØ Ð ×Ø ÙÒ
Ñ ÔÐ ×Ø ¾℄
¹ ÒØ Ð ×Ø ½ ½ ℄
ÈÓÙÖ ÓÙ Ö¸ Òר ÐÐ Þ Ç ÑÐ
ØØÔ »»
Ñк ÒÖ º Ö»Ó
Ñл
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½¼
421.
ÙÐØÙÖ Ò ÖÐ Ê Ù
Ò Ç ÑÐ
ËÝÒØ Ü ÔÓÙÖ ÙÒ ÓÔ Ö Ø ÙÖ Ò Ö
n
i=½
ai = (a½ +
n
i=¾
ai ) = (
n−½
i=½
ai + an)
→ ××Ó
Ø Ú Ø Ù
» ÖÓ Ø
ÓÐ Ö Ø ½ ¾ ººº Ò℄ ´ ½ ´ ¾ ´ Ò µµ
ÓÐ Ð Ø ½ ¾ ººº Ò℄ ´ ºº ´ ´ ½µ ¾µ ººº Òµ
Ü ÑÔÐ
Ä ×Øº ÓÐ Ð Ø ´ · µ ¼ ½ ¾ ¿ ℄
Ä ×Øº ÓÐ Ö Ø ´ · µ ½ ¾ ¿ ℄ ¼
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½½
422.
Ä ØÝÔ ×ÓÔ Ö Ø ÓÒ× Å ÔÊ Ù
ÇÒ Ñ Ò ÔÙÐ × Ô Ö × ´
Ð ×¸Ú Ð ÙÖ×µ
◮ Å ÔÔ Ö
Ñ Ô(k½, v½) → Ð ×Ø(k¾, v¾)
◮ Ê Ù
Ö
Ö Ù
(k¾, Ð ×Ø(v¾)) → Ð ×Ø(v¾)
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½¾
423.
Å ÔÊ Ù
Ð × ØÖÓ × Ô × × Ù
Ð
ÙÐ
½º Å ÔÔ Ö Ñ Ø Ô ÖØ Ö × ÒØÖ × × Ô Ö × ´
Ð ×¸Ú Ð ÙÖµ
¾º ËÓÖØ Ö ÖÓÙÔ Ð × Ô Ö × ÒØ ÖÑ Ö × Ô Ö Ð Ú Ð ÙÖ ×
Ð ×
¿º Ê Ù
×ÙÖ Ð ×
Ð × ÒØ ÖÑ Ö ×¸ ÓÒ ÔÔÐ ÕÙ ÙÒ
Ð
ÙÐ ÔÖ Ü
´ Ö Ù
Ø ÓÒ¸
ÙÑÙÐ Ø ÓÒ¸ Ö Ø ÓÒµ ×ÙÖ ØÓÙØ × Ð × Ú Ð ÙÖ× ××Ó
×
Ú
Ð × Ñ Ñ ×
Р׺
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½¿
ÍÒ Ü ÑÔÐÐ ÔÖÓ Ù Ø Ñ ØÖ
¹Ú
Ø ÙÖ
ËÓ Ø A ÙÒ Ö Ò Ñ ØÖ
Ñ Ò× ÓÒ (n, d) Ø x ÙÒ Ô Ø Ø Ú
Ø ÙÖ
ÓÐÓÒÒ
(d, ½)
y = A × x, yi =
d
j=½
ai,j × xj
ÇÒ ×ÙÔÔÓ× x ÒØ Ö Ñ ÒØ רÓ
×ÙÖ
ÕÙ ÔÖÓ
××Ù× Å Ô Ø A Ô ÖØ Ø ÓÒÒ
×ÙÖ Ð³ Ò× Ñ Ð × ÔÖÓ
××Ù× Å Ô×
◮ ÒØÖ Ô Ö ×
Ð ×¹Ú Ð ÙÖ× (i, ai,j)
◮ Å Ô
Ä × ÔÖÓ
××Ù× Å Ô× ÔÖÓ Ù × ÒØ Ð × Ô Ö × ÒØ ÖÑ Ö ×
Ð ×¹Ú Ð ÙÖ×
(i, ai,j × xj )
◮ Ê Ù
Ä × ÔÖÓ
××Ù× Ê Ù
× Ö ÒØ Ð × Ú Ð ÙÖ× ××Ó
× ÙÜ
Ð × iº Ä ×
Ö ×ÙÐØ Ø× ÔÖÓ Ù Ø× ×ÓÒØ ÓÒ
Ð × Ô Ö ×
Ð ×¹Ú Ð ÙÖ× (i, yi )
Ë Ñ Ð Ö ÔÓÙÖ Ð ÔÖÓ Ù Ø Ñ ØÖ
Ð ci,j = d
k=½ ai,k × bk,j ººº
È Ö (di + j, ai,kbk,j )
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½
426.
ÍÒ Ü ÑÔÐ
ÓÑÔØ Ö Ð × ÑÓØ× Ò× Ð × Ó
ÙÑ ÒØ×
Ñ Ô ´×ØÖ Ò Ó
Ò Ñ ¸ ×ØÖ Ò Ó
ÓÒØ ÒØ×µ
ÓÖ
ÛÓÖ Û Ò Ó
ÓÒØ ÒØ×
Ñ Ø ´Û¸ ½ µ
Ö Ù
´×ØÖ Ò ÛÓÖ ¸ Ð ×Ø ×ØÖ Ò
ÓÙÒØ×µ
ÒØ Ö ×ÙÐØ ¼
ÓÖ
Ò Ò
ÓÙÒØ×
Ö ×ÙÐØ Ô Ö× ÁÒØ´Òµ
Ñ Ø´ ·Ö ×ÙÐØ℄µ
Å ÔÊ Ù
ÙØ Ð × ×
Ò ×
Ö
Ø Ö × ÔÓÙÖ ×ØÓ
Ö Ð × ÓÒÒ × ÔÓÙÖ
Ö
ÙÔ Ö Ö Ð × ÓÒÒ × Ò ÒÓÑ Ö ×¸ Ð ÙØ ÓÒ
ÓÒÚ ÖØ Ö
×
Ò ×º ½¾¿ →
½¾¿¸ ¿¸½ → ¿¸½
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½
427.
ÍÒ Ü ÑÔÐ
Ó ··
Ò Å ÔÊ Ù
´ÔÓÙÖ Ò ÓÖÑ Ø ÓÒ × ÙÐ Ñ ÒØµ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½
428.
Ò
ÐÙ Ñ ÔÖ Ù
» Ñ ÔÖ Ù
º
Ð × × ÏÓÖ ÓÙÒØ Ö Ô Ù Ð
Å ÔÔ Ö ß
Ô Ù Ð
Ú Ö Ø Ù Ð Ú Ó Å Ô´
Ó Ò × Ø Å ÔÁÒÔÙØ² Ò Ô Ù Ø µ ß
Ó Ò × Ø × Ø Ö Ò ² Ø Ü Ø Ò Ô Ù Ø º Ú Ð Ù ´ µ
Ó Ò × Ø Ò Ø Ò Ø Ü Ø º × Þ ´ µ
Ó Ö ´ Ò Ø ¼ Ò µ ß
»» Ë Ô Ô ×Ø Ð Ò Û Ø ×Ô
Û Ð ´ ´ Ò µ ²² × × Ô
´ Ø Ü Ø ℄ µ µ ··
»» Ò ÛÓÖ Ò
Ò Ø × Ø Ö Ø
Û Ð ´ ´ Ò µ ²² × × Ô
´ Ø Ü Ø ℄ µ µ ··
´ × Ø Ö Ø µ Ñ Ø ´ Ø Ü Ø º × Ù × Ø Ö ´ × Ø Ö Ø ¸ −× Ø Ö Ø µ ¸ ½ µ
Ê ÁËÌ Ê Å ÈÈ Ê ´ ÏÓÖ ÓÙÒØ Ö µ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½
429.
Ò
ÐÙ Ñ ÔÖ Ù
» Ñ ÔÖ Ù
º
Ð × × Ö Ô Ù Ð
Ê Ù
Ö ß
Ú Ö Ø Ù Ð Ú Ó Ê Ù
´ Ê Ù
Á Ò Ô Ù Ø ∗ Ò Ô Ù Ø µ ß
»» ÁØ Ö Ø ÓÚ Ö ÐÐ ÒØÖ × Û Ø Ø
»» × Ñ Ý Ò Ø Ú ÐÙ ×
Ò Ø Ú Ð Ù ¼
Û Ð ´ Ò Ô Ù Ø − ÓÒ ´ µ µ ß
Ú Ð Ù · Ë Ø Ö Ò Ì Ó Á Ò Ø ´ Ò Ô Ù Ø − Ú Ð Ù ´ µ µ
Ò Ô Ù Ø − Æ Ü Ø Î Ð Ù ´ µ
»» Ñ Ø ×ÙÑ ÓÖ ÒÔÙØ¹ Ý´µ
Ñ Ø ´ Á Ò Ø Ì Ó Ë Ø Ö Ò ´ Ú Ð Ù µ µ
Ê ÁËÌ Ê Ê Í Ê´ Ö µ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½
430.
Ò
ÐÙ Ñ ÔÖ Ù
» Ñ ÔÖ Ù
º
Ò Ø Ñ Ò ´ Ò Ø Ö
¸
Ö ∗∗ Ö Ú µ ß
È Ö× ÓÑÑ Ò Ä Ò Ð × ´ Ö
¸ Ö Ú µ
Å Ô Ê Ù
Ë Ô
Ø Ó Ò × Ô
»» ËØÓÖ Ð ×Ø Ó ÒÔÙØ Ð × ÒØÓ ×Ô
Ó Ö ´ Ò Ø ½ Ö
··µ ß
Å ÔÊ Ù
ÁÒÔÙØ ∗ Ò Ô Ù Ø × Ô
º ÒÔÙØ ´ µ
Ò Ô Ù Ø − × Ø Ó Ö Ñ Ø ´ Ø Ü Ø µ
Ò Ô Ù Ø − × Ø Ð Ô Ø Ø Ö Ò ´ Ö Ú ℄ µ
Ò Ô Ù Ø − × Ø Ñ Ô Ô Ö
Ð × × ´ ÏÓÖ ÓÙÒØ Ö µ
»» ËÔ
Ý Ø ÓÙØÔÙØ Ð ×
»» » ×»Ø ×Ø» Ö Õ¹¼¼¼¼¼¹Ó ¹¼¼½¼¼
»» » ×»Ø ×Ø» Ö Õ¹¼¼¼¼½¹Ó ¹¼¼½¼¼
»» ººº
Å ÔÊ Ù
ÇÙØÔÙØ∗ Ó Ù Ø × Ô
º Ó Ù Ø Ô Ù Ø ´ µ
ÓÙØ− × Ø Ð × ´ » × » Ø × Ø » Ö Õ µ
ÓÙØ− × Ø ÒÙÑ Ø × × ´ ½ ¼ ¼ µ
ÓÙØ− × Ø Ó Ö Ñ Ø ´ Ø Ü Ø µ
ÓÙØ− × Ø Ö Ù
Ö
Ð × × ´ Ö µ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹¾¼
431.
»» ÇÔØ ÓÒÐ Ó Ô ÖØ Ð ×ÙÑ× Û Ø Ò Ñ Ô
»» Ø × × ØÓ × Ú Ò ØÛÓÖ Ò Û Ø
ÓÙØ− × Ø
Ó Ñ Ò Ö
Ð × × ´ Ö µ
»» ÌÙÒ Ò Ô Ö Ñ Ø Ö× Ù× Ø ÑÓר ¾¼¼¼
»» Ñ
Ò × Ò ½¼¼ Å Ñ ÑÓÖÝ Ô Ö Ø ×
× Ô
º × Ø Ñ
Ò × ´ ¾ ¼ ¼ ¼ µ
× Ô
º × Ø Ñ Ô Ñ ÝØ × ´ ½ ¼ ¼ µ
× Ô
º × Ø Ö Ù
Ñ Ý Ø × ´ ½ ¼ ¼ µ
»» ÆÓÛ ÖÙÒ Ø
Å Ô Ê Ù
Ê × ÙÐØ Ö × Ù Ð Ø
´ Å ÔÊ Ù
´ × Ô
¸ ² Ö × Ù Ð Ø µ µ Ó Ö Ø ´ µ
»» ÓÒ ³Ö ×ÙÐØ³ רÖÙ
ØÙÖ
ÓÒØ Ò× Ò Ó
»» ÓÙØ
ÓÙÒØ Ö׸ Ø Ñ Ø Ò¸ ÒÙÑ Ö Ó
»» Ñ
Ò × Ù× ¸ Ø
º
Ö Ø Ù Ö Ò ¼
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹¾½
432.
ÙØÖ × ÜÑÔÐ ×
◮ Ð
ÓÑÑ Ò ÍÒ Ü Ö Ô ×ØÖ Ù
Ö Ô ¹ Ö ÙÐ Ö ÜÔÖ ×× ÓÒ Ö Ô ÖØÓ Ö »¶
×ÓÖØ ÙÒ Õ ¹
×ÓÖØ ¹ÒÖ
◮ Ñ Ô Ñ Ø ÙÒ Ð Ò × ÐÐ
ÓÖÖ ×ÔÓÒ Ù ÑÓØ
◮ Ö Ù
ÓÒ
Ø ÓÒ ÒØ Ø
ÓÔ Ð × ÓÒÒ × ÒØ ÖÑ Ö × Ò ×ÓÖØ
◮ Ð ×Ø ÒÚ Ö× × Ö Ö Ò
× Ù Û
◮ Ñ Ô Ñ Ø × Ô Ö × ´Ø Ö Ø¸×ÓÙÖ
µ ÔÓÙÖ
ÕÙ Ð Ò ×ÙÖ ÙÒ ÍÊÄ
Ø Ö Ø ØÖÓÙÚ Ò× ÙÒ Ô ×ÓÙÖ
◮ Ö Ù
ÓÒ
Ø Ò ØÓÙØ × Ð × ÍÊÄ× ××Ó
× ÙÒ ÍÊÄ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½º Ü ÑÔÐ × ¹¾¾
433.
∅
M M MM
(k1; v)(k1; v)(k2; v)... (k3; v)(k4; v)(k3; v)... (k2; v)(k1; v)...
Regrouper par clefs
Donn´ees
(k1; v, v, v, v) (k2; v, v, v) (k3; v, v, v, v, v, v, v) (k4; v, v)
R R R R
Sorties
Mapper
Sorter
Reducer
donn´ees group´ees
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½º Ü ÑÔÐ × ¹¾¿
434.
ÔÐÓ Ñ ÒØ× Ø
×
M M M M M M M M M
R R R R R
(k2; v, v, v) (k9; v) (k5; v, v, v) (k1; v, v) (k6; v, v, v)
Tˆache map 1 Tˆache map 2 Tˆache map 3
Tˆache reduce 2Tˆache reduce 1
Tri et regroupe Tri et regroupe
R ´E S E A U R ´E S E A U R ´E S E A U
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½º Ü ÑÔÐ × ¹¾
435.
Ö
Ø
ØÙÖ×Ýר Ñ Å ÔÊ Ù
◮ ×Ýר Ñ Å ÔÊ Ù
ÓÒ
Ø ÓÒÒ ×ÙÖ ÙÒ Ö Ò
ÐÙר Ö Ñ
Ò ×
´½¼¼¼·¸ ½¼¼¼¼·µ
◮ ØÓÐ Ö Ò
ÙÜ ÙØ × ÙÒ Ñ
Ò ÓÙ ÙÒ ×ÕÙ ÙÖ ´À Ö × Ö Ú ¸
À µ Ô ÙØ ×Ù Ø Ñ ÒØ ØÓÑ Ö Ò Ô ÒÒ º
ÖÖ Ú ×ÓÙÚ ÒØ × Ð ÒÓÑ Ö Ñ
Ò × ×Ø Ö Ò
→ Å ÔÊ Ù
Ö Ð Ò
Ö ÙØÓÑ Ø ÕÙ Ñ ÒØ Ð × Ø
× ÕÙ Ò³ÓÒØ Ô ×
ÓÙØ º
◮ Ö Ô Ø
ÖØ Ò × Ñ
Ò × Ô ÙÚ ÒØ ØÖ ØÖÓÔ Ð ÒØ × × Ð ÙÖ×
×ÙÖ
Ö × ´Ð × ×ØÖ Ð Ö× µº
→ Å ÔÊ Ù
Ô ÙØ Ð Ò
Ö ÙÒ Ñ Ñ Ø
×ÙÖ ÔÐÙ× ÙÖ× Ñ
Ò ×
´ Ö ÓÒ Ò
Ô Ö Ö ÔÐ
Ø ÓÒ µ Ø Ó Ø Ò Ö Ð Ö ×ÙÐØ Ø × ÕÙ³ÙÒ × Ø
×
ר Ò º
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½º Ü ÑÔÐ × ¹¾
436.
Ö
Ø
ØÙÖ×Ýר Ñ Å ÔÊ Ù
◮ ÐÓ
Ð Ø »Ö × Ù Ð ØÖ Ò× ÖØ ÓÒÒ × ×ÙÖ Ð Ö × Ù Ø ÒØ
Ó Ø Ùܸ
г ÓÖ ÓÒÒ Ò
ÙÖ ×× Ý ³ ÐÐÓÙ Ö Ð × Ø
× ×ÙÖ Ð × Ñ
Ò × Ó Ö × ÒØ
Ð × ÓÒÒ ×
◮ ×ÙÖÚ ÐÐ Ò
»
ÓÒØÖÐ ´ÑÓÒ ØÓÖ Ò µ ÒØ Ö
Û ÕÙ Ö ÔÔÓÖØ Ú Ö× ×
ר Ø ×Ø ÕÙ × ×ÙÖ Ð × Ø
× ´ÔÖ ÚÓ Ø Ð ÙÖ ³ Ü
ÙØ ÓÒ ³ÙÒ Ø
¸ Ø
ºµ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½º Ü ÑÔÐ × ¹¾
437.
Å ÔÊ Ù
Ö
Ø
ØÙÖ Å ×Ø Ö»ÛÓÖ Ö× ´Ô Ô Ö ÇË Á¸
¾¼¼ µ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½º Ü ÑÔÐ × ¹¾
438.
Šר Ö
ÔÓ ÒØ×» Ë» ÓÑ Ò Ö
◮ Ä Ñ
Ò Å ×Ø Ö
Ö Ø Ô Ö Ó ÕÙ Ñ ÒØ Ð × ×ØÖÙ
ØÙÖ × ÓÒÒ × Ù
Šר Ö Ò ÔÓÙÚÓ Ö Ö ÔÖ Ò Ö Ð
Ð
ÙÐ Ò
ÓÙÖ× × Ð Å ×Ø Ö ÐÙ ¹Ñ Ñ
ØÓÑ Ò Ô ÒÒ
◮ ÓÓ Ð Ð ËÝר Ñ ´ ˵ ÓÙ À ÓÓÔ Ð ËÝר Ñ ´À ˵ Ú × Ð ×
Ö× Ò ÐÓ
× Å Ø × ÙÚ Ö ÔÐÙ× ÙÖ×
ÓÔ × ×ÙÖ ×
Ñ
Ò × Ö ÒØ × ´ØÓÐ Ö Ò
ÙÜ Ô ÒÒ ×µ
◮ È × ÓÑ Ò Ö ÕÙ Ò Ð Ý ÑÙÐØ ÔÐ ×
Ð × ÒØ ÖÑ Ö ×
ÒØ ÕÙ × ×ÙÖ ÙÒ Ñ Ñ Ñ
Ò ¸ ÓÒ Ð ×
ÓÑ Ò ÐÓ
Ð Ñ ÒØ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½º Ü ÑÔÐ × ¹¾
439.
ÈÓÙÖÕÙÓ ÙÒ ØÐ ×Ù
× Å ÔÊ Ù
◮ Ô Ö ÐÐ Ð × Ø ÓÒ ÙØÓÑ Ø ÕÙ Ø ×ØÖ ÙØ ÓÒ × Ø
×
Ð
ÙÐ
◮ ×ØÖ ÙØ ÓÒ × ÓÒÒ × Ø ÕÙ Ð Ö × Ø
× ´ ÐÓ Ð Ò
Ò µ
◮ ØÓÐ Ö ÒØ ÙÜ Ô ÒÒ ×
◮ רÖ
Ø ÓÒ × ÑÔÐ Ø ÔÖÓÔÖ × ×ÙÖ ÙÜ ÓÒ
Ø ÓÒ× ÙØ Ð × Ø ÙÖ×
ÔÔÐ
Ø ÓÒ× ÔÓÙÖ Ð ØÖ ¸ Ò ÔÔÖ ÒØ ×× ¸ Ò ÓÙ ÐÐ ÓÒÒ × ´ Ø
Ñ Ò Ò µ¸ Ø
º
◮ ÓÙØ Ð×
ÓÒØÖÐ ´ÑÓÒ ØÓÖ Ò ¸ Ô ÖÑ Ø ³ Ùר Ö Ð × Ö ××ÓÙÖ
× ÐÐÓÙ × ×
Ò
×× Ö Ò
ÓÙÖ× ³ Ü
ÙØ ÓÒµ
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½º Ü ÑÔÐ × ¹¾
440.
Ä Ì ³Ù ÓÙÖ Ù Å ÔÊ Ù
Ò ÅÈÁ
ÍØ Ð × Ø ÓÒ Å ÔÊ Ù
ÔÓÙÖ Ð³ Ð Ò Ñ ÒØ × ÕÙ Ò
× ×ÙÖ ÙÒ Ö Ö Ò
Ö
ÓÒרÖÙ Ö ÙÒ ÔÓÖØ ÓÒ ÑÔÓÖØ ÒØ Ù Ò Ê ½ Ö
г Ð ÓÖ Ø Ñ
Ä ËÌ ×
ÄÓ
Ð Ð ÒÑ ÒØ Ë Ö
ÌÓÓÐ ´½ ¼¸ × Ô Ö ÐÐ Ð × Ø ÓÒ Ò ¾¼¼ µ
Å ÔÊ Ù
Ú
ÅÈÁ ØØÔ »»Ñ ÔÖ Ù
º× Ò º ÓÚ»
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½º Ü ÑÔÐ × ¹¿¼
441.
Ä Ð ÓØÕÙ ÅʹÅÈÁ¸ Å ÔÊ Ù
Ò ÅÈÁ
◮ Å ÔÊ Ù
¶ÑÖ Ò Û Å ÔÊ Ù
´ÅÈÁ ÇÅÅ ÏÇÊÄ µ
Ö ÙÒ ÒÓÙÚ Ð
Ó Ø Å ÔÊ Ù
◮ Ù ÒØ Ø Å ÔÊ Ù
Ñ Ô´ ÒØ ÒÑ Ô¸ ÒØ Òר֏
Ö
¶¶×ØÖ Ò ×¸ ÒØ Ö
ÙÖ× ¸ ÒØ Ö Ð ¸
Ö × Ô
Ö¸ ÒØ
ÐØ ¸ ÚÓ ´¶ÑÝÑ Ôµ´ ÒØ¸
Ö ¶¸ ÒØ¸ à ÝÎ ÐÙ ¶¸ ÚÓ
¶µ¸ÚÓ ¶ÔØÖµ ÔÔ ÐÐ Ð ÓÒ
Ø ÓÒ ÑÝÑ Ô Ò Ö Ô ÖØ ×× ÒØ Ð
ÓÒØ ÒÙ
×
Ö× ³ ÒØÖ ×ÙÖ Ð × Ö ÒØ× ÔÖÓ
×× ÙÖ×
ÆÓØ Þ Ò× Ð × Ö ÙÑ ÒØ× Ð × ÔÓ ÒØ ÙÖ× ÓÒ
Ø ÓÒ× Ù » ··
Ö Ò Æ Ð× Ò ¾ºÅ ÔÊ Ù
¹½º Ü ÑÔÐ × ¹¿½
Ê ×ÙÑ ×
Ö
Ø Ö ×Ø ÕÙ × × ÔÖ Ò
Ô Ð × ØÓÔÓÐÓ ×
p ÒÓÑ Ö ÔÖÓ
×× ÙÖ×
ØÓÔÓÐÓ ÔÖÓ
×× ÙÖ× p Ö k Ñ ØÖ D Ð Ò× l b
Ö × Ù
ÓÑÔÐ Ø p p − ½ ½ p(p−½)
¾
p¾
ÒÒ Ù p ¾ ⌊p
¾ ⌋ p ¾
Ö ÐÐ ¾
√
p
√
p ¾, ¾(
√
p − ½) ¾p − ¾
√
p
√
p
ØÓÖ ¾
√
p
√
p ¾⌊
√
p
¾ ⌋ ¾p ¾
√
p
ÝÔ Ö
Ù p = ¾d
d = ÐÓ ¾ p d ½
¾ p ÐÓ ¾ p p/¾
b Ð Ö ÙÖ ××
Ø ÓÒ
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹½ºÄ
Ð ÕÙ ¾
493.
ÌÓÔÓÐÓ ÑÓ Ò×
ÓÙÖ ÒØ Ö Ö Ð Ö ´ Ø ØÖ ×µ
ÈÐÙ× ÓÒ × Ö ÔÔÖÓ
Ð Ö
Ò ÔÐÙ× Ð Ò Ô ×× ÒØ Ó Ø ØÖ Ö Ò ¸
Ö
ÔÐÙ× ÓÒ Ö ÑÓÒØ ÔÐÙ× ³ Ò ÓÖÑ Ø ÓÒ × Ù ÐÐ × Ð Ö
Ò º
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹½ºÄ
Ð ÕÙ ¾
494.
ÌÓÔÓÐÓ Ý
Ð ×ÓÒÒ
Ø × Ò Ù ´ µ
ÇÒ Ö ÑÔÐ
Ð × ×ÓÑÑ Ø× Ù s¹ ÝÔ Ö
Ù Ô Ö × ÒÒ ÙÜ s ÔÖÓ
×× ÙÖ׺
Ú ÒØ Ö d = ¿ Ù Ð Ù d = s¸ ÒÓÑ Ö Ò Ù × p = ¾s s¸
Ñ ØÖ D = ¾s − ¾ + ⌊s
¾⌋ ÔÓÙÖ s ¿ Ø D = ÕÙ Ò s = ¿º
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹½ºÄ
Ð ÕÙ ¾
495.
ij ÝÔ Ö
ÙÐ d¹
Ù ¸
Ù Ò Ñ Ò× ÓÒ d
ÓÒרÖÙ
Ø ÓÒ Ö
ÙÖ× Ú
ÈÓÙÖ
ÓÒרÖÙ Ö ÙÒ ÝÔ Ö
Ù Ñ Ò× ÓÒ d + ½¸ ÓÒ Ô ÖØ ÙÜ
ÓÔ ×
³ÙÒ ÝÔ Ö
Ù Ñ Ò× ÓÒ d Ò Ö Ð ÒØ Ð ×
ÓÔ × × Ò Ù × Ò× Ñ Ð ×
0D 1D 2D 3D 4D
Ö d¸ Ö ÙÐ Ö
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹¾º ÝÔ Ö
Ù ¾
496.
ÓÑÑ ÒØ ØÕÙ ØØ Ö Ð × Ò Ù × Ð³ ÝÔ Ö
Ù
◮ Ö ØÖ Ö Ñ ÒØ Ñ × ÓÒ ÙÖ Ø ÐÓÖ× ×Ó Ò ³ÙÒ Ø Ð ÖÓÙØ ÔÓÙÖ
ÓÒÒ ØÖ × × d ÚÓ × Ò× ÔÓÙÖ Ð ÖÓÙØ → Ò Ô ×× Ô × Ð³
ÐÐ º
◮ ÓÒ
Ö
ÔÐÙØØ ÙÒ Ö ÔÖ × ÒØ Ø ÓÒ Ø ÐÐ ÕÙ ÙÜ Ò Ù × ÚÓ × Ò× P Ø
Q Ö ÒØ × ÑÔÐ Ñ ÒØ Ô Ö ÙÒ Ø
Ð ÐÓÖ× Ú Ö Ö P = (¼¼½¼)¾
Ø Q = (½¼½¼)¾ ×ÓÒØ ÚÓ × Ò× ÔÙ ×ÕÙ P ÜÓÖ Q = ½¼¼¼º
Ì Ð Ú Ö Ø Ù ÇÍ Ü
ÐÙ×
ÜÓÖ ¼ ½
¼ ¼ ½
½ ½ ¼
◮ ÓÒ ÚÓÙ Ö Ø Ù×× ÕÙ Ð × d Ø× Ð Ö ÔÖ × ÒØ Ø ÓÒ
ÓÖÖ ×ÔÓÒ ÒØ ÙÜ d
Ü × Ð³ ÝÔ Ö
Ù Ò× ÓÒ ÒÚÓ ÙÒ Ñ ×× P = (¼¼½¼)¾
Q = (½¼½¼)¾ Ò ÙØ Ð × ÒØ Ð d¹ Ñ Ü
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹¾º ÝÔ Ö
Ù ¾
497.
Ó Ö Ý×ÙÖ Ð³ ÝÔ Ö
Ù
◮ Ó Ö Ý G(i, x)
Ó Ò Ö Ö
◮ Ë ÙÐ Ñ ÒØ ÙÒ Ø Ö Ò
ÒØÖ ÙÜ Ò Ù ×
ÓÒÒ
Ø ×
◮ Ö Ú Ø Ò ½ ¿ Ô Ö Ö Ò Ö Ý ´ ÐÐ Ä ×µ
Ò Ø ÓÒ Ù
Ó Ö Ý
Gd = ¼Gd−½, ½GÖ
d−½
i Ö Ò Ù ÑÓØ
x ÒÓÑ Ö Ø× Ù
Ó
G(¼, ½) = ¼
G(½, ½) = ½
G(i, x + ½) = G(i, x), i ¾x
G(i, x + ½) = ¾x
+ G(¾x+½
− ½ − i, x), i ≥ ¾x
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹¿º
Ó Ö Ý ¾
498.
ÈÖÓÔÖ Ø ×³ÙÒ
Ó Ö Ý
◮ ÑÓØ×
ÒØ× Ö ÒØ Ô Ö ÙÒ Ø
◮
Ó
Ý
Ð ÕÙ
◮ ÙÒ × ÕÙ Ò
ÖÓ ×× ÒØ ÕÙ Ú ÙØ ÙÒ × ÕÙ Ò
ÖÓ ×× ÒØ ÕÙ Ò ÓÒ
ÔÔ Ð Ø Ø Ø ¼ ↔ ½
Ó
Ñ Ð Ó Ò Ö Ó Ö Ý ´ Ò Ö Ö
µ
¼ ¼¼¼ ¼¼¼
½ ¼¼½ ¼¼½
¾ ¼½¼ ¼½½
¿ ¼½½ ¼½¼
½¼¼ ½½¼
½¼½ ½½½
½½¼ ½¼½
½½½ ½¼¼
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹¿º
Ó Ö Ý ¿¼
499.
ר Ò
ÀÑÑ Ò ×ÙÖ Ð³ ÝÔ Ö
Ù
◮ ×Ó Ø P = (Pd−½ . . . P¼)¾ Ø Q = (Qd−½ . . . Q¼)¾ ÙÜ ×ÓÑÑ Ø×
г ÝÔ Ö
Ù Ñ Ò× ÓÒ d
◮ Ð ×Ø Ò
ÒØÖ P Ø Q ר Ð ÐÓÒ Ù ÙÖ Ù ÔÐÙ×
ÓÙÖØ
Ñ Ò Ð ×
Ö Ð ÒØ
◮ Ð ×Ø Ò
ÒØÖ P Ø Q ÕÙ Ú ÙØ Ð ×Ø Ò
À ÑÑ Ò ×ÙÖ Ð
Ö ÔÖ × ÒØ Ø ÓÒ Ò Ö P Ø Q
À ÑÑ Ò (P, Q) =
d−½
i=¼
½Pi =Qi
È Ö Ü ÑÔÐ ¸ À ÑÑ Ò (½¼½½, ½½¼½) = ¾º
ÇÒ
ÓÑÔØ × ÑÔÐ Ñ ÒØ Ð ÒÓÑ Ö Ø× Ö ÒØ× Ò× Ð ×
Ö ÔÖ × ÒØ Ø ÓÒ×
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹¿º
Ó Ö Ý ¿½
500.
Ñ Ò× ×ÙÖг ÝÔ Ö
Ù Ø ÖÓÙØ
◮ Ð Ü ×Ø À ÑÑ Ò (P, Q)! ´
ØÓÖ ÐÐ µ
Ñ Ò× ÒØÖ P Ø Q ÓÒØ
À ÑÑ Ò (P, Q) ×ÓÒØ ÙÜ ÙÜ × Ó ÒØ×º
◮ È Ö Ü ÑÔÐ ¸ À ÑÑ Ò (¼¼, ½½) = ¾ Ø ÙÜ
Ñ Ò× ×Ø Ò
Ø×
¼¼ → ½¼ → ½½ Ø ¼¼ → ¼½ → ½½
¼¼ ↔ ¼½
½¼ ↔ ½½
◮ ÖÓÙØ Ò Ô ÖØ ÒØ ×Ó Ø × ÔÓ × Ð × ´×ÓÙÚ ÒØ Ð
ÓÒÚ ÒØ ÓÒ ÔÖ × µ
×Ó Ø × ÔÓ × Ó֨׏ ÓÒ
Ñ Ò Ð Ñ ×× Ù×ÕÙ³ ØÖ Ò× ÓÖÑ Ö P Ò Q
Ò ÔÔ ÒØ Ð Ø ´
ÓÑÑÙÒ
Ø ÓÒ ×ÙÖ Ð Ð Òµ ÙÜ ÔÓ× Ø ÓÒ× × ½ Ù
P ÜÓÖ Qº
◮ Ü ÑÔÐ P = ½¼½½ → Q = ½½¼½ Ú
P ÜÓÖ Q = ¼½½¼º È ÒÚÓ Ø ÓÒ
Ð Ñ ×× P′ = ½¼¼½ ×ÙÖ Ð Ð Ò ½ Ø P′ ÒÚÓ Ð Ñ ××
P′′ = ½½¼½ = P ×ÙÖ Ð Ð Ò ¾º
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹¿º
Ó Ö Ý ¿¾
501.
Ò Ö ÖÙÒ
Ó Ö Ý Ò ·· Ú
Ð ËÌÄ
× Ò× Ð Ö
ÙÖ× Ú Ø ººº
Ó ÓÔØ Ñ ×
Ð ×× Ö Ý ß
ÔÙ Ð
Ú
ØÓÖ ÒØ
Ó ´ ÒØ Òµ ß
Ú
ØÓÖ ÒØ Ú
ÚºÔÙ×
´¼µ
ÓÖ´ ÒØ ¼ Ò ··µ ß
ÒØ ½
ÒØ Ð Ò Úº× Þ ´µ
ÓÖ´ ÒØ Ð Ò ¹ ½ ¼ ¹¹µ ß
ÚºÔÙ×
´ · Ú ℄µ
Ö ØÙÖÒ Ú
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹¿º
Ó Ö Ý ¿¿
502.
Ò Ö ÖÙÒ
Ó Ö Ý Ò ·· ÙØ Ð × Ø ÓÒ
Ò
ÐÙ Ó×ØÖ Ñ
Ò
ÐÙ Ú
ØÓÖ
Ò
ÐÙ Ø× Ø
Ù× Ò Ò Ñ ×Ô
ר
ÒØ Ñ Ò´µ ß
Ö Ý Ú
ØÓÖ ÒØ º
Ó ´ µ
ÓÖ´ ÒØ ¼ º× Þ ´µ ··µ ß
ÓÙØ ℄ Ø
ÓÙØ Ò Ð
ÓÖ´ ÒØ ¼ º× Þ ´µ ··µ ß
ÓÙØ ´ Ø× Ø µ ℄ Ø
ÓÙØ Ò Ð
Ö ØÙÖÒ ¼
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹¿º
Ó Ö Ý ¿
503.
Ò Ö ÖÙÒ
Ó Ö Ý Ò ·· Ö ×ÙÐØ Ø
ÁÆ ¾ Ö Ý
Ó ¾
¼ ½ ¿ ¾
½ ½ ½¼ ½½
¼¼¼¼¼¼¼¼ ¼¼¼¼¼¼¼½ ¼¼¼¼¼¼½½ ¼¼¼¼¼¼½¼
¼¼¼¼¼½½½ ¼¼¼¼¼½¼½ ¼¼¼¼¼½¼¼ ¼¼¼¼½½¼¼
¼¼¼¼½½½½ ¼¼¼¼½½½¼ ¼¼¼¼½¼½¼ ¼¼¼¼½¼½½
¼¼¼¼½¼¼¼
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹¿º
Ó Ö Ý ¿
504.
ÀÝÔ Ö
Ù Ú
ÒÙÑ ÖÓØ Ø ÓÒ Ô Ö Ð
Ó Ö Ý
0000 0100
1000 1100
1010
1110
0001 0101
0111
11111011
1001
0011
0010 0110
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹¿º
Ó Ö Ý ¿
505.
ÈÓÔÙÐ Ö ØÐ³ ÝÔ Ö
Ù
◮ P = ¾d ¸ ÓÒ
d = ÐÓ ¾ P¸ ØÓÔÓÐÓ ÕÙ Ô ×× Ð³
ÐÐ ÜØ Ò× Ð
◮ ØÓÔÓÐÓ Ð³ ÝÔ Ö
Ù Ô ÖÑ Ø Ö Ð × Ö
ÐРг ÒÒ Ù
◮ ØÓÔÓÐÓ Ð³ ÝÔ Ö
Ù Ô ÖÑ Ø Ö Ð × Ö ÙÒ Ö × Ù ØÓÖ ÕÙ Ø ÐÐ
¾r × ¾s Ò× ÙÒ d = r + s¹
Ù ¸ Ò ÙØ Ð × ÒØ Ð ÒÙÑ ÖÓØ Ø ÓÒ
( Ö Ýr , Ö Ýs)
Ö Ò Æ Ð× Ò ¾ºÊ × ÙÜ ×Ø Ø ÕÙ × × ÑÔÐ ×¹¿º
Ó Ö Ý ¿
ÀÝÔ Ö
Ù Ø
Ó Ö Ý
0D 1D 2D 3D 4D
∅ 0
1
00
01
10
11
001 011
000 010
101 111
100 110
0001 0011
0000 0010
0101 0111
0100 0110
1001 1011
1000 1010
1101 1111
1100 1110
ÙÜ
ÓÔ × ´ÔÖ Ü ¼ Ø ÔÖ Ü ½µ Hd−½(Gd−½) Õ٠гÓÒ Ö Ð ÒØÖ ÐÐ ×
Ú
Ð × Ô Ö × Ò Ù ×
ÓÖÖ ×ÔÓÒ ÒØ×
Ö Ò Æ Ð× Ò ½º
Ó Ö Ý
538.
Ó ·· ×ÑÔÐ Ö Ý
Ó ¾º
ÔÔ
»» ÒÚ Ö× Ð³ÓÖ Ö ³ÙÒ
Ó
× Ø Ö Ò ∗ Å Ö Ó Ö ´ × Ø Ö Ò ∗ × ¸ Ò Ø Ò µ
ß × Ø Ö Ò ∗ Ö ×
Ö × Ò Û × Ø Ö Ò Ò ℄
Ò Ø
Ó Ö ´ ¼ Ò ··µ
ß Ö × ℄ × Ò −½− ℄ »»
¸ ÓÒ Ö
ÓÔ
Ö Ø Ù Ö Ò Ö ×
»» Ð ÓÖ Ø Ñ Ö
ÙÖ× ÔÓÙÖ Ð
Ó Ö Ý
× Ø Ö Ò ∗ Ö Ý Ó ´ Ò Ø Ñ µ
ß × Ø Ö Ò ∗ Ö ×
Ò Ø
Ò Ø
Ö ½ ´ Ñ −½µ »» Ú ÙØ Ö ¾
Ñ−½¸ ÔÐÙ× Ö Ô ÕÙ Math.pow(¾, Ñ − ½)
´ Ñ ½µ
ß Ö × Ò Û × Ø Ö Ò ¾ ℄ Ö × ¼ ℄ ¼ Ö × ½ ℄ ½
Ð ×
ß
× Ø Ö Ò ∗ Ö Ý Ó ´ Ñ −½µ
× Ø Ö Ò ∗ Ö Ð
Å Ö Ó Ö ´ ¸
Ö µ
Ö × Ò Û × Ø Ö Ò ¾ ∗
Ö ℄
»» ÔÖ Ü
Ó Ö ´ ¼
Ö ··µ
ß Ö × ℄ ¼ · ℄
Ö × ·
Ö ℄ ½ · Ö Ð
℄
Ö Ø Ù Ö Ò Ö ×
Ö Ò Æ Ð× Ò ½º
Ó Ö Ý
539.
Ó ·· ×ÑÔÐ Ö Ý
Ó ¾º
ÔÔ
Ò
Ð Ù Ó × Ø Ö Ñ
Ò
Ð Ù × Ø Ö Ò º
Ù × Ò Ò Ñ ×Ô
× Ø
× Ø Ö Ò ∗ Å Ö Ó Ö ´ × Ø Ö Ò ∗ × ¸ Ò Ø Ò µ
º º º
× Ø Ö Ò ∗ Ö Ý Ó ´ Ò Ø Ñ µ
º º º
Ú Ó Ô Ö Ò Ø Ó ´ × Ø Ö Ò ∗
Ó ¸ Ò Ø Ò µ
ß
Ò Ø
Ó Ö ´ ¼ Ò ··µ
ß
Ó Ù Ø
Ó ℄ Ò Ð
Ò Ø Ñ Ò ´ µ
ß
Ò Ø ¸ Ñ
Ó Ù Ø ÁÆ ¾
Ó Ö Ý Ò Ñ Ò × Ó Ò Ñ Ò
× Ø Ö Ò ∗ Ö Ý Ó ´ Ñ µ
Ô Ö Ò Ø Ó ´ ¸ ½ Ñ µ »» Ú ÙØ Ö ¾
Ñ
Ö Ò Æ Ð× Ò ½º
Ó Ö Ý
540.
ÓÒÚ ÖØ Ö
Ó Ò Ö ⇔
Ó Ö Ý
code binaire
code de Gray
0 b0b1b2b3
g0g1g2g3
bit extra `a 0
(ne fait pas partie du code)
gi = 0 ⇔ bi+1 XOR bi = 0
Ä Ø Ù
Ó Ö Ý gi ר Þ ÖÓ × Ø × ÙÐ Ñ ÒØ × Ð × Ø×
ÒØ× Ð Ö ÔÖ × ÒØ Ø ÓÒ Ò Ö
Ó Ò
ÒØ ´ Çʸ ÇÍ Ü
ÐÙ× µ
Ö Ò Æ Ð× Ò ½º
Ó Ö Ý ½¼
541.
Ü ÑÔÐ
ÓÒÚÖ× ÓÒ× Ò Ö → Ö Ý
code binaire
code de Gray
0 0 1 1 0
code binaire
code de Gray
0 0 1 1 0
1 0 10
Conversion (0110)b → (0101)g
XOR XOR XORXOR
XOR
?
Ð
ÙÐ× Ö
Ø× × Ò×
×
´ Ø× gi Ô ÙÚ ÒØ ØÖ
Ð
ÙÐ × Ò Ô Ö ÐÐ Ð ¸ Ê Ïµ
Ö Ò Æ Ð× Ò ½º
Ó Ö Ý ½½
542.
Ü ÑÔÐ
ÓÒÚÖ× ÓÒ× Ö Ý → Ò Ö
code binaire
code de Gray
0
1 10
code binaire
code de Gray
0
Conversion (1011)g → (1101)b
XOR XOR XORXOR
XOR
1
1 10 1
1 01 1
?
Ð
ÙÐ Ù Ø Ò Ö ÔÓ × ÓÖØ Ú Ö× Ð Ø ÔÓ × Ð ¸
×
ººº
Ö Ò Æ Ð× Ò ½º
Ó Ö Ý ½¾
543.
Ä × ÖÒ × Ö Ô × ØÖÓÙÚ Ö
ÙÒ ×ÓÙ×¹ Ò× Ñ Ð Ò×
Ð ÒÓÝ Ù
Ð ÔÐÙ× Ö Ò
ÓÑÑÙÒ ÙØ
ººº
Ö Ò Æ Ð× Ò ½º
Ó Ö Ý ½¿
544.
Ê ÔÔ Ð×ÙÖ Ð ÒÓØ Ø ÓÒ Ö Ô ×
◮ G = (V , E) ÙÒ Ö Ô |V | = n Ò Ù × Ø |E| = m Ö Ø × º Ö Ô
ÒÓÒ¹ÓÖ ÒØ º
◮ Ö Ø (vi , vj ) Ô Ö Ò Ù ×
◮ Ö Ø ÓÖ ÒØ Ö
¸ Ö Ô Ö
Ø Ö Ô
◮ Ö Ô × Ò×
Ý
Ð
Ý
Ð
Ö Ô
◮ Ö Ô ÔÓ × ´×ÙÖ Ð × Ö Ø × Ø»ÓÙ Ð × Ò Ù ×µ
◮ Ñ ØÖ
³ Ò
Ò
ME Ù Ö Ô V = {xi }
e = (xi , xj ) ∈ E ⇔ ME [i][j] = ½
´ Ø ¼ ÙØÖ Ñ ÒØµ
◮ Ö Ô ÔÐ Ò Ö ´ÕÙ Ô ÙØ ØÖ ÔÐÓÒ ×× Ò Ò× Ð ÔÐ Ò × Ò×
ÒØ Ö×
Ø ÓÒ × Ö Ø ×µ m = |E| ≤ ¿(n − ¾) ÔÓÙÖ n = |V | ¾º
◮ Ö Ô Ò× ¸ Ö Ô Ô Ö׸ Ö Ô Ô Ø Ø× ÑÓÒ × ´
ÕÙ Ò Ù Ö Ð
Ò³ ÑÔÓÖØ ÕÙ Ð ÙØÖ Ò Ù Ô Ö ÙÒ
ÓÙÖØ
Ò µ
Ö Ò Æ Ð× Ò ¾º Ö Ô ×¹½ºÒÓØ Ø ÓÒ× ½
545.
Ä × ÖÔ × × ÑÔР׸ ÙØ Ð × Ñ × Ô Ö Ó ×
Ð × Ò ÐÝ× Ö
Ð Ø ÓÖ Ñ ×
ÓÙÐ ÙÖ× ÙÒ ÔÖÓ Ð Ñ ÒØÙ Ø Ñ × ÔÖ ÙÚ ×
ÓÑÔÐ Ü ×
Ò Ù Ô ÖØ Ñ ÒØ×º ÙÒ Ö Ø ÔÓÙÖ ÙÜ Ö ÓÒ×
ÓÒÒ Ü ×
Ö Ò Æ Ð× Ò ¾º Ö Ô ×¹½ºÒÓØ Ø ÓÒ× ½
Ø ÍÒ ÖÔ ÒÓÒ¹ÓÖ ÒØ G = (V , E)
Ê ×ÙÐØ Ê ØÓÙÖÒ ÙÒ ×ÓÙ×¹ Ò× Ñ Ð ˜S ⊆ V × ×ÓÑÑ Ø× ÕÙ Ò Ù Ø Ð Ö Ô
Ö ×ØÖ ÒØ G| ˜S ÕÙ ÓÒÒ ÙÒ ¾¹ ÔÔÖÓÜ Ñ Ø ÓÒ Ù ×ÓÙ×¹ Ö Ô Ð ÔÐÙ×
Ò× Gº
˜S ← V
S ← V
Û Ð S = ∅ Ó
s ← Ö Ñ Òs∈S S(s)
S ← S{s}
ρ(S) ρ( ˜S) Ø Ò
˜S ← S
Ò
Ò
Ö ØÙÖÒ ˜S
⇒ ¾¹ ÔÔÖÓÜ Ñ Ø ÓÒ ˜S Ù ×ÓÙ×¹ Ö Ô Ð ÔÐÙ× Ò× G = (V , E)º
Ö Ò Æ Ð× Ò ¾º Ö Ô ×¹¿ºÀ ÙÖ ×Ø ÕÙ × ÕÙ ÒØ ÐÐ ¾
Ð ÓÖ ØÑ ½ À ÙÖ ×Ø ÕÙ ÐÓÙØÓÒÒ ´Ô Ö ÐÐ Ð µ Ô Ö ÐÓ
× ÔÓÙÖ ØÖÓÙÚ Ö ÙÒ
ÔÔÖÓÜ Ñ Ø ÓÒ ˜S Ù ×ÓÙ×¹ Ö Ô Ð ÔÐÙ× Ò× º
Ø ÍÒ Ö Ô G = (V , E) Ø ǫ ¼
˜S ← V
S ← V
Û Ð S = ∅ Ó
A(S) ← {s ∈ S | S(s) ≤ ¾(½ + ǫ)ρ(S)}
S ← SA(S)
ρ(S) ρ( ˜S) Ø Ò
˜S ← S
Ò
Ò
Ö ØÙÖÒ ˜S
Ö ÔÔ Ð ¯d(G) = ¾ρ(G)
Ö Ò Æ Ð× Ò ¾º Ö Ô ×¹ º ÙÖ ×Ø ÕÙ Ô Ö ÐÐ Ð ¿½
ËÓÙ×¹ ×ÓÑÓÖÔ ×ÑÖ Ô ×
G½ ר ×ÓÙ×¹ ×ÓÑÓÖÔ G¾ × Ø × ÙÐ Ñ ÒØ × Ð Ü ×Ø G′
½ ⊆ G½ Ø Ð ÕÙ
G′
½
∼= G¾
⇒ Ö
ÓÒÒ ×× Ò
ÑÓØ × Ò× Ð × Ö Ô × ´Ô ØØ ÖÒ Ñ Ø
Ò µ
Ö Ò Æ Ð× Ò ¿º ×ÓÑÓÖÔ ×Ñ × Ö Ô ×¹½ºËÓÙ×¹ ×ÓÑÓÖÔ ×Ñ ½
572.
ÔÔÐ
ØÓÒ Ê
Ö
ÑÓØ × ×ØÖÙ
ØÙÖ ÙÜ ÒØ ÕÙ ×
◮ ×ÓÑÓÖÔ ×Ñ Ö Ô ØÖ × ØÙ Ò
Ñ ÔÙ × Ð × ÒÒ × ½ ¼ ººº
◮ ר¹
ÕÙ³ÙÒ ÑÓØ
Ñ ÕÙ × ØÖÓÙÚ Ö Ô ÖØÓÖ Ò× ÙÒ ×
ÓÒÒ ×
È Ö Ü ÑÔÐ ¸ ØÖÓÙÚ Ö ÙÒ ÑÓØ ÊÆ ´ × ÞÓØ × ¸ ¸ ¸ ͵ Ò× ×
ÖÙÒ× ³ ÊÆ ººº
◮ Ò
Ó Ö ÙÒ ÑÓÐ
ÙÐ Ô Ö ÙÒ Ö Ô
ÒÓÒ ÕÙ ´ÔÐÙ× ÙÖ× ×Ø Ò Ö ×
Ü ×Ø ÒØ
ÓÑÑ ËÅÁÄ Ë¸ ÁÒ Áµ
◮ ÔÙ × Ø ×Ø Ö Ð³ ×ÓÑÓÖÔ ×Ñ ×ÓÙ×¹ Ö Ô ´ Ö Ô Ø Ñ Ò Ò µ
Ö Ò Æ Ð× Ò ¿º ×ÓÑÓÖÔ ×Ñ × Ö Ô ×¹½ºËÓÙ×¹ ×ÓÑÓÖÔ ×Ñ ¾
573.
ÓÑÔÐ Ü ØÔ × Ò
ÓÖ Ö ×ÓÐÙ
Ä ÔÖÓ Ð Ñ Ø ×Ø Ö Ð³ ×ÓÑÓÖÔ ×Ñ Ö Ô
◮ ÔÔ ÖØ ÒØ Ð
Ð ××
ÓÑÔÐ Ü Ø ÆÈ ´Ú Ö Ð Ò Ø ÑÔ× ÔÓÐÝÒÓÑ Ðµ
Ø ÒØ ÓÒÒ σ¸ ÓÒ Ú Ö ÕÙ σ(V½) = V¾ Ø σ(E½) = E¾
◮ ÔÔ ÖØ ÒØ Ð
Ð ×× È ´Ø ÑÔ× ÔÓÐÝÒÓÑ Ðµ ÔÓÙÖ
ÖØ Ò × Ñ ÐÐ ×
Ö Ô × Ð × Ö Ö ×¸ Ð × Ö Ô × ÔÐ Ò Ö ×¸ Ø
º
◮ ÙÒ
ÙÖ Ó× Ø Ò× Ð
× Ò Ö Ð
Ò× È ÓÙ Ò× ÆÈ¹
ÓÑÔÐ Ø ÓÙ ÐÓÖ× Ò Ò× Ð³ÙÒ Ò Ò× Ð³ ÙØÖ
◮ Å ÐÐ ÙÖ Ð ÓÖ Ø Ñ ´Ä٠׸ ½ ¿µ
¾
O(
√
n ÐÓ n)
ººº ÔÓÙÚ Þ¹ÚÓÙ× Ö Ñ ÙÜ ÓÙ ÐÓÖ× ÑÓÒØÖ Ö ÙÒ ÓÖÒ Ò Ö ÙÖ
ÜÔÓÒ ÒØ ÐÐ
Ö Ò Æ Ð× Ò ¿º ×ÓÑÓÖÔ ×Ñ × Ö Ô ×¹¾º ÓÑÔÐ Ü Ø ¿
574.
Ê Ñ ÖÕÙгÓÖ Ò Ø ÙÖ Ò ÚÓ Ø Ô × ººº
Ð × Ö Ô × Ò ×ÓÒØ Ô × ×× Ò × Ò Ñ ÑÓ Ö ººº г Ð ÙÑ Ò ´·
ÖÚ Ù µ ר
Ö Ñ ÖÕÙ Ð ÔÓÙÖ × ×
Ô
Ø × Ö
ÓÒÒ ×× Ò
ÑÓØ ×
Ö Ô ¸ ÙØÖ ×× Ò Ù Ö Ô ¸ · Ô ÖÑÙØ Ø ÓÒ ×ÙÖ Ð × Ø ÕÙ ØØ ×
Ö Ò Æ Ð× Ò ¿º ×ÓÑÓÖÔ ×Ñ × Ö Ô ×¹¾º ÓÑÔÐ Ü Ø
575.
Ð ÓÖ ØÑ Ò ÔÓÙÖ Ð³ ×ÓÑÓÖÔ ×Ñ Ø ×Ø Ö ØÓÙØ
◮ I½ Ð Ñ ØÖ
Ò Ö ³ Ò
Ò
G½¸ Ø I¾ Ð Ñ ØÖ
³ Ò
Ò
G¾
´ ×Ô
Ñ ÑÓ Ö n¾µ
◮ ÔÓÙÖ ØÓÙØ × Ð × n! Ô ÖÑÙØ Ø ÓÒ× σ¸ ÓÒ Ø ×Ø × I½ = Iσ
¾ ´Ø ÑÔ×
ÕÙ Ö Ø ÕÙ µ
O(n¾
n!)
ÓÖÑÙÐ ËØ ÖÐ Ò n! ≃
√
¾πn n
e
n
½¼! = ¿, ¾ , ¼¼
Ö Ò Æ Ð× Ò ¿º ×ÓÑÓÖÔ ×Ñ × Ö Ô ×¹¿º Ð ÓÖ Ø Ñ × ÒÙÑ Ö Ø ×