Algorithmique Avancée

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

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

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

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

Cours de Master Recherche

Pourquoi l apprentissage?

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

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Algorithmes de recherche

Chapitre 7. Récurrences

Programmation linéaire

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

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

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

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

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

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

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

Du Premier au Second Degré

LE PROBLEME DU PLUS COURT CHEMIN

I. Ensemble de définition d'une fonction

Annexe 6. Notions d ordonnancement.

Mathématiques Première L, ES, S, Concours Post-Bac Equations et inéquations du second degré FORMAV

Feuille TD n 1 Exercices d algorithmique éléments de correction

Quelques tests de primalité

Géométrie Algorithmique Plan du cours

Plus courts chemins, programmation dynamique

Modèle de calcul des paramètres économiques

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

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Techniques d interaction dans la visualisation de l information Séminaire DIVA

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

OPTIMISATION À UNE VARIABLE

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

En vue de l'obtention du. Présentée et soutenue par Abir BEN HMIDA SAKLY Le 12/12/2009

OASIS Date de publication

Limites finies en un point

Resolution limit in community detection

Programmation Par Contraintes

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

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

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Comparer l intérêt simple et l intérêt composé

Encryptions, compression et partitionnement des données

Programmation Linéaire - Cours 1

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

MS PROJECT Prise en main. Date: Mars Anère MSI. 12, rue Chabanais PARIS E mail : jcrussier@anere.com Site :

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

DÉCHETS (Volume) - Suivi journalier SEMAINE 1

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

Sites web éducatifs et ressources en mathématiques

Master of Science en mathématiques

Licence Sciences et Technologies Examen janvier 2010

Probabilités conditionnelles Exercices corrigés

Ebauche Rapport finale

Etude comparative de différents motifs utilisés pour le lancé de rayon

Algorithmes d'apprentissage

Master of Science en mathématiques

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

Correction du baccalauréat ES/L Métropole 20 juin 2014

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

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

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

L ordinateur quantique

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Entraînement au concours ACM-ICPC

Amphi 3: Espaces complets - Applications linéaires continues

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

Programmation Objet - Cours II

FOCUS Evolution. Lisez-Moi. Version FE 7.0.t

Chp. 4. Minimisation d une fonction d une variable

4.2 Unités d enseignement du M1

7. ECONOMIE 7.3. COMMERCE GESTIONNAIRE DE TRES PETITES ENTREPRISES

CAPTEURS - CHAINES DE MESURES

Fonctions de plusieurs variables

Equations différentielles linéaires à coefficients constants

Guide de prise en main du logiciel Port. Version 1.2

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

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

TRACER LE GRAPHE D'UNE FONCTION

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Hela Boukef. To cite this version: HAL Id: tel

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Journées Télécom-UPS «Le numérique pour tous» David A. Madore. 29 mai 2015

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

Stratégie de recherche adaptative en programmation par contrainte

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Jean-Philippe Préaux

Géométrie des nombres et cryptanalyse de NTRU

I. Polynômes de Tchebychev

Lagrange, où λ 1 est pour la contrainte sur µ p ).

CH.6 Propriétés des langages non contextuels

LES MÉTHODES DE POINT INTÉRIEUR 1

Cours de Génie Logiciel

Raisonnement par récurrence Suites numériques

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Optimisation multi-objectif par colonies de fourmis : cas des problèmes de sac à dos

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Transcription:

Algorithmique Avancée Cours n 7 : Classes de complexité P et NP Master 1 Génie Logiciel Université Abou Bakr Belkaïd Tlemcen 2016/2017 Mahfoud Houari mahfoud.houari@gmail.com hmahfoud.wordpress.com

Pourquoi étudier la complexité? 1. On étudie uniquement les problèmes décidables (qui terminent). 2. On s'intéresse souvent à la complexité minimale d'un algorithme dans les plus mauvais cas. 3. Borner les ressources nécessaires d'un algorithme. 4. Classer un problème : a) Praticable b) Impraticable (NP complet, NP dur, EXPTIME, APXHard,...) 5. Dire si un algorithme est optimal. 6. Comparer entre deux algorithmes résolvant le même problème.

Qu'est ce que la complexité? (rappel) Définition : La complexité d'un problème est le minimum des coûts de tous les algorithmes permettant de le résoudre dans le pire des cas. On s'intéresse souvent à la complexité temporelle. D'autres critères de mesure : espace, nombre d'appels récursifs, nombre de comparaisons, nombre de processus crées,

Qu'est ce que la complexité? (rappel) Définition : La complexité d'un problème est le minimum des coûts de tous les algorithmes permettant de le résoudre dans le pire des cas. On s'intéresse souvent à la complexité temporelle. D'autres critères de mesure : espace, nombre d'appels récursifs, nombre de comparaisons, nombre de processus crées, Complexité pire des cas (WCC) v.s en moyenne (ACC) : WCC est le maximum des coûts sur les différentes entrées. ACC est la moyenne de tous les coûts sur les différentes entrées. ACC est souvent difficile à mesurer. ACC reflète le mieux le comportement de l'algorithme. Il se peut que le Worst Case ne se produit jamais.

Qu'est ce que la complexité? (rappel) Définition : La complexité d'un problème est le minimum des coûts de tous les algorithmes permettant de le résoudre dans le pire des cas. Complexité minimale dans le pire des cas? Si un problème est quadratique alors : 1) Il existe un algorithme qui le résout avec une WCC quadratique. && 2) Il n'y a pas un autre algorithme qui le résout avec une WCC plus petite.

Comment calculer la complexité? Calculer la complexité d'un «algorithme» : Arbres de décision. Calculer la complexité d'un «problème» : Les réductions.

Arbres de décision Exemple (Problème de pesée) Description : Soient données N pièces de monnaie dont une est fausse et plus légère que les autres. On possède une balance à plateaux. Comment détecter cette pièce fausse en minimisant le nombre de pesées? Solution naïve : O(????).

Arbres de décision Exemple (Problème de pesée) Description : Soient données N pièces de monnaie dont une est fausse et plus légère que les autres. On possède une balance à plateaux. Comment détecter cette pièce fausse en minimisant le nombre de pesées? Solution naïve : O( N ).

Arbres de décision Exemple (Problème de pesée) Description : Soient données N pièces de monnaie dont une est fausse et plus légère que les autres. On possède une balance à plateaux. Comment détecter cette pièce fausse en minimisant le nombre de pesées? Solution naïve : O( N ). Algorithme DPR : Soit un ensemble P contenant N pièces. Construire deux ensembles P1 et P2 ayant chacun N/2 pièces. Si N est impair et P1 et P2 ont le même poids alors la pièce restante et la pièce fausse. Sinon : L'ensemble le plus léger est celui qui contient la fausse pièce. Recommencer l'algorithme avec l'ensemble ayant la fausse pièce.

Arbres de décision Exemple (Problème de pesée) Rech(P) P1 P2 Pièce restante R Poids(P1) < Poids(P2) Poids(P2) < Poids(P1) Poids(P2) = Poids(P1) return Rech(P1) return Rech(P2) return R

Arbres de décision Exemple (Problème de pesée) Rech(P) P1 P2 Pièce restante R Poids(P1) < Poids(P2) Poids(P2) < Poids(P1) Poids(P2) = Poids(P1) return Rech(P1) return Rech(P2) return R P11 P12 R1...

Arbres de décision Exemple (Problème de pesée) Rech(P) P1 P2 Pièce restante R Poids(P1) < Poids(P2) Poids(P2) < Poids(P1) Poids(P2) = Poids(P1) 2 pesées return Rech(P1) return Rech(P2) return R P11 P12 R1 2 pesées...

Arbres de décision Exemple (Problème de pesée) Rech(P) P1 P2 Pièce restante R Poids(P1) < Poids(P2) Poids(P2) < Poids(P1) Poids(P2) = Poids(P1) 2 pesées return Rech(P1) return Rech(P2) return R P11 P12 R1 2 pesées.... À chaque niveau on fait 2 pesées.. L'arbre comprend log 2 (N) niveaux.. Nombre total des pesées : O(log 2 (N)).

Arbres de décision Exemple (Problème de pesée) Coût de décomposition = N/2 Coût de décomposition = N Rech(P) P1 P2 Pièce restante R Poids(P1) < Poids(P2) Poids(P2) < Poids(P1) Poids(P2) = Poids(P1) return Rech(P1) return Rech(P2) return R P11 P12 R1... Quel serait le coût total si on s'intéresse au temps nécessaire, à chaque niveau, pour la décomposition en deux ensembles?

Réductions Principe : Soit un problème P1 qui admet une WCC O(C). On dit que le problème P2 se réduit à P1 si chaque instance de P2 peut être transformée en une instance de P1 à travers une fonction de réduction R. Résoudre P2(x) revient à résoudre P1(R(x)) en O(C). Si la fonction R est polynomiale alors on parle de réduction polynomiale. On note ça par : P2 P1. p

Réductions Exemple : Soit le problème P1 qui consiste à trouver une clique maximale dans un graphe G. Soit le problème P2 qui consiste à trouver un stable (ensemble indépendant) maximal dans un graphe G. Il est facile de prouver que : P2 P1. p

Classe P : Définition : La classe P (ou PTIME) est la classe des problèmes informatique pour lesquels il existe un algorithme de résolution ayant une WCC polynomiale en temps. Conséquence : Un problème est dit praticable s'il appartient à la classe P.

Classe P : Quelques exemples de problèmes : Trier un tableau est en P. Calculer la fonction de Fibonacci est en P. Sac à dos fractionnaire est en P. Sous tableau maximal est en P. Sac à dos 0/1 n'est pas en P. Trouver un chemin hamiltonien n'est pas en P.

Autres classes : PSPACE : Problèmes admettant une WCC polynomiale en espace.

Autres classes : PSPACE : Problèmes admettant une WCC polynomiale en espace. PTIME PSPACE : Chaque problème PTIME consomme souvent un espace polynomiale.

Autres classes : PSPACE : Problèmes admettant une WCC polynomiale en espace. PTIME PSPACE : Chaque problème PTIME consomme souvent un espace polynomiale. EXPTIME : Problèmes admettant une WCC exponentielle en temps. NP :???.

Classe NP : Définition : La classe NP (ou Non déterministe Polynomial) est la classe des problèmes informatique pour lesquels il n'existe pas un algorithme de résolution ayant une WCC polynomiale en temps, MAIS, étant donné une solution, cette solution peut être vérifiée en temps polynomial. Exemple : Trouver un cycle hamiltonien dans un graphe est dans NP. Vérifier si un chemin donnée P est hamiltonien peut être vérifié en O( P ) [à réfléchir].

Classe NP : Quelques exemples de problèmes en NP : Chemin ou cycle hamiltonien. Sac à dos 0/1. Emploi du temps. Clique maximale (stable maximal). Répartir des étudiants en trinômes compatibles.

Classe NP : Savoir si un problème est en NP : 1. Le réduire à un problème qui est en NP. OU 2. Vérifier qu'il nécessite un traitement non polynomial && qu'une solution proposée est vérifiable en temps polynomial.

P == NP ou P == NP? /