cours d'algorithmique 11 / intranet 1 9 janvier 2006 cours dalgorithmique n p - complétude

162
Cours d'algorithmique 11 Cours d'algorithmique 11 / Intranet / Intranet 1 9 janvier 2006 9 janvier 2006 Cours d’Algorithmique Cours d’Algorithmique N P N P - - complétude. complétude.

Upload: asce-soler

Post on 03-Apr-2015

111 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 119 janvier 20069 janvier 2006

Cours d’AlgorithmiqueCours d’Algorithmique

N PN P--complétude.complétude.

Page 2: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 22

• Trier et chercher, recherche textuelleTrier et chercher, recherche textuelle• Listes et arbresListes et arbres• Le back-trackLe back-track• Arbres équilibrésArbres équilibrés• Récursivité et induction sur la structureRécursivité et induction sur la structure• Divide and conquer, algorithmes gloutonsDivide and conquer, algorithmes gloutons• Minimax, alpha-betaMinimax, alpha-beta• DérécursionDérécursion• NP-complétudeNP-complétude• Logique de HoareLogique de Hoare• Programmation dynamiqueProgrammation dynamique• Complexité et calculabilitéComplexité et calculabilité

Les grandes lignes du coursLes grandes lignes du cours

Page 3: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 33

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• Nous avons vu le « action selection problem » :Nous avons vu le « action selection problem » :

– en back-track avec une complexité exponentielle,en back-track avec une complexité exponentielle,

– en programmation dynamique avec une complexité en programmation dynamique avec une complexité quadratique,quadratique,

– comme algorithme glouton avec une complexité linéaire.comme algorithme glouton avec une complexité linéaire.

Page 4: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 44

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• Nous avons vu le « action selection problem » :Nous avons vu le « action selection problem » :

– en back-track avec une complexité exponentielle,en back-track avec une complexité exponentielle,

– en programmation dynamique avec une complexité en programmation dynamique avec une complexité quadratique,quadratique,

– comme algorithme glouton avec une complexité linéaire.comme algorithme glouton avec une complexité linéaire.

• Nous avons vu la « satisfaction d’une formule Nous avons vu la « satisfaction d’une formule logique » :logique » :

Page 5: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 55

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• Nous avons vu le « action selection problem » :Nous avons vu le « action selection problem » :

– en back-track avec une complexité exponentielle,en back-track avec une complexité exponentielle,

– en programmation dynamique avec une complexité en programmation dynamique avec une complexité quadratique,quadratique,

– comme algorithme glouton avec une complexité linéaire.comme algorithme glouton avec une complexité linéaire.

• Nous avons vu la « satisfaction d’une formule logique » :Nous avons vu la « satisfaction d’une formule logique » :

– en back-track avec une complexité exponentielle,en back-track avec une complexité exponentielle, (équivalant au parcours de la table de vérité),(équivalant au parcours de la table de vérité),

Page 6: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 66

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• Nous avons vu le « action selection problem » :Nous avons vu le « action selection problem » :

– en back-track avec une complexité exponentielle,en back-track avec une complexité exponentielle,

– en programmation dynamique avec une complexité quadratique,en programmation dynamique avec une complexité quadratique,

– comme algorithme glouton avec une complexité linéaire.comme algorithme glouton avec une complexité linéaire.

• Nous avons vu la « satisfaction d’une formule logique » :Nous avons vu la « satisfaction d’une formule logique » :

– en back-track avec une complexité exponentielle,en back-track avec une complexité exponentielle, (équivalant au parcours de la table de vérité),(équivalant au parcours de la table de vérité),

– et puis … ?et puis … ?

Page 7: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 77

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• Nous avons vu le « action selection problem » :Nous avons vu le « action selection problem » :

– en back-track avec une complexité exponentielle,en back-track avec une complexité exponentielle,

– en programmation dynamique avec une complexité quadratique,en programmation dynamique avec une complexité quadratique,

– comme algorithme glouton avec une complexité linéaire.comme algorithme glouton avec une complexité linéaire.

• Nous avons vu la « satisfaction d’une formule logique » :Nous avons vu la « satisfaction d’une formule logique » :

– en back-track avec une complexité exponentielle,en back-track avec une complexité exponentielle, (équivalant au parcours de la table de vérité),(équivalant au parcours de la table de vérité),

– et puis … ?et puis … ?

– Rien ! ! !Rien ! ! !

Page 8: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 88

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• Nous avons vu le « action selection problem » :Nous avons vu le « action selection problem » :

– en back-track avec une complexité exponentielle,en back-track avec une complexité exponentielle,

– en programmation dynamique avec une complexité quadratique,en programmation dynamique avec une complexité quadratique,

– comme algorithme glouton avec une complexité linéaire.comme algorithme glouton avec une complexité linéaire.

• Nous avons vu la « satisfaction d’une formule logique » :Nous avons vu la « satisfaction d’une formule logique » :

– en back-track avec une complexité exponentielle,en back-track avec une complexité exponentielle, (équivalant au parcours de la table de vérité),(équivalant au parcours de la table de vérité),

– et puis … ?et puis … ?

– Rien ! ! !Rien ! ! !

Page 9: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 99

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• La question :La question :

• Y aurait-il par hasard des problèmes dont la Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ?complexité intrinsèque est exponentielle ?

Page 10: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 1010

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• La question :La question :

• Y aurait-il par hasard des problèmes dont la Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ?complexité intrinsèque est exponentielle ?

• Pour un tel problème, tout algorithme pour le Pour un tel problème, tout algorithme pour le résoudre serait exponentiel en temps !résoudre serait exponentiel en temps !

Page 11: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 1111

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• La question :La question :

• Y aurait-il par hasard des problèmes dont la Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ?complexité intrinsèque est exponentielle ?

• Pour un tel problème, tout algorithme pour le Pour un tel problème, tout algorithme pour le résoudre serait exponentiel en temps !résoudre serait exponentiel en temps !

• La réponse :La réponse :

• Probablement OUI !Probablement OUI !

Page 12: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 1212

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• La question :La question :

• Y aurait-il par hasard des problèmes dont la complexité Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ?intrinsèque est exponentielle ?

• Pour un tel problème, tout algorithme pour le résoudre Pour un tel problème, tout algorithme pour le résoudre serait exponentiel en temps !serait exponentiel en temps !

• La réponse :La réponse :

• Probablement OUI !Probablement OUI !

• Malheureusement ! ! !Malheureusement ! ! !

Page 13: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 1313

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• La question :La question :

• Y aurait-il par hasard des problèmes dont la complexité intrinsèque Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ?est exponentielle ?

• Pour un tel problème, tout algorithme pour le résoudre serait Pour un tel problème, tout algorithme pour le résoudre serait exponentiel en temps !exponentiel en temps !

• La réponse :La réponse :

• Probablement OUI !Probablement OUI !

• Malheureusement ! ! !Malheureusement ! ! !

• On ne sait rien de définitif ! ! !On ne sait rien de définitif ! ! !

Page 14: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 1414

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• La question :La question :

• Y aurait-il par hasard des problèmes dont la complexité intrinsèque Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ?est exponentielle ?

• Pour un tel problème, tout algorithme pour le résoudre serait Pour un tel problème, tout algorithme pour le résoudre serait exponentiel en temps !exponentiel en temps !

• La réponse :La réponse :

• Probablement OUI !Probablement OUI !

• Malheureusement ! ! !Malheureusement ! ! !

• On ne sait rien de définitif ! ! !On ne sait rien de définitif ! ! !

P = N PP = N P

ou bienou bien

P = N PP = N P

//

Page 15: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 1515

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• La question :La question :

• Y aurait-il par hasard des problèmes dont la complexité intrinsèque Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ?est exponentielle ?

• Pour un tel problème, tout algorithme pour le résoudre serait Pour un tel problème, tout algorithme pour le résoudre serait exponentiel en temps !exponentiel en temps !

• La réponse :La réponse :

• Probablement OUI !Probablement OUI !

• Malheureusement ! ! !Malheureusement ! ! !

• On ne sait rien de définitif ! ! !On ne sait rien de définitif ! ! !

P = N PP = N P

ou bienou bien

P = N PP = N P

//

Page 16: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 1616

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• La question de la « La question de la « N P N P – complétude » :– complétude » :

P = N PP = N P

ou bienou bien

P = N PP = N P

//

Page 17: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 1717

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• On connaît des centaines et des centaines de On connaît des centaines et des centaines de problèmes « problèmes « N P N P – complets » :– complets » :

Page 18: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 1818

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• On connaît des centaines et des centaines de On connaît des centaines et des centaines de problèmes « problèmes « N P N P – complets » :– complets » :

– Si Si P P == N P N P (probable) :(probable) :

Tous ont une complexité exponentielle !Tous ont une complexité exponentielle !

//

Page 19: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 1919

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• On connaît des centaines et des centaines de On connaît des centaines et des centaines de problèmes « problèmes « N P N P – complets » :– complets » :

– Si Si P P == N P N P (probable) :(probable) :

Tous ont une complexité exponentielle !Tous ont une complexité exponentielle !

– Si Si P P = = N P N P (peu probable) :(peu probable) :

Tous ont une complexité polynômiale !Tous ont une complexité polynômiale !

//

Page 20: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 2020

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• On connaît des centaines et des centaines de On connaît des centaines et des centaines de problèmes « problèmes « N P N P – complets » :– complets » :

– Si Si P P == N P N P (probable) :(probable) :

Tous ont une complexité exponentielle !Tous ont une complexité exponentielle !

– Si Si P P = = N P N P (peu probable) :(peu probable) :

Tous ont une complexité polynômiale !Tous ont une complexité polynômiale !

• C’est sans doute le problème informatique non résolu C’est sans doute le problème informatique non résolu le plus important ! ! !le plus important ! ! !

//

Page 21: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 2121

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

Les problèmes « Les problèmes « N P N P – complets » sont aussi appelés :– complets » sont aussi appelés :

INTRACTABLES !!!INTRACTABLES !!!

Page 22: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 2222

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

Les problèmes « Les problèmes « N P N P – complets » sont aussi appelés :– complets » sont aussi appelés :

INTRACTABLES !!!INTRACTABLES !!!

Parce que : Parce que : 2^10 = 1024 2^10 = 1024 2^20 = 10485762^20 = 1048576 2^30 = 10737418242^30 = 1073741824 2^50 = 11258999068426242^50 = 1125899906842624

Page 23: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 2323

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

Les problèmes « Les problèmes « N P N P – complets » sont aussi appelés :– complets » sont aussi appelés :

INTRACTABLES !!!INTRACTABLES !!!

Parce que : Parce que : 2^10 = 1024 2^10 = 1024 2^20 = 10485762^20 = 1048576 2^30 = 10737418242^30 = 1073741824 2^50 = 11258999068426242^50 = 1125899906842624

Page 24: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 2424

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• Un problème « Un problème « N P N P – complet » est,– complet » est,

– de manière informelle,de manière informelle,– mais correspondant à la pratique : mais correspondant à la pratique :

Page 25: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 2525

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• Un problème « Un problème « N P N P – complet » est,– complet » est,

– de manière informelle,de manière informelle,– mais correspondant à la pratique : mais correspondant à la pratique :

• un problème de décision ( OUI – NON )un problème de décision ( OUI – NON )

Page 26: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 2626

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• Un problème « Un problème « N P N P – complet » est,– complet » est,

– de manière informelle,de manière informelle,– mais correspondant à la pratique : mais correspondant à la pratique :

• un problème de décision ( OUI – NON )un problème de décision ( OUI – NON )

• qui se résout (pour l’heure) par back-trackqui se résout (pour l’heure) par back-track (ou équivalent en complexité).(ou équivalent en complexité).

Page 27: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 2727

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• Un problème « Un problème « N P N P – complet » est,– complet » est,

– de manière informelle,de manière informelle,– mais correspondant à la pratique : mais correspondant à la pratique :

• un problème de décision ( OUI – NON )un problème de décision ( OUI – NON )

• qui se résout (pour l’heure) par back-trackqui se résout (pour l’heure) par back-track (ou équivalent en complexité).(ou équivalent en complexité).

Plus difficile :Plus difficile :

difficiledifficile

Page 28: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 2828

Le problèmeLe problème----------------------------------------------------------------------------------------------------------------------------------

• Un problème « Un problème « N P N P – complet » est,– complet » est,

– de manière informelle,de manière informelle,– mais correspondant à la pratique : mais correspondant à la pratique :

• un problème de décision ( OUI – NON )un problème de décision ( OUI – NON )

• qui se résout (pour l’heure) par back-trackqui se résout (pour l’heure) par back-track (ou équivalent en complexité).(ou équivalent en complexité).

Plus difficile :Plus difficile :

difficiledifficile

d’optimisation ( le meilleur, … )d’optimisation ( le meilleur, … )

completcomplet

Page 29: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 2929

Des exemplesDes exemples----------------------------------------------------------------------------------------------------------------------------------

• « SAT » est « « SAT » est « N P N P –complet » :–complet » :

• « n » variables logiques,« n » variables logiques,

• une formule logique construite sur ces variables une formule logique construite sur ces variables à l’aide de à l’aide de et, ou et, ou et et not.not.

Page 30: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 3030

Des exemplesDes exemples----------------------------------------------------------------------------------------------------------------------------------

• « SAT » est « « SAT » est « N P N P –complet » :–complet » :

• « n » variables logiques,« n » variables logiques,

• une formule logique construite sur ces variables une formule logique construite sur ces variables à l’aide de à l’aide de et, ou et, ou et et not.not.

• La question ( toute simple ) :La question ( toute simple ) :

Est-il possible de donner des valeursEst-il possible de donner des valeurs aux variables logiques de manière àaux variables logiques de manière à

rendre vraie la formule ?rendre vraie la formule ?

Page 31: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 3131

Des exemplesDes exemples----------------------------------------------------------------------------------------------------------------------------------

• « SAT » est « « SAT » est « N P N P –complet » :–complet » :

• « n » variables logiques,« n » variables logiques,

• une formule logique construite sur ces variables à une formule logique construite sur ces variables à l’aide de l’aide de et, ou et, ou et et not.not.

• La question ( toute simple ) :La question ( toute simple ) :

Est-il possible de donner des valeursEst-il possible de donner des valeurs aux variables logiques de manière àaux variables logiques de manière à

rendre vraie la formule ?rendre vraie la formule ?

• La solution :La solution :

Essayez tout ! Essayez tout !

Page 32: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 3232

Des exemplesDes exemples----------------------------------------------------------------------------------------------------------------------------------

• Attention :Attention :

• Parfois c’est simple ! ! !Parfois c’est simple ! ! !

Page 33: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 3333

Des exemplesDes exemples----------------------------------------------------------------------------------------------------------------------------------

• Attention :Attention :

• Parfois c’est simple ! ! !Parfois c’est simple ! ! !

• a b . . . za b . . . z

a v ( . . . )a v ( . . . )

vvvv vv

Page 34: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 3434

Des exemplesDes exemples----------------------------------------------------------------------------------------------------------------------------------

• Attention :Attention :

• Parfois c’est simple ! ! !Parfois c’est simple ! ! !

• a b . . . za b . . . z

a v ( . . . )a v ( . . . )

• Mais, dans le cas général (c’est-à-dire le plus Mais, dans le cas général (c’est-à-dire le plus

souvent),souvent),

c’est difficile ! ! !c’est difficile ! ! !

vvvv vv

Page 35: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 3535

Des exemplesDes exemples----------------------------------------------------------------------------------------------------------------------------------

• Le « Voyageur de Commerce », en anglais Le « Voyageur de Commerce », en anglais « Traveling Salesman Problem » ( TSP ), est « « Traveling Salesman Problem » ( TSP ), est « N P N P –difficile » :–difficile » :

• « n » villes,« n » villes,

• un réseau routier entre ces villes avec les un réseau routier entre ces villes avec les distances,distances,

Page 36: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 3636

Des exemplesDes exemples----------------------------------------------------------------------------------------------------------------------------------

• Le « Voyageur de Commerce », en anglais Le « Voyageur de Commerce », en anglais « Traveling Salesman Problem » ( TSP ), est « « Traveling Salesman Problem » ( TSP ), est « N P N P ––difficile » :difficile » :

• « n » villes,« n » villes,

• un réseau routier entre ces villes avec les un réseau routier entre ces villes avec les distances,distances,

• La question :La question :

Quel est le coût du circuit (point de départQuel est le coût du circuit (point de départ = point d’arrivée) le moins cher qui visite= point d’arrivée) le moins cher qui visite

chaque ville une et une seule fois ?chaque ville une et une seule fois ?

Page 37: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 3737

Des exemplesDes exemples----------------------------------------------------------------------------------------------------------------------------------

• Le « Voyageur de Commerce », en anglais « Traveling Le « Voyageur de Commerce », en anglais « Traveling Salesman Problem » ( TSP ), est « Salesman Problem » ( TSP ), est « N P N P –difficile » :–difficile » :

• « n » villes,« n » villes,

• un réseau routier entre ces villes avec les distances,un réseau routier entre ces villes avec les distances,

• La question :La question :

Quel est le coût du circuit (point de départQuel est le coût du circuit (point de départ = point d’arrivée) le moins cher qui visite= point d’arrivée) le moins cher qui visite

chaque ville une et une seule fois ?chaque ville une et une seule fois ?

• La solution :La solution :

Essayez tout ! Essayez tout !

Page 38: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 3838

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

P L U SP L U S

P R E C I S E M E N TP R E C I S E M E N T

. . .. . .

Page 39: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 3939

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « P »P » ! !

• Ce sont les problèmes qui acceptent un algorithme : Ce sont les problèmes qui acceptent un algorithme :

– polynômial,polynômial,

– déterministe,déterministe,

– qui résout toutes les instances.qui résout toutes les instances.

Page 40: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 4040

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « P »P » ! !

• Ce sont les problèmes qui acceptent un algorithme : Ce sont les problèmes qui acceptent un algorithme :

– polynômial,polynômial,

– déterministe,déterministe,

– qui résout toutes les instances.qui résout toutes les instances.

La complexité est un polynômeLa complexité est un polynômeen termes de la taille du problème.en termes de la taille du problème.

Page 41: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 4141

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « P »P » ! !

• Ce sont les problèmes qui acceptent un algorithme : Ce sont les problèmes qui acceptent un algorithme :

– polynômial,polynômial,

– déterministe,déterministe,

– qui résout toutes les instances.qui résout toutes les instances.

La complexité est un polynômeLa complexité est un polynômeen termes de la taille du problème.en termes de la taille du problème.

Il n’y a aucun élément de chance ouIl n’y a aucun élément de chance oud’indication venant de l’extérieur.d’indication venant de l’extérieur.

Page 42: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 4242

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « P »P » ! !

• Ce sont les problèmes qui acceptent un algorithme : Ce sont les problèmes qui acceptent un algorithme :

– polynômial,polynômial,

– déterministe,déterministe,

– qui résout toutes les instances.qui résout toutes les instances.

La complexité est un polynômeLa complexité est un polynômeen termes de la taille du problème.en termes de la taille du problème.

Il n’y a aucun élément de chance ouIl n’y a aucun élément de chance oud’indication venant de l’extérieur.d’indication venant de l’extérieur.

Aucune instanceAucune instancen’est trop difficile.n’est trop difficile.

Page 43: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 4343

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « P »P » ! !

• Ce sont les problèmes qui acceptent un algorithme : Ce sont les problèmes qui acceptent un algorithme :

– polynômial,polynômial,

– déterministe,déterministe,

– qui résout toutes les instances.qui résout toutes les instances.

La complexité est un polynômeLa complexité est un polynômeen termes de la taille du problème.en termes de la taille du problème.

Il n’y a aucun élément de chance ouIl n’y a aucun élément de chance oud’indication venant de l’extérieur.d’indication venant de l’extérieur.

Aucune instanceAucune instancen’est trop difficile.n’est trop difficile.

Page 44: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 4444

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

• Ce sont les problèmes qui acceptent un algorithme : Ce sont les problèmes qui acceptent un algorithme :

– polynômial,polynômial,

– nonnon--déterministe,déterministe,

– qui résout toutes les instances.qui résout toutes les instances.

Page 45: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 4545

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

• Ce sont les problèmes qui acceptent un algorithme : Ce sont les problèmes qui acceptent un algorithme :

– polynômial,polynômial,

– nonnon--déterministe,déterministe,

– qui résout toutes les instances.qui résout toutes les instances.

Page 46: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 4646

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

• Ce sont les problèmes qui acceptent un algorithme : Ce sont les problèmes qui acceptent un algorithme :

– polynômial,polynômial,

– nonnon--déterministe,déterministe,

– qui résout toutes les instances.qui résout toutes les instances.

Il peut y a avoir des élémentsIl peut y a avoir des élémentsde chance ou desde chance ou des

indications venant de l’extérieur.indications venant de l’extérieur.

Page 47: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 4747

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

• Ce sont les problèmes qui acceptent un algorithme : Ce sont les problèmes qui acceptent un algorithme :

– polynômial,polynômial,

– nonnon--déterministe,déterministe,

– qui résout toutes les instances.qui résout toutes les instances.

Il peut y a avoir des élémentsIl peut y a avoir des élémentsde chance ou desde chance ou des

indications venant de l’extérieur.indications venant de l’extérieur.

Page 48: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 4848

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « NN P »P » ! !

• Il est clair que : Il est clair que :

P N PP N P

UU

Page 49: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 4949

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « NN P »P » ! !

• Il est clair que : Il est clair que :

P N PP N P

• Mais ?Mais ?

P = N P P = N P ou ou P = N P P = N PUU

//

Page 50: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 5050

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « NN P »P » ! !

• Il est clair que : Il est clair que :

P N PP N P

• Mais ?Mais ?

P = N P P = N P ou ou P = N P P = N PUU

//

Page 51: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 5151

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Page 52: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 5252

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Page 53: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 5353

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Page 54: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 5454

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Vous pouvez bien-sûrVous pouvez bien-sûrfaire du back-track !faire du back-track !

Mais, c’est très, trèsMais, c’est très, trèscoûteux ! ! ! ! ! !coûteux ! ! ! ! ! !

Page 55: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 5555

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Page 56: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 5656

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Page 57: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 5757

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Page 58: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 5858

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Page 59: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 5959

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Page 60: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 6060

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Page 61: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 6161

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Page 62: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 6262

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La classe de problèmes « La classe de problèmes « N N P »P » ! !

ICI !ICI !

Page 63: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 6363

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Nous remplaçons une exploration à l’aide du back-Nous remplaçons une exploration à l’aide du back-track track

– par un appel à l’oracle.par un appel à l’oracle.

Page 64: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 6464

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Nous remplaçons une exploration à l’aide du back-Nous remplaçons une exploration à l’aide du back-track track

– par un appel à l’oracle.par un appel à l’oracle.

• L’oracle répond au bout de . . . ?L’oracle répond au bout de . . . ?

Page 65: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 6565

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Nous remplaçons une exploration à l’aide du back-Nous remplaçons une exploration à l’aide du back-track track

– par un appel à l’oracle.par un appel à l’oracle.

• L’oracle répond au bout de . . . ?L’oracle répond au bout de . . . ?

– La complexité de l’oracle est bien-sûr en O ( 1 ) .La complexité de l’oracle est bien-sûr en O ( 1 ) .

Page 66: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 6666

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Nous remplaçons une exploration à l’aide du back-track Nous remplaçons une exploration à l’aide du back-track

– par un appel à l’oracle.par un appel à l’oracle.

• L’oracle répond au bout de . . . ?L’oracle répond au bout de . . . ?

– La complexité de l’oracle est bien-sûr en O ( 1 ) .La complexité de l’oracle est bien-sûr en O ( 1 ) .

• Je sais réaliser un oracle en temps exponentiel !Je sais réaliser un oracle en temps exponentiel !

– Il suffit de faire un back-track en cachette ! ! !Il suffit de faire un back-track en cachette ! ! !

Page 67: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 6767

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Une autre façon de voir les choses :Une autre façon de voir les choses :

• SiSi

P = N PP = N P

• alorsalors

l’oracle, c’est-à-dire le choixl’oracle, c’est-à-dire le choix

peut toujours être calculé en temps polynômial !peut toujours être calculé en temps polynômial !

Page 68: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 6868

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Autre formulation de la classe de Autre formulation de la classe de problèmes « problèmes « N N P »P » ! !

Page 69: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 6969

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Autre formulation de la classe de Autre formulation de la classe de problèmes « problèmes « N N P »P » ! !

• Ce sont les problèmes qui : Ce sont les problèmes qui :

– acceptent, pour chaque instance, un nombre acceptent, pour chaque instance, un nombre borné de candidats à être la solution,borné de candidats à être la solution,

– pour lesquels, la vérification qu’un candidat pour lesquels, la vérification qu’un candidat quelconque est solution appartient à « quelconque est solution appartient à « P P  ». ».

Page 70: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 7070

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Autre formulation de la classe de Autre formulation de la classe de problèmes « problèmes « N N P »P » ! !

• Ce sont les problèmes qui : Ce sont les problèmes qui :

– acceptent, pour chaque instance, un nombre acceptent, pour chaque instance, un nombre borné de candidats à être la solution,borné de candidats à être la solution,

– pour lesquels, la vérification qu’un candidat pour lesquels, la vérification qu’un candidat quelconque est solution appartient à « quelconque est solution appartient à « P P  ». ».

Page 71: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 7171

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Autre formulation de la classe de Autre formulation de la classe de problèmes « problèmes « N N P »P » ! !

• Ce sont les problèmes qui : Ce sont les problèmes qui :

– acceptent, pour chaque instance, un nombre acceptent, pour chaque instance, un nombre borné de candidats à être la solution,borné de candidats à être la solution,

– pour lesquels, la vérification qu’un candidat pour lesquels, la vérification qu’un candidat quelconque est solution appartient à « quelconque est solution appartient à « P P  ». ».

Page 72: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 7272

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Autre formulation de la classe de Autre formulation de la classe de problèmes « problèmes « N N P »P » ! !

• Ce sont les problèmes qui : Ce sont les problèmes qui :

– acceptent, pour chaque instance, un nombre acceptent, pour chaque instance, un nombre borné de candidats à être la solution,borné de candidats à être la solution,

– pour lesquels, la vérification qu’un candidat pour lesquels, la vérification qu’un candidat quelconque est solution appartient à « quelconque est solution appartient à « P P  ». ».

Page 73: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 7373

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Théorème :Théorème :

P N PP N P

UU

Page 74: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 7474

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Théorème :Théorème :

P N PP N P

UU

N PN P

PP

Page 75: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 7575

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Théorème :Théorème :

P N PP N P

UU

N PN P

PP

P = N PP = N P c’est-à-dire c’est-à-dire N P \ P = N P \ P = oo||?? ??

Page 76: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 7676

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Théorème :Théorème :

P N PP N P

UU

N PN P

PP

P = N PP = N P c’est-à-dire c’est-à-dire N P \ P = N P \ P = oo||?? ??

? ? ? ? ?? ? ? ? ?

Page 77: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 7777

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Théorème :Théorème :

P N PP N P

UU

N PN P

PPSATSAT

SATSATTSPTSP

TSPTSP

Où sont SAT et TSP ?Où sont SAT et TSP ?

Page 78: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 7878

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Définissons la classe « Définissons la classe « N P C N P C  », c’est-à-dire les  », c’est-à-dire les problèmes « Nproblèmes « N--PP--complets » :complets » :

N PN P

PP

Page 79: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 7979

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Définissons la classe « Définissons la classe « N P C N P C  », c’est-à-dire les  », c’est-à-dire les problèmes « Nproblèmes « N--PP--complets » :complets » :

N PN P

PP

N P CN P C

Page 80: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 8080

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Définissons la classe « Définissons la classe « N P C N P C  », c’est-à-dire les  », c’est-à-dire les problèmes « Nproblèmes « N--PP--complets » :complets » :

N PN P

PP

N P CN P C

Facile.Facile.

Difficile.Difficile.

Page 81: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 8181

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Définissons la classe « Définissons la classe « N P C N P C  », c’est-à-dire les  », c’est-à-dire les problèmes « Nproblèmes « N--PP--complets » :complets » :

N PN P

PP

N P CN P C

Ce seront les problèmes les plus difficiles de « Ce seront les problèmes les plus difficiles de « N P » !N P » !

Facile.Facile.

Difficile.Difficile.

Page 82: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 8282

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Définissons la classe « Définissons la classe « N P C N P C  », c’est-à-dire les  », c’est-à-dire les problèmes « Nproblèmes « N--PP--complets » :complets » :

N PN P

PP

N P CN P C

Ce seront les problèmes les plus difficiles de « Ce seront les problèmes les plus difficiles de « N P » !N P » !

L’idée : Si eux sont dans « L’idée : Si eux sont dans « PP », alors  », alors « « P = N P P = N P »» ! ! ! ! ! !

Facile.Facile.

Difficile.Difficile.

Page 83: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 8383

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Définissons la classe « Définissons la classe « N P C N P C  », c’est-à-dire les  », c’est-à-dire les problèmes « Nproblèmes « N--PP--complets » :complets » :

N PN P

PP

N P CN P C

Ce seront les problèmes les plus difficiles de « Ce seront les problèmes les plus difficiles de « N P » !N P » !

L’idée : Si eux sont dans « L’idée : Si eux sont dans « PP », alors  », alors « « P = N P N P CP = N P N P C » » ! ! ! ! ! !

Facile.Facile.

Difficile.Difficile.

UU

Page 84: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 8484

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Il nous faut une notion de traduction !Il nous faut une notion de traduction !

– Soit un problème P : D Soit un problème P : D --> BOOL> BOOL

– Soit un problème P : D Soit un problème P : D --> BOOL> BOOL

1111

2222

Page 85: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 8585

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Il nous faut une notion de traduction !Il nous faut une notion de traduction !

– Soit un problème P : D Soit un problème P : D --> BOOL> BOOL

– Soit un problème P : D Soit un problème P : D --> BOOL> BOOL

• P se réduit en P , noté P <= P , si et P se réduit en P , noté P <= P , si et seulement si :seulement si :

1111

2222

11 1122 22

Page 86: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 8686

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Il nous faut une notion de traduction !Il nous faut une notion de traduction !

– Soit un problème P : D Soit un problème P : D --> BOOL> BOOL

– Soit un problème P : D Soit un problème P : D --> BOOL> BOOL

• P se réduit en P , noté P <= P , si et P se réduit en P , noté P <= P , si et seulement si :seulement si :

– il existe f : D il existe f : D --> D> D

1111

2222

11 1122 22

11 22

Page 87: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 8787

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Il nous faut une notion de traduction !Il nous faut une notion de traduction !

– Soit un problème P : D Soit un problème P : D --> BOOL> BOOL

– Soit un problème P : D Soit un problème P : D --> BOOL> BOOL

• P se réduit en P , noté P <= P , si et seulement si :P se réduit en P , noté P <= P , si et seulement si :

– il existe f : D il existe f : D --> D> D

– telle que pour tout x telle que pour tout x D : D :

P ( x ) = P ( f ( x ) )P ( x ) = P ( f ( x ) )

1111

2222

11 1122 22

11 22

11

11 22

Page 88: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 8888

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• L’idée derrière la traduction :L’idée derrière la traduction :

PP11

xx

Page 89: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 8989

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• L’idée derrière la traduction :L’idée derrière la traduction :

PP11

xx Vrai ou FauxVrai ou FauxCalcul !Calcul !

Page 90: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 9090

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• L’idée derrière la traduction :L’idée derrière la traduction :

PP11

xx Vrai ou FauxVrai ou FauxCalcul !Calcul !

PP22

f ( x )f ( x )

Traduction !Traduction !

Page 91: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 9191

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• L’idée derrière la traduction :L’idée derrière la traduction :

PP11

xx Vrai ou FauxVrai ou FauxCalcul !Calcul !

PP22

f ( x )f ( x )

Traduction !Traduction !

Vrai ou FauxVrai ou FauxCalcul !Calcul !

Page 92: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 9292

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• L’idée derrière la traduction :L’idée derrière la traduction :

PP11

xx Vrai ou FauxVrai ou FauxCalcul !Calcul !

PP22

f ( x )f ( x )

Traduction !Traduction !

Vrai ou FauxVrai ou FauxCalcul !Calcul !

Le mêmeLe mêmerésultat !résultat !

Page 93: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 9393

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Un exemple :Un exemple :

– Les booléens : Vrai Faux Les booléens : Vrai Faux et ou not et ou not

– Les entiers : 1 0 * Les entiers : 1 0 * maxmax ( 1 ( 1 -- _ ) _ )

Page 94: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 9494

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Un exemple :Un exemple :

– Les booléens : Vrai Faux Les booléens : Vrai Faux et ou not et ou not

– Les entiers : 1 0 * Les entiers : 1 0 * maxmax ( 1 ( 1 -- _ ) _ )

f :f :

Page 95: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 9595

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Un exemple :Un exemple :

– Les booléens : Vrai Faux Les booléens : Vrai Faux et ou not et ou not

– Les entiers : 1 0 * Les entiers : 1 0 * maxmax ( 1 ( 1 -- _ ) _ )

• Théorème :Théorème :

– F = Vrai si et seulement si f ( F ) = 1F = Vrai si et seulement si f ( F ) = 1

f :f :

BOOLBOOL BOOLBOOL

Page 96: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 9696

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Un exemple :Un exemple :

– Les booléens : Vrai Faux Les booléens : Vrai Faux et ou not et ou not

– Les entiers : 1 0 * Les entiers : 1 0 * maxmax ( 1 ( 1 -- _ ) _ )

• Théorème :Théorème :

– F = Vrai si et seulement si f ( F ) = 1F = Vrai si et seulement si f ( F ) = 1

f :f :

BOOLBOOL BOOLBOOL

Vrai Vrai et et ( Faux ( Faux ouou notnot ( Faux ) ) = Vrai ( Faux ) ) = Vrai

Page 97: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 9797

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Un exemple :Un exemple :

– Les booléens : Vrai Faux Les booléens : Vrai Faux et ou not et ou not

– Les entiers : 1 0 * Les entiers : 1 0 * maxmax ( 1 ( 1 -- _ ) _ )

• Théorème :Théorème :

– F = Vrai si et seulement si f ( F ) = 1F = Vrai si et seulement si f ( F ) = 1

f :f :

BOOLBOOL BOOLBOOL

Vrai Vrai et et ( Faux ( Faux ouou notnot ( Faux ) ) = Vrai ( Faux ) ) = Vrai

1 * ( 0 1 * ( 0 maxmax ( 1 ( 1 -- 0 ) ) = 1 0 ) ) = 1

Page 98: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 9898

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Si P <= P et que A résout P :Si P <= P et que A résout P :11 22 22 22

Page 99: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 9999

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Si P <= P et que A résout P :Si P <= P et que A résout P :11 22 22 22

yyAA

22P ( y )P ( y )22

Page 100: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 100100

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Si P <= P et que A résout P :Si P <= P et que A résout P :11 22 22 22

yy P ( y )P ( y )22

AA22

xxff

f ( x )f ( x ) P ( f ( x ) )P ( f ( x ) )22

Page 101: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 101101

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Si P <= P et que A résout P :Si P <= P et que A résout P :11 22 22 22

yy P ( y )P ( y )22

AA22

xxff

f ( x )f ( x ) P ( f ( x ) )P ( f ( x ) )22xx P ( x )P ( x )11

Par définition !Par définition !

==

Page 102: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 102102

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Si P <= P et que A résout P :Si P <= P et que A résout P :11 22 22 22

yy P ( y )P ( y )22

AA22

xxff

f ( x )f ( x ) P ( f ( x ) )P ( f ( x ) )22xx P ( x )P ( x )11

Page 103: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 103103

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Si P <= P et que A résout P :Si P <= P et que A résout P :11 22 22 22

yy P ( y )P ( y )22

AA22

xxff

f ( x )f ( x ) P ( f ( x ) )P ( f ( x ) )22xx P ( x )P ( x )11

Page 104: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 104104

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Si P <= P et que A résout P :Si P <= P et que A résout P :11 22 22 22

yy P ( y )P ( y )22

AA22xx

fff ( x )f ( x ) P ( f ( x ) )P ( f ( x ) )22xx P ( x )P ( x )11AA

11

Page 105: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 105105

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Si P <= P et que A résout P :Si P <= P et que A résout P :

• Complexité :Complexité :

Si f Si f PP et A et A PP , alors A , alors A PP ! !

11 22 22 22

yy P ( y )P ( y )22

AA22xx

fff ( x )f ( x ) P ( f ( x ) )P ( f ( x ) )22xx P ( x )P ( x )11AA

11

22 11

Page 106: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 106106

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Il nous faut une réduction en temps raisonnable !Il nous faut une réduction en temps raisonnable !

• P se réduit polynômialement en P , noté P <= P se réduit polynômialement en P , noté P <= P , si et seulement si :P , si et seulement si :

– il existe f : D il existe f : D --> D avec f > D avec f PP

– telle que pour tout x telle que pour tout x D : D :

P ( x ) = P ( f ( x ) )P ( x ) = P ( f ( x ) )

11 1122 22

11 22

11

11 22

PP

Page 107: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 107107

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Il nous faut une réduction en temps raisonnable !Il nous faut une réduction en temps raisonnable !

• P se réduit polynômialement en P , noté P <= P , si et P se réduit polynômialement en P , noté P <= P , si et seulement si :seulement si :

– il existe f : D il existe f : D --> D avec f > D avec f PP

– telle que pour tout x telle que pour tout x D : D :

P ( x ) = P ( f ( x ) )P ( x ) = P ( f ( x ) )

• <= est un pré-ordre :<= est un pré-ordre :

– réflexitivité, transitivité, OK. réflexitivité, transitivité, OK.

– Non anti-symétrique : P <= P et P <= P ,Non anti-symétrique : P <= P et P <= P ,

mais P = Pmais P = P

11 1122 22

11 22

11

11 22

PP

PP

11 22PP 22 11PP

2211//

Page 108: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 108108

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Théorème :Théorème :

• Soient P et P avec P <= P :Soient P et P avec P <= P :

– Si P Si P PP alors P alors P PP . .

– Si P Si P PP alors P alors P PP . .

11 1122 22

22

22//11

PP

11

//

Page 109: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 109109

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Théorème :Théorème :

• Soient P et P avec P <= P :Soient P et P avec P <= P :

– Si P Si P PP alors P alors P PP . .

– Si P Si P PP alors P alors P PP . .

• Donc, P est au moins aussi difficile que P .Donc, P est au moins aussi difficile que P .

11 1122 22

22

22//11

PP

1122

11

//

Page 110: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 110110

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Théorème :Théorème :

• Soient P et P avec P <= P :Soient P et P avec P <= P :

– Si P Si P PP alors P alors P PP . .

– Si P Si P PP alors P alors P PP . .

• Donc, P est au moins aussi difficile que P .Donc, P est au moins aussi difficile que P .

• Preuve (première condition) :Preuve (première condition) :

– Si P Si P PP alors il existe A pour le résoudre de manière alors il existe A pour le résoudre de manière déterministe et en tempsdéterministe et en temps polynômial ! polynômial !

– Il suffit de composer A avec la fonction de traduction f .Il suffit de composer A avec la fonction de traduction f .

11 1122 22

22

22//11

PP

1122

11

//

22 22

22

Page 111: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 111111

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Théorème :Théorème :

• Soient P et P avec P <= P :Soient P et P avec P <= P :

– Si P Si P PP alors P alors P PP . .

– Si P Si P PP alors P alors P PP . .

• Donc, P est au moins aussi difficile que P .Donc, P est au moins aussi difficile que P .

• Preuve (seconde condition) :Preuve (seconde condition) :

– Par absurde : Il n’est pas possible que P Par absurde : Il n’est pas possible que P PP et que P et que P PP . .

– Il existerait A dans Il existerait A dans P P pour résoudre P et il suffirait depour résoudre P et il suffirait de

composer A avec la fonction de traduction f . . .composer A avec la fonction de traduction f . . .

11 1122 22

22

22//11

PP

1122

11

//

22 22

22

22//11

Page 112: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 112112

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Définition :Définition :

• La classe « La classe « N P CN P C » est la classe des problèmes P tels  » est la classe des problèmes P tels que :que :

– P P N PN P . .

– Pour tout Q Pour tout Q N PN P on a : Q <= P . on a : Q <= P .PP

Page 113: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 113113

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Définition :Définition :

• La classe « La classe « N P CN P C » est la classe des problèmes P tels  » est la classe des problèmes P tels que :que :

– P P N PN P . .

– Pour tout Q Pour tout Q N PN P on a : Q <= P . on a : Q <= P .

• Tout le monde se réduit vers P .Tout le monde se réduit vers P .

PP

Page 114: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 114114

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Définition :Définition :

• La classe « La classe « N P CN P C » est la classe des problèmes P tels  » est la classe des problèmes P tels que :que :

– P P N PN P . .

– Pour tout Q Pour tout Q N PN P on a : Q <= P . on a : Q <= P .

• Tout le monde se réduit vers P .Tout le monde se réduit vers P .

• P est donc le plus difficile ! ! !P est donc le plus difficile ! ! !

PP

Page 115: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 115115

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Définition :Définition :

• La classe « La classe « N P CN P C » est la classe des problèmes P tels que : » est la classe des problèmes P tels que :

– P P N PN P . .

– Pour tout Q Pour tout Q N PN P on a : Q <= P . on a : Q <= P .

• Tout le monde se réduit vers P .Tout le monde se réduit vers P .

• P est donc le plus difficile ! ! !P est donc le plus difficile ! ! !

• Si P , P’ Si P , P’ N P CN P C , alors il sont « ex aequo » en difficulté : , alors il sont « ex aequo » en difficulté :

P <= P’ et P’ <= P .P <= P’ et P’ <= P .

PP

PP PP

Page 116: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 116116

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Schématiquement :Schématiquement :

N PN PN P CN P C PP P’P’

Page 117: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 117117

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Schématiquement :Schématiquement :

N PN PN P CN P C PP P’P’<=<=

PP

>=>=PP

Page 118: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 118118

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Schématiquement :Schématiquement :

N PN PN P CN P C PP P’P’<=<=

PP

>=>=PP

<=

<= PP

AA

Page 119: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 119119

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Schématiquement :Schématiquement :

N PN PN P CN P C PP P’P’<=<=

PP

>=>=PP

<=

<= PP

AA

>=

>=

PPBB

Page 120: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 120120

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Schématiquement :Schématiquement :

N PN PN P CN P C PP P’P’<=<=

PP

>=>=PP

<=

<= PP

AA

>=

>=

PPBB

<=

<= PP

CC

Page 121: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 121121

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Schématiquement :Schématiquement :

• Globalement,Globalement,

– il suffit de savoir résoudre un seul problème, P par exemple,il suffit de savoir résoudre un seul problème, P par exemple,

– et de traduire tous les autres vers P .et de traduire tous les autres vers P .

N PN PN P CN P C PP P’P’<=<=

PP

>=>=PP

<=

<= PP

AA

>=

>=

PPBB

<=

<= PP

CC

Page 122: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 122122

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Schématiquement :Schématiquement :

• Globalement,Globalement,

– il suffit de savoir résoudre un seul problème, P par exemple,il suffit de savoir résoudre un seul problème, P par exemple,

– et de traduire tous les autres vers P .et de traduire tous les autres vers P .

N PN PN P CN P C PP P’P’<=<=

PP

>=>=PP

<=

<= PP

AA

>=

>=

PPBB

<=

<= PP

CC

Page 123: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 123123

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Et si « Et si « N P CN P C » était vide ? ? ? » était vide ? ? ?

– C’est-à-dire, un tel problème universel n’existe pas ! ! C’est-à-dire, un tel problème universel n’existe pas ! ! !!

Page 124: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 124124

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Et si « Et si « N P CN P C » était vide ? ? ? » était vide ? ? ?

– C’est-à-dire, un tel problème universel n’existe pas ! ! C’est-à-dire, un tel problème universel n’existe pas ! ! !!

• Théorème (Cook, 1971) :Théorème (Cook, 1971) :

– SAT SAT N P CN P C . .

Page 125: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 125125

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Et si « Et si « N P CN P C » était vide ? ? ? » était vide ? ? ?

– C’est-à-dire, un tel problème universel n’existe pas ! ! C’est-à-dire, un tel problème universel n’existe pas ! ! !!

• Théorème (Cook, 1971) :Théorème (Cook, 1971) :

– SAT SAT N P CN P C . .

• Il n’y a pas plus difficile (dans Il n’y a pas plus difficile (dans N P N P C) que la C) que la logique.logique.

Page 126: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 126126

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Et si « Et si « N P CN P C » était vide ? ? ? » était vide ? ? ?

– C’est-à-dire, un tel problème universel n’existe pas ! ! !C’est-à-dire, un tel problème universel n’existe pas ! ! !

• Théorème (Cook, 1971) :Théorème (Cook, 1971) :

– SAT SAT N P CN P C . .

• Il n’y a pas plus difficile (dans Il n’y a pas plus difficile (dans N P N P C) que la logique.C) que la logique.

• Principe de la preuve :Principe de la preuve :

– Tout problème dans « Tout problème dans « N PN P » peut être traduit en une  » peut être traduit en une formule logique.formule logique.

Page 127: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 127127

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Et si « Et si « N P CN P C » était vide ? ? ? » était vide ? ? ?

– C’est-à-dire, un tel problème universel n’existe pas ! ! !C’est-à-dire, un tel problème universel n’existe pas ! ! !

• Théorème (Cook, 1971) :Théorème (Cook, 1971) :

– SAT SAT N P CN P C . .

• Il n’y a pas plus difficile (dans Il n’y a pas plus difficile (dans N P N P C) que la logique.C) que la logique.

• Principe de la preuve :Principe de la preuve :

– Tout problème dans « Tout problème dans « N PN P » peut être traduit en une formule logique. » peut être traduit en une formule logique.

– Analogie : Tout texte peut être traduit en une formule alphabétique.Analogie : Tout texte peut être traduit en une formule alphabétique.

Page 128: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 128128

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Conséquences :Conséquences :

• S’il existe un seul problème PS’il existe un seul problème P N P CN P C

– pour lequel on trouve un algorithme en temps pour lequel on trouve un algorithme en temps polynômial et déterministe,polynômial et déterministe,

– alors alors P = N P P = N P !!

Page 129: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 129129

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Conséquences :Conséquences :

• S’il existe un seul problème PS’il existe un seul problème P N P CN P C

– pour lequel on trouve un algorithme en temps pour lequel on trouve un algorithme en temps polynômial et déterministe,polynômial et déterministe,

– alors alors P = N P P = N P !!

Page 130: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 130130

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Conséquences :Conséquences :

• S’il existe un seul problème PS’il existe un seul problème P N P CN P C

– pour lequel on trouve un algorithme en temps pour lequel on trouve un algorithme en temps polynômial et déterministe,polynômial et déterministe,

– alors alors P = N P P = N P !!

Page 131: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 131131

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Conséquences :Conséquences :

• S’il existe un seul problème PS’il existe un seul problème P N P CN P C

– pour lequel on trouve un algorithme en temps polynômial pour lequel on trouve un algorithme en temps polynômial et déterministe,et déterministe,

– alors alors P = N P P = N P !!

• S’il existe un seul problème PS’il existe un seul problème P N P CN P C

– pour lequel on prouve qu’un algorithme en temps pour lequel on prouve qu’un algorithme en temps polynômial et déterministe ne peut pas exister,polynômial et déterministe ne peut pas exister,

– alors alors P = N P P = N P !!

//

Page 132: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 132132

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Conséquences :Conséquences :

• S’il existe un seul problème PS’il existe un seul problème P N P CN P C

– pour lequel on trouve un algorithme en temps polynômial pour lequel on trouve un algorithme en temps polynômial et déterministe,et déterministe,

– alors alors P = N P P = N P !!

• S’il existe un seul problème PS’il existe un seul problème P N P CN P C

– pour lequel on prouve qu’un algorithme en temps pour lequel on prouve qu’un algorithme en temps polynômial et déterministe ne peut pas exister,polynômial et déterministe ne peut pas exister,

– alors alors P = N P P = N P !!

//

Page 133: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 133133

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Conséquences :Conséquences :

• S’il existe un seul problème PS’il existe un seul problème P N P CN P C

– pour lequel on trouve un algorithme en temps polynômial pour lequel on trouve un algorithme en temps polynômial et déterministe,et déterministe,

– alors alors P = N P P = N P !!

• S’il existe un seul problème PS’il existe un seul problème P N P CN P C

– pour lequel on prouve qu’un algorithme en temps pour lequel on prouve qu’un algorithme en temps polynômial et déterministe ne peut pas exister,polynômial et déterministe ne peut pas exister,

– alors alors P = N P P = N P !!

//

Page 134: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 134134

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Concrètement :Concrètement :

• Vous avez un problème qui vous résiste !Vous avez un problème qui vous résiste !

Page 135: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 135135

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Concrètement :Concrètement :

• Vous avez un problème qui vous résiste !Vous avez un problème qui vous résiste !

• Essayez de savoir s’il est Essayez de savoir s’il est NN--PP--complet !complet !

– le Garey and Johnson,le Garey and Johnson,

– ou Internet,ou Internet,

– ou prouvez-le vous-même.ou prouvez-le vous-même.

Page 136: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 136136

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Concrètement :Concrètement :

• Vous avez un problème qui vous résiste !Vous avez un problème qui vous résiste !

• Essayez de savoir s’il est Essayez de savoir s’il est NN--PP--complet !complet !

– le Garey and Johnson,le Garey and Johnson,

– ou Internet,ou Internet,

– ou prouvez-le vous-même.ou prouvez-le vous-même.

• Comment faire ?Comment faire ?

Page 137: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 137137

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Concrètement :Concrètement :

• Vous avez un problème qui vous résiste !Vous avez un problème qui vous résiste !

• Essayez de savoir s’il est Essayez de savoir s’il est NN--PP--complet !complet !

– le Garey and Johnson,le Garey and Johnson,

– ou Internet,ou Internet,

– ou prouvez-le vous-même.ou prouvez-le vous-même.

• Comment faire ?Comment faire ?

– Prouvez que votre problème P est dans Prouvez que votre problème P est dans N P N P etet

Page 138: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 138138

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Concrètement :Concrètement :

• Vous avez un problème qui vous résiste !Vous avez un problème qui vous résiste !

• Essayez de savoir s’il est Essayez de savoir s’il est NN--PP--complet !complet !

– le Garey and Johnson,le Garey and Johnson,

– ou Internet,ou Internet,

– ou prouvez-le vous-même.ou prouvez-le vous-même.

• Comment faire ?Comment faire ?

– Prouvez que votre problème P est dans Prouvez que votre problème P est dans N P N P etet

– prenez un problème A de prenez un problème A de N P C N P C et montrez que A <= Pet montrez que A <= P

PP

Page 139: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 139139

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Concrètement :Concrètement :

• Si, par malheur, il l’est . . .Si, par malheur, il l’est . . .

Page 140: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 140140

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Concrètement :Concrètement :

• Si, par malheur, il l’est . . .Si, par malheur, il l’est . . .

– Est-ce que j’ai vraiment besoin de ce résultat ?Est-ce que j’ai vraiment besoin de ce résultat ?

Page 141: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 141141

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Concrètement :Concrètement :

• Si, par malheur, il l’est . . .Si, par malheur, il l’est . . .

– Est-ce que j’ai vraiment besoin de ce résultat ?Est-ce que j’ai vraiment besoin de ce résultat ?

– Si oui . . .Si oui . . .

• Est-ce que mon instance est par chance suffisamment Est-ce que mon instance est par chance suffisamment petite ?petite ?

Page 142: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 142142

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Concrètement :Concrètement :

• Si, par malheur, il l’est . . .Si, par malheur, il l’est . . .

– Est-ce que j’ai vraiment besoin de ce résultat ?Est-ce que j’ai vraiment besoin de ce résultat ?

– Si oui . . .Si oui . . .

• Est-ce que mon instance est par chance suffisamment petite ?Est-ce que mon instance est par chance suffisamment petite ?

– Est-ce que je peux me contenter d’un résultat approché ?Est-ce que je peux me contenter d’un résultat approché ?

• L’idée derrière le résultat approché :L’idée derrière le résultat approché :

• Il est peut-être pas loin d’être optimal ( par exemple à 5% deIl est peut-être pas loin d’être optimal ( par exemple à 5% de

l’optimum ), mais il est dans « l’optimum ), mais il est dans « PP » ( par exemple en n^2 ) . » ( par exemple en n^2 ) .

Page 143: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 143143

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Quelques problèmes de « Quelques problèmes de « N P CN P C » ! » !

• SATSAT

– « n » variables logiques et une formule « F » construite sur « n » variables logiques et une formule « F » construite sur ces variables à l’aide de ces variables à l’aide de et et , , ou ou ou ou not not ..

– La question : F peut-elle prendre la valeur Vrai pour un La question : F peut-elle prendre la valeur Vrai pour un choix adéquat des valeurs des variables ?choix adéquat des valeurs des variables ?

Page 144: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 144144

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Quelques problèmes de « Quelques problèmes de « N P CN P C » ! » !

• SATSAT

– « n » variables logiques et une formule « F » construite sur ces « n » variables logiques et une formule « F » construite sur ces variables à l’aide de variables à l’aide de et et , , ou ou ou ou not not ..

– La question : F peut-elle prendre la valeur Vrai pour un choix La question : F peut-elle prendre la valeur Vrai pour un choix adéquat des valeurs des variables ?adéquat des valeurs des variables ?

• 3-SAT3-SAT

– « n » variables logiques et une formule « F » en forme normale « n » variables logiques et une formule « F » en forme normale conjonctive avec 3 littéraux par disjonction.conjonctive avec 3 littéraux par disjonction.

Exemple : ( x v x v Exemple : ( x v x v x ) ( x v x ) ( x v x v x v x ) x )

– Même question !Même question !

vv

11 33 55 33 22 44

Page 145: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 145145

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Quelques problèmes de « Quelques problèmes de « N P CN P C » ! » !

• SATSAT

– « n » variables logiques et une formule « F » construite sur ces variables à « n » variables logiques et une formule « F » construite sur ces variables à l’aide de l’aide de et et , , ou ou ou ou not not ..

– La question : F peut-elle prendre la valeur Vrai pour un choix adéquat des La question : F peut-elle prendre la valeur Vrai pour un choix adéquat des valeurs des variables ?valeurs des variables ?

• 3-SAT3-SAT

– « n » variables logiques et une formule « F » en forme normale conjonctive « n » variables logiques et une formule « F » en forme normale conjonctive avec 3 littéraux par disjonction.avec 3 littéraux par disjonction.

Exemple : ( x v x v Exemple : ( x v x v x ) ( x v x ) ( x v x v x v x ) x )

– Même question !Même question !

• 2-SAT 2-SAT PP 11 33 55 33 22 44

vv

Page 146: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 146146

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Quelques problèmes de « Quelques problèmes de « N P CN P C » ! » !

• SATSAT

– « n » variables logiques et une formule « F » construite sur ces variables à « n » variables logiques et une formule « F » construite sur ces variables à l’aide de l’aide de et et , , ou ou ou ou not not ..

– La question : F peut-elle prendre la valeur Vrai pour un choix adéquat des La question : F peut-elle prendre la valeur Vrai pour un choix adéquat des valeurs des variables ?valeurs des variables ?

• 3-SAT3-SAT

– « n » variables logiques et une formule « F » en forme normale conjonctive « n » variables logiques et une formule « F » en forme normale conjonctive avec 3 littéraux par disjonction.avec 3 littéraux par disjonction.

Exemple : ( x v x v Exemple : ( x v x v x ) ( x v x ) ( x v x v x v x ) x )

– Même question !Même question !

• 2-SAT 2-SAT PP 11 33 55 33 22 44

vv

Page 147: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 147147

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Quelques problèmes de « Quelques problèmes de « N P CN P C » ! » !

• Circuit-SATCircuit-SAT

– « n » variables logiques et un circuit logique construit à « n » variables logiques et un circuit logique construit à partir des circuits de base partir des circuits de base et et , , ou ou ou ou not not ..

– La question : Le circuit peut-il rendre la valeur Vrai La question : Le circuit peut-il rendre la valeur Vrai pour un choix adéquat des valeurs des variables ?pour un choix adéquat des valeurs des variables ?

Page 148: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 148148

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Quelques problèmes de « Quelques problèmes de « N P CN P C » ! » !

• Circuit-SATCircuit-SAT

– « n » variables logiques et un circuit logique construit à partir des « n » variables logiques et un circuit logique construit à partir des circuits de base circuits de base et et , , ou ou ou ou not not ..

– La question : Le circuit peut-il rendre la valeur Vrai pour un choix La question : Le circuit peut-il rendre la valeur Vrai pour un choix adéquat des valeurs des variables ?adéquat des valeurs des variables ?

• Exemple de réduction :Exemple de réduction :

– Admettons que 3-SAT soit connu pour appartenir à « Admettons que 3-SAT soit connu pour appartenir à « N P CN P C ». ».

– Démontrons que Circuit-SAT appartient aussi à « Démontrons que Circuit-SAT appartient aussi à « N P CN P C » ! » !

Page 149: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 149149

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La réduction :La réduction :

– Variable 3-SAT Variable 3-SAT --> variable Circuit-SAT.> variable Circuit-SAT.

Page 150: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 150150

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La réduction :La réduction :

– Variable 3-SAT Variable 3-SAT --> variable Circuit-SAT.> variable Circuit-SAT.

– x x --> > xx

Page 151: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 151151

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La réduction :La réduction :

– Variable 3-SAT Variable 3-SAT --> variable Circuit-SAT.> variable Circuit-SAT.

– x x --> > xx

– ( a v b v c ) ( a v b v c ) --> > aa

bb cc

Page 152: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 152152

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La réduction :La réduction :

– Variable 3-SAT Variable 3-SAT --> variable Circuit-SAT.> variable Circuit-SAT.

– x x --> > xx

– ( a v b v c ) ( a v b v c ) --> > aa

bb cc

– ( a b . . . z ) ( a b . . . z ) --> > aa bb . . . . . . . . . . . .

zz

vvvv vv

. . .. . .

Page 153: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 153153

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La réduction :La réduction :

– Variable 3-SAT Variable 3-SAT --> variable Circuit-SAT.> variable Circuit-SAT.

– x x --> > xx

– ( a v b v c ) ( a v b v c ) --> > aa

bb cc

– ( a b . . . z ) ( a b . . . z ) --> > aa bb . . . . . . . . . . . .

zz

vvvv vv

. . .. . .

Page 154: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 154154

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• La réduction :La réduction :

– Variable 3-SAT Variable 3-SAT --> variable Circuit-SAT.> variable Circuit-SAT.

– x x --> > xx

– ( a v b v c ) ( a v b v c ) --> > aa

bb cc

– ( a b . . . z ) ( a b . . . z ) --> > aa bb . . . . . . . . . . . .

zz

vvvv vv

. . .. . . La réductionLa réductionest dans est dans PP ! !

Page 155: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 155155

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Quelques problèmes de « Quelques problèmes de « N P CN P C » ! » !

• Subset-SumSubset-Sum

– Un ensemble E de « n » entiers naturels et une constante Un ensemble E de « n » entiers naturels et une constante s s ..

– La question : Existe-il un sous-ensemble I de E tel que La question : Existe-il un sous-ensemble I de E tel que la somme des éléments de I soit égale à s ?la somme des éléments de I soit égale à s ?

Page 156: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 156156

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Quelques problèmes de « Quelques problèmes de « N P CN P C » ! » !

• Subset-SumSubset-Sum

– Un ensemble E de « n » entiers naturels et une constante sUn ensemble E de « n » entiers naturels et une constante s ..

– La question : Existe-il un sous-ensemble I de E tel que la La question : Existe-il un sous-ensemble I de E tel que la somme des éléments de I soit égale à s ?somme des éléments de I soit égale à s ?

• Set-PartitionSet-Partition

– Un ensemble E de « n » entiers naturels.Un ensemble E de « n » entiers naturels.

– La question : Existe-il un sous-ensemble I de E tel que la La question : Existe-il un sous-ensemble I de E tel que la somme des éléments de I soit égale à la somme des éléments somme des éléments de I soit égale à la somme des éléments de l’ensemble complémentaire ?de l’ensemble complémentaire ?

Page 157: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 157157

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Quelques problèmes de « Quelques problèmes de « N P CN P C » ! » !

• Programmation entièreProgrammation entière

– Une matrice entière M et un vecteur entier b .Une matrice entière M et un vecteur entier b .

– La question : Existe-il un vecteur x tel que M * x <= La question : Existe-il un vecteur x tel que M * x <= b ?b ?

Page 158: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 158158

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Quelques problèmes de « Quelques problèmes de « N P CN P C » ! » !

• Programmation entièreProgrammation entière

– Une matrice entière M et un vecteur entier b .Une matrice entière M et un vecteur entier b .

– La question : Existe-il un vecteur x tel que M * x <= b ?La question : Existe-il un vecteur x tel que M * x <= b ?

• Programmation entière en 0 Programmation entière en 0 -- 1 1

– Une matrice entière M et un vecteur entier b .Une matrice entière M et un vecteur entier b .

– La question : Existe-il un vecteur x avec des valeurs 0 ou La question : Existe-il un vecteur x avec des valeurs 0 ou 1 tel que M * x <= b ? 1 tel que M * x <= b ?

Page 159: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 159159

N P N P – complétude – complétude ----------------------------------------------------------------------------------------------------------------------------------

• Quelques problèmes de « Quelques problèmes de « N P CN P C » ! » !

• Programmation entièreProgrammation entière

– Une matrice entière M et un vecteur entier b .Une matrice entière M et un vecteur entier b .

– La question : Existe-il un vecteur x tel que M * x <= b ?La question : Existe-il un vecteur x tel que M * x <= b ?

• Programmation entière en 0 Programmation entière en 0 -- 1 1

– Une matrice entière M et un vecteur entier b .Une matrice entière M et un vecteur entier b .

– La question : Existe-il un vecteur x avec des valeurs 0 ou 1 tel La question : Existe-il un vecteur x avec des valeurs 0 ou 1 tel que M * x <= b ?que M * x <= b ?

• Et des milliers d’autres . . . Et des milliers d’autres . . .

Page 160: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 160160

SynthèseSynthèse----------------------------------------------------------------------------------------------------------------------------------

N PN P--complétude :complétude :

Page 161: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 161161

SynthèseSynthèse----------------------------------------------------------------------------------------------------------------------------------

N PN P--complétude :complétude :

Très probablement Très probablement P = N P ! ! !P = N P ! ! !

Malheureusement ! ! !Malheureusement ! ! !

//

Page 162: Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude

9 janvier 20069 janvier 2006 Cours d'algorithmique 11 / IntranetCours d'algorithmique 11 / Intranet 162162

m E r C i e Tm E r C i e Tb O n N e J o U r N é b O n N e J o U r N é

E ! ! !E ! ! !

n ‘ O u B l I e Z p A s D en ‘ O u B l I e Z p A s D ep R é P a R e R v O sp R é P a R e R v O s

T D ! ! !T D ! ! !