Graphes et optimisation discrète : Théorie de la complexité

Documents pareils
La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Quelques tests de primalité

Resolution limit in community detection

Introduction à la théorie des graphes. Solutions des exercices

Programmation linéaire

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Introduction à l étude des Corps Finis

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Probabilités sur un univers fini

Informatique Générale

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Cours de Master Recherche

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Cryptographie et fonctions à sens unique

Corrigé des TD 1 à 5

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Sites web éducatifs et ressources en mathématiques

Eléments de Théorie des Graphes et Programmation Linéaire

Représentation d un entier en base b

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Chapitre 5 : Flot maximal dans un graphe

Théorie et codage de l information

Cours 7 : Utilisation de modules sous python

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

Compilation (INF 564)

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Jean-Philippe Préaux

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Fondements de l informatique Logique, modèles, et calculs

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Probabilités sur un univers fini

Programmes des classes préparatoires aux Grandes Ecoles

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

MIS 102 Initiation à l Informatique

I- Définitions des signaux.

UE Programmation Impérative Licence 2ème Année

Découverte du tableur CellSheet

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

La persistance des nombres

Optimisation Discrète

Transmission d informations sur le réseau électrique

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Conversion d un entier. Méthode par soustraction

ALGORITHMIQUE ET PROGRAMMATION En C

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Programmation C. Apprendre à développer des programmes simples dans le langage C

Introduction à la théorie des graphes

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Machines virtuelles Cours 1 : Introduction

Représentation des Nombres

FIMA, 7 juillet 2005

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Big Data et Graphes : Quelques pistes de recherche

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Chapitre 7. Récurrences

Cours d algorithmique pour la classe de 2nde

Rappels Entrées -Sorties

Cours 1 : La compilation

Calculs de probabilités

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Objets Combinatoires élementaires

Initiation à l algorithmique

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Rapport de stage de première année de Master Optimisation de cache d instructions

Bases de programmation. Cours 5. Structurer les données

Année 2014/ er septembre Version de Anca Muscholl, issue du poly de Marc Zeitoun. 1/143

Chapitre VI - Méthodes de factorisation

Cours d arithmétique Première partie

Big Data et Graphes : Quelques pistes de recherche

TP 1. Prise en main du langage Python

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Calcul Formel et Numérique, Partie I

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

La cryptographie du futur

Faculté des sciences Département de mathématiques. Théorie des graphes

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

UE C avancé cours 1: introduction et révisions

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Chapitre 13 Numérisation de l information

Rappels sur les suites - Algorithme

V- Manipulations de nombres en binaire

Annexe 6. Notions d ordonnancement.

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

MABioVis. Bio-informatique et la

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Algorithmes récursifs

Théorie des graphes et optimisation dans les graphes

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Plus courts chemins, programmation dynamique

Modèle de calcul des paramètres économiques

Transcription:

Plan Graphes et optimisation discrète : Théorie de la complexité P. Laurent Mathématiques 2 16 janvier 2006

Plan Plan 1 Introduction 2 Qu est ce qu un algorithme? Codage des données 3 Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP 4 Exemples de problèmes NP Problèmes NP : définitions équivalentes

Introduction Graphes et optimisation discrète 1 Introduction 2 Qu est ce qu un algorithme? Codage des données 3 Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP 4 Exemples de problèmes NP Problèmes NP : définitions équivalentes

Infos Introduction Pratique 1 Le site est actualisé. 2 Doc. Graphes et Optimisation. 3 Le programme du contrôle.

Infos Introduction Pratique 1 Le site est actualisé. 2 Doc. Graphes et Optimisation. 3 Le programme du contrôle.

Infos Introduction Pratique 1 Le site est actualisé. 2 Doc. Graphes et Optimisation. 3 Le programme du contrôle.

Infos Introduction Pratique 1 Le site est actualisé. 2 Doc. Graphes et Optimisation. 3 Le programme du contrôle.

Infos Introduction Pratique 1 Le site est actualisé. 2 Doc. Graphes et Optimisation. 3 Le programme du contrôle. Prolongement Cours d application : Mathématiques et modélisation. J.H. Saiac et P. Frey

Infos Introduction Pratique 1 Le site est actualisé. 2 Doc. Graphes et Optimisation. 3 Le programme du contrôle. Publicité Cours d approfondissement : Logique, informatique, mathématiques. P. Laurent

Objectifs Introduction Un peu de recul 1 Comprendre la nature des problèmes de maths discrètes. 2 pourquoi certains problèmes sont difficiles. 3 P NP. 4 Finir en beauté...

Objectifs Introduction Un peu de recul 1 Comprendre la nature des problèmes de maths discrètes. 2 pourquoi certains problèmes sont difficiles. 3 P NP. 4 Finir en beauté...

Objectifs Introduction Un peu de recul 1 Comprendre la nature des problèmes de maths discrètes. 2 pourquoi certains problèmes sont difficiles. 3 P NP. 4 Finir en beauté...

Objectifs Introduction Un peu de recul 1 Comprendre la nature des problèmes de maths discrètes. 2 pourquoi certains problèmes sont difficiles. 3 P NP. 4 Finir en beauté...

Objectifs Introduction Un peu de recul 1 Comprendre la nature des problèmes de maths discrètes. 2 pourquoi certains problèmes sont difficiles. 3 P NP. 4 Finir en beauté...

Le problème Introduction La solution d un problème de mathématiques discrètes appartient à un ensemble fini. On peut à l aide d un algorithme fini tester si un élément de cet ensemble est une solution. L énumération de toutes les solutions exige souvent un temps de calcul exponentiel. De très nombreux problèmes sont équivalents entre eux : un algorithme efficace pour l un le serait pour tous.

Introduction Calculs en virgule flottante Temps de calcul nombres d opérations élémentaires. Valeur d un polynôme : schéma de Horner a k x k = ((...((a n x+a n 1 )x+a n 2 )x...)x+a 1 )x+a 0 k n mult., n 1 add., optimal en nombres d op.élem. Multiplication de deux matrices (n, n) : L algorithme naturel (n 3 opérations) n est pas optimal. Algorithme de Strassen n 2.7 Algorithme de Gauss : n 3 3 opérations élémentaires. Non optimal.

Introduction Calculs en nombres entiers, +, / : Opérations élémentaires sur les entiers : Si n 2 p, au plus p 2 opérations sur des bits. PGCD : Test de primalité relative : on peut déterminer si deux entiers sont premiers entre eux par l algorithme d Euclide (PGCD), c est un algorithme très efficace même pour des entiers grands. Construction d un arbre minimal recouvrant un graphe : On a vu un algorithme très efficace à la séance 1. PRIM : Test de primalité, tester si un entier n est premier. for p = 1,..., sqrt(n), p n? Nombreuses applications (cryptographie).

Introduction Calculs en nombres entiers : mesure d efficacité Test de primalité, tester si un entier n est premier. for p = 1,..., sqrt(n), p n? 50 chiffres, 10 25 opérations, impossible. Nombres de Mersenne (2 p + 1), pire. Attention! L efficacité se mesure par rapport à l encombrement mémoire nécessaire pour représenter les données. PGCD(n,m) : n, m s écrivent avec k chiffres k divisions. PRIM : Si n s écrit avec k chifres, combien de divisions?

Introduction Algorithme pour les graphes Connexité d un graphe : La construction d un arbre de recouvrement peut servir d algorithme, voir la séance 1. 2-COL : Coloriage d un graphe avec deux couleurs. algorithme très efficace. EUL : Circuit eulérien : existe-t-il sur un graphe un circuit eulérien? algorithme très efficace. CLIQUE : Etant donné un graphe n noeuds existe-t-il une clique (i.e. un sous graphe complet) à k noeuds? L énumération de tous les sous-graphes à k noeuds exige Cn k tests sur ces sous-graphes. Il existe donc une constante c telle que le nombre d opérations pour cet algorithme est de l ordre de cn k.

Introduction Algorithme pour les graphes k-col : k-coloration d un graphe. Colorier avec k couleurs les noeuds d un graphe de façon à ce que deux noeuds adjacents n aient jamais la même couleur. Le problème d optimisation correspondant est de trouver un entier k minimal. Pour k = 2 on a un algorithme très rapide, voir exercices. Cas général? HAM : Circuit hamiltonien : existe-t-il sur un graphe un cycle passant par tous les sommets d un graphe? TSP : Le problème du voyageur de commerce : existe-t-il un cycle hamiltonien de longueur inférieure à un entier k sur un graphe valué? Le problème d optimisation correspondant est de trouver un entier k minimal.

Equations Introduction ILP : la programmation linéaire en nombres entiers A matrice de dim.(p, n) x, b, c N n { C = {x N n tel que Ax c, x 0} max c, x (1) x N n

Logique Introduction SAT : Satisfiabilité d un ensembe de clauses. n clauses (P 1 P 2... P k ) est-il satisfiable?? valeurs Vrai, Faux aux symboles P i / toutes les clauses soient vraies. Tester toutes les valeurs des symboles de proposition, 2 p tests. k-sat : Satisfiabilité d un ensemble de clauses de longueur au plus k.

Jeux? Introduction Sudoku 5 3 * * 7 * * * * 6 * * 1 9 5 * * * * 9 8 * * * * 6 * 8 * * * 6 * * * 3 4 * * 8 * 3 * * 1 7 * * * 2 * * * 6 * 6 * * * * 2 8 * * * * 4 1 9 * * 5 * * * * 8 * * 7 9

Jeux? Introduction Solution 5 3 4 6 7 8 9 1 2 6 7 2 1 9 5 3 4 8 1 9 8 3 4 2 5 6 7 8 5 9 7 6 1 4 2 3 4 2 6 8 5 3 7 9 1 7 1 3 9 2 4 8 5 6 9 6 1 5 3 7 2 8 4 2 8 7 4 1 9 6 3 5 3 4 5 2 8 6 1 7 9

Jeux? Introduction Interprétation Problème de coloriage avec 9 couleurs d un graphe à 9 2 noeuds. Noeuds : (i, j), i, j = 1,..., 9 Arêtes : entre (i, j) et (i, j ) si i = i ou j = j. Arêtes : entre (i, j) et (i, j ) si i/3 = i /3 ou j/3 = j /3. Arêtes : entre (i, j) et (i, j ) si Couleur(i, j) Couleur(i, j ). Définition (Sudoku généralisé) Nous appelons Sudoku d ordre n le problème généralisé obtenu en remplaçant 9 = 3 2 par n 2 : problème de coloriage d un graphe à n 4 noeuds avec n 2 couleurs.

Introduction Exemples de représentation Représentation de SAT dans ILP Proposition P i x i = 0 ou x i = 1. Valeur ( P i ) = 1 x i. Clause P i P j... P k x i + 1 x j +... + x k 1 Ensemble de n clauses pour p symboles de proposition P i n inégalités linéaires à p variables, x i 0 et x i 1. Équivalence des problèmes Satisfiabilité des clauses solution à ILP.

Introduction Représentation de 3-COL dans 3-SAT Un graphe 3-coloriable.

Introduction Représentation de 3-COL dans 3-SAT Ensemble des clauses Soit un graphe (G, A). On introduit les symboles : P k i : le noeud i a la couleur k. Et les clauses : C i : P 1 i P 2 i P 3 i pour chaque noeud, et A i,j,k : P k i P k j pour chaque arête (i, j) A et chaque couleur k.

3-SATSym Introduction Définition On considère un ensemble de n clauses de la forme L 1 i L 2 i L 3 i, L j i = P k ou P k 3-SATSym est le problème consistant à vérifier si ces clauses ont la propriété Π : il existe un ensemble de valeurs pour les symboles Pi k telles dans toutes les clauses il y a un L k i VRAI et un L k i FAUX.

Introduction Représentation de SAT dans CLIQUE Un exemple Prenons comme exemple les 4 clauses suivantes : P 1 P 2 P 3 P 4 P 1 P 2 P 3 P 1 P 2 P 3 P 2 P 3 P 4 Clique dans un graphe Ensemble indépendant dans le graphe complémentaire.

Introduction Représentation de SAT dans CLIQUE Noeuds du graphe.

Introduction Représentation de SAT dans CLIQUE Graphe complémentaire : Une arête entre P i et P i.

Introduction Représentation de SAT dans CLIQUE Graphe complémentaire : Une arête entre les noeuds d une clause.

Introduction Représentation de SAT dans CLIQUE Existence d une ensemble indépendant.

Introduction Représentation de SAT dans 3-SAT La clause L 1 L 2... L p est satisfiable si et seulement si l ensemble des p 3 propositions Ensemble équivalent le sont. L 1 L 2 Q 3 Q 3 (L 3 Q 4 ) Q 4 (L 4 Q 5 )... Q p 1 (L p 1 L p )

Introduction Représentation de SAT dans 3-SAT La clause L 1 L 2... L p est satisfiable si et seulement si l ensemble des p 3 propositions Ensemble équivalent C est à dire si l ensemble des clauses est satisfiable. L 1 L 2 Q 3 Q 3 L 3 Q 4 Q 4 L 4 Q 5... Q p 1 L p 1 L p

Introduction Représentation de 3-SAT dans 3-SATSym Principe On considère un ensemble de n clauses de la forme L 1 i L 2 i L 3 i, L j i = P k ou P k L ensemble des clauses L 1 i L 2 i L 3 i est satisfiable si et seulement si les 4n clauses L 1 i L 2 i Q i L 1 i Q i R L 2 (2) i Q i R L 3 i Q i R ont la propriété Π.

Introduction Représentation de 3-SATSym dans 3-COL Un exemple Prenons comme exemple les 3 clauses suivantes : P 1 P 2 P 3 P 2 P 3 P 4 P 1 P 4 P 5 Satisfiable avec les valeurs : P 1, P 3, P 4, P 5 : VRAI, P 2 : FAUX

Introduction Représentation de 3-SATSym dans 3-COL Noeuds et arêtes du graphe.

Introduction Représentation de 3-SATSym dans 3-COL P 1, P 3, P 4, P 5 : VRAI, P 2 : FAUX O en vert, jaune : VRAI, bleu : FAUX.

Introduction Représentation de 3-SATSym dans 3-COL P 1, P 3, P 4, P 5 : VRAI, P 2 : FAUX O en vert, jaune : VRAI, bleu : FAUX.

Introduction Représentation de 3-SATSym dans 3-COL Changement d une couleur double en vert : graphe 3-COL.

Sudoku? Introduction Définition Carré latin Comme Sudoku sans la condition sur les petits carrés... Sudoku SAT Sudoku est réprésentable dans SAT. Carré Latin Carré latin est représentable dans Sudoku : un carré latin (n, n) est représentable dans un Sudoku d ordre n (donc à n 2 lignes et colonnes).

Introduction Graphes et optimisation discrète Qu est ce qu un algorithme? Codage des données 1 Introduction 2 Qu est ce qu un algorithme? Codage des données 3 Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP 4 Exemples de problèmes NP Problèmes NP : définitions équivalentes

Introduction Algorithme déterministe Qu est ce qu un algorithme? Codage des données Données Un langage de programmation L. Une classe d objets C (chaînes de caractères = mot, ou entier). Définition (Algorithme) Un algorithme est une fonction définie par un programme écrit dans le langage L n C f (n)

Langages usuels Introduction Qu est ce qu un algorithme? Codage des données Assembleur C Pascal CAML Mathematica... Equivalence des langages Une fonction calculable par l un est calculable par tous les autres. Il faut :, +, /, les test (IF...), et les boucles WHILE, ou les tests (IF...) et les GO TO, ou, la composition des fonctions et la récursivité (langages fonctionnels), ou encore reconnaître une chaîne de caractères et la remplacer par une autre (Mathematica).

Langages usuels Introduction Qu est ce qu un algorithme? Codage des données Boucles L exécution d un algorithme ne se fait pas toujours en un temps fini : certains algorithmes bouclent indéfiniment. Nous supposerons que pour toutes les valeurs de n l algorithme s arrête en un nombre fini d étapes. Théorème Le problème de l arrêt d un algorithme est indécidable...

Codage des entiers Introduction Qu est ce qu un algorithme? Codage des données Chaîne de caractères : entier. Codage d un entier : décimal : 9 binaire : 9 1001 unaire : 9 Encombrement : n le nombre de bits nécessaires pour représenter l objet n. k-uple : (i 1, i 2,..., i k ) n

Introduction Codage des données booléennes Qu est ce qu un algorithme? Codage des données Codage d un graphe (G, A) On peut représenter un graphe à n noeuds par sa matrice booléenne, soit n 2 bits au plus. Codage d un ensemble de clauses n clauses (P 1 P 2... P k ) à p variables P i, i = 1,..., p une matrice (n, p) à coefficients dans (1, 1, 0) (P 1 P 2 P 5 P 7 ) (1, 1, 0, 0, 1, 0, 1, 0, 0,...)

Introduction Problèmes de reconnaissance Qu est ce qu un algorithme? Codage des données Langage L, Données C.? n C / f (n) = 1 Définition On dit f (n) accepte le mot n ou reconnaît les mots acceptés. A une fonction qcq n f (n) fonction de reconnaissance g(n, m) = 1 m = f (n) Calculer f (n) p = 1, 2,... g(m, p) = 1? Exemple : TSP-k :? un circuit hamiltonien de longueur inférieure à un entier k.

Introduction Graphes et optimisation discrète Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP 1 Introduction 2 Qu est ce qu un algorithme? Codage des données 3 Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP 4 Exemples de problèmes NP Problèmes NP : définitions équivalentes

Introduction Qu est-ce qu un problème complexe Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP Complexité en nombre d opérations algébriques : calculs en virgule flottante. Complexité en temps : temps de calcul. C est celle que nous allons développer. Complexité en espace : encombrement mémoire. complexité temps. Complexité algorithmique : longueur du programme. complexité d un objet : longueur du plus court programme qui peut le calculer. complexité au sens de Chaïtin-Kolmogorov. Définition des suites aléatoires.

Introduction La complexité : définition relative? Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP Dépend de l ordinateur. Parallélisme? Temps de calcul nombres d opérations élémentaires. Dépend bien sûr du langage. Dépend aussi de la taille des données n.

Introduction Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP Définition précise de la complexité en temps Définition (Complexité en temps) La complexité d un algorithme est le nombre d opérations effectuées par la machine de Turing associée à cet algorithme qui est supposée s arrêter toujours. Machine de Turing : notion d ordinateur minimal. Intérêt historique. Intérêt théorique. Une opération changer un bit.

Introduction Exemples de complexité Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP +,*,/ : Les opérations élémentaires sur les entiers (additions, multiplications...). Si les entiers sont représentés en binaire ce sont des opérations dont la complexité est linéaire par rapport à n. PGCD : Entiers premiers entre eux. PGCD(m, n) avec m < n. A chaque étape une division log 2 n n opérations algébriques. n 3 opérations élémentaires. PRIM : Test de primalité. D après un résultat récent (2002) la complexité est inférieure à C n 12.

Introduction Exemples de complexité Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP SAT : Satisfiabilité d un ensemble de clause. L algorithme qui teste toutes les valeurs possibles des symboles de propositions (soit 2 n ) est exponentiel par rapport aux nombres de symboles, et donc par rapport à la longueur des données. CLIQUE : Etant donné un graphe n noeuds existe-t-il une clique (i.e. un sous graphe complet) à k noeuds? L énumération de tous les sous-graphes à k noeuds exige C k n tests sur ces sous-graphes. Il existe donc une constante c telle que le nombre d opérations pour cet algorithme est de l ordre de cn k.

Problème P Introduction Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP Définition La complexité d un algorithme est polynomial (On dit de classe P) si, il existe une constante C et un entier k tels que le nombre d opérations effectuées par la machine de Turing associée à cet algorithme pour une données n est inférieur à C n k. Exemples PGCD Connexité d un graphe 2-COL PRIM

Problème EXP Introduction Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP Definition La complexité d un algorithme est exponentielle (On dit de classe EXP) si, il existe une constante C telle que le nombre d opérations effectuées par la machine de Turing associée à cet algorithme pour une données n est inférieur à C2 n. Donc P EXP. Exemples SAT CLIQUE, k-col, HAM, TSP par tous les algorithmes connus.

Introduction Graphes et optimisation discrète Exemples de problèmes NP Problèmes NP : définitions équivalentes 1 Introduction 2 Qu est ce qu un algorithme? Codage des données 3 Différentes notions de complexité La complexité en temps Exemples de complexité Echelle de complexité : les problèmes P, EXP 4 Exemples de problèmes NP Problèmes NP : définitions équivalentes

Problème NP Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes Definition f (n) (où f (n) = 0 ou 1) est de classe NP (en anglais : non-deterministic polynomial) une constante C, un entier k, et une fonction g(m) (le test ) g(m) P n une donnée m = φ(n) telle que m C n k et g(m) = 1 f (n) = 1 m est le témoin. Le témoin n est pas construit.

Exemple : SAT Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes Satisfiabilité d un ensemble de clauses. Données : m = (n, p) où n est le codage des clauses P 1 P 3... P k, p le codage d un ensemble de valeurs Vrai, Faux, m = (n, p) et g(m) calcule la valeur des clauses pour le codage p. TEST : vérifier que toutes les clauses sont vraies, algorithme linéaire.

Exemple : k-col Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes Coloriage d un graphe avec k couleurs Données : m = (n, p) où n est le codage du graphe, p le codage d un coloriage des noeuds, g(m) est une fonction qui teste si deux noeuds adjacents ont la même couleur. TEST g(m) : vérifier que le coloriage est correct, i.e., balayer toutes les arêtes, algorithme linéaire.

Exemple : CLIQUE Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes Existence d un sous-graphe complet d ordre k Données : m = (n, p) où n est le codage du graphe, p le codage d un sous-ensemble de k noeuds, g(m) est une fonction qui teste si dun sous-graphe est complet. Tester la propriété revient à balayer toutes les arêtes du sous-graphe associé à p, algorithme linéaire.

Introduction Robustesse de ces définitions Exemples de problèmes NP Problèmes NP : définitions équivalentes Toutes les opérations algébriques (addition, multiplication...) sont polynomiales. De même les tests, les recopies d éléments en mémoire, la classe P ne dépend pas du type d ordinateur utilisé. Le parallélisme ne fait que modifier la constante C, l utilisation de machines de Turing change la valeur de k. Les classes P, EXP, NP sont donc indépendantes des types d ordinateur et langages utilisés.

Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes Problèmes NP : définitions équivalentes f (n) = 1 p tel que g(n, p) = 1 p peut aussi représenter un k u ple d entiers g a pour données k entiers supplémentaires. (n 1, n 2,...) ) un oracle qui donne les entiers (n 1, n 2,...) qui permettent de vérifier que le résultat est 1. Par exemple, définir des GO TO n i. Algorithme non détermiste.

Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes Représentation polynômiale d un problème Définition P 1 (données n, fonction f (n)) est polynômialement représentable dans P 2 (données m, fonction g(m)) si n m, / m C n k et que g(m) = 1 si et seulement si f (n) = 1 On écrit φ(n) n est pas construit. P 1 P P2 P 1 P P2, P 2 P P3 P 1 P P3. Alg. polyn. pour P 2, alg. polyn. pour P 1.

Exemples Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes déjà vu - SAT P CLIQUE. - SAT P 3 COL. - k COL P SAT. - Carré latin P Sudoku. - Sudoku P SAT. - SAT P ILP.

Introduction Problèmes NP-complet Exemples de problèmes NP Problèmes NP : définitions équivalentes Théorème (Cook) Tous les problèmes de classe NP sont polynomialement représentables dans SAT. Definition (Problème NP-complet) Un problème de reconnaissance est NP-complet si tout problème de classe NP est polynomialement représentable dans ce problème.

Exemples Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes Pb. NP Complet SAT : d après le théorème de Cook. CLIQUE : SAT est P dans CLIQUE. 3-SAT : SAT est dans 3-SAT. P 3-SATsym : 3-SAT est dans 3-SATSym. 3-COL : 3-SAT est P P dans 3-COL. HAM : Le problème de l existence d un circuit hamiltonien (admis). TSP : Le problème du voyageur de commerce (admis). ILP : SAT est P dans ILP.

Exemples Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes Sudoku Sudoku généralisé est NP complet!

Conclusion Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes En pratique 1 Les problème NP-Complet effectivement difficiles. 2 Les problèmes NP-complet ont une complexité apparente non polynômiale. 3 on construit des heuristiques.

Conclusion Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes En pratique 1 Les problème NP-Complet effectivement difficiles. 2 Les problèmes NP-complet ont une complexité apparente non polynômiale. 3 on construit des heuristiques.

Conclusion Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes En pratique 1 Les problème NP-Complet effectivement difficiles. 2 Les problèmes NP-complet ont une complexité apparente non polynômiale. 3 on construit des heuristiques.

Conclusion Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes En pratique 1 Les problème NP-Complet effectivement difficiles. 2 Les problèmes NP-complet ont une complexité apparente non polynômiale. 3 on construit des heuristiques.

Conclusion Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes En pratique 1 Les problème NP-Complet effectivement difficiles. 2 Les problèmes NP-complet ont une complexité apparente non polynômiale. 3 on construit des heuristiques. Conjecture P NP?

Conclusion Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes En pratique 1 Les problème NP-Complet effectivement difficiles. 2 Les problèmes NP-complet ont une complexité apparente non polynômiale. 3 on construit des heuristiques. Millenium Prize P NP? 1 000 000 $

Introduction Exemples de problèmes NP Problèmes NP : définitions équivalentes Conclusion du cours de Mathématiques 2