D.E ZEGOUR Ecole Supérieure d’Informatique

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Algorithmes et structures de données avancées Cours 7
Algorithmes et structures de données avancés
Introduction à l’Algorithmique
GEF 435 Principes des systèmes d’exploitation
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Séminaire Biblio LISC - 3/04/02 Complexité, information Daprès JP Delahaye (1999)
Séminaire Florin Périer Alain Gély LIMOS
Chap. 1 INTRODUCTION Beaucoup de problèmes de la vie courante, tels la gestion de réseaux de communication ou l'ordonnancement de tâches, correspondent.
INTRODUCTION.
Chapitre II.Rappels mathématiques et complexité
Génération de colonnes
Conception et analyse des algorithmes
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Introduction à l’algorithmique
Heuristiques A. Introduction B. Recherche d ’une branche
Approche par les problèmes en TS spécialité maths
Chapitre 2 Réductions: exemples et méthodes
GPA750 – Ordonnancement des systèmes de production aéronautique
ENSIIE-Master MPRO Alain Faye
Rappel... Solution itérative de systèmes linéaires (suite et fin).
RDF(S)
Algorithme de Bellman-Ford
Structures de données IFT-2000
IFT Complexité et NP-complétude
IFT Chapitre 1 Classes de complexité fondamentales:
IFT Au delà de NP: hiérarchie polynomiale, EXP, NEXP.
Programmation linéaire en nombres entiers : la méthode du simplexe

Algorithmes d ’approximation
Optimisation dans les réseaux
Efficacité des algorithmes
Ordonnancement de tâches
Programmation non procédurale Le projet ECOLE 2000
Tutorat en bio-informatique Le 21 novembre Exercices 2 et 3 (MAT1400) - solutions Chapitre 11.7, Analyse - concepts et contextes vol. 2 27) Cherchez.
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Pour le chemin le plus court pour tous les couples
Analyse des Algorithmes

IFT Complexité et NP-complétude Chapitre 0 Rappels.
Analyse d’algorithmes
Les limites de la puissance algorithmique
Conception et analyse des algorithmes
Cours du 25 octobre Mardi le 24 octobre
IFT Complexité et NP-complétude
Les réseaux sémantiques[Quillian 68]
ALGORITHME DE TRI Le tri par insertion.
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
ASI 3 Méthodes numériques pour l’ingénieur
SUR LE ROLE DES CIRCUITS DANS LES RESEAUX DE GENES Christophe Soulé IHES, 18 Mars 2010.
INTRODUCTION.
CHAPITRE 3: LES NOMBRES.
D.E ZEGOUR Ecole Supérieure d’Informatique
Programmation linéaire en nombres entiers
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
Arbres binaires et tables de hachage
LE FLOT MAXIMAL et LA COUPE MINIMALE
Cours 4 - Trois algorithmes de recherche dans un tableau
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Problème de double digestion
Chapitre 9 La transformée de Laplace
Calendrier (sur MathSV)
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Algorithmique et Complexité
1 Courbes Bsplines non uniformes Bsplines uniformes 1.Nombre de points de définition 2.Position des points de définition 3.Degré m des polynômes Paramètres.
Pierre Joli Cours de Mathématique Pierre Joli
Cycle, Cocycle, Arbre et Arborescence
Chapitre 4 Equations différentielles ordinaires à n variables.
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
Chapitre 3 Problèmes de Cheminement
Transcription de la présentation:

D.E ZEGOUR Ecole Supérieure d’Informatique Classes de complexité

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

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

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)

Classes de complexité Classes P , NP et EXP P ⊆ NP ⊆ EXP

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

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.

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.

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)

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.

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)

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

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?

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.

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.

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.

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.

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)

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.

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

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)

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.