IFT-66975 Complexité et NP-complétude Chapitre 0 Rappels.

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données avancés
Advertisements

Introduction à l’Algorithmique
Sensibilisation à l’Algorithmique et structure de données
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)
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
Séminaire Florin Périer Alain Gély LIMOS
Chap 1 Grammaires et dérivations.
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.
Nicolas Bourbaki.
Chapitre 1 Automates finis
IFT313 Introduction aux langages formels
Conception et analyse des algorithmes
Introduction à l’Intelligence Artificielle
Preuves interactives: IP, AM, MA et isomorphisme de graphe
Graphes Conceptuels J.F. Baget Inria.
Analyse lexicale Généralités Expressions rationnelles Automates finis
Chapitre 2 Réductions: exemples et méthodes
Algorithmique et Programmation
Chapitre 2 Réductions: exemples et méthodes
Expressions régulières et hash tables
Chapitre 3 Machines de Turing.
IFT Complexité et NP-complétude
IFT Chapitre 1 Classes de complexité fondamentales:
IFT Au delà de NP: hiérarchie polynomiale, EXP, NEXP.
Complexité d’espace L, NL, PSPACE P-complétude et NC
Algorithmes d ’approximation
Chapitre 3 Syntaxe et sémantique.
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Rappel Modèle analyse-synthèse de la compilation
ASI 3 Méthodes numériques pour l’ingénieur
Indécidabilité.
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
UML Séquence 3 : (Diagramme d’activités)
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.

Les limites de la puissance algorithmique
Conception et analyse des algorithmes
IFT Complexité et NP-complétude
Un peu de maths (et d’info)
Efficacité des algorithmes
Expressions régulières et hash tables
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Paradigmes des Langages de Programmation
Cours LFI-2 (Master Académique)
SUITES cours 24.
Informatique parallèle
D.E ZEGOUR Ecole Supérieure d’Informatique
GRAPHES EN INFORMATIQUE. INTRODUCTION Les objets mathématiques appelés graphes apparaissent dans de nombreux domaines comme les mathématiques, la biologie,
Introduction à la Calculabilité Cours LFI2 (Master Académique)
La Logique du premier ordre LPO
MATHÉMATIQUES DISCRÈTES Chapitre 1 (Section 4)
Les principes de la modélisation de systèmes
D.E ZEGOUR Ecole Supérieure d’Informatique
Les machines de Turing Lionel Blavy Sébastien Giraud Fabien Tricoire
Cours LFI-2 (Master Académique)
8INF856 Programmation sur architectures parallèles
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
LE FLOT MAXIMAL et LA COUPE MINIMALE
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.
DU commerce éléctronique, mars Logique et fondements de l’informatique Université Paris II Michel de Rougemont
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Problème de double digestion
D.E ZEGOUR Ecole Supérieure d’Informatique
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Algorithmique et Complexité
Chapitre 4 La représentation des nombres.
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
Transcription de la présentation:

IFT Complexité et NP-complétude Chapitre 0 Rappels

Quelques définitions  Un alphabet est un ensemble fini non- vide. On appelle ses éléments des symboles. Exemples:  binaire = {0,1}  latin = {a,b, …, z}  ADN = {A,C,T,G}

 Un mot sur l’alphabet  est une séquence finie de symboles.  |w| dénote la longueur de w (nombre de symboles) et le mot vide (  ou  ) est le mot de longueur 0.  L’ensemble de tous les mots sur  est dénoté  *.  Un langage sur l’alphabet  est un ensemble de mots de  *.  On appelle problème de décision toute tâche de calcul qui consiste à déterminer si un mot w appartient à un langage L.

Quelques exemples de langages:  Mots de {a,b}* contenant plus de a que de b.  Les mots de {0,1}* qui sont l’encodage binaire d’un nombre premier.  Les mots de {0,1}* qui sont l’encodage d’un graphe qui contient un chemin de longueur 8.  De cette même façon, on effacera la distinction entre langage et problème de décision.

Machines de Turing  Le modèle de référence depuis Turing (années 30) … Contrôle fini À chaque étape, la machine peut en fonction de l’état du contrôle fini et du symbole lu: • Changer l’état du contrôle fini. • Réécrire sous la tête de lecture. • Déplacer la tête vers la gauche ou la droite d’une case. • S’arrêter.

Formellement, une machine de Turing est un quintuplet M = (Q, , ,q 0, ,Q’) avec  Q un ensemble fini d’états.  q 0  Q l’état initial.  Q’  Q des états d’arrêt.   un alphabet d’entrée.   un alphabet de ruban qui contient  et au moins un symbole blanc b.   : Q    Q    {-1,0,1} une fonction de transition.

Initialement, le ruban contient un mot d’entrée w   * suivi de symboles blancs. La tête de lecture est sur la première case du ruban et l’état est q 0. À chaque étape, si la machine se trouve dans l’état q  Q’, lit le symbole a   sur la case j tel que  (q,a) = (q’,a’,d) alors la machine remplace le symbole a de la case j par a’, passe à l’état q’ et déplace sa tête de lecture sur la case max{j+d,0}. Le calcul se poursuit jusqu’à ce qu’on atteigne un état d’arrêt.

Si la machine s’arrête, alors on appelle sortie le contenu du ruban jusqu’à la première case contenant un symbole blanc. La fonction calculée par une machine de Turing M est la fonction partielle f:  *   * telle que f(w) = sortie de M sur l’entrée w. Cette fonction est partielle car il se peut que M ne s’arrête jamais pour certains w.

Calculabilité  Une fonction f:  *   * est calculable si elle est calculée par une machine de Turing.  Pour  et  donnés, il existe un nombre dénombrable de m.t. mais un nombre indénombrable de fonctions de  * dans  * donc certaines fonctions sont incalculables.

Thèse de Church-Turing N’importe quel modèle raisonnable de calcul est de puissance équivalente aux machines de Turing. Malgré leur apparente simplicité, les m.t. sont donc aussi puissantes que n’importe lequel de nos ordinateurs. Pour montrer qu’une fonction est calculable, il suffit de décrire un algorithme dans la forme qui nous convient.

Soit M une m.t. qui s’arrête pour chaque entrée.  Le temps d’exécution de M sur l’entrée w est le nombre d’étapes nécessaires à M pour atteindre un état d’arrêt.  Le temps d’exécution de M est la fonction t M : N  N telle que f(n) = temps d’exécution maximal de M sur une entrée de longueur n.

Thèse étendue de Church-Turing  Soient R 1 et R 2 des modèles raisonnables de calcul et pour toutes notions raisonnables de temps d’exécution de ces modèles, il existe un polynôme p, tel que t étapes d’un calcul sur une entrée de longueur n dans le modèle R 1 peut être simulée par p(n,t) étapes dans le modèle R 2.

Une première classe de complexité  Pour toute fonction t: N  N, on dénote DTIME(t) la classe des problèmes de décision (ou des langages) calculables en temps O(t) et FDTIME(t) la classe des fonctions calculables en temps O(t).  À noter que ces classes ne sont pas très robustes. Si l’on change légèrement notre définition de machine de Turing, les classe DTIME(t) et FDTIME(t) ne sont peut-être plus les mêmes.

Définitions: La classe de complexité P est un ensemble de problèmes de décision défini par P =  k  N DTIME(n k ). De la même façon, on définit FP =  k  N FDTIME(n k ).  À cause de la thèse de Church-Turing étendue, cette classe est très robuste.

L’importance de P  En général, on considère que les problèmes dans P (ou FP) sont des problèmes pour lesquels il existe un algorithme efficace. (Mais on exagère…)  Certainement, si un problème n’est pas dans P (ou FP), alors il n’existe pas d’algorithme efficace pour le résoudre.

Que contient P?  Malheureusement, on ne sait pas précisément! Une liste partielle existe dans tous les livres d’algorithmique… Opérations sur les entiers, algèbre matricielle, problèmes de tri, problème de flot, construction d’un arbre de recouvrement etc.

Théorème de hiérarchie de temps Pour toute fonction f: N  N (temps- constructible), et pour toute fonction g = o(f / log f), il existe un langage L  DTIME(f) – DTIME(g).

Quel est le langage accepté par la machine de Turing suivante? D f = « entrée x; 1. Calculer f(|x|) et initialiser un compteur c de longueur f(|x|) / log f(|x|); 2. Vérifier si x = 0 k 1  M  et rejeter sinon; 3. Simuler M sur l’entrée x pendant au plus c étapes. Si M accepte x alors D_f rejette x. Si M rejette x alors D_f accepte x. »