Télécharger la présentation
Publié parAliénor Claudel Modifié depuis plus de 9 années
1
D.E ZEGOUR Ecole Supérieure d’Informatique
Classes de complexité
2
Classes de complexité Introduction
On s'intéresse aux ressources nécessaires pour la résolution de problèmes. Les ressources essentielles sont le temps et l'espace. On ne considère ici que des problèmes décidables. On suppose donc que toutes les machines de Turing considérées s'arrêtent toujours. On définit le temps (et espace)de calcul relativement aux machines de Turing
3
Classes de complexité Classes de complexité
TIME(t(n)) = { L | L peut être décidé en temps t(n) par une machine de Turing déterministe } NTIME(t(n)) = { L | L peut être décidé en temps t(n) par une machine de Turing non déterministe } Classes importantes : celles des problèmes qui peuvent être résolus en temps polynomial par une machine de Turing
4
Classes de complexité Classes P , NP et EXP
Classe P : La classe des problèmes qui peuvent être résolus en temps polynomial par une machine déterministe P = ∪k≥0 TIME(nk) Classe NP : classe des problèmes qui peuvent être résolus en temps polynomial par une machine non déterministe. NP = ∪k≥0 NTIME(nk) Classe EXP : classe des problèmes qui peuvent être résolus en temps exponentiel par une machine déterministe. EXP = ∪k≥0 TIME(2nk)
5
Classes de complexité Classes P , NP et EXP P ⊆ NP ⊆ EXP
6
Classes de complexité La question P=NP ?
La question P=NP ? reste encore ouverte après 40 ans d’effort. (un problème ouvert extrêmement difficile) Si P = NP, alors l’existence d’une solution courte garantirait l’existence d’un algorithme efficace pour la trouver (peu vraisemblable). Autrement dit, si jamais quelqu’un venait à trouver un algorithme polynomial pour le problème de SAT, alors la question de savoir si P = NP est résolu de fait ! La résolution de ce problème (P=NP) vous fera gagner 1 million de dollars ! (voir http :// problems).
7
Classes de complexité Exemple de problèmes dans P
Accessibilité dans un graphe Le problème d'accessibilité dans un graphe orienté est de savoir si un graphe G donné contient un chemin de s à t pour deux sommets s et t également donnés. Le problème peut être codé par le langage L défini par L = { 〈G, s, t〉 | G contient un chemin de s à t } Ce problème peut être résolu par un parcours en largeur du graphe qui s'effectue en temps linéaire Le langage L peut donc être décidé en temps polynomial par une machine de Turing déterministe.
8
Classes de complexité Autres exemples de problèmes dans P
Ce sont tous les problèmes que l’on peut résoudre sur une machine réelle (en temps polynomial) - PGCD de deux entiers - Tri d’un tableau en ordre ascendant. - Etant donné un graphe, le dessiner dans un plan de telle sorte que deux arrêtes quelconques ne se rencontrent pas.. - Etant donné une matrice A et un vecteur b, trouver un vecteur x tel que Ax = b. - Etant donné une matrice A et un vecteur b, trouver un vecteur x tel que Ax ≤ b? - Etant donné un polynomial xn ( n entier donné), Trouver sa racine.
9
Classes de complexité Exemple de problèmes dans NP :
Clique dans un graphe Instance: soit G = (V, E) un graphe non orienté (V: ensemble des nœuds; E:ensemble des arcs) et soit k un entier positif k<=n. Question: Est-ce que G contient une clique de longueur k? Une clique de longueur k est un sous ensemble W de V tel que : - le cardinal de W est K - pour chaque paire distincte {u, v} de nœuds dans W, {u,v} est un arc de G? Une clique est un sous-ensemble W de V tel que deux sommets quelconques de W sont joints par une arête (Nœuds en bleu)
10
Classes de complexité Exemple de problèmes dans NP :
Clique dans un graphe Algorithme non déterministe : - Choisir de façon non déterministe k sommets v1, …, vk de G. (O(k)) - Vérifie que les toutes les arêtes (vi, vj) pour tout 1 ≤ i < j ≤ k sont présentes dans G ( accepté si c'est le cas. (O(k2) ) Le problème de la clique appartient donc à la classe NP.
11
Classes de complexité Autre exemple de problèmes dans NP :
Système d’équation linéaires Etant donné un système d’équation linéaires Ax = b, Trouver une solution x (si elle existe) qui satisfait les équations. Le problème est NP car si on se donne une solution, on peut vérifier que Ax = b ( remplacer x par la solution et vérifier chaque équation)
12
Classes de complexité Autre exemple de problèmes dans NP : SAT
Etant donné n variables Booléennes x1, x2, ..., xN et une formule de la logique, Existe-il une affectation de valeurs Vrai et Faux aux variables qui rend la formule satisfiable, c.-à-d.., Vrai? Par exemple, supposer la formule est (x1' + x2 + x3) (x1 + x2' + x3) (x2 + x3) (x1' + x2' + x3') Alors, la réponse est OUI et (x1, x2, x3) = (Vrai, Vrai, Faux) est un certificat (preuve).
13
Classes de complexité 3-SAT Autre exemple de problèmes dans NP :
Etant donné n variables Booléennes x1, x2, ..., xN et une formule de la logique en forme normale conjonctive (produit de sommes) avec exactement 3 littéraux différent par clause, Existe-il une affectation de valeurs Vrai et Faux aux variables qui rend la formule satisfiable, c.-à-d.., Vrai?
14
Classes de complexité Subset Sum. Autre exemple de problèmes dans NP :
Etant donne un ensemble de n entiers. Existe-il un sous ensemble dont la somme de ses élément sest égal à B? Exemple : supposer l’ensemble {4, 5, 8, 13, 15, 24, 33} et B = 36. La réponse est OUI et { 4, 8, 24} est un certificat Si B = 14 la réponse est NON.
15
Classes de complexité Partition Autre exemple de problèmes dans NP :
Etant donné un ensemble de n entiers, Peut-on le partitionner en deux classes de même somme ? Exemple, supposer l’ensemble des entiers {4, 5, 8, 13, 15, 24, 33}. Réponse est OUI et {5, 13, 33} est un certificat.
16
Classes de complexité Propriétés des problèmes NP 2 parties:
Choisir de façon non déterministe un objet Vérifie que cet objet satisfait une certaine propriété La vérification se fait en temps polynomial Un vérificateur en temps polynomial pour un langage L est une machine de Turing M déterministe qui prend des entrées de la forme 〈w, c〉 avec un temps de calcul polynomial en la taille de w et tel que : L = { w | ∃ c tel que M accepte 〈w, c〉 } Un langage L est dans la classe NP si et seulement si il existe un vérificateur en temps polynomial pour L.
17
Classes de complexité Classes de complexité en espace
Quand on définit les classes de complexité en espace, il est sous entendu que les machines de Turing sont à k+2 bandes: - 1 bande pour uniquement les entrées (lecture) - K bandes de travail - 1 bande de sortie On comptabilise alors le nombre de cases différentes utilisées durant le calcul uniquement dans les bandes de travail.
18
Classes de complexité Classes de complexité en espace
SPACE (f(n)) : classe des problèmes de décision solvables par une TM (à K+2 bandes) en espace f(n) NSPACE (f(n)) : classe des problèmes de décision solvables par une NTM (à K+2 bandes) en espace f(n)
19
Classes de complexité Classes de complexité en espace
Classes considérées PSPACE: classe de tous les problèmes de décision solvables par une TM utilisant un espace de travail limité par le polynôme de la taille de l'entrée. NPSPACE : classe de tous les problèmes de décision solvables par une NTM en espace polynomial de la taille de l'entrée. NL : classe de tous les problèmes de décision solvables par une NTM utilisant un espace logarithmique de la taille de l'entrée.
20
Classes de complexité Classes de complexité en espace Résultats:
1. PSPACE = NPSPACE (Théorème de Savitch 1970) 2. Si f(n) ≥ log n alors NSPACE(f(n)) SPACE (f2(n))
21
Classes de complexité Autres classes de complexité Classe Co-NP
Un problème X est dans la classe Co-NP Ssi son complément C(X) est dans NP. Co-NP est donc la classe des problèmes pour lesquels il existe des preuves efficaces ( contrexemple)
22
Classes de complexité Autres classes de complexité Classe Co-NP
Exemple ( Subset-Sum Problem (SSP)) Etant donné un ensemble d’entiers S = {i1, i2, , in}, Existe-t-il un sous ensemble non vide A avec somme égale à 0 . Le problème complémentaire de SSP: Etant donné un ensemble d’entiers S = {i1, i2, , in} est-ce que tout sous ensemble non vide a une somme différente de zéro? Pour donner une preuve à une non instance, on doit spécifier un ensemble non vide pour lequel la somme est égale à zéro. Ce qui est facile à vérifier Le problème complémentaire de SSP est dans co-NP.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.