Ensemble Cnk des parties à k éléments de l’ensemble En = {1, 2 . . . n}. partie = sous-ensemble Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { , , , } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { , , , , , } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,}, , , , , } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,1}, , , , , } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,/1}, , , , , } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, , , , , } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, , , } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2,}, , } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2, 1}, , } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2, // 1}, , } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2, 3}, , } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4} } Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4} } La complexité de l’algorithme naïf qui construit toutes les parties à deux éléments d’un ensemble à n éléments est dans Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4} } La complexité de l’algorithme naïf qui construit toutes les parties à deux éléments d’un ensemble à n éléments est dans ⇥(n2 ) Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4} } La complexité de l’algorithme naïf qui construit toutes les parties à trois éléments d’un ensemble à n éléments est dans ⇥() Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4} } La complexité de l’algorithme naïf qui construit toutes les parties à trois éléments d’un ensemble à n éléments est dans ⇥(n3 ) Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4} } La complexité de l’algorithme naïf qui construit toutes les parties à k éléments d’un ensemble à n éléments est dans ⇥() Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4} } La complexité de l’algorithme naïf qui construit toutes les parties à k éléments d’un ensemble à n éléments est dans ⇥(nk ) Ensemble Cnk des parties à k éléments de l’ensemble En = { C42 E4 = { 1, 2, 3, 4} C42 = { {1,2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4} } La complexité de l’algorithme naïf qui imprime toutes les parties à k éléments d’un ensemble à n éléments est dans ⇥(nk ⇥k) Ensemble Cnk des parties à k éléments de l’ensemble En = { Peut-on faire mieux ? Quel est le coût minimum de l’algorithme d’impression ? Ensemble Cnk des parties à k éléments de l’ensemble En = { Peut-on faire mieux ? Quel est le coût minimum de l’algorithme d’impression ? Coût d’impression d’un élément ⇥ Nombre d’éléments Ensemble Cnk des parties à k éléments de l’ensemble En = { Peut-on faire mieux ? Quel est le coût minimum de l’algorithme d’impression ? Coût d’impression d’un élément ⇥(k) ⇥ Nombre d’éléments Ensemble Cnk des parties à k éléments de l’ensemble En = { Peut-on faire mieux ? Quel est le coût minimum de l’algorithme d’impression ? Coût d’impression d’un élément ⇥(k) ⇥ Nombre d’éléments Cnk Ensemble Cnk des parties à k éléments de l’ensemble En = { Peut-on faire mieux ? Quel est le coût minimum de l’algorithme d’impression ? Coût d’impression d’un élément ⇥(k) ⇥ Nombre d’éléments Cnk ——————————————⇥(k.Cnk ) Ensemble Cnk des parties à k éléments de l’ensemble En = { Peut-on faire mieux ? Quel est le coût minimum de l’algorithme d’impression ? Coût d’impression d’un élément ⇥(k) ⇥ Nombre d’éléments Cnk ⇥(k.Cnk ) L’algorithme naïf est en ⇥(k ⇥ nk ), le coût minimum est en n! (k 1)!(n k)! Ensemble Cnk des parties à k éléments de l’ensemble En = { algorithme naïf : ⇥(k ⇥ nk ) n! (n k)! coût minimum : n! (k 1)!(n k)! = Ensemble Cnk des parties à k éléments de l’ensemble En = { algorithme naïf : ⇥(k ⇥ nk ) n! (n k)! = 1⇥2⇥...⇥(n coût minimum : k)⇥(n k+1)⇥...⇥n (n k)! n! (k 1)!(n k)! = Ensemble Cnk des parties à k éléments de l’ensemble En = { algorithme naïf : ⇥(k ⇥ nk ) n! (n k)! = 1⇥2⇥...⇥(n coût minimum : k)⇥(n k+1)⇥...⇥n (n k)! k)⇥(n = 1⇥2⇥...⇥(n 1⇥2⇥...⇥(n n! (k 1)!(n k)! k+1)⇥...⇥n k) Ensemble Cnk des parties à k éléments de l’ensemble En = { algorithme naïf : ⇥(k ⇥ nk ) n! (n k)! = 1⇥2⇥...⇥(n = coût minimum : k)⇥(n k+1)⇥...⇥n (n k)! k)⇥(n = 1⇥2⇥...⇥(n 1⇥2⇥...⇥(n n! (k 1)!(n k)! k+1)⇥...⇥n k) /1⇥2/⇥...⇥(n k)⇥(n k+1)⇥...⇥n ///// = /1⇥2/⇥...⇥(n k) ///// Ensemble Cnk des parties à k éléments de l’ensemble En = { algorithme naïf : ⇥(k ⇥ nk ) n! (n k)! = 1⇥2⇥...⇥(n = coût minimum : k)⇥(n k+1)⇥...⇥n (n k)! k)⇥(n = 1⇥2⇥...⇥(n 1⇥2⇥...⇥(n /1⇥2/⇥...⇥(n k)⇥(n k+1)⇥...⇥n ///// =⇧i=k /1⇥2/⇥...⇥(n i=0 k) ///// 1 (n n! (k 1)!(n k)! k+1)⇥...⇥n k) i) Ensemble Cnk des parties à k éléments de l’ensemble En = { algorithme naïf : ⇥(k ⇥ nk ) n! (n k)! = 1⇥2⇥...⇥(n = coût minimum : k)⇥(n k+1)⇥...⇥n (n k)! k)⇥(n = 1⇥2⇥...⇥(n 1⇥2⇥...⇥(n /1⇥2/⇥...⇥(n k)⇥(n k+1)⇥...⇥n ///// =⇧i=k /1⇥2/⇥...⇥(n i=0 k) ///// nk est beaucoup plus grand que ⇧i=k i=0 1 (n 1 (n n! (k 1)!(n k)! k+1)⇥...⇥n k) i) i) Ensemble Cnk des parties à k éléments de l’ensemble En = { algorithme naïf : ⇥(k ⇥ nk ) n! (n k)! = 1⇥2⇥...⇥(n = coût minimum : k)⇥(n k+1)⇥...⇥n (n k)! k)⇥(n = 1⇥2⇥...⇥(n 1⇥2⇥...⇥(n /1⇥2/⇥...⇥(n k)⇥(n k+1)⇥...⇥n ///// =⇧i=k /1⇥2/⇥...⇥(n i=0 k) ///// nk est beaucoup plus grand que ⇧i=k i=0 1 (n 1 (n n! (k 1)!(n k)! k+1)⇥...⇥n k) i) i) Donc le rapport du coût de l’algorithme naïf au coût minimal Ensemble Cnk des parties à k éléments de l’ensemble En = { algorithme naïf : ⇥(k ⇥ nk ) n! (n k)! = 1⇥2⇥...⇥(n = coût minimum : k)⇥(n k+1)⇥...⇥n (n k)! k)⇥(n = 1⇥2⇥...⇥(n 1⇥2⇥...⇥(n /1⇥2/⇥...⇥(n k)⇥(n k+1)⇥...⇥n ///// =⇧i=k /1⇥2/⇥...⇥(n i=0 k) ///// nk est beaucoup plus grand que ⇧i=k i=0 1 (n 1 (n n! (k 1)!(n k)! k+1)⇥...⇥n k) i) i) Donc le rapport du coût de l’algorithme naïf au coût minimal k⇥nk = ⇧i =k 1 (n i ) i =0 (k 1)! Ensemble Cnk des parties à k éléments de l’ensemble En = { algorithme naïf : ⇥(k ⇥ nk ) n! (n k)! = 1⇥2⇥...⇥(n = coût minimum : k)⇥(n k+1)⇥...⇥n (n k)! k)⇥(n = 1⇥2⇥...⇥(n 1⇥2⇥...⇥(n /1⇥2/⇥...⇥(n k)⇥(n k+1)⇥...⇥n ///// =⇧i=k /1⇥2/⇥...⇥(n i=0 k) ///// nk est beaucoup plus grand que ⇧i=k i=0 1 (n 1 (n n! (k 1)!(n k)! k+1)⇥...⇥n k) i) i) Donc le rapport du coût de l’algorithme naïf au coût minimal k k⇥nk = i =k n1 ⇥ k! est supèrieur à k! ⇧i =k 1 (n i ) i =0 (k 1)! ⇧i =0 (n i) Ensemble Cnk des parties à k éléments de l’ensemble En = { algorithme naïf : ⇥(k ⇥ nk ) n! (n k)! = 1⇥2⇥...⇥(n = coût minimum : k)⇥(n k+1)⇥...⇥n (n k)! k)⇥(n = 1⇥2⇥...⇥(n 1⇥2⇥...⇥(n /1⇥2/⇥...⇥(n k)⇥(n k+1)⇥...⇥n ///// =⇧i=k /1⇥2/⇥...⇥(n i=0 k) ///// nk est beaucoup plus grand que ⇧i=k i=0 1 (n 1 (n n! (k 1)!(n k)! k+1)⇥...⇥n k) i) i) Donc le rapport du coût de l’algorithme naïf au coût minimal k k⇥nk = i =k n1 ⇥ k! est supèrieur à k! ⇧i =k 1 (n i ) i =0 (k 1)! ⇧i =0 (n i) Ça vaut le coup de tenter quelque chose par exemple quand k ⇡ n 2 Ensemble Cnk des parties à k éléments de l’ensemble En = {