Top Banner
D.E ZEGOUR Ecole Supérieure d’Informatique
22

D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

Apr 04, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

D.E ZEGOUR

Ecole Supérieure d’Informatique

Page 2: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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

Page 3: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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

Page 4: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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)

Page 5: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

Classes de complexité

Classes P , NP et EXP

P NP EXP⊆ ⊆

Page 6: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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 ://www.claymath.org/prize problems).

Page 7: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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 parL = { 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.

Page 8: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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.

Page 9: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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)

Page 10: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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.

Page 11: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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)

Page 12: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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).

Page 13: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

Classes de complexité

Autre exemple de problèmes dans NP :

3-SAT

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?

Page 14: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

Classes de complexité

Autre exemple de problèmes dans NP :

Subset Sum.

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.

Page 15: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

Classes de complexité

Autre exemple de problèmes dans NP :

Partition

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.

Page 16: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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.

Page 17: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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.

Page 18: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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)

Page 19: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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.

Page 20: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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))

 

Page 21: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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)

Page 22: D.E ZEGOUR Ecole Supérieure d’Informatique. Classes de complexité Introduction On s'intéresse aux ressources nécessaires pour la résolution de problèmes.

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.