201
Le problème du sac à dos

Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Le problème du sac à dos

Page 2: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ProblématiqueRésolutions théoriquesTests sur les partiesPrin ipe ré ursifRésolutions appro héesNé essité d'une résolution appro héePrin ipes généraux de la résolution appro héeTri par heuristiqueHeuristique F : (w , p) 7→p

wRe her he opérationnelle par programmation linéaireRésolution graphiqueMéthode du simplexeImplémentation Python de l'algorithme du simplexeCon lusionProblème du sa à dos par re her he opérationnellePortées du problème du sa à dos

Page 3: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Mise en pla e

Page 4: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Mise en pla eProblématique du sa à dos

Page 5: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Mise en pla eProblématique du sa à dos◮ n objets de valeurs positives w1, · · · ,wn

Page 6: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Mise en pla eProblématique du sa à dos◮ n objets de valeurs positives w1, · · · ,wn et de poidspositifs p1, · · · , pn

Page 7: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Mise en pla eProblématique du sa à dos◮ n objets de valeurs positives w1, · · · ,wn et de poidspositifs p1, · · · , pn◮ faire rentrer dans un sa des objets dont la somme despoids ne dépasse pas un seuil P [ ontrainte℄ et la sommedes valeurs est maximale

Page 8: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Mise en pla eProblématique du sa à dos◮ n objets de valeurs positives w1, · · · ,wn et de poidspositifs p1, · · · , pn◮ faire rentrer dans un sa des objets dont la somme despoids ne dépasse pas un seuil P [ ontrainte℄ et la sommedes valeurs est maximaleModélisation

Page 9: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Mise en pla eProblématique du sa à dos◮ n objets de valeurs positives w1, · · · ,wn et de poidspositifs p1, · · · , pn◮ faire rentrer dans un sa des objets dont la somme despoids ne dépasse pas un seuil P [ ontrainte℄ et la sommedes valeurs est maximaleModélisation◮ al uler max{∑

k∈A

wk | A ⊂ J1, nK et ∑

k∈A

pk 6 P

}.

Page 10: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ProblématiqueRésolutions théoriquesTests sur les partiesPrin ipe ré ursifRésolutions appro héesNé essité d'une résolution appro héePrin ipes généraux de la résolution appro héeTri par heuristiqueHeuristique F : (w , p) 7→p

wRe her he opérationnelle par programmation linéaireRésolution graphiqueMéthode du simplexeImplémentation Python de l'algorithme du simplexeCon lusionProblème du sa à dos par re her he opérationnellePortées du problème du sa à dos

Page 11: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Test sur P(n)

Page 12: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Test sur P(n)Prin ipe

Page 13: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Test sur P(n)Prin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids

Page 14: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Test sur P(n)Prin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ génération de P(n) par ré ursivité, ave n = len(L)

Page 15: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Test sur P(n)Prin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ génération de P(n) par ré ursivité, ave n = len(L)

◮ valeur_test ←− 0

Page 16: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Test sur P(n)Prin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ génération de P(n) par ré ursivité, ave n = len(L)

◮ valeur_test ←− 0◮ passage de revue des parties A dans P(n)

Page 17: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Test sur P(n)Prin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ génération de P(n) par ré ursivité, ave n = len(L)

◮ valeur_test ←− 0◮ passage de revue des parties A dans P(n)

◮ si π =∑

k∈A

L[k][2] 6 P et ω =∑

k∈A

L[k][1] > valeur_test :

Page 18: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Test sur P(n)Prin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ génération de P(n) par ré ursivité, ave n = len(L)

◮ valeur_test ←− 0◮ passage de revue des parties A dans P(n)

◮ si π =∑

k∈A

L[k][2] 6 P et ω =∑

k∈A

L[k][1] > valeur_test :⊲ mise à jour de valeur_test

Page 19: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Test sur P(n)Prin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ génération de P(n) par ré ursivité, ave n = len(L)

◮ valeur_test ←− 0◮ passage de revue des parties A dans P(n)

◮ si π =∑

k∈A

L[k][2] 6 P et ω =∑

k∈A

L[k][1] > valeur_test :⊲ mise à jour de valeur_test⊲ mise en mémoire dans Sac = [[L[k] for k in A], ω, π]

Page 20: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Test sur P(n)Prin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ génération de P(n) par ré ursivité, ave n = len(L)

◮ valeur_test ←− 0◮ passage de revue des parties A dans P(n)

◮ si π =∑

k∈A

L[k][2] 6 P et ω =∑

k∈A

L[k][1] > valeur_test :⊲ mise à jour de valeur_test⊲ mise en mémoire dans Sac = [[L[k] for k in A], ω, π]

◮ sortie : Sac

Page 21: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −

Page 22: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantage

Page 23: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantage◮ solution optimale au problème

Page 24: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantage◮ solution optimale au problèmeIn onvénients

Page 25: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantage◮ solution optimale au problèmeIn onvénients◮ omplexité en mémoire lourde pour P(n)

Page 26: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantage◮ solution optimale au problèmeIn onvénients◮ omplexité en mémoire lourde pour P(n)

◮ temps d'exé ution exponentiels :

Page 27: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantage◮ solution optimale au problèmeIn onvénients◮ omplexité en mémoire lourde pour P(n)

◮ temps d'exé ution exponentiels :

Page 28: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivité

Page 29: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivitéPrin ipe de la fon tion ré ursive Pb_Sa _Re (L,P)

Page 30: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivitéPrin ipe de la fon tion ré ursive Pb_Sa _Re (L,P)◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids

Page 31: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivitéPrin ipe de la fon tion ré ursive Pb_Sa _Re (L,P)◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ si L = [ ] ou (len(L) = 1 et L[0][2] > P), sortie :[[ ℄,0,0℄

Page 32: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivitéPrin ipe de la fon tion ré ursive Pb_Sa _Re (L,P)◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ si L = [ ] ou (len(L) = 1 et L[0][2] > P), sortie :[[ ℄,0,0℄◮ si len(L) = 1 et L[0][2] 6 P, sortie :[L,L[0℄[1℄,L[0℄[2℄℄

Page 33: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivitéPrin ipe de la fon tion ré ursive Pb_Sa _Re (L,P)◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ si L = [ ] ou (len(L) = 1 et L[0][2] > P), sortie :[[ ℄,0,0℄◮ si len(L) = 1 et L[0][2] 6 P, sortie :[L,L[0℄[1℄,L[0℄[2℄℄◮ si len(L) > 2 :

Page 34: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivitéPrin ipe de la fon tion ré ursive Pb_Sa _Re (L,P)◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ si L = [ ] ou (len(L) = 1 et L[0][2] > P), sortie :[[ ℄,0,0℄◮ si len(L) = 1 et L[0][2] 6 P, sortie :[L,L[0℄[1℄,L[0℄[2℄℄◮ si len(L) > 2 :

⊲ x ←− L[0]

Page 35: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivitéPrin ipe de la fon tion ré ursive Pb_Sa _Re (L,P)◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ si L = [ ] ou (len(L) = 1 et L[0][2] > P), sortie :[[ ℄,0,0℄◮ si len(L) = 1 et L[0][2] 6 P, sortie :[L,L[0℄[1℄,L[0℄[2℄℄◮ si len(L) > 2 :

⊲ x ←− L[0]⊲ Res1←− Pb_Sa _Re (L[1:℄,P)

Page 36: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivitéPrin ipe de la fon tion ré ursive Pb_Sa _Re (L,P)◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ si L = [ ] ou (len(L) = 1 et L[0][2] > P), sortie :[[ ℄,0,0℄◮ si len(L) = 1 et L[0][2] 6 P, sortie :[L,L[0℄[1℄,L[0℄[2℄℄◮ si len(L) > 2 :

⊲ x ←− L[0]⊲ Res1←− Pb_Sa _Re (L[1:℄,P)⊲ si x [2] > P , sortie Res1

Page 37: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivitéPrin ipe de la fon tion ré ursive Pb_Sa _Re (L,P)◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ si L = [ ] ou (len(L) = 1 et L[0][2] > P), sortie :[[ ℄,0,0℄◮ si len(L) = 1 et L[0][2] 6 P, sortie :[L,L[0℄[1℄,L[0℄[2℄℄◮ si len(L) > 2 :

⊲ x ←− L[0]⊲ Res1←− Pb_Sa _Re (L[1:℄,P)⊲ si x [2] > P , sortie Res1⊲ si x [2] 6 P , Res2←− PB_Sa _Re (L[1:℄,P-x[2℄) :

Page 38: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivitéPrin ipe de la fon tion ré ursive Pb_Sa _Re (L,P)◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ si L = [ ] ou (len(L) = 1 et L[0][2] > P), sortie :[[ ℄,0,0℄◮ si len(L) = 1 et L[0][2] 6 P, sortie :[L,L[0℄[1℄,L[0℄[2℄℄◮ si len(L) > 2 :

⊲ x ←− L[0]⊲ Res1←− Pb_Sa _Re (L[1:℄,P)⊲ si x [2] > P , sortie Res1⊲ si x [2] 6 P , Res2←− PB_Sa _Re (L[1:℄,P-x[2℄) :

⋄ si Res1[1] > Res2[1] + x [1], sortie : Res1

Page 39: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Ré ursivitéPrin ipe de la fon tion ré ursive Pb_Sa _Re (L,P)◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ si L = [ ] ou (len(L) = 1 et L[0][2] > P), sortie :[[ ℄,0,0℄◮ si len(L) = 1 et L[0][2] 6 P, sortie :[L,L[0℄[1℄,L[0℄[2℄℄◮ si len(L) > 2 :

⊲ x ←− L[0]⊲ Res1←− Pb_Sa _Re (L[1:℄,P)⊲ si x [2] > P , sortie Res1⊲ si x [2] 6 P , Res2←− PB_Sa _Re (L[1:℄,P-x[2℄) :

⋄ si Res1[1] > Res2[1] + x [1], sortie : Res1⋄ sinon, sortie :[[x℄+Res2[0℄,x[1℄+Res2[1℄,x[2℄+Res2[2℄℄

Page 40: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −

Page 41: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantages

Page 42: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantages◮ solution optimale au problème

Page 43: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantages◮ solution optimale au problème◮ temps de al uls réduits

Page 44: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantages◮ solution optimale au problème◮ temps de al uls réduitsIn onvénient

Page 45: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantages◮ solution optimale au problème◮ temps de al uls réduitsIn onvénient◮ temps d'exé ution en ore importants :

Page 46: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

+ et −Avantages◮ solution optimale au problème◮ temps de al uls réduitsIn onvénient◮ temps d'exé ution en ore importants :

Page 47: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ProblématiqueRésolutions théoriquesTests sur les partiesPrin ipe ré ursifRésolutions appro héesNé essité d'une résolution appro héePrin ipes généraux de la résolution appro héeTri par heuristiqueHeuristique F : (w , p) 7→p

wRe her he opérationnelle par programmation linéaireRésolution graphiqueMéthode du simplexeImplémentation Python de l'algorithme du simplexeCon lusionProblème du sa à dos par re her he opérationnellePortées du problème du sa à dos

Page 48: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro hée

Page 49: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls

Page 50: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

Page 51: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

◮ algorithme ré ursif au moins 30 fois plus rapide

Page 52: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

◮ algorithme ré ursif au moins 30 fois plus rapide◮ pour n = 30 objets, estimations :

Page 53: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

◮ algorithme ré ursif au moins 30 fois plus rapide◮ pour n = 30 objets, estimations :

{ pour la re her he dans P(n) : ≃ 6 heures et demie

Page 54: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

◮ algorithme ré ursif au moins 30 fois plus rapide◮ pour n = 30 objets, estimations :

{ pour la re her he dans P(n) : ≃ 6 heures et demiepour la re her he ré ursive : ≃ 10 minutes

Page 55: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

◮ algorithme ré ursif au moins 30 fois plus rapide◮ pour n = 30 objets, estimations :

{ pour la re her he dans P(n) : ≃ 6 heures et demiepour la re her he ré ursive : ≃ 10 minutes◮ pour n = 40 objets, estimations :

Page 56: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

◮ algorithme ré ursif au moins 30 fois plus rapide◮ pour n = 30 objets, estimations :

{ pour la re her he dans P(n) : ≃ 6 heures et demiepour la re her he ré ursive : ≃ 10 minutes◮ pour n = 40 objets, estimations :

{ pour la re her he dans P(n) : ≃ 333 jours

Page 57: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

◮ algorithme ré ursif au moins 30 fois plus rapide◮ pour n = 30 objets, estimations :

{ pour la re her he dans P(n) : ≃ 6 heures et demiepour la re her he ré ursive : ≃ 10 minutes◮ pour n = 40 objets, estimations :

{ pour la re her he dans P(n) : ≃ 333 jourspour la re her he ré ursive : ≃ 7 jours 5 heures

Page 58: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

◮ algorithme ré ursif au moins 30 fois plus rapide◮ pour n = 30 objets, estimations :

{ pour la re her he dans P(n) : ≃ 6 heures et demiepour la re her he ré ursive : ≃ 10 minutes◮ pour n = 40 objets, estimations :

{ pour la re her he dans P(n) : ≃ 333 jourspour la re her he ré ursive : ≃ 7 jours 5 heures◮ pour n = 50 objets, estimations :

Page 59: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

◮ algorithme ré ursif au moins 30 fois plus rapide◮ pour n = 30 objets, estimations :

{ pour la re her he dans P(n) : ≃ 6 heures et demiepour la re her he ré ursive : ≃ 10 minutes◮ pour n = 40 objets, estimations :

{ pour la re her he dans P(n) : ≃ 333 jourspour la re her he ré ursive : ≃ 7 jours 5 heures◮ pour n = 50 objets, estimations :

{ pour la re her he dans P(n) : ≃ 1114 années !!

Page 60: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

◮ algorithme ré ursif au moins 30 fois plus rapide◮ pour n = 30 objets, estimations :

{ pour la re her he dans P(n) : ≃ 6 heures et demiepour la re her he ré ursive : ≃ 10 minutes◮ pour n = 40 objets, estimations :

{ pour la re her he dans P(n) : ≃ 333 jourspour la re her he ré ursive : ≃ 7 jours 5 heures◮ pour n = 50 objets, estimations :

{ pour la re her he dans P(n) : ≃ 1114 années !!pour la re her he ré ursive : ≃ 20 années 283 jours

Page 61: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Né essité d'une résolution appro héeEstimations des temps de al uls◮ lois approximatives des temps d'exé ution des algorithmesexa ts : T (n) = 10a log n+b

◮ algorithme ré ursif au moins 30 fois plus rapide◮ pour n = 30 objets, estimations :

{ pour la re her he dans P(n) : ≃ 6 heures et demiepour la re her he ré ursive : ≃ 10 minutes◮ pour n = 40 objets, estimations :

{ pour la re her he dans P(n) : ≃ 333 jourspour la re her he ré ursive : ≃ 7 jours 5 heures◮ pour n = 50 objets, estimations :

{ pour la re her he dans P(n) : ≃ 1114 années !!pour la re her he ré ursive : ≃ 20 années 283 jours

Page 62: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Présentation du on eptPrin ipes et obje tifs

Page 63: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Présentation du on eptPrin ipes et obje tifs◮ avoir une résolution appro hée en temps raisonnable

Page 64: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Présentation du on eptPrin ipes et obje tifs◮ avoir une résolution appro hée en temps raisonnable◮ quanti�er la perte d'informations sur le résultat en sortie

Page 65: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Tri par Heuristique

Page 66: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Tri par HeuristiquePrin ipe

Page 67: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Tri par HeuristiquePrin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids

Page 68: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Tri par HeuristiquePrin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ F : (v , p) 7→ F (v , p) une fon tion heuristique réelle

Page 69: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Tri par HeuristiquePrin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ F : (v , p) 7→ F (v , p) une fon tion heuristique réelle◮ tri des objets selon F (valeur , poids) roissant

Page 70: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Tri par HeuristiquePrin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ F : (v , p) 7→ F (v , p) une fon tion heuristique réelle◮ tri des objets selon F (valeur , poids) roissant◮ remplissage du sa selon et ordre

Page 71: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Tri par HeuristiquePrin ipe◮ liste L d'objets de format ["objet",valeur,poids℄ et P la ontrainte de poids◮ F : (v , p) 7→ F (v , p) une fon tion heuristique réelle◮ tri des objets selon F (valeur , poids) roissant◮ remplissage du sa selon et ordre

b

bb

b

b

bb

b

bvaleurspoids

wk

pk

Page 72: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

w

Page 73: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe

Page 74: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

Page 75: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

b

Page 76: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

bb

Page 77: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

bb

b

Page 78: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

bb

b

b

Page 79: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

bb

b

b

b

Page 80: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

bb

b

b

b

b

Page 81: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

bb

b

b

b

b

b

Page 82: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

bb

b

b

b

b

bb

Page 83: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

bb

b

b

b

b

bb

b

Page 84: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

bb

b

b

b

b

bb

b

b

Page 85: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

bb

b

b

b

b

bb

b

b

b

bb

b

b

bb

b

bImplémentation : tri rapide par λ- al ul

Page 86: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wPrin ipe◮ tri des objets par quotients poids

valeur roissants

valeurspoids

wk

pk

b

bb

b

b

bb

b

bb

b

b

b

b

bb

b

b

b

bb

b

b

bb

b

bImplémentation : tri rapide par λ- al ulsorted(L,key=lambda objet : F(objet[1℄,objet[2℄))

Page 87: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wAvantages de ette heuristique

Page 88: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wAvantages de ette heuristique◮ temps de al uls très ourts :

Page 89: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wAvantages de ette heuristique◮ temps de al uls très ourts :

Page 90: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wAvantages de ette heuristique◮ sortie assez performante :

Page 91: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wAvantages de ette heuristique◮ sortie assez performante :

Page 92: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Heuristique F : (w , p) 7→p

wAvantages de ette heuristique◮ sortie assez performante :◮ meilleure sortie que pour les tris dé roissants sur lesvaleurs puis roissants sur les poids ou vi e-versa puisremplissage du sa selon et ordre

Page 93: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ProblématiqueRésolutions théoriquesTests sur les partiesPrin ipe ré ursifRésolutions appro héesNé essité d'une résolution appro héePrin ipes généraux de la résolution appro héeTri par heuristiqueHeuristique F : (w , p) 7→p

wRe her he opérationnelle par programmation linéaireRésolution graphiqueMéthode du simplexeImplémentation Python de l'algorithme du simplexeCon lusionProblème du sa à dos par re her he opérationnellePortées du problème du sa à dos

Page 94: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Exemple

Page 95: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ExempleDonnées

Page 96: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ExempleDonnées◮ produ tion de deux types de pro esseurs Pr A et Pr B

Page 97: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ExempleDonnées◮ produ tion de deux types de pro esseurs Pr A et Pr B

◮ tableau des ara téristiques :

Page 98: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ExempleDonnées◮ produ tion de deux types de pro esseurs Pr A et Pr B

◮ tableau des ara téristiques :Pr nbre barrettes tps (en min) pro�t (en e)A 2 3 400B 6 1 800

Page 99: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ExempleDonnées◮ produ tion de deux types de pro esseurs Pr A et Pr B

◮ tableau des ara téristiques :Pr nbre barrettes tps (en min) pro�t (en e)A 2 3 400B 6 1 800◮ ontraintes supplémentaires :

Page 100: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ExempleDonnées◮ produ tion de deux types de pro esseurs Pr A et Pr B

◮ tableau des ara téristiques :Pr nbre barrettes tps (en min) pro�t (en e)A 2 3 400B 6 1 800◮ ontraintes supplémentaires :

⊲ 24000 minutes disponibles pour l'assemblage

Page 101: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ExempleDonnées◮ produ tion de deux types de pro esseurs Pr A et Pr B

◮ tableau des ara téristiques :Pr nbre barrettes tps (en min) pro�t (en e)A 2 3 400B 6 1 800◮ ontraintes supplémentaires :

⊲ 24000 minutes disponibles pour l'assemblage⊲ au maximum 10000 pro esseurs à vendre

Page 102: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ExempleDonnées◮ produ tion de deux types de pro esseurs Pr A et Pr B

◮ tableau des ara téristiques :Pr nbre barrettes tps (en min) pro�t (en e)A 2 3 400B 6 1 800◮ ontraintes supplémentaires :

⊲ 24000 minutes disponibles pour l'assemblage⊲ au maximum 10000 pro esseurs à vendre⊲ au maximum 48000 barrettes

Page 103: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ExempleDonnées◮ produ tion de deux types de pro esseurs Pr A et Pr B

◮ tableau des ara téristiques :Pr nbre barrettes tps (en min) pro�t (en e)A 2 3 400B 6 1 800◮ ontraintes supplémentaires :

⊲ 24000 minutes disponibles pour l'assemblage⊲ au maximum 10000 pro esseurs à vendre⊲ au maximum 48000 barrettes

◮ obje tif : maximiser le pro�t

Page 104: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Reformulation du problème

Page 105: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Reformulation du problèmeDonnées

Page 106: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Reformulation du problèmeDonnées◮ x1 : nbre de Pr A ; x2 : nbre de Pr B

Page 107: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Reformulation du problèmeDonnées◮ x1 : nbre de Pr A ; x2 : nbre de Pr B

◮ fon tion obje tif : z = 400 x1 + 800 x2

Page 108: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Reformulation du problèmeDonnées◮ x1 : nbre de Pr A ; x2 : nbre de Pr B

◮ fon tion obje tif : z = 400 x1 + 800 x2◮ ontraintes :

2 x1 + 6 x2 6 48000x1 + x2 6 100003 x1 + x2 6 24000x1 > 0x2 > 0

Page 109: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Reformulation du problèmeDonnées◮ x1 : nbre de Pr A ; x2 : nbre de Pr B

◮ fon tion obje tif : z = 400 x1 + 800 x2◮ ontraintes :

2 x1 + 6 x2 6 48000x1 + x2 6 100003 x1 + x2 6 24000x1 > 0x2 > 0Prin ipe de résolution graphique

Page 110: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Reformulation du problèmeDonnées◮ x1 : nbre de Pr A ; x2 : nbre de Pr B

◮ fon tion obje tif : z = 400 x1 + 800 x2◮ ontraintes :

2 x1 + 6 x2 6 48000x1 + x2 6 100003 x1 + x2 6 24000x1 > 0x2 > 0Prin ipe de résolution graphique

◮ haque ontrainte ←→ demi-plan

Page 111: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Reformulation du problèmeDonnées◮ x1 : nbre de Pr A ; x2 : nbre de Pr B

◮ fon tion obje tif : z = 400 x1 + 800 x2◮ ontraintes :

2 x1 + 6 x2 6 48000x1 + x2 6 100003 x1 + x2 6 24000x1 > 0x2 > 0Prin ipe de résolution graphique

◮ haque ontrainte ←→ demi-plan◮ ensemble des ontraintes ←→ polygone onvexe C

Page 112: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Reformulation du problèmeDonnées◮ x1 : nbre de Pr A ; x2 : nbre de Pr B

◮ fon tion obje tif : z = 400 x1 + 800 x2◮ ontraintes :

2 x1 + 6 x2 6 48000x1 + x2 6 100003 x1 + x2 6 24000x1 > 0x2 > 0Prin ipe de résolution graphique

◮ haque ontrainte ←→ demi-plan◮ ensemble des ontraintes ←→ polygone onvexe C

◮ tra é des droites parallèles Dk : 400 x + 800 y = k

Page 113: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Reformulation du problèmeDonnées◮ x1 : nbre de Pr A ; x2 : nbre de Pr B

◮ fon tion obje tif : z = 400 x1 + 800 x2◮ ontraintes :

2 x1 + 6 x2 6 48000x1 + x2 6 100003 x1 + x2 6 24000x1 > 0x2 > 0Prin ipe de résolution graphique

◮ haque ontrainte ←→ demi-plan◮ ensemble des ontraintes ←→ polygone onvexe C

◮ tra é des droites parallèles Dk : 400 x + 800 y = k

◮ al ul de la plus grande valeur k telle que Dk ∩ C 6= ∅

Page 114: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

Page 115: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

x2 > 0

Page 116: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

x2 > 0

x 1>0

Page 117: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

x2 > 0

x 1>0x1 +

x2 6 10000

Page 118: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

x2 > 0

x 1>0x1 +

x2 6 100002 x1 + 6 x2 6 48000x1 + x2 6 10000

Page 119: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

x2 > 0

x 1>0x1 +

x2 6 100002 x1 + 6 x2 6 48000x1 + x2 6 100003x1

+x2

6 24000x1 +

x2 6 10000

Page 120: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

x2 > 0

x 1>0x1 +

x2 6 100002 x1 + 6 x2 6 48000x1 + x2 6 100003x1

+x2

6 24000x1 +

x2 6 10000b

b

b

b

b

C

Page 121: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

Page 122: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 0

Page 123: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 10 6

Page 124: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 1.5 · 10 6

Page 125: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 2 · 10 6

Page 126: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 2.5 · 10 6

Page 127: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 3 · 10 6

Page 128: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 3.5 · 10 6

Page 129: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 4 · 10 6

Page 130: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 4.5 · 10 6

Page 131: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 5 · 10 6

Page 132: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 5.5 · 10 6

Page 133: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 6 · 10 6

Page 134: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 6.5 · 10 6

Page 135: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 7 · 10 6

Page 136: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 6.8 · 10 6

Page 137: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 6.8 · 10 6

Page 138: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Résolution graphique

b

b

b

b

b

k = 6.8 · 10 6x1 = 3000

x2 = 7000

Page 139: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Méthode du simplexe

Page 140: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Méthode du simplexePrin ipes généraux

Page 141: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Méthode du simplexePrin ipes généraux◮ la fon tion obje tif z atteint un maximum en un sommetde C

Page 142: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Méthode du simplexePrin ipes généraux◮ la fon tion obje tif z atteint un maximum en un sommetde C

◮ transformation des ontraintes en égalités : ajout devariables auxiliaires

Page 143: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Méthode du simplexePrin ipes généraux◮ la fon tion obje tif z atteint un maximum en un sommetde C

◮ transformation des ontraintes en égalités : ajout devariables auxiliaires◮ navigation sur les sommets d'un polytope onvexe pouraugmenter z à partir d'un sommet initial eninter hangeant des variables de base et auxiliaires

Page 144: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Méthode du simplexePrin ipes généraux◮ la fon tion obje tif z atteint un maximum en un sommetde C

◮ transformation des ontraintes en égalités : ajout devariables auxiliaires◮ navigation sur les sommets d'un polytope onvexe pouraugmenter z à partir d'un sommet initial eninter hangeant des variables de base et auxiliaires◮ variables de base : variables n'apparaissant pas dans z etapparaissant dans la solution ourante du système

Page 145: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Méthode du simplexePrin ipes généraux◮ la fon tion obje tif z atteint un maximum en un sommetde C

◮ transformation des ontraintes en égalités : ajout devariables auxiliaires◮ navigation sur les sommets d'un polytope onvexe pouraugmenter z à partir d'un sommet initial eninter hangeant des variables de base et auxiliaires◮ variables de base : variables n'apparaissant pas dans z etapparaissant dans la solution ourante du système◮ systèmes linéaires de Cramer pour les variables de base :pivot de Gauss

Page 146: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Méthode du simplexePrin ipes généraux◮ la fon tion obje tif z atteint un maximum en un sommetde C

◮ transformation des ontraintes en égalités : ajout devariables auxiliaires◮ navigation sur les sommets d'un polytope onvexe pouraugmenter z à partir d'un sommet initial eninter hangeant des variables de base et auxiliaires◮ variables de base : variables n'apparaissant pas dans z etapparaissant dans la solution ourante du système◮ systèmes linéaires de Cramer pour les variables de base :pivot de Gauss◮ ondition d'arrêt lorsque les oe� ients devant lesvariables de base sont tous négatifs dans z

Page 147: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Appli ation à l'exemple

Page 148: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Appli ation à l'exempleSystème standardisé

Page 149: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Appli ation à l'exempleSystème standardisé◮ ontraintes :

2 x1 + 6 x2 + x3 = 48000x1 + x2 + x4 = 100003 x1 + x2 + x5 = 24000x1, x2, x3, x4, x5 > 0

Page 150: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Appli ation à l'exempleSystème standardisé◮ ontraintes :

2 x1 + 6 x2 + x3 = 48000x1 + x2 + x4 = 100003 x1 + x2 + x5 = 24000x1, x2, x3, x4, x5 > 0

◮ fon tion obje tif : z = 400 x1 + 800 x2

Page 151: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Appli ation à l'exempleSystème standardisé◮ ontraintes :

2 x1 + 6 x2 + x3 = 48000x1 + x2 + x4 = 100003 x1 + x2 + x5 = 24000x1, x2, x3, x4, x5 > 0

◮ fon tion obje tif : z = 400 x1 + 800 x2Solution de départ

Page 152: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Appli ation à l'exempleSystème standardisé◮ ontraintes :

2 x1 + 6 x2 + x3 = 48000x1 + x2 + x4 = 100003 x1 + x2 + x5 = 24000x1, x2, x3, x4, x5 > 0

◮ fon tion obje tif : z = 400 x1 + 800 x2Solution de départ◮ solution : x1 = x2 = 0 ; x3 = 48000, x4 = 10000 et

x5 = 24000

Page 153: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Appli ation à l'exempleSystème standardisé◮ ontraintes :

2 x1 + 6 x2 + x3 = 48000x1 + x2 + x4 = 100003 x1 + x2 + x5 = 24000x1, x2, x3, x4, x5 > 0

◮ fon tion obje tif : z = 400 x1 + 800 x2Solution de départ◮ solution : x1 = x2 = 0 ; x3 = 48000, x4 = 10000 et

x5 = 24000◮ obje tif asso ié : z = 0

Page 154: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéaires

Page 155: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 1

Page 156: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 1◮

x1 x2 x3 x4 x52 6 1 0 0 480001 1 0 1 0 100003 1 0 0 1 24000400 800 0 0 0 0

Page 157: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 1◮

x1 x2 x3 x4 x52 6 1 0 0 480001 1 0 1 0 100003 1 0 0 1 24000400 800 0 0 0 0◮ solution (0, 0, 48000, 10000, 24000) et z = 400x1 + 800x2

Page 158: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 1◮

x1 x2 x3 x4 x52 6 1 0 0 480001 1 0 1 0 100003 1 0 0 1 24000400 800 0 0 0 0◮ solution (0, 0, 48000, 10000, 24000) et z = 400x1 + 800x2◮ variables de base x3, x4, x5

Page 159: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 1◮

x1 x2 x3 x4 x52 6 1 0 0 480001 1 0 1 0 100003 1 0 0 1 24000400 800 0 0 0 0◮ solution (0, 0, 48000, 10000, 24000) et z = 400x1 + 800x2◮ variables de base x3, x4, x5◮ augmenter au maximum x2 (pour optimiser z) pourrespe ter les ontraintes : x2 ←− 8000

Page 160: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 1◮

x1 x2 x3 x4 x52 6 1 0 0 480001 1 0 1 0 100003 1 0 0 1 24000400 800 0 0 0 0◮ solution (0, 0, 48000, 10000, 24000) et z = 400x1 + 800x2◮ variables de base x3, x4, x5◮ augmenter au maximum x2 (pour optimiser z) pourrespe ter les ontraintes : x2 ←− 8000◮ annulation de x3 : x3 sort de la base et x2 rentre

Page 161: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 1◮

x1 x2 x3 x4 x52 6 1 0 0 480001 1 0 1 0 100003 1 0 0 1 24000400 800 0 0 0 0◮ solution (0, 0, 48000, 10000, 24000) et z = 400x1 + 800x2◮ variables de base x3, x4, x5◮ augmenter au maximum x2 (pour optimiser z) pourrespe ter les ontraintes : x2 ←− 8000◮ annulation de x3 : x3 sort de la base et x2 rentre◮ opération L1 ←− 1/6 L1 puis élimination de x2 dans lesautres lignes

Page 162: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 2◮

x1 x2 x3 x4 x51/3 1 1/6 0 0 80002/3 0 −1/6 1 0 20008/3 0 −1/6 0 1 16000400/3 0 −400/3 0 0 −6.4 106

Page 163: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 2◮

x1 x2 x3 x4 x51/3 1 1/6 0 0 80002/3 0 −1/6 1 0 20008/3 0 −1/6 0 1 16000400/3 0 −400/3 0 0 −6.4 106◮ solution (0, 8000, 0, 2000, 16000) et

z = 400/3x1 − 400/3x3 + 6.4 106

Page 164: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 2◮

x1 x2 x3 x4 x51/3 1 1/6 0 0 80002/3 0 −1/6 1 0 20008/3 0 −1/6 0 1 16000400/3 0 −400/3 0 0 −6.4 106◮ solution (0, 8000, 0, 2000, 16000) et

z = 400/3x1 − 400/3x3 + 6.4 106◮ variables de base x2, x4, x5

Page 165: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 2◮

x1 x2 x3 x4 x51/3 1 1/6 0 0 80002/3 0 −1/6 1 0 20008/3 0 −1/6 0 1 16000400/3 0 −400/3 0 0 −6.4 106◮ solution (0, 8000, 0, 2000, 16000) et

z = 400/3x1 − 400/3x3 + 6.4 106◮ variables de base x2, x4, x5◮ augmenter au maximum x1 (pour optimiser z) pourrespe ter les ontraintes : x1 ←− 3000

Page 166: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 2◮

x1 x2 x3 x4 x51/3 1 1/6 0 0 80002/3 0 −1/6 1 0 20008/3 0 −1/6 0 1 16000400/3 0 −400/3 0 0 −6.4 106◮ solution (0, 8000, 0, 2000, 16000) et

z = 400/3x1 − 400/3x3 + 6.4 106◮ variables de base x2, x4, x5◮ augmenter au maximum x1 (pour optimiser z) pourrespe ter les ontraintes : x1 ←− 3000◮ annulation de x4 : x4 sort de la base et x1 rentre

Page 167: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 2◮

x1 x2 x3 x4 x51/3 1 1/6 0 0 80002/3 0 −1/6 1 0 20008/3 0 −1/6 0 1 16000400/3 0 −400/3 0 0 −6.4 106◮ solution (0, 8000, 0, 2000, 16000) et

z = 400/3x1 − 400/3x3 + 6.4 106◮ variables de base x2, x4, x5◮ augmenter au maximum x1 (pour optimiser z) pourrespe ter les ontraintes : x1 ←− 3000◮ annulation de x4 : x4 sort de la base et x1 rentre◮ opération L2 ←− 3/2 L2 puis élimination de x1 dans lesautres lignes

Page 168: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 3◮

x1 x2 x3 x4 x50 1 1/4 −1/2 0 70001 0 −1/4 3/2 0 30000 0 1/2 −4 1 80000 0 −100 −200 0 −6.8 106

Page 169: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 3◮

x1 x2 x3 x4 x50 1 1/4 −1/2 0 70001 0 −1/4 3/2 0 30000 0 1/2 −4 1 80000 0 −100 −200 0 −6.8 106◮ solution (3000, 7000, 0, 0, 8000) et

z = −100x3 − 200x4 + 6.8 106

Page 170: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 3◮

x1 x2 x3 x4 x50 1 1/4 −1/2 0 70001 0 −1/4 3/2 0 30000 0 1/2 −4 1 80000 0 −100 −200 0 −6.8 106◮ solution (3000, 7000, 0, 0, 8000) et

z = −100x3 − 200x4 + 6.8 106◮ variables de base x1, x2, x5

Page 171: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesÉtape 3◮

x1 x2 x3 x4 x50 1 1/4 −1/2 0 70001 0 −1/4 3/2 0 30000 0 1/2 −4 1 80000 0 −100 −200 0 −6.8 106◮ solution (3000, 7000, 0, 0, 8000) et

z = −100x3 − 200x4 + 6.8 106◮ variables de base x1, x2, x5◮ augmentation des variables impossible sans diminuer z : ondition d'arrêt

Page 172: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesFin

Page 173: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesFin◮ solution optimale (3000, 7000, 0, 0, 8000)

Page 174: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Cal uls sur les systèmes linéairesFin◮ solution optimale (3000, 7000, 0, 0, 8000)◮ obje tif optimal : z = 6.8 106.

Page 175: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Implémentation Python de l'algorithme du simplexe

Page 176: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Implémentation Python de l'algorithme du simplexeS ript Python

Page 177: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Implémentation Python de l'algorithme du simplexeS ript Pythondef Algo_Simplexe(M_standard) :M=M_standard. opy()p,q=M.shapej_max=argmax(M[-1,:-1℄)while M[-1,j_max℄>0 :i_ligne=0val=inffor i in range(p) :if M[i,j_max℄>0 and M[i,-1℄>0 and M[i,-1℄/M[i,j_max℄< val :i_ligne=ival=M[i,-1℄/M[i,j_max℄M[i_ligne,:℄/=M[i_ligne,j_max℄for k in range(p) :if k!=i_ligne :M[k,:℄-=M[k,j_max℄*M[i_ligne,:℄j_max=argmax(M[-1,:-1℄)Res=[℄for j in range(q-1) :if M[-1,j℄==0 :for i in range(p) :if M[i,j℄!= 0 : # on repère la ase de la variable hors baseRes.append(M[i,-1℄)breakelse :Res.append(0) # variable de base nullereturn [Res,-M[-1,-1℄℄ # solution optimale, obje tif optimal

Page 178: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

ProblématiqueRésolutions théoriquesTests sur les partiesPrin ipe ré ursifRésolutions appro héesNé essité d'une résolution appro héePrin ipes généraux de la résolution appro héeTri par heuristiqueHeuristique F : (w , p) 7→p

wRe her he opérationnelle par programmation linéaireRésolution graphiqueMéthode du simplexeImplémentation Python de l'algorithme du simplexeCon lusionProblème du sa à dos par re her he opérationnellePortées du problème du sa à dos

Page 179: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Problème du sa à dos par re her he opérationnelle

Page 180: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Problème du sa à dos par re her he opérationnellePrin ipe

Page 181: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Problème du sa à dos par re her he opérationnellePrin ipe◮ obje tif : z =

n∑

k=1 xk wk

Page 182: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Problème du sa à dos par re her he opérationnellePrin ipe◮ obje tif : z =

n∑

k=1 xk wk/ ontrainte : n∑

k=1 xk pk 6 P

Page 183: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Problème du sa à dos par re her he opérationnellePrin ipe◮ obje tif : z =

n∑

k=1 xk wk/ ontrainte : n∑

k=1 xk pk 6 P

◮ optimisation ombinatoire : in onnues xk ∈ {0, 1}

Page 184: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Problème du sa à dos par re her he opérationnellePrin ipe◮ obje tif : z =

n∑

k=1 xk wk/ ontrainte : n∑

k=1 xk pk 6 P

◮ optimisation ombinatoire : in onnues xk ∈ {0, 1}◮ re her he opérationnelle : in onnues xk ∈ [0, 1]

Page 185: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Problème du sa à dos par re her he opérationnellePrin ipe◮ obje tif : z =

n∑

k=1 xk wk/ ontrainte : n∑

k=1 xk pk 6 P

◮ optimisation ombinatoire : in onnues xk ∈ {0, 1}◮ re her he opérationnelle : in onnues xk ∈ [0, 1]Exemple

Page 186: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Problème du sa à dos par re her he opérationnellePrin ipe◮ obje tif : z =

n∑

k=1 xk wk/ ontrainte : n∑

k=1 xk pk 6 P

◮ optimisation ombinatoire : in onnues xk ∈ {0, 1}◮ re her he opérationnelle : in onnues xk ∈ [0, 1]Exemple◮ n = 3, sa : [[11, 7], [8, 6], [5, 4]] et P = 10

Page 187: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Problème du sa à dos par re her he opérationnellePrin ipe◮ obje tif : z =

n∑

k=1 xk wk/ ontrainte : n∑

k=1 xk pk 6 P

◮ optimisation ombinatoire : in onnues xk ∈ {0, 1}◮ re her he opérationnelle : in onnues xk ∈ [0, 1]Exemple◮ n = 3, sa : [[11, 7], [8, 6], [5, 4]] et P = 10◮ tableau : x1 x2 x3 x4 x5 x6 x77 6 4 1 0 0 0 101 0 0 0 1 0 0 10 1 0 0 0 1 0 10 0 1 0 0 0 1 111 8 5 0 0 0 0 0

Page 188: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Di�érentes résolutions

Page 189: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Di�érentes résolutionsSolution exa te par ré ursivité

Page 190: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Di�érentes résolutionsSolution exa te par ré ursivité◮ solution optimale : [[8, 6], [5, 4]] de valeur 13

Page 191: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Di�érentes résolutionsSolution exa te par ré ursivité◮ solution optimale : [[8, 6], [5, 4]] de valeur 13Solution appro hée par heuristique

Page 192: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Di�érentes résolutionsSolution exa te par ré ursivité◮ solution optimale : [[8, 6], [5, 4]] de valeur 13Solution appro hée par heuristique◮ solution appro hée : [[11, 7]] de valeur 11

Page 193: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Di�érentes résolutionsSolution exa te par ré ursivité◮ solution optimale : [[8, 6], [5, 4]] de valeur 13Solution appro hée par heuristique◮ solution appro hée : [[11, 7]] de valeur 11Solution optimale en re her he opérationnelle

Page 194: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Di�érentes résolutionsSolution exa te par ré ursivité◮ solution optimale : [[8, 6], [5, 4]] de valeur 13Solution appro hée par heuristique◮ solution appro hée : [[11, 7]] de valeur 11Solution optimale en re her he opérationnelle◮ solution optimale : (1, 12 , 0, 0, 0, 12 , 1) de valeur z = 15

Page 195: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Di�érentes résolutionsSolution exa te par ré ursivité◮ solution optimale : [[8, 6], [5, 4]] de valeur 13Solution appro hée par heuristique◮ solution appro hée : [[11, 7]] de valeur 11Solution optimale en re her he opérationnelle◮ solution optimale : (1, 12 , 0, 0, 0, 12 , 1) de valeur z = 15◮ solution non entière ...

Page 196: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Portées du problème du sa à dos

Page 197: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Portées du problème du sa à dosImportan e pratique

Page 198: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Portées du problème du sa à dosImportan e pratique◮ problème universel trouvant des appli ations dansd'innombrables domaines (industriels, é onomiques, et .)

Page 199: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Portées du problème du sa à dosImportan e pratique◮ problème universel trouvant des appli ations dansd'innombrables domaines (industriels, é onomiques, et .)Importan e théorique

Page 200: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Portées du problème du sa à dosImportan e pratique◮ problème universel trouvant des appli ations dansd'innombrables domaines (industriels, é onomiques, et .)Importan e théorique◮ problème NP- omplet

Page 201: Le problème du sac à dos833duparc.free.fr/Cours_IPT_942/Sac.pdf · sac à dos n objets de valeurs p ositives w 1,···,w n et p oids p ositifs p 1,··· n faire rentrer dans un

Portées du problème du sa à dosImportan e pratique◮ problème universel trouvant des appli ations dansd'innombrables domaines (industriels, é onomiques, et .)Importan e théorique◮ problème NP- omplet◮ en lien dire t ave la onje ture P = NP.