7.1 - Non déterminisme.

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

Machines virtuelles Cours 1 : Introduction

Introduction à l étude des Corps Finis

Programmation linéaire

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

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

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

Université Paris-Dauphine DUMI2E 1ère année, Applications

Le produit semi-direct

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

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

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Calculabilité Cours 3 : Problèmes non-calculables.

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

Quelques tests de primalité

I. Polynômes de Tchebychev

Limites finies en un point

Résolution de systèmes linéaires par des méthodes directes

Algorithmique et programmation : les bases (VBA) Corrigé

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Probabilités sur un univers fini

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

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Cours de Master Recherche

Fibonacci et les paquerettes

Annexe 6. Notions d ordonnancement.

Continuité et dérivabilité d une fonction

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

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

MIS 102 Initiation à l Informatique

Représentation d un entier en base b

Cryptographie et fonctions à sens unique

Les indices à surplus constant

Corps des nombres complexes, J Paul Tsasa

Définitions. Numéro à préciser. (Durée : )

Image d un intervalle par une fonction continue

Chapitre VI - Méthodes de factorisation

Cours de Probabilités et de Statistique

Chapitre 2. Eléments pour comprendre un énoncé

aux différences est appelé équation aux différences d ordre n en forme normale.

Plan. 5 Actualisation. 7 Investissement. 2 Calcul du taux d intérêt 3 Taux équivalent 4 Placement à versements fixes.

Probabilités sur un univers fini

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Fonctions de plusieurs variables

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

Algorithmes récursifs

Informatique Générale

Chapitre 7. Récurrences

Conversion d un entier. Méthode par soustraction

Optimisation Discrète

Rappel sur les bases de données

ÉVALUATION FORMATIVE. On considère le circuit électrique RC représenté ci-dessous où R et C sont des constantes strictement positives.

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Logique. Plan du chapitre

Table des matières. Introduction

Glossaire des nombres

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

V- Manipulations de nombres en binaire

Suites numériques 4. 1 Autres recettes pour calculer les limites

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Rappels sur les suites - Algorithme

Equations cartésiennes d une droite

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Licence Sciences et Technologies Examen janvier 2010

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

Chapitre 5 : Flot maximal dans un graphe

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

Coefficients binomiaux

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Objets Combinatoires élementaires

Chapitre 2 Le problème de l unicité des solutions

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

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

Resolution limit in community detection

Chapitre 6. Fonction réelle d une variable réelle

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Probabilités. C. Charignon. I Cours 3

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

Le modèle de Black et Scholes

Cours 1 : La compilation

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

1 Première section: La construction générale

Comparaison de fonctions Développements limités. Chapitre 10

ÉPREUVE COMMUNE DE TIPE Partie D

1 Définition et premières propriétés des congruences

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

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

chapitre 4 Nombres de Catalan

Exercices de dénombrement

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Données Réparties. Thibault BERNARD.

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

Théorème du point fixe - Théorème de l inversion locale

Transcription:

44 Complexité Algorithmique B. Mariou Automne 2016 version du 1 er décembre 2016 7 LA CLASSE NP Parmi les problèmes non (encore) classés (voir paragraphe 1.6 et point 3.14) ), certains partagent des caractéristiques communes : si on ne connaît aucun algorithme efficace pour les résoudre, il semble qu à chaque fois, la (trop) grande quantité de travail vient du grand nombre de possibilités à examiner, chacune des possibiltés étant plutôt simple à traiter. On a donc imaginé des machines capables de traiter en parallèle de très nombreux cas. Cela revient, on va le voir, à renoncer à un des trois aspects de la caractéritisation par Turing de la notion d algorithme : le déterminisme. Les machines non déterministes sont matériellement irréalisables (à l heure actuelle? voir point 7.9), mais leur définition permet des avancées théoriques notables. 7.1 - Non déterminisme. Plusieurs définitions équivalentes. 7.1 Définition informelle 1 : divination. La nouvelle instruction deviner, dans un algorithme, consiste à pouvoir faire un choix (entre un nombre fini et borné de possibilités voir point 7.11), et faire un choix pertinent s il en existe un i.e. un choix qui conduit à une solution lorsqu il en existe une. Un algorithme comportant des étapes de divination est appelé non déterministe. 7.2 Exemple. Algorithme avec divination pour le problème de recouvrement d un graphe par des sommets. (Voir l exercice 49 p40.) ENS COUVRANT Entrées : k n entiers et G graphe d ordre n Question : Existe-t-il un ensemble S de k sommets qui soit couvrant i.e. tel que toute arête a une extrémité dans S? Exemples G 1 1 2 3 4 Pour k=2 couvrants {1; 4}, {2; 3}, {2; 4} non {1; 2}, {1; 3}, {3; 4} G 2 1 2 3 4 5 couvrant (k = 3) {1; 3; 5} Et pour k = 2? Essayer toutes les paires (C 2 5 )? (trop grande complexité) Algorithme avec divination Pour i = 1 à k Deviner le sommet s i (qui permettra de compléter {s 1,..., s i } en S couvrant, si un tel S existe). Si {s 1,..., s k } ainsi obtenu est couvrant, écrire oui et fin Sinon, écrire non et fin Pour G 2 et k = 3, la réponse est oui, un sous-ensemble couvrant de trois sommets existe. Et donc l exécution de l algorithme produira trois choix successifs de sommets qui ne conduisent jamais à une impasse. Par exemple, le choix de s 1 = 1 est possible car on pourra ensuite compléter en un ensemble couvrant de trois sommets (par ex. {1; 3; 5}). Mais une fois s 1 = 1 choisi, le choix de s 2 = 4 sera exclu car, avec ces deux sommets, on ne peut pas choisir un troisième sommet et obtenir un ensemble couvrant. Si s 1 = 1 et s 2 = 2 ont été choisis, le seul choix pertinent pour s 3 est le sommet 5. En revanche, pour G 2 et k = 2, aucune paire de sommets ne constitue un ensemble couvrant. Lors de l exécution de l algorithme, les choix se porteront sur n importe quelle paire. Le test final, produira la réponse non. 7.3 Définition informelle 2 : clonage/calculs parallèles. Une machine effectue des calculs parallèles si, lorsqu elle a des situations multiples à explorer, elle est capable de se dupliquer en plusieur clones (en nombre fini et borné voir point 7.11) ; chacun de ces clones examinant alors une de ces situations, et tous les clones travaillant en même temps. Autrement dit la machine se dédouble et mène tous les calculs simultanément.

La classe NP version du 1 er décembre 2016 45 7.4 Exemple. Algorithme avec calculs parallèles pour le problème du recouvrement d un graphe par des sommets. Machines avec calculs parallèles Pour i = 1 à k Considérer une arête pas encore couverte par les sommets qui ont déjà été choisis et choisir un des sommets de cette arête. Tester si l ensemble de sommets obtenu est couvrant. Exemple d exécution pour l entier k = 2 et le graphe G 3 : 1 2 3 4 arêtes pas couvertes (1, 2) (2; 3) ; (2, 4) ; (3, 4). sommets au choix 1 ; 2 ; 3 ; 4 i = 1 / \ sommet choisi 1 2 3 4 exploré par le clone n o 1 n o 2 n o 3 n o 4 arêtes pas couvertes (2, 3); (2, 4); (3, 4) (3, 4) (1, 2); (2; 4) (1, 2); (2, 3) sommets au choix 2 ; 3 ; 4 3 ; 4 1 ; 2 ; 4 1 ; 2 ; 3 i = 2 / \ / \ / \ / \ sommet choisi 2 3 4 3 4 1 2 4 1 2 3 exploré par le clone n o 1.1 n o 1.2 n o 1.3 n o 2.1 n o 2.2 n o 3.1 n o 3.2 n o 3.3 n o 4.1 n o 4.2 n o 4.3 ensemble obtenu {1; 2} {1; 3} {1; 4} {2; 3} {2; 4} {1; 3} {2; 3} {3; 4} {1; 4} {2; 4} {3; 4} couvrant? N N N O O N O N N O N La machine répond positivement ssi, au moins sur une des branches, le test obtient la réponse oui, i.e. au moins un des ensembles testés est couvrant. 7.5 Le non déterminisme se caractérise donc par : - la présence de choix dans le processus (divination), - le fait que le calcul n a pas un déroulement unique, linéaire, prévisible (calculs parallèles). 7.6 Théorème. Les deux notions sont équivalentes : 1 avoir le pouvoir (ou l instruction) de divination ; 2 analyser différents cas possibles en parallèle et s arrêter dès que l un d entre eux a été constaté comme étant favorable. Idée de la démonstration. Dans la version 2, on a considéré que la machine se duplique à chaque fois qu elle est face à un choix, et que chacune de ses copies va emprunter un chemin différent (et éventuellement se dupliquer à son tour), que tous ces clones vont travailler en parallèle, et que tout va s arrêter dès que l un d entre d eux aura obtenu une réponse positive. Cela revient à considérer que seul le calcul favorable a été mené par la machine, autrement dit que la machine fait toujours le bon choix (s il y en a un) lorsqu elle est face à une bifurcation (version 1). 7.7 Remarques. Dans le cas d un algorithme déterministe, les instances positives et négatives du problème sont traitées de façon analogue. Ce n est plus le cas ici : une instance est positive s il y a au moins un chemin (i.e. une suite de choix) favorable mais une instance est négative si tous les chemins sont défavorables. Ceci introduit une dissymétrie entre les deux situations. Le non déterminisme permet de tester plusieurs cas simultanément. C est exactement ce qu on voudrait pouvoir faire lorsqu on s interroge sur l existence d un objet, ou d une situation, précis et qu on a de nombreux candidats à examiner. Exemple. Problèmes COMP et PREM n est composé si 2 k n k divise n n est premier si 2 k n k ne divise pas n Il y a un algorithme non déterministe naturel pour résoudre la question n est-il composé?. Il consiste à étudier, en parallèle, la divisibilité de n par tous les candidats possibles. Pour n est-il premier?, c est beaucoup moins naturel. De quoi faut-il tester l existence pour s assurer de la réponse oui? (Voir exercice 65) 7.8 Définition formelle : les machines de Turing non déterministes. Une MdT non déterministe est définie non pas par une fonction de transition mais par une relation de transition, avec des choix multiples : à chaque couple (état, symbole lu) peuvent être

46 Complexité Algorithmique B. Mariou Automne 2016 version du 1 er décembre 2016 associées plusieurs transitions possibles (mais leur nombre est fini et borné voir point 7.11). Pour une entrée donnée, les calculs menés par la MdT constituent un arbre de possibilités (chaque branche finie est un chemin possible vers l état final, mais il peut y avoir des branches infinies i.e. des suites de transitions autorisées qui n aboutissent jamais à l état final). Dans le cas où la MdT est censée résoudre un problème de décision, on considère que la réponse est 1 (oui), si une des branches finies conduit au résultat 1. 7.9 Fonctionnement d une MdT non déterministe vue comme une vraie machine. Une machine de Turing non déterministe possède un arbre de calculs possibles. Si on veut garder l image d une machine réelle, qui conduit ses calculs pas à pas, on peut considérer que la machine se duplique à chaque fois qu elle a un choix à faire. Ainsi, elle examine toutes les possibilités, simultanément, grâce à des calculs parallèles. Elle s arrête lorsqu un des calculs aboutit à une réponse positive, et, dans ce cas, la réponse globale est oui. La réponse globale est non lorsque tous les calculs qui ne bouclent pas / qui devaient se terminer, ont abouti à une réponse négative. Les MdT non déterministes sont donc réalisations, définies avec rigueur et précision, de la notion informelle et un peu vague de machines qui effectuent des calculs parallèles. Elles restent des machines abstraites, avec les propriétés théoriques/idéales habituelles (comme la mémoire illimitée, permettant de traiter des données arbitrairement grandes). La condition d arrêt et de réponse non est également difficile à mettre en œuvre concrétement (comment savoir à un instant donné, si tous les calculs non terminés sont des calculs qui ne se termineront pas?). C est l idée d un arbre des calculs possibles qui permet d obtenir une illustration de ce que peuvent être des calculs effectués en parallèles. Et les calculs possibles forment une arborescence (par opposition à l unique calcul possible dans le cas déterministe) grâce à la relation de transition qui propose des transitions multiples. Notons enfin que l arbre des différents calculs possibles dépend des données fournies à la MdT à l entrée. Exemple. On peut imaginer une MdT non déterministe qui se contente de se déplacer vers la droite tant qu elle lit des 1 mais qui a des transitions multiples dans certains cas où elle lit 0. Si les données soumises ne comportent que des 1, l arbre des calculs est réduit à un unique calcul (arbre à une seule branche) qui est donc déterminé. 7.10 Exemple. Reconnaître les mots avec un 1 en avant dernière position. L alphabet utilisé est {0; 1}. La machine a 5 états, dont deux états finaux accpetant/rejetant : e i, e 0, e 1, e + f, e f. La table des transitions possibles est la suivante : état symbole lu d 0 1 e i d, D, e i 0, D, e i { 1, D, ei 1, D, e 0, X, e f e 0 0, D, e 1 1, D, e 1, X, e f e 1 0, X, e f 1, X, e f, X, e + f Quand la machine est à l état initial et lit le symbole 1, elle peut effectuer deux transitions. Cette table n est donc pas celle d une "fonction de transtion, mais d une relation de transition. schema : relation de transition sous forme de graphe Déroulement des calculs pour les entrées 110 et 101. La tête de lecture de cette MdT parcourt le ruban vers la droite. À chaque fois qu elle lit le symbole 1, elle entreprend de vérifier si ce symbole est l avant dernier du mot. Pour cela, elle passe à l état e 0. Mais un clone de la machine, lui, reste à l état e i pour être en mesure de repérer les occurrences suivantes du symbole 1. Une remarque importante est que, même dans le cas d une transition multiple (bifurcation), le nombre de transitions possibles est limité par les caractérisitiques de la machine (nombre d états, nombre de symboles de l alphabet). 7.11 Limitation du nombre de choix / de clones / de transitions.

La classe NP version du 1 er décembre 2016 47 Quelle que soit la définition considérée, le nombre de choix (définition 1), de clones (définition 2) ou de transitions simultanées (MdT), est limité par une borne, fixée une fois pour toutes (voir dernière remarque du point précédent). Cela n entrave pas le pouvoir de choix de ces machines car, même avec des possibilités de choix seulement binaire, on peut construire progressivement de multiples objets. Par exemple, avec une MdT d alphabet binaire, si le choix concerne tous les nombres de 1 à k, où k s écrit en base 2 avec n chiffres. Le premier choix concerne le 1er chiffre : un clone de la MdT écrit 0, l autre écrit 1. Chacun de ces deux clones doit ensuite choisir entre 0 et 1, et se duplique donc en deux clones qui écrivent, respectivement, 0 ou 1, à la suite du chiffre déjà écrit. On a alors 4 clones qui ont sur leur ruban, respectivement, 00, ou 01, ou 10 ou 11. Les 4 clones se duplique face au choix du 3 e chiffre. On obtient ainsi 8 clones portant chacun, sur son ruban, une des 8 combinaisons de 0 et de 1 de longueur 3. Puis vient le choix du 4 e chiffre qui conduit à 16 clones, puis du 5 e chiffre, etc. Le processus s arrête après l écriture de n chiffres. On a alors 2 n clones, qui portent sur leurs rubans, toutes les combinaisons possibles de n chiffres choisis dans {0; 1}. Et l intérêt du clonage, même binaire, est qu on a abouti à tous ces clones, en n étapes de calcul. De façon générale, même avec des choix binaires, on parvient à choisir dans une liste d une nombre quelconque d éléments : (x) (x.1) partager la liste en deux (x.2) choisir une moitié (x.3) si cette moitié est réduite à un élément, passer à (x+1) sinon revenir à (x) avec la nouvelle liste. 7.12 Exemples. Tester si un nombre est composé. Un nombre entier a est à examiner. Grâce au processus décrit ci-dessus, le premier travail de la machine consiste à choisir un nombre entre 2 et n en se mutipliant en un nombre d exemplaires suffisant pour que tout entier de 2 à a soit écrit sur le ruban d une des copies. Cette première phase peut se décomposer en n choix binaires successifs, où n est tel que 2 n a i.e. n 1 2 log 2 a. La seconde phase consiste, pour chaque copie à tester la divisibilité de a par le nombre b qu elle a choisi i.e. qui se trouve sur son ruban. 7.2 - Temps de calcul. 7.13 Définition. Algorithme non déterministe, résolution de problème. On appellera par la suite non déterministe un algorithme qui peut effectuer des calculs parallèles ou qui a l instruction de divination. Un tel algorithme, N résout un problème de décision D = (I, I + ) si, pour toute instance i I, l algorithme fournit la réponse adéquate pour i, i.e. lorsque i I +, un des calculs de N, aboutit à la réponse oui, et lorsque i / I +, tous les calculs de N qui se terminent donnent la réponse non. 7.14 Définition. Complexité d un algorithme non déterministe. On retrouve la dissymétrie entre positif et négatif : pour chaque instance positive i du problème, t(i) est le temps de calcul du chemin le plus rapide conduisant à la réponse oui pour i, et la complexité de l algorithme est la fonction n max{t(i) i instance positive de taille n}. 7.15 Exemple. Temps de calcul et complexité de la machine de l exemple??. 7.16 Proposition. Une MdT non déterministe, avec une fonction de complexité c peut toujours être simulée par une MdT déterministe dont la fonction de complexité est majorée par P (c(n))d c(n) (où P est un polynôme, d une constante positive). Idée de la démonstration. La MdT déterministe traite tous les cas, les uns après les autres, plutôt que simultanément et en parallèle.

48 Complexité Algorithmique B. Mariou Automne 2016 version du 1 er décembre 2016 Par exemple, si la MdT non déterministe a une complexité linéaire, i.e. c(n) = O(n), elle peut être simulée par une MdT déterministe de complexité O(P (n)d n ). 7.17 Corollaires. Le saut de complexité déterminisme/non déterminisme ne dépasse donc pas l exponentielle. Pour la calculabilité, le non déterminisme ne modifie absolument rien : tout ce qui est calculable de façon non déterministe l est aussi de façon déterministe. 7.18 Définitions. Temps polynomial non déterministe. Un algorithme non déterministe est polynomial, ou s exécute en temps polynomial (en la taille des données), si sa fonction de complexité est bornée par un polynôme. Un problème est résoluble en temps non déterministe polynomial s il existe un algorithme non déterministe polynomial qui le résout. Ces problèmes constituent la classe qu on nomme N P, la classe des problèmes résolubles en temps non déterministe polynomial. La classe NP peut également être définie à l aide des machines de Turing. Pour k IN, NT IME(n k ) est la classe des problèmes résolubles par une MdT non déterministe dont la fonction de complexité est O(n k ). N pour Non déterministe Et NP = NT IME(n k ). c est une réunion croissante k IN 7.19 Proposition. (Robustesse) Un problème D est résoluble en temps polynomial par une MdT non déterministe (i.e. D est dans un des NT IME(n k )) ssi il est résoluble par un algorithme (au sens large) non déterministe polynomial. Autrement dit, s il existe un algorithme non déterministe polynomial qui résout le problème, alors il existe aussi une MdT non déterministe de complexité polynomiale. 7.20 Théorème. P NP Démonstration. Les MdT déterministes sont des cas particuliers de MdT non déterministes : une fonction de transition est notamment une relation de transition. Simplement, l arbre des calculs possibles pour une MdT déterministe se réduit toujours à une unique branche (quelle que soit l instance placée sur le ruban au départ). Cependant la fonction de complexité n est pas évaluée tout à fait de la même façon dans les deux cas, car seules sont prises en compte les instances positives dans le cas non déterministe. Considérons une MdT déterministe M, résolvant un problème de décision D = (I, I + ), avec une complexité (déterministe) O(n k ). Cela signifie que, pour toute instance i de D (positive ou négative), M fournit la réponse en un nombre de transitions qui est de l ordre de taille(i) k. Si on regarde M comme une machine non déterministe : pour i I +, l unique branche de calculs possibles pour l entrée i (qui conduit à une réponse positive) est explorée par M en un temps qui est donc O(taille(i) k ). En conclusion DT IME(n k ) NT IME(n k ). 7.21 Remarque. Après ce résultat, la question est de savoir si cette inclusion est stricte (P NP ) ou s il y a égalité (P = NP ). C est une question toujours ouverte, et extrêment ardue. Par exemple, lorsqu on a évoqué le classement problèmes faciles/problèmes difficiles, page 25, on a cité des problèmes pas encore classés, i.e. des problèmes dont on ignore s ils sont dans P. Tous ces problèmes sont dans N P et on peut le constater très facilement, notamment grâce au critère qui va être étudié maintenant. 7.3 - Définition de N P via la certification. 7.22 Définition. Un problème de décision est résoluble par certificats (ou par certificats succints) s il existe : pour chaque instance positive i, un certificat C(i) ; un algorithme déterministe A qui sait reconnaître une instance positive i, à l aide du certificat C(i), en temps polynomial en la taille de i.

La classe NP version du 1 er décembre 2016 49 7.23 Remarques. L algorithme A est à deux entrées et donc, si i est une instance négative, on lui soumet tout de même un couple (i, C). Et donc A n est pas capable de décider si i est positive ou négative sans l aide du certificat C(i). En aucun cas A ne constitue une résolution déterministe polynomiale du problème. Mais c est seulement la taille de i qui est utilisée pour étalonner le temps de calcul de A. Ceci entraîne que la taille des certificats est bornée polynomialement par celle des instances (positives) : il y a un polynôme p tel que, pour tout i I +, taille(c(i)) p(taille(i)). Sinon A ne pourrait pas manipuler les C(i) en temps polynomial en la taille de i. 7.24 Exemple pour le problème COMP. Soit i une instance positive, i.e. un nombre entier naturel composé. Le certificat C(i) peut alors être un diviseur non trivial de i. L algorithme A consiste à vérifier que C(i) 1, C(i) i et C(i) divise i. Ce qui peut être réalisé en temps polynomial en la taille des i. 7.25 Remarque. Le certificat C(i) assure, atteste (certifie!) que la réponse est oui lorsque... la réponse est oui. Le rôle de A est de le vérifier en temps polynomial. Et le rôle du certificat est donc de permettre une vérification rapide en cas de réponse positive. 7.26 Exemples. Pour le problème ENS COUVRANT. Instance i = (n, G, k). Si elle est positive, C(i) = un ensemble couvrant constitué de k sommets. Algorithme A : vérifier que C(i) est de cardinal k et qu il couvre G. Pour le problème PREM. Une instance positive i est un nombre premier. Un certificat C(i) devrait être un objet grâce auquel on pourra vérifier rapidement que i est premier. Donc un objet dont l existence permettrait d affirmer que i est premier. Que doit être C(i)? Avant de savoir que ce problème est résoluble en temps polynomial (déterministe), on savait qu il est résoluble par certificats succints. Ainsi, les certificats pour ce problème existent. Mais ne sont pas évidents à trouver (voir exercice 65). 7.27 Remarques. Les problèmes qui sont posés en termes d existence d un objet, ou d une situation, sont, encore une fois, ceux pour lesquels la résolution par certificat est adaptée. Puisque le certificat exhibe un objet particulier, qui peut être l objet cherché ou simplement un témoin d une situation particulière. On dit aussi qu un problème résoluble par certificats succints est un problème pour lequel les solutions sont faciles à vérifier : il n est peut-être pas facile de les trouver (notamment à cause de la multitude des possiblités à étudier) mais si on nous en propose une, il est facile de vérifier qu elle est solution. Puisque la vérification, une fois fourni un certificat, est en temps polynomial en la taille de l instance. 7.28 Théorème. nouvelle caractérisation de NP Un problème de décision D est résoluble par certificats succints si et seulement si D NP. Idée de la démonstration. L idée centrale est que le certificat est un guide des meilleurs choix à faire durant le calcul mené par une MdT non déterministe. ( ) Si D NP. On a M MdT non déterministe qui résout D en temps polynomial. À chaque instance positive i de D, on associe C(i), la liste des choix qui conduisent sur une branche acceptante de longueur minimum. Puisque M résout D en temps polynomial, C(i) est de taille polynomiale en la taille de i. De plus, on peut construire, à partir de M, une MdT déterministe qui, à partir de l entrée i, C(i) vérifie que i est une instance positive de D, et ce en temps polynomial en la taille de i. (Cette nouvelle machine se comporte comme M mais lorsque des possibilités multiples de transition se présentent, elle ne suit que celle que lui indique le certificat C(i)).

50 Complexité Algorithmique B. Mariou Automne 2016 version du 1 er décembre 2016 ( ) Si D est résoluble par certificats succints, on a (C(i)) i I + des certificats et A un algorithme tels que A vérifie en temps polynomial que i I + avec l aide de C(i). En particulier, la taille des C(i) est polynomiale en la taille des i. La MdT non déterministe résolvant D en temps polynomial que nous cherchons se comporte de la façon suivante. Pour chaque instance i, la machine explore, par choix non déterministes (i.e. exhaustifs et étudiés en parallèle), l univers des certificats i.e. l ensemble des objets de même type que les C(i). Sur chacune des branches, elle applique l algorithme A. Si l instance soumise est positive, alors une, au moins, des branches explorées, celle qui correspond au certificat C(i), fournira une réponse positive en un temps polynomial en la taille de i d après les propriétés de A. 7.29 Exemple. Le problème SAT. Une instance est une formule F, sous forme normale conjonctive. Et on cherche à savoir si F peut être rendue vraie par une affectation de valeurs de vérité sur les variables de F. Un certificat c(f ) pourrait être une telle affectation. En effet, si F est en n variables, n est alors une longueur intuitive de F et l affectation des variables peut être décrite par une liste de n booléens, autrement dit taille(c(f )) = n. Enfin, vérifier que cette affectation satisfait F peut être réalisé en lisant une fois la formule (car elle est sous forme normale conjonctive). Voyons la correspondance entre ce type de certificats et une MdT non déterministe résolvant SAT. Considérons une MdT non déterministe qui étudie, pour chaque variable a, les deux cas v(a) = 1 et v(a) = 0. Elle résout SAT en temps polynomial : elle étudie, en parallèle les 2 n branches d un arbre binaire de profondeur n, ce sont les 2 n affectations possibles des valeurs de vérité aux variables i.e. les 2 n lignes de la table de vérité. La profondeur de l arbre correspond justement aux nombre d étapes nécessaires, donc n. À la fin, s il y a une branche acceptante, c est précisément une affectation des variables satisfaisant F, autrement dit un certificat c(f ). Réciproquement, si on a des certificats de ce type (suite de n booléens) et un algorithme A qui procède en lisant le certificat comme la liste des valeurs prises par les variables et qui vérifie que cela conduit à la valeur vraie pour F ; on peut construire une MdT non déterministe résolvant SAT en temps polynomial. Il suffit de s inspirer de la méthode indiquée dans la démonstration du théorème : la MdT se dédouble, variable après variable, pour étudier en parallèle les valeurs 0 et 1 pour cette variable. Et cette étude consiste simplement à appliquer sur chacune des branches possibles l algorithme A, en l occurrence il s agit de tester, sur chaque branche, si les valeurs choisies permettent de satisfaire F. 7.30 Remarques. D NP : D décidable en temps polynomial (par une MdT) non déterministe. D résoluble par certificats succints : D a des solutions vérifiables en temps polynomial (déterministe). Pour montrer qu un problème est NP, il est, en général, plus aisé d utiliser les certificats que construire une MdT, ou un algorithme, non déterministe. Les problèmes N P présentent, en général, deux niveaux différents de difficulté : - il peut y avoir beaucoup de cas à étudier, (par exemple2 n pour une entrée de taille n) - chacun des cas se résout facilement (polynomialement en la taille des entrées). 7.31 Exemples. Problème CLIQUE. CLIQUE Entrées : k n entiers naturels, G graphe d ordre n Question : G a-t-il une clique à k éléments? (Une clique est un sous-graphe complet, voir annexe B page 102.) Pour une entrée i = (k, n, G) du problème, un certificat C(i) peut être un sous-graphe complet de taille k i.e. un ensemble de k sommets du graphe reliés deux-à-deux par des arêtes. Dans ce cas, on a taille(c(i)) taille(i), et la vérification nécessite d examiner k(k + 1)/2 paires de sommets. Donc CLIQUE a des solutions vérifiables en temps polynomial, i.e. est résoluble par certificats succints. Donc CLIQUE NP. L argumentation serait un peu plus compliquée si on voulait trouver un algorithme non déterministe résolvant CLIQUE. Notons, enfin, que ce problème est bien du type attendu pour un membre de NP : il y a beaucoup de cas à envisager (Cn k k(k+1) sous-ensembles de k sommets) mais pour chacun d eux le nombre de vérifications est petit ( ). 2 Problème COMP.

La classe NP version du 1 er décembre 2016 51 Instance : entier a. Certificat C(a) : un diviseur non trivial de a. La taille de C(a) et la durée de la vérification de C(a) a sont polynomiales en la taille de a. Il y a beaucoup de diviseurs non triviaux potentiels mais chacun est facile à étudier. Problème HAMILTON. Instance : n IN et G graphe non orienté d ordre n. Certificat : un cycle hamiltonien, décrit par une liste ordonnée des n sommets (l ordre de parcours). La taille du certificat et la durée de la vérification, à l aide du certificat (vérifier que la liste est un cycle), sont polynomiales en la taille de l instance. HAMILTON NP. Problème HAMILTON (inversé du problème précédent). Les instances sont les mêmes que pour le problème précédent mais la question est inversée : le graphe est-il sans chemin hamiltonien? Un certificat devrait être un objet dont l existence garantirait qu il n y a pas de chemin hamiltonien dans le graphe. Il n y a pas de candidat naturel pour jouer ce rôle. Ce problème présente beaucoup de cas à tester (toutes les façons d ordonner la liste des sommets), et chacun d eux est facile à étudier. Mais il ne s agit pas de trouver un cas favorable mais de vérifier qu ils le sont tous ( favorable signifie ici cet ordre de parcours des sommets n est pas un cycle ). HAMILTON NP? Problème GRAPHES ISOMORPHES GRAPHES ISOM Entrées : un entier naturel n et deux graphes G et H d ordre n Question : G et H sont-ils isomorphes? Un isomorphisme est une bijection de G sur H qui préserve la relation d adjacence (voir annexe B page 102). Pour une instance i = (n, G, H), un certificat C(i) peut être un isomorphisme de G dans H. Si on fixe une fois pour toute un ordre sur les sommets de G, la description d une bijection de G dans H se résume à une liste ordonnée des sommets de H, et donc taille(c(i)) taille(i). Pour vérifier que la relation d adjacence est préservée, on examine toutes les paires de sommets de G, soit n(n+1) paires. 2 Ce problème a donc des solutions vérifiables en temps polynomial, il est dans NP. Il y a de nombreux cas à considérer (n! bijections de G sur H, n! façons de lister les sommets de H) mais chacun est traité rapidement. En revanche, pour le problème inversé GRAPHES ISOM, il s agit de vérifier qu aucune bijection ne convient. Un certificat serait un objet dont l existence prouverait cela. On n en connaît pas et on ignore si ce problème est dans NP. 7.4 - Propriétés de NP. 7.32 Rappel. Pour D problème de décision, D co-np ssi D NP. Exemple. Les problèmes HAMILTON et GRAPHES ISOM sont dans co-np. La classe co-n P est donc celle des problèmes dont l inversé à des solutions facilement vérifiables. Cela signifie qu avec certificats, on a un algorithme polynomial (déterministe) qui identifie les instances négatives. Ainsi, on peut dire que pour un problème D, être dans NP c est avoir des réponses positives facilement vérifiables. Tandis qu être dans co-n P, c est avoir des réponses négatives facilement vérifiables. 7.33 Proposition. P co-np Démonstration. Si D P alors D P donc D NP. (Ou encore : P NP donc co-p co-np, mais co-p = P.) 7.34 Remarques. On a donc : P NP co-np. Autrement dit, lorsqu un problème est facile (résoluble efficacement), ses réponses positives et négatives sont facilement vérifiables.

52 Complexité Algorithmique B. Mariou Automne 2016 version du 1 er décembre 2016 Questions ouvertes :? P = N P? Tous les problèmes ayant des solutions positives facilement vérifiables sont-ils faciles?? N P = co-n P? Avoir des solutions positives facilement vérifiables équivaut-il à avoir des solutions négatives facilement vérifiables?? P = NP co-np? Les problèmes avec solutions positives et négatives facilement vérifiables sont-ils tous faciles? Observations faciles : (a) si P = NP alors co-np = co-p = P = NP ; (b) si P NP et NP = co-np alors P NP co-np ; (c) si co-np NP alors co-np NP et NP co-np car co-np NP ssi NP co-np On ne connaît pas, en particulier, la structure de NP modulo P. Si P = NP, c est simple puisque, exceptés les problèmes triviaux, P est constitué d une unique P -classe. Mais il est prouvé que si P NP alors, dans NP, il y a une infinité de P -classes, totalement ordonnée par P (à l exception des problèmes triviaux). 7.35 Proposition. La classe NP est héréditaire pour P (la réduction polynomiale) i.e. pour tous problèmes de décision D, E, si E NP et D P E alors D NP. Si D est plus facile que E et E est NP alors D est NP. Démonstration. Si f est un réduction polynomiale de D = (I, I + ) à E = (J, J + ), calculée par un algorithme A (déterministe et polynomial) ; et si B est un algorithme non déterministe polynomial qui résout E, alors : Entrée : i I - Appliquer A à i pour obtenir j = f(i) J j est tel que i I + ssi j J + - Appliquer B à j est un algorithmiste non déterministe, polynomial et qui résout D. Remarque. Ceci entraîne que NP est clos pour P, i.e. si E NP et D P E alors D NP. Ou encore : si E NP, toute la P -classe de E est dans NP. 7.36 Proposition. La classe NP est complète pour P i.e. il existe un problème de décision E dans NP tel que pour tout problème de décision D dans NP, on a D P E. Tout problème dans NP se réduit polynomialement à E. Remarques. 1) Cela signifie qu il y a un problème NP qui majore, au sens de P, toute la classe NP. C est un problème de difficulté maximum dans NP. Il peut donc y avoir plusieurs problèmes qui partagent cette propriété. Ils sont nécessairement P -équivalents deux-à-deux. Et cette P -classe majore aussi toutes les classes contenues dans NP. 2) Si P = NP, c est un résultat immédiat. Parce que P est composée de trois P -classes : les problèmes triviaux à réponse toujours positive (classe T + ), les problèmes triviaux à réponse toujours négative (classe T ), et les autres, les problèmes polynomiaux non triviaux (classe P ). Et on a T +/ < P P ( P et P ). Donc n importe quel problème dans P majore toute la classe P. Démonstration. Théorème de Cook-Levin (1970) Le problème SAT majore la classe NP i.e. D NP D P SAT. Démonstration du théorème de Cook-Levin. Idée générale. Le problème D est quelconque dans NP. Il peut avoir n importe quel type d instances et on ignore également

La classe NP version du 1 er décembre 2016 53 la question qu il pose. Mais on doit trouver une réduction polynomiale de D à SAT. La démonstration s appuie sur l unique information exploitable au sujet de D : son appartenance à NP, plus précisément l existence d une MdT M, non déterministe, qui résout D en temps polynomial. Un instance i de D étant donnée, on va écrire une série de clauses, sur des variables propositionnelles bien choisies. Certaines clauses décrivent le fonctionnement général des MdT. D autres décrivent la table de transition de M. Certaines enfin expriment le fait que l instance i est codée sur le ruban au début du calcul. L ensemble Σ(i) de toutes ces clauses sera satisfaisable ssi il existe un calcul acceptant lorsque M démarre avec le code de i sur son ruban. De plus, l ensemble Σ(i) pourra être obtenu en temps polynomial en la taille de i. L application i Σ(i) sera donc une réduction polynomiale de D à SAT. Détails. Voir l annexe G page 111. 7.5 - Exercices. Non déterminisme. Exercice 58 a) Construisez une MdT non déterministe à alphabet binaire qui accepte les mots d entrée contenant la séquence 101 et rejette les autres. Autrement dit cette machine reconnaît ler langage 1 {m 0 101m 1 m 0, m 1 IF }. b) Si on voulait identifier les mots binaires contenant 1 puis 0 puis 1, mais pas nécessairement consécutivement, i.e. reconnaître le langage {m 0 1m 1 0m 2 1m 3 m 0, m 1, m 2, m 3 IF }, une MdT non déterministe apporte-t-elle beaucoup par rapport à une MdT déterministe? Exercice 59 Mêmes questions mais on s intéresse aux mots contenant la séquence 1001 ou la séquence 0110, a) d abord consécutivement : langage {m 0 1001m 1 m 0, m 1 IF } {m 0 0110m 1 m 0, m 1 IF } ; b) puis pas nécessairement : langage {m 0 1m 1 0m 2 0m 3 1m 4 m i IF } {m 0 0m 1 1m 2 1m 3 0m 4 m i IF } Classe NP. Exercice 60 a) Pourquoi une MdT M, déterministe, peut-elle être considérée comme un cas particulier de machine non déterministe? b) Lorsque M résout un problème de décision D = (I, I + ), comment évalue-t-on le temps de calcul de M comme machine déterministe et son temps de calcul comme machine non déterministe? Peut-on les comparer? c) Montrez que P NP. Exercice 61 Lorsqu on dit On ignore si le problème GRAPHES ISOM est dans co-np. Qu est-ce que cela signifie exactement? Exercice 62 Démontrez la première proposition de la section 5.4 sur les propriétés de NP : (hérédité de NP ) si D P E et E NP alors D NP (page 52). Certificats. Exercice 63 Soit D un problème dans la classe P. Montrez que D est résoluble par certificats, mais sans utiliser le fait que cela équivaut à être dans la classe NP. Il s agit donc de décrire les certificats (C(i)) associés aux instances positives et l algorithme A, déterministe et polynomial, qui reconnaît les instances positives à l aide des certificats. Exercice 64 Montrez, grâce aux certificats que les problèmes SOM.PREM (exercice 17), SAT (page 4), k-col (page 4), m-mar (page 5), COMP (page 6, PARTAGE, SAC À DOS, SAC À DOS (page 5), ENS INDEP (page 43), ENS COUVRANT (page 44), CLIQUE (page 50), HAMILTON (page 43),GRAPHES ISOM (page 51) et GRAPHES PLONG (page 62) sont tous dans NP. Exercice 65 Preuves du fait que PREM NP. On sait maintenant que PREM est un problème facile et il est donc, en particulier, dans NP. Mais avant ce résultat récent, pour prouver que PREM est dans NP, une possibilité était de construire une MdT non déterministe résolvant PREM en temps polynomial (voir annexe F page 110). 1. Définition page 17 des notes de cours.

54 Complexité Algorithmique B. Mariou Automne 2016 version du 1 er décembre 2016 On pouvait aussi utiliser la certification grâce au théorème suivant, dit test de Lucas : L entier n est premier ssi il existe un entier a tel que a n 1 1 mod n et pour tout diviseur premier p de n 1, a (n 1)/p 1 mod n n.b. L entier a correspond à un élément primitif dans le corps à n éléments. Quel était alors le certificat associé à un nombre premier et quel était l algorithme permettant de reconnaître, en temps polynomial, les nombres premiers à l aide des certificats? Exercice 66 a) Soient D = (I, I + ), E = (J, J + ) deux problèmes de décision tels que : - il existe une réduction polynomiale f de D à E, - il existe des certificats C(j) j J pour les instances de E, et un algorithme B qui reconnaît en temps polynomial déterministe les instances positives de E avec l aide des certificats. Montrez que les C(f(i)) i I sont des certificats pour les instances de D et qu on peut utiliser B pour fabriquer un algorithme A qui reconnaît en temps polynomial déterministe les instances positives de D avec l aide des certificats. b) Montrez qu on a une nouvelle preuve, par les certificats, de l hérédité de la classe NP : si D P E et E NP alors D NP.