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



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

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

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

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

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

Chapitre 7. Récurrences

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

Annexe 6. Notions d ordonnancement.

Programmation linéaire

Limites finies en un point

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

BACCALAUREAT GENERAL MATHÉMATIQUES

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

Calcul élémentaire des probabilités

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Chapitre VI - Méthodes de factorisation

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

Machines virtuelles Cours 1 : Introduction

Quelques algorithmes simples dont l analyse n est pas si simple

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

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

Conversion d un entier. Méthode par soustraction

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Exercices de dénombrement

Cryptographie et fonctions à sens unique

Peut-on imiter le hasard?

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

ÉPREUVE COMMUNE DE TIPE Partie D

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

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

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Qu est-ce qu une probabilité?

Chaînes de Markov au lycée

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Resolution limit in community detection

Cours de Master Recherche

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

Probabilités sur un univers fini

Cours 1 : Qu est-ce que la programmation?

Chapitre 2 LE CAS PRATIQUE

Introduction à l étude des Corps Finis

Suites numériques 3. 1 Convergence et limite d une suite

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

Cours de Probabilités et de Statistique

Activité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

La persistance des nombres

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

LE PROBLEME DU PLUS COURT CHEMIN

Couples de variables aléatoires discrètes

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

La fonction exponentielle

Fonctions de plusieurs variables

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

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

Indications pour une progression au CM1 et au CM2

Carl-Louis-Ferdinand von Lindemann ( )

Guide du/de la candidat/e pour l élaboration du dossier ciblé

Guide d Intégration PPM et ERP:

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

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

Quels polygones sont formés par les milieux des côtés d un autre polygone?

MIS 102 Initiation à l Informatique

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

Résolution d équations non linéaires

Représentation des Nombres

Texte Agrégation limitée par diffusion interne

Mlle Yasmin A. RÍOS SOLÍS

Rappels sur les suites - Algorithme

Les cinq premiers pas pour devenir vraiment agile à XP Day Suisse 2009 par Pascal Van Cauwenberghe et Portia Tung: La Rétrospective

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

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

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

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

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

TSTI 2D CH X : Exemples de lois à densité 1

Angles orientés et trigonométrie

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Algorithme. Table des matières

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

Exercices sur le chapitre «Probabilités»

IUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique -

Synthèse «Le Plus Grand Produit»

Quelques tests de primalité

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

Complément d information concernant la fiche de concordance

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

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

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

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

DOCM Solutions officielles = n 2 10.

Algorithmique et Programmation Fonctionnelle

Les indices à surplus constant

Fonction de hachage et signatures électroniques

Représentation d un entier en base b

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.

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

Transcription:

Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter les grandes classes de complexité associées aux problèmes : Les problèmes polynomiaux (P) Les problèmes non-déterministes polynomiaux (NP) Les autres problèmes Jamila Sam Haroud Laboratoire d Intelligence Artificielle Faculté I&C Informatique II Cours 24: Complexité des problèmes 1 Informatique II Cours 24: Complexité des problèmes 2 Complexité d un problème Complexité d un problème (2) Nous savons déterminer la complexité d un algorithme donné grâce à la machine de Turing : nombre de déplacements de la tête requis pour résoudre le problème «longueur» de la bande nécessaire à la résolution du problème Nous savons également que pour un même problème, il peut exister des solutions plus ou moins efficaces : calcul des coefficients du binômes par un algorithme récursif: exponentiel...par programmation dynamique: polynomial Sait-on mesurer la complexité d un problème en tant que tel? (i.e. indépendamment de tel ou tel algorithme) la réponse est OUI! La complexité d un problème est liée à la complexité du meilleur algorithme que l on pourra jamais imaginer pour ce problème (sans forcément connaître cet algorithme). On peut même montrer formellement qu il existe des problèmes plus difficiles que d autres exemples... Sait-on mesurer la complexité d un problème en tant que tel? (i.e. indépendamment de tel ou tel algorithme) Informatique II Cours 24: Complexité des problèmes 3 Informatique II Cours 24: Complexité des problèmes 4

De nouveau des problèmes de chemin Soit un certain nombre de villes reliées par un certain nombre de routes. Question 1 : existe-t-il un itinéraire permettant de passer par toutes les villes en empruntant chaque route une seule fois (chemin Eulerien)? Question 2 : existe-t-il un itinéraire permettant de passer par toutes les villes en ne visitant chaque ville qu une seule fois (chemin Hamiltonien)? avec chemin Hamiltonien et sans chemin Eulerien avec chemin Eulerien et sans chemin Hamiltonien De nouveau des problèmes de chemin (2) A priori les deux se ressemblent beaucoup et dans les deux cas on sait proposer un algorithme inefficace (recherche exhaustive) : 1. Générer tous les chemins. 2. Retenir le premier chemin répondant aux critères requis mais... complexité exponentielle!! Sait-on faire mieux? Informatique II Cours 24: Complexité des problèmes 5 Informatique II Cours 24: Complexité des problèmes 6 De nouveau des problèmes de chemin (3) Autre exemple La réponse est : oui (on sait faire mieux) pour la question 1 méthode d Euler : complexité polynomiale...et non (on ne sait pas faire mieux à ce jour) pour la question 2 les meilleures méthodes à ce jour ne font pas beaucoup mieux que la recherche exhaustive : complexité exponentielle! Soit une carte géographique à colorier de telle sorte que deux cantons voisins n aient pas la même couleur : Question 1 : Peut-on la colorier avec deux couleurs? Question 2 : Peut-on la colorier avec trois couleurs? Question 3 : Peut-on la colorier avec quatre couleurs? Informatique II Cours 24: Complexité des problèmes 7 Informatique II Cours 24: Complexité des problèmes 8

Autre exemple (2)...encore une fois, ça se ressemble beaucoup et on sait proposer un algorithme de recherche exhaustive inefficace (exponentiel) : 1. Générer toutes les colorations possibles. 2. Regarder s il en existe une satisfaisant le critère requis pour 3 couleurs et 16 cantons, ça ne fait «que» 3 16 = 43 millions de coloriages possibles! Alors, sait-on faire mieux? La réponse est : Autre exemple (3) oui, on sait répondre rapidement à la question 1 il suffit de vérifier qu il n existe aucun point de la carte où se rencontrent un nombre impair de pays (polynomial) non (on ne sait pas faire mieux) pour la 2 aucun algorithme polynomial n est connu à ce jour...et à nouveau oui, on peut répondre efficacement à la question 3 démontré pour toute carte par Appel et Haken, en 1976. a (et la réponse à la question 3 est toujours «oui» O(1)) a amélioré en 1995 par Robertson, Sanders, Seymour et Thomas C était la première fois qu on utilisait Informatique II Cours 24: Complexité des problèmes 9 un ordinateur pour démontrer un théorème : était-ce bien encore une démonstration?! Informatique II Cours 24: Complexité des problèmes 10 P et NP P et NP (2) Les problèmes liés à nos questions 1 (et 3) appartiennent en fait à la classe des problèmes dits polynomiaux (la classe P) on peut y répondre au moyen d algorithmes polynomiaux connus Les problèmes liés à nos questions 2, par contre, appartiennent à la classe des problèmes dit polynomiaux non-déterministes (la classe NP) on ne sait pas y répondre a priori en temps polynomial, mais si un hasard quelconque (non-déterminisme) nous donnait une solution au problème, on pourrait vérifier qu il s agit bien d une solution en temps (et espace) polynomial. Attention! NP ne veut pas dire non-polynomial mais non-déterministe polynomial La confusion est fréquente!! Le non-déterminisme réside dans le fait que l on présuppose qu une solution peut-être devinée par un moyen quelconque Si on sait le faire, et si on peut vérifier de façon efficace que la solution en est bien une, alors le problème est dans la classe NP. Machine de Turing non-déterministe La classe NP comprend un certain nombre de problèmes usuels qui semblent résister à tout essai pour leur trouver un algorithme efficace (polynomial) Informatique II Cours 24: Complexité des problèmes 11 Informatique II Cours 24: Complexité des problèmes 12

P et NP (3) Note : Tout problème qui est dans P est aussi dans NP! complexité de problèmes P et NP Les problèmes de décisions Les problèmes difficiles Plan NP P Informatique II Cours 24: Complexité des problèmes 13 Informatique II Cours 24: Complexité des problèmes 14 Problèmes de décision Problèmes de décisions (2) La classe NP caractérise essentiellement des problèmes dits de décision Un problème de décision est un problème qui peut s exprimer sous la forme d une question attendant une réponse binaire (oui/non) Coloration de carte entrée = un ensemble fini de points (e.g. cantons) et leurs relations de voisinage (matrice) un entier k question = «Peut-on colorier la carte avec k couleurs de sorte à ce que deux états voisins n aient pas les mêmes couleurs?» Voyageur de commerce entrée = un ensemble fini de villes, et leurs distances 2 à 2 un entier k question = «Existe-il un circuit de longueur k passant exactement une fois par chacune des villes?» Informatique II Cours 24: Complexité des problèmes 15 Définition : Un problème de décision est dit NP si chacune de ses instances positives (cas où la réponse est «oui») peut être associées à une preuve (de sa positivité) polynomiale en la taille de l instance (en temps et en espace) pour qu un problème se rattache à la classe NP il n est pas nécessaire d en connaître une solution efficace : il suffit, si l on sait deviner une solution, de savoir démontrer de façon efficace qu il s agit bien d une solution! Les problèmes co-np se définissent de manière similaire, mais considèrent les instances négatives (cas ou la réponse est «non») à la place des positives Une preuve concise vérifiant la positivité d une instance est souvent appelée certificat succinct de l instance positive Informatique II Cours 24: Complexité des problèmes 16

Certificats Exemples de certificats pour des problèmes de décision : Problème Voyageur de commerce Coloration de carte Certificat indication d un circuit de longueur inférieure ou égale à k indication d une coloration respectant les contraintes requises Réduction d un problème à un autre De façon générale, si l on sait résoudre efficacement un problème, il est fréquent qu on puisse en résoudre bien d autres Exemple : Le problème de coloration de graphe La caractérisation d un problème comme étant NP (par un certificat succinct), ne permet pas a priori de dire s il existe ou non une solution algorithmique polynomiale pour le résoudre permet de modéliser, moyennant quelques petites modifications, aussi bien les problèmes de coloration de carte que des problèmes d affectation de ressources. Informatique II Cours 24: Complexité des problèmes 17 Informatique II Cours 24: Complexité des problèmes 18 Réduction d un problème à un autre (2) Plan Plus formellement, considérons deux problèmes de décision P 1 et P 2. On dit que P 1 est [polynomialement] réductible à P 2 s il existe une transformation polynomiale (dans la taille des instances de P 1 ) permettant de convertir toute instance positive (resp. négative) de P 1 en une instance positive (resp. négative) de P 2 complexité de problèmes P et NP Les problèmes de décisions Les problèmes difficiles P 1 est au plus aussi difficile que P 2 La conséquence importante de la réductibilité de P 1 à P 2 est que : si l on peut montrer que P 1 est dans NP alors P 2 l est aussi si l on peut montrer que P 2 est dans P alors P 1 l est aussi Que faire si l on ne parvient pas à réduire un problème à un problème polynomial? Informatique II Cours 24: Complexité des problèmes 19 Informatique II Cours 24: Complexité des problèmes 20

Problèmes NP-complets Certains problèmes de la classe NP résument l ensemble des difficultés de la classe : les problèmes NP-complets Ce sont des problèmes particulièrement difficiles de la classe NP pour lesquels il est démontré que si l on pouvait en résoudre un polynomialement, alors tout problème de la classe NP pourrait aussi être résolu polynomialement. Exemples de problèmes NP-complets : 3-coloration de graphes, problème du voyageur de commerce... et bien d autres Autres problèmes problématiques Il existe évidemment des problèmes encore plus difficiles que les problèmes NP-Complets : les problèmes NP-difficiles : au moins aussi difficiles que les problèmes NP-complets Exemple : problèmes d optimisation nécessitant la résolution de problèmes de décision eux-même NP-complets les problèmes non-décidables : qui ne peuvent être résolus au moyen d une machine de Turing Exemple : écrire un programme qui, pour tout programme P, accompagné de données d entrée D, permet de déterminer si l exécution de P sur D termine (en un nombre fini d opérations) problème de terminaison des programmes Informatique II Cours 24: Complexité des problèmes 21 Informatique II Cours 24: Complexité des problèmes 22 Synthèse de la complexité des problèmes Preuve de NP-difficulté Non décidables Lorsque l on est confronté à un problème dont on ignore la classe de complexité, la démarche consiste donc : Soit à estimer que le problème est facile, et on cherche alors un algorithme polynomial pour le résoudre NP difficiles Soit à estimer que le problème est NP-difficile, et on cherche alors à le démontrer co NP complets NP complets on essaie de montrer qu un des problèmes NP-complet connus peut-être polynomialement réduit à ce problème co NP NP Déterminer la classe de complexité d un problème donné peut être très compliqué P Il a fallu de nombreuses années aux meilleurs chercheurs pour prouver que le problème de savoir si un nombre est premier ou non («Prem») est dans P! (preuve : Août 2002) Informatique II Cours 24: Complexité des problèmes 23 Informatique II Cours 24: Complexité des problèmes 24

Que faire face à un problème NP-difficile? Confronté à un problème NP-difficile, on peut : être un peu découragé essayer de trouver un algorithme polynomial (chances de succès faibles, mais gloire assurée en cas de réussite!) vérifier si l on est pas plutôt intéressé par un sous-problème qui pourrait alors être polynomial (par exemple 4-coloration au lieu de 3-coloration) appliquer des schémas de résolution algorithmique efficace en moyenne (peuvent se montrer suffisants si la probabilité d occurrence des instances difficiles est faible).. suite Que faire face à un problème difficile? (2) mettre en œuvre des algorithmes approchés ou heuristiques produisant efficacement des solutions approchées avec une faible erreur méthode «Monte Carlo» utiliser des approches à base de machine parallèle rêver aux ordinateurs quantiques (pour certains problèmes en tout cas!)... suite Informatique II Cours 24: Complexité des problèmes 25 Informatique II Cours 24: Complexité des problèmes 26 P=NP? P ou NP? Il reste quelques questions et petits pièges... Dans l état actuel des connaissances, on ne sait pas si les problèmes de la classes NP sont polynomiaux ou s ils sont intrinsèquement difficiles : P=NP? L opinion généralement partagée est que P NP, c est-à-dire que les problèmes NP-complets ne sont pas polynomiaux. Le fait que «Prem» soit dans P n a été démontré que récemment (Agrawal, Keyal et Saxena, 2002) Pourquoi le petit algorithme suivant n a-t-il pas suffit? Soit m le nombre à tester. 1. si m est pair, il n est premier que s il vaut 2 2. sinon, tenter la division de m par tous les entiers impairs plus petits que m Il semble pourtant qu un nombre polynomial d opérations soit requis (au plus m divisions)! Le problème est effectivement polynomial en m (m 1 2 ), mais pas dans la taille de l entrée!! Informatique II Cours 24: Complexité des problèmes 27 Informatique II Cours 24: Complexité des problèmes 28

P ou NP? Quelle est la taille de l entrée? n = log(m) (écriture de m dans une base quelconque, e.g. binaire) La complexité de l algorithme ci-dessus est donc exponentielle, en m = exp( n 2 ) où n est la taille de l entrée On parle dans ce cas d algorithme pseudo-polynomial (terme pas forcément très bien choisi car les algorithmes pseudo-polynomiaux, sont bel et bien exponentiels) Complexité des problème Problèmes polynomiaux : Classe P, résolvables par des algorithmes polynomiaux Problèmes Non-déterministes polynomiaux : Classe NP, si une solution peut être devinée par un moyen quelconque, on peut vérifier en temps polynomial qu il s agit bien d une solution (pas d algorithme polynomial connu). Problèmes NP-complets : les plus difficiles des NPs. Si l on prouvait que l un deux est dans P on prouverait que tous les NPs sont dans P. Problèmes NP-difficiles : au moins aussi difficile que NP (prouvable notamment par des techniques de réduction de problèmes) Problèmes non décidables : non résolvables par une machine de Turing On ne sait pas à ce jour si P = NP ou non Informatique II Cours 24: Complexité des problèmes 29 Informatique II Cours 24: Complexité des problèmes 30 Ce que j ai appris aujourd hui ce qu est la complexité d un problème et quelles sont les principales classes de problèmes qu un problème est dans la classe de complexité P s il peut être résolu en temps polynomial qu un problème est dans la classe de NP si on peut vérifier en temps polynomial qu une solution en est bien une (pas d algorithmes de résolution polynomiaux connus) que les problèmes NP-complets sont les plus difficiles des NPs et qu il peut y avoir des problèmes encore plus difficiles que ceux de NP (NP-difficiles, non-décidables) Informatique II Cours 24: Complexité des problèmes 31