SlideShare une entreprise Scribd logo
1  sur  4
Sommaire
                                                                                       • P&NP
                                                                                         • définition de P
                        NP-Complétude                                                    • définition de NP
                                                                                       • NP-Complétude



                  ©Lotfi Ben Romdliane, Ph.D.
                                   £)ép. sciences injoriiiatioues
                                   Faculté des sciences
                                   Université de Monastir




                                                                                                                                                                       Juin 2010




Complexité temporelle (1)                                                              Complexité temporelle (2)
• Taille des Input, n                                                                       Notation      Type de complexité
  • n : le nombre de bits nécessaires pour coder les entrées                                              complexité constante (Indépendante clé la t,iilli- di- l.i
                                                                                            0(1)
                                                                                                          donnée)
• Classes de complexité:
                                                                                            0(log(n))     complexité logarillimit|in'
  * logarithmique : log(n)
                                                                                            0(n)          complexité linéaire
  * linéaire: n                       ex onentielle                                         0(nlog(n))    complexité quasi- Un élire
   • polynomiale: nk                                                                        0(n2)         complexité quudrat ii jur
                                                       cjuadratique/polynomiale
    exponentielle: a" (a > 1)                                                               O(n')         complexité cubiQUC
                                                                    linéaire
                                                                                            O(nP)         complexité polynomialtt

                                                                                            O(lllo8<"))   complexité ûUMÎ-polynomiale
                                                                                            0(2°)         complexité exponentielle
                                                                                            0(n!)         complexité factorielle


                                                                           Juin 2010
Problèmes difficiles (1)                                                  Problèmes difficiles (2)
• Que faire si un problème est dure ...




                                                              Juta 2010                                                                                Juin 2010




Problème de décision polynomiaux(1)                                       Langage
« Le temps polynomial est la mesure d'efficacité                          • lin langage L est un ensemble de chaînes définies sur un
• Problème de décision                                                      alphabet 2
   • sortie : 0 ou 1                                                      • Chaque algorithme A de décision définit un langage L
   • Est-ce que un graphe admet un cycle Eulérien ?                         * L est l'ensemble de toutes les chaînes x tels que A donne la
   " Une chaîne de caractère T contient une sous-chaine S ?                   réponse « oui » sur x
   • Un problème du voyageur de commerce (binaire) admet une                • Dans ce cas, on dit que « A accepte la chaîne x »
     solution ayant au minimum un bénéfice K ?                                 • Si A est un algorithme qui détermine si un graphe admet un cycle
                                                                                 Eulérien, alors L est l'ensemble de tous les graphes ayant un;cycle
                                                                                 Eulérien




                                                              Juin 2010                                                                                 Juin 2010
La Classe P                                                                   La classe NP (1)
                                                                                   • Un algorithme est dit non-déterministe ssi il utilise
      Une classe de complexité est une collection de langages
                                                                                     F opération suivante
      P est la classe de complexité comprenant tous les langages                     • Choose(b) : choisit un bit b
                                                                                     • peut-être utilisé pour choisir une chaîne entière y avec
      acceptés en un temps polynomial                                                   | y | choix
                                                                                   • Un algorithme non-déterministe A accepte une chaîne x ssi
      Pour chaque langage L dans P, il y a un algorithme de                          il y a une séquence de « choose () » qui cause A à sortir « oui
      décision polynomial A pour L                                                   » pour la chaîne x
                                                                                   • NP est la classe de complexité comprenant tous les langages
      « n — | x | tel que x € L; A est exécuté en p(n) pour l'entrée x               acceptés par des algorithmes non-déterministe
                                                                                     polynomiaux
      • La fonction p(n) est polynomiale

                                                                 Juin 2010    10                                                                  ]uin2010




     La classe NP (2)                                                                  = NP?
      Problème: décider si un graphe
      admet un MST de poids k
      Algorithme
      1.    choisir aléatoirement un ensemble T
            de (n-1) arêtes
      2.    Tester si T forme un arbre couvrant
            minimal
      3.     Tester sir le poids deT est au max k
           Aanalyse: tester prend O(n+m);
           donc polynomial


11                                                                Juin 2010   12                                                                  Juin 2010
NP-dur                                                                       P, NP, NP-dure?
     • l In liUijM^e L est NP-dur ssi chaque problème de NP peut-
                                                                                                                clique problem

       être réduit à L en un temps polynomial

       Un langage est NP-complet s'il est dans NP et il est NP-dur




                                                                                                                                 .été

                                                                                     path problem   gi'aph isomoqjhisrn
                                                                                                    (conjectured); do
                                                                                                    tvo graphs hâve thé
                                                                                                    samc structure?


13                                                           Juin 2010   14   <                                                         Juin 2010

Contenu connexe

Tendances

Equations différentielles, DUT MP, CM 4
Equations différentielles, DUT MP, CM 4Equations différentielles, DUT MP, CM 4
Equations différentielles, DUT MP, CM 4Christophe Palermo
 
Localisation d’une source émettrice par un réseau d’antennes
Localisation d’une source émettrice par un réseau d’antennesLocalisation d’une source émettrice par un réseau d’antennes
Localisation d’une source émettrice par un réseau d’antennesAhmed Ammar Rebai PhD
 
Réseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes générauxRéseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes générauxcoursuniv
 
Chap13 fin--ts-exp
Chap13  fin--ts-expChap13  fin--ts-exp
Chap13 fin--ts-expsikora233
 
Chapitre 4 equilibre électrostatique des conducteurs
Chapitre 4   equilibre électrostatique des conducteursChapitre 4   equilibre électrostatique des conducteurs
Chapitre 4 equilibre électrostatique des conducteurscoursuniv
 
Travaux dirigés
Travaux dirigésTravaux dirigés
Travaux dirigéshoudamath
 
Chaînes de Markov et files d'attente
Chaînes de Markov et files d'attenteChaînes de Markov et files d'attente
Chaînes de Markov et files d'attenteGuillaume Matheron
 
Equations différentielles, DUT MP, CM 2
Equations différentielles, DUT MP, CM 2Equations différentielles, DUT MP, CM 2
Equations différentielles, DUT MP, CM 2Christophe Palermo
 
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)Youssaf Menacer
 
Algorithme d'approximation
Algorithme d'approximationAlgorithme d'approximation
Algorithme d'approximationMed Lassoued
 
Equations différentielles, DUT MP, CM1
Equations différentielles, DUT MP, CM1Equations différentielles, DUT MP, CM1
Equations différentielles, DUT MP, CM1Christophe Palermo
 

Tendances (15)

Chap9
Chap9Chap9
Chap9
 
Equations différentielles, DUT MP, CM 4
Equations différentielles, DUT MP, CM 4Equations différentielles, DUT MP, CM 4
Equations différentielles, DUT MP, CM 4
 
Localisation d’une source émettrice par un réseau d’antennes
Localisation d’une source émettrice par un réseau d’antennesLocalisation d’une source émettrice par un réseau d’antennes
Localisation d’une source émettrice par un réseau d’antennes
 
Filedattentemarkov
FiledattentemarkovFiledattentemarkov
Filedattentemarkov
 
Réseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes générauxRéseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes généraux
 
Chap13 fin--ts-exp
Chap13  fin--ts-expChap13  fin--ts-exp
Chap13 fin--ts-exp
 
Chapitre 4 equilibre électrostatique des conducteurs
Chapitre 4   equilibre électrostatique des conducteursChapitre 4   equilibre électrostatique des conducteurs
Chapitre 4 equilibre électrostatique des conducteurs
 
Comparaison
ComparaisonComparaison
Comparaison
 
Travaux dirigés
Travaux dirigésTravaux dirigés
Travaux dirigés
 
Chaînes de Markov et files d'attente
Chaînes de Markov et files d'attenteChaînes de Markov et files d'attente
Chaînes de Markov et files d'attente
 
Oc1 2013
Oc1 2013Oc1 2013
Oc1 2013
 
Equations différentielles, DUT MP, CM 2
Equations différentielles, DUT MP, CM 2Equations différentielles, DUT MP, CM 2
Equations différentielles, DUT MP, CM 2
 
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)
Systeme-parabolique-non-lineaire-issu-dun-modele-biologique (1)
 
Algorithme d'approximation
Algorithme d'approximationAlgorithme d'approximation
Algorithme d'approximation
 
Equations différentielles, DUT MP, CM1
Equations différentielles, DUT MP, CM1Equations différentielles, DUT MP, CM1
Equations différentielles, DUT MP, CM1
 

En vedette

Ch1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de BaseCh1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de Baselotfibenromdhane
 
Java 8 Stream API and RxJava Comparison
Java 8 Stream API and RxJava ComparisonJava 8 Stream API and RxJava Comparison
Java 8 Stream API and RxJava ComparisonJosé Paumard
 
Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8Talha Ocakçı
 
Java 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & StreamsJava 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & StreamsNewCircle Training
 
Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes
Ch4 Algorthmique Avancée - Analyse & complexité des AlgorithmesCh4 Algorthmique Avancée - Analyse & complexité des Algorithmes
Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmeslotfibenromdhane
 
Ch5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de TriCh5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de Trilotfibenromdhane
 
Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete  Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete Adnan abid
 
Java 8-streams-collectors-patterns
Java 8-streams-collectors-patternsJava 8-streams-collectors-patterns
Java 8-streams-collectors-patternsJosé Paumard
 
JDK 8, lambdas, streams, collectors - Bretagne Tour
JDK 8, lambdas, streams, collectors - Bretagne TourJDK 8, lambdas, streams, collectors - Bretagne Tour
JDK 8, lambdas, streams, collectors - Bretagne TourJosé Paumard
 
Java 8, Streams & Collectors, patterns, performances and parallelization
Java 8, Streams & Collectors, patterns, performances and parallelizationJava 8, Streams & Collectors, patterns, performances and parallelization
Java 8, Streams & Collectors, patterns, performances and parallelizationJosé Paumard
 
Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8LivePerson
 
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautés
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautésAlphorm.com Formation Autodesk Revit 2018 : Les nouveautés
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautésAlphorm
 
Alphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server FacesAlphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server FacesAlphorm
 
Alphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certificationAlphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certificationAlphorm
 
Alphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautésAlphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautésAlphorm
 

En vedette (20)

Functional Programming in JAVA 8
Functional Programming in JAVA 8Functional Programming in JAVA 8
Functional Programming in JAVA 8
 
Ch1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de BaseCh1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de Base
 
Java 8 Stream API and RxJava Comparison
Java 8 Stream API and RxJava ComparisonJava 8 Stream API and RxJava Comparison
Java 8 Stream API and RxJava Comparison
 
Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8
 
Functional programming in java
Functional programming in javaFunctional programming in java
Functional programming in java
 
Cats
CatsCats
Cats
 
Java 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & StreamsJava 8 Lambda Expressions & Streams
Java 8 Lambda Expressions & Streams
 
Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes
Ch4 Algorthmique Avancée - Analyse & complexité des AlgorithmesCh4 Algorthmique Avancée - Analyse & complexité des Algorithmes
Ch4 Algorthmique Avancée - Analyse & complexité des Algorithmes
 
Notifications
NotificationsNotifications
Notifications
 
Ch5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de TriCh5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de Tri
 
Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete  Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete
 
Functional Programming in Java
Functional Programming in JavaFunctional Programming in Java
Functional Programming in Java
 
Java 8-streams-collectors-patterns
Java 8-streams-collectors-patternsJava 8-streams-collectors-patterns
Java 8-streams-collectors-patterns
 
JDK 8, lambdas, streams, collectors - Bretagne Tour
JDK 8, lambdas, streams, collectors - Bretagne TourJDK 8, lambdas, streams, collectors - Bretagne Tour
JDK 8, lambdas, streams, collectors - Bretagne Tour
 
Java 8, Streams & Collectors, patterns, performances and parallelization
Java 8, Streams & Collectors, patterns, performances and parallelizationJava 8, Streams & Collectors, patterns, performances and parallelization
Java 8, Streams & Collectors, patterns, performances and parallelization
 
Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8
 
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautés
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautésAlphorm.com Formation Autodesk Revit 2018 : Les nouveautés
Alphorm.com Formation Autodesk Revit 2018 : Les nouveautés
 
Alphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server FacesAlphorm.com Formation Java Server Faces
Alphorm.com Formation Java Server Faces
 
Alphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certificationAlphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certification
 
Alphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautésAlphorm.com Java 8: les nouveautés
Alphorm.com Java 8: les nouveautés
 

Ch7 algorithmes NP-Copmlétude

  • 1. Sommaire • P&NP • définition de P NP-Complétude • définition de NP • NP-Complétude ©Lotfi Ben Romdliane, Ph.D. £)ép. sciences injoriiiatioues Faculté des sciences Université de Monastir Juin 2010 Complexité temporelle (1) Complexité temporelle (2) • Taille des Input, n Notation Type de complexité • n : le nombre de bits nécessaires pour coder les entrées complexité constante (Indépendante clé la t,iilli- di- l.i 0(1) donnée) • Classes de complexité: 0(log(n)) complexité logarillimit|in' * logarithmique : log(n) 0(n) complexité linéaire * linéaire: n ex onentielle 0(nlog(n)) complexité quasi- Un élire • polynomiale: nk 0(n2) complexité quudrat ii jur cjuadratique/polynomiale exponentielle: a" (a > 1) O(n') complexité cubiQUC linéaire O(nP) complexité polynomialtt O(lllo8<")) complexité ûUMÎ-polynomiale 0(2°) complexité exponentielle 0(n!) complexité factorielle Juin 2010
  • 2. Problèmes difficiles (1) Problèmes difficiles (2) • Que faire si un problème est dure ... Juta 2010 Juin 2010 Problème de décision polynomiaux(1) Langage « Le temps polynomial est la mesure d'efficacité • lin langage L est un ensemble de chaînes définies sur un • Problème de décision alphabet 2 • sortie : 0 ou 1 • Chaque algorithme A de décision définit un langage L • Est-ce que un graphe admet un cycle Eulérien ? * L est l'ensemble de toutes les chaînes x tels que A donne la " Une chaîne de caractère T contient une sous-chaine S ? réponse « oui » sur x • Un problème du voyageur de commerce (binaire) admet une • Dans ce cas, on dit que « A accepte la chaîne x » solution ayant au minimum un bénéfice K ? • Si A est un algorithme qui détermine si un graphe admet un cycle Eulérien, alors L est l'ensemble de tous les graphes ayant un;cycle Eulérien Juin 2010 Juin 2010
  • 3. La Classe P La classe NP (1) • Un algorithme est dit non-déterministe ssi il utilise Une classe de complexité est une collection de langages F opération suivante P est la classe de complexité comprenant tous les langages • Choose(b) : choisit un bit b • peut-être utilisé pour choisir une chaîne entière y avec acceptés en un temps polynomial | y | choix • Un algorithme non-déterministe A accepte une chaîne x ssi Pour chaque langage L dans P, il y a un algorithme de il y a une séquence de « choose () » qui cause A à sortir « oui décision polynomial A pour L » pour la chaîne x • NP est la classe de complexité comprenant tous les langages « n — | x | tel que x € L; A est exécuté en p(n) pour l'entrée x acceptés par des algorithmes non-déterministe polynomiaux • La fonction p(n) est polynomiale Juin 2010 10 ]uin2010 La classe NP (2) = NP? Problème: décider si un graphe admet un MST de poids k Algorithme 1. choisir aléatoirement un ensemble T de (n-1) arêtes 2. Tester si T forme un arbre couvrant minimal 3. Tester sir le poids deT est au max k Aanalyse: tester prend O(n+m); donc polynomial 11 Juin 2010 12 Juin 2010
  • 4. NP-dur P, NP, NP-dure? • l In liUijM^e L est NP-dur ssi chaque problème de NP peut- clique problem être réduit à L en un temps polynomial Un langage est NP-complet s'il est dans NP et il est NP-dur .été path problem gi'aph isomoqjhisrn (conjectured); do tvo graphs hâve thé samc structure? 13 Juin 2010 14 < Juin 2010