CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.

Slides:



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

Algorithmes et structures de données avancés
Chapitre 2 Réductions: exemples et méthodes
Chapitre 2 Réductions: exemples et méthodes
IFT Complexité et NP-complétude
IFT Chapitre 1 Classes de complexité fondamentales:
IFT Au delà de NP: hiérarchie polynomiale, EXP, NEXP.
Algorithmes d ’approximation
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Conception et analyse des algorithmes
D.E ZEGOUR Ecole Supérieure d’Informatique
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
1 UE Intro Opti L3 INFO UPSud Programmation linéaire en variables entières (ou mixtes) : résolution approchée par heuristique
Chapitre 4 la représentation des nombres. Chapitre 4 : La représentation des nombres 1 - Introduction 1.1 – Notion de mot 2 - La représentation des entiers.
Outils de Recherche Opérationnelle en Génie MTH 8414A
Outils de Recherche Opérationnelle en Génie MTH 8414
Les Instructions Itératives (Les Boucles)
Information, Calcul, Communication
Coloration de graphe, backtracking, branch and bound
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Résolutions et réponses
Information, Calcul, Communication
Semaine #1 INF130 par Frédérick Henri.
Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap5: Les méthodes de résolution exactes.
Algorithmique Avancée et Complexité Chap3:Diviser pour Régner
Techniques d’Optimisation Chapitre 2: Problème de flôt
Analyse en Composantes Principales A.C.P. M. Rehailia Laboratoire de Mathématiques de l’Université de Saint Etienne (LaMUSE).
Information, Calcul, Communication
Exercice 7 : résoudre sin x + cos x = (√6)/2
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Chapitre 2: Les équations et les inéquations polynômes
Optimisation et Recherche Opérationnelle
Techniques d’Optimisation Chapitre 3: Programmation en 0-1 (bivalente)
Calcul littéral 2.
Complexité des Problèmes Combinatoires
Programmation linéaire et Recherche opérationnelle Licence d’Econométrie Professeur Michel de Rougemont
Technologies de l’intelligence d’affaires Séance 11
Exercice 1 : On donne le tableau de valeurs suivant :
Excel (et toute l’informatique) :
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap7: Les méthodes de résolution exactes.
Fonctions Logiques & Algèbre de BOOLE
2.2 Probabilité conditionnelle
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
4.2 Estimation d’une moyenne
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
LES GRAPHES. Introduction L'introduction d'éléments de la théorie des graphes dans l'enseignement de spécialité de la classe terminale de la série ES.
Calcul Scientifique Initiation à SCILB
OPTIMISATION 1ère année ingénieurs
SDRP & MA Problème du rendez vous : un algorithme probabiliste et une analyse probabiliste 09/11/2018.
Algèbre relationnelle
CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.
Arbres de décision.
Preuves interactives: IP, AM, MA et isomorphisme de graphe
Position, dispersion, forme
Chapitre 1 Formulation d’un programme linéaire (PL) Georges Abboudeh BUST 347.
Information, Calcul, Communication
CSI 3505 Algorithmes Voraces
Recherche de zero d'une fonction MARMAD ANAS MPSI -2.
Flowchart Itération Cours 04.
Programme d’appui à la gestion publique et aux statistiques
Chapitre 2 : Représentation de l’information dans la machine Introduction Représentation des nombres négatifs –Signe / valeur absolue –Complément à 1 –Complément.
On a une infinité d’angles remarquables !
Encadrée par: - Mr. Abdallah ALAOUI AMINI Réalisée par : -ERAOUI Oumaima -DEKKAR Amal - ES-SAHLY Samira -Houari Mohammed PROGRAMMATION MULTIOBJECTIFS.
A. Zemmari SDRP & MA Problème du rendez vous : un algorithme probabiliste et une analyse probabiliste A. Zemmari.
Chapitre I Modélisation optimisation
LES GRAPHES. Introduction L'introduction d'éléments de la théorie des graphes dans l'enseignement de spécialité de la classe terminale de la série ES.
Outils de Recherche Opérationnelle en Génie MTH 8414
Transcription de la présentation:

CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I. Plan du Cours Introduction (Chapitre 1) Techniques de résolution: Diviser pour régner (Chapitre 2) Techniques de résolution: Programmation dynamique(Chapitre 3) Techniques de résolution: Algorithmes voraces(Chapitre 4) Introduction a la théorie de Complexité du calcul(Chapitre 9) 5/5/2019

CSI 3505 La théorie de Complexité Besoin de savoir koi ca veut dire: Problème de décisions La classe des problèmes P Algorithmes non déterministes La classe des problèmes NP Le concept de transformations polynomiales La classe des problèmes NP-complets Definitions 5/5/2019

CSI 3505 La théorie de Complexité Les problèmes qui vont nous servir d’exemple: Sac à dos Commis voyageur Coloration d'un graphe Problème de Clique Definitions Besoin de savoir koi ca veut dire: Problème de décisions La classe des problèmes P Algorithmes non déterministes La classe des problèmes NP Le concept de transformations polynomiales La classe des problèmes NP-complets 5/5/2019

CSI 3505 Le commis voyageur: Soit un graphe complet et pondéré (poids non négatifs) à n sommets, trouver un tour de poids minimal. Besoin de savoir koi ca veut dire: Problème de décisions La classe des problèmes P Algorithmes non déterministes La classe des problèmes NP Le concept de transformations polynomiales La classe des problèmes NP-complets 5/5/2019

CSI 3505 Coloration d'un graphe Soit G = (V,E) un graphe orienté dont on veut colorer les sommets avec la condition suivante: Deux sommets reliés par une arête, ont deux couleurs différentes. Problème: Étant donnée un graphe G, trouver un algorithme qui colore proprement G et qui utilise le nombre minimum possible de couleurs 5/5/2019

Étant donnée un graphe G, trouver une clique de taille maximal Problème “Clique”: C est une Clique dans un graphe G si toutes les paires de sommets dans C sont adjacentes. Étant donnée un graphe G, trouver une clique de taille maximal G contient une clique de taille 4 5/5/2019

CSI 3505 les problèmes de décisions On ne va considèrer que: les problèmes de décisions Un problème est dit de décision si pour tout input, l’unique output possible est de type: “OUI” ou “NON” Besoin de savoir koi ca veut dire: Problème de décisions La classe des problèmes P Algorithmes non déterministes La classe des problèmes NP Le concept de transformations polynomiales La classe des problèmes NP-complets 5/5/2019

CSI 3505 les problèmes de décisions Tout problème d’optimisation à un problème correspondant de décision Il suffit d’ajouter une borne K sur la valeur à optimiser et changer la question: Existe-t-il une solution dont la valeur est au plus K (Pour les problèmes de minimisation) Existe-t-il une solution dont la valeur est au moins K (Pour les problèmes de maximisation) 5/5/2019

Sac à dos version décision Optimisation: Trouver le profit maximal qu’il est possible d’obtenir en choisissant un sous-ensemble d’objets avec la contrainte d’un cout à ne pas dépasser Décision: Soit P un nombre positif. Est-il possible de choisir un sous-ensemble d’objets dont le profit total sera au moins P en respectant la contrainte de cout ? 5/5/2019

Le commis voyageur: version décision Optimisation : Trouver un tour de poids minimal sur le graphe G Décision: Soit d un nombre positif. Est-ce que le graphe G possède un tour de poids d ? 5/5/2019

Coloration d'un graphe version décision Optimisation: Étant donnée un graphe G, trouver un algorithme qui colore proprement G et qui utilise le nombre minimum possible de couleurs Décision: Étant données un graphe G et un entier positif k, est-ce qu'il existe une coloration qui utilise au plus k couleurs ? 5/5/2019

Clique version décision Optimisation: Trouver une clique de taille maximale dans un graphe G Décision: Étant donné un nombre positif k dans un graphe G , existe-t-il une clique de taille k dans G ? 5/5/2019

CSI 3505 Déf: Algorithme Polynomial Un algorithme est polynomial si sa complexité dans le pire cas est inférieure ou égale à (p(n)), où p(n) est un polynôme en n. (n est la taille de l'input). Ex. (n2) oui (n4) oui (nn) non (n!) non (n200000) oui 5/5/2019

CSI 3505 Déf: ensemble P P est l’ensemble des problèmes de décisions résolvable par un algorithme polynomial Besoin de savoir koi ca veut dire: Problème de décisions La classe des problèmes P Algorithmes non déterministes La classe des problèmes NP Le concept de transformations polynomiales La classe des problèmes NP-complets 5/5/2019

CSI 3505 Déf: Algorithme efficace Un algorithme est efficace (polynomial) si sa complexité dans le pire cas est O(p(n)) ou n est la taille de l’input du problème. efficace = polynomial 5/5/2019

CSI 3505 Déf: ensemble P Donc, P est l’ensemble de tous les problèmes de décisions résolvables par un algorithme efficace 5/5/2019

CSI 3505 La théorie de Complexité Personne n’a jamais trouvé un algorithme efficace pour résoudre nos quatre exemples: Sac à dos Commis voyageur Coloration des graphes Clique Personne n’a jamais démontré qu’il n’existe pas d’algorithme efficace pour résoudre nos quatre exemples 5/5/2019

Donc, personne ne sait si nos quatre problèmes examples se trouvent dans l’ensemble P 5/5/2019

CSI 3505 Déf : problème tractable Un problème est tractable si l'on connaît un algorithme polynomial pour le résoudre. Il existe de nombreux problèmes pour lesquels aucun algorithme polynomial n'est connu. Pour certains d'entre eux, des algorithmes polynomiaux existent mais aucun n'a encore été découvert. Pour d'autres, nous avons une forte impression qu'aucun algorithme polynomial ne peut être trouvé. 5/5/2019

CSI 3505 La théorie de Complexité Un problème est non tractable s’il n’y a aucun algorithme polynomial qui le résout. 5/5/2019

Si le problème est non tractable: ne sert a rien d’essayer de chercher un algorithme efficace. Changer la stratégie en utilisant des approximations, heuristiques, etc. Quelque fois on a besoin de résoudre des versions restreintes du problème. La version restreinte pourrait être tractable 5/5/2019

On à donc 3 types de pblèmes: Problèmes non tractables. Problèmes dans P ???? (nos examples) La plupart des problèmes en informatique sont du 1er ou du 2ième type 5/5/2019

On à donc 3 types de pblèmes: Problèmes non tractables. 5/5/2019

CSI 3505 La théorie de Complexité Non décidable problème impossible à résoudre : il ne peut jamais exister un algorithme. Turing a montré qu’il existe des problèmes qu’on ne pourra jamais résoudre: non décidable Exemple: Problème d’arrêt 5/5/2019

CSI 3505 La théorie de Complexité Problème d’arrêt: Algorithm P Donnée X P va-t-il s’ arrêter pour la donnée X OUI P(X) NON (ne s’arrêtera jamais) 5/5/2019

Algorithme non-déterministe 1) Guessing (partie non-déterministe) retourne un string S pour une instance I donnée du problème 2) Vérification (partie déterministe) retourne oui/non pour l'instance I et le string S (ou bien ne s'arrête pas) Besoin de savoir koi ca veut dire: Problème de décisions La classe des problèmes P Algorithmes non déterministes La classe des problèmes NP Le concept de transformations polynomiales La classe des problèmes NP-complets 5/5/2019

CSI 3505 sac à dos : vérification Algorithme de vérification pour le problème du sac à dos : Vérification si un ensemble d’objet représente une solution: Vérifier que le poid total est plus petit que W. Vérifier que le profit total est au moin K. Il y a un algorithme polynomial qui fait cette vérification 5/5/2019

CSI 3505 commis voyageur : vérification Algorithme de vérification pour le problème du commis voyageur : Vérification si un ensemble de sommets représente une solution: Vérifier que c’est un cycle. Vérifier que sa longueur est au plus K. Il y a un algorithme polynomial qui fait cette vérification 5/5/2019

CSI 3505 Coloration : vérification Algorithme de vérification pour le problème COLORATION : Vérification si une coloration des sommets représente une solution: Vérifier que le nombre de couleurs utilisées est au plus K. Pour chaque arête (u, v) dans le graphe, Vérifier que u et v sont colorés différemment. Il y a un algorithme polynomial qui fait cette vérification. 5/5/2019

CSI 3505 Clique : vérification Algorithme de vérification pour le problème Clique : Vérification si un ensemble de sommets représente une solution: Vérifier que le nombre de sommet dans l’ensemble est au moins K. Pour que chaque sommet est relié à chaque autre sommet Il y a un algorithme polynomial qui fait cette vérification. 5/5/2019

Théorème: P  NP CSI 3505 Classe NP Classe NP: classe des problèmes pour lesquels on est capable de vérifier dans un temps polynomial si S (une proposition de solution) est ou non une solution. Théorème: P  NP Besoin de savoir koi ca veut dire: Problème de décisions La classe des problèmes P Algorithmes non déterministes La classe des problèmes NP Le concept de transformations polynomiales La classe des problèmes NP-complets 5/5/2019

Donc, nos quatre problèmes examples se trouvent dans l’ensemble NP 5/5/2019

CSI 3505 La théorie de Complexité Est ce que P = NP? Une question ouverte (personne n’a pu la résoudre) 5/5/2019

Transformations polynomiales Réduction des problèmes: Problème P1 Input X Problème P2, Input T(X) Transformation T (algorithme) La transformation doit se faire en temps polynomial La réponse correcte de P1 pour x est ‘OUI’ ssi la réponse correcte de P2 pour T(x) est aussi ‘OUI’ Besoin de savoir koi ca veut dire: Problème de décisions La classe des problèmes P Algorithmes non déterministes La classe des problèmes NP Le concept de transformations polynomiales La classe des problèmes NP-complets 5/5/2019

Réduction de problème Si la fonction T peut être calculer en temps polynomial, P1 est polynomialement réductible en P2 ( P1  P2) P1  P2 :s’il existe une fonction T qui transforme tout input x de P1 en T(x), un input de P2, de telle sorte que la réponse correcte de P1 pour x soit "oui" si et seulement si la réponse correcte de P2 pour T(x) est aussi "oui". 5/5/2019

CSI 3505 La théorie de Complexité P1  P2 P2 est au moins, aussi difficile à résoudre que P1 La composition de la fonction T et de l'algorithme résolvant P2 nous donne un algorithme pour résoudre P1. T Algorithme pour P2 T(x) input x (input pour P1) Réponse OUI ou NON 5/5/2019

CSI 3505 La théorie de Complexité Exemple d’un problème qui peut s'exprimer en termes de coloration d'un graphe: Un graphe dont les sommets sont tous les cours, et on met une arête entre u et v s’il existe au moins un étudiant qui prends les cours u et v en même temps. CSI 3505 Phy 1500 ENG 1000 ENG 3300 CSI 3503 5/5/2019

CSI 3505 NP-complets La classe des problèmes NP-complets est l’ensemble de tous les problèmes M vérifiant les propriétés suivantes: M est dans NP. Il existe une algorithme polynomial pour résoudre M ssi pour tout problème Q dans la classe NP il existe un algorithme polynomial pour résoudre Q. Besoin de savoir koi ca veut dire: Problème de décisions La classe des problèmes P Algorithmes non déterministes La classe des problèmes NP Le concept de transformations polynomiales La classe des problèmes NP-complets 5/5/2019

CSI 3505 La théorie de Complexité Prouver qu’un problème Q est NP-complet ? Prouver que Q est dans NP Trouver un problème NP-complet R et trouver une réduction polynomial de Q à R 5/5/2019

Quelqu’un voit un problème ? NP-complet Quelqu’un voit un problème ? 5/5/2019

Forme normale conjonctive Définition: Forme normale conjonctive (FNC) Littéral = variable booléenne ou sa négation (x ou x) Clause = littéral ou une disjonction de littéraux () Une expression booléenne est en Forme normale conjonctive (FNC) si elle est une clause ou une conjonction () de clauses (x1  x2  x3 )  (x1  x4 )  (x2  x3  x4 ) 5/5/2019

Problème de Satisfaisabilité sat, k-sat Problème de Satisfaisabilité Une expression booléenne est satisfaisable s'il existe (au moins) une assignation de valeurs a ses variables booléenne qui la rende vraie SAT: Problème de décider, étant donnée une expressions booléenne, si elle est satisfaisable K-SAT: Problème de décider, étant donnée une expressions booléenne avec  k littéraux, si elle est satisfaisable 5/5/2019

CSI 3505 La théorie de Complexité Theorème de Cook: SAT-FNC est un problème NP-complet La preuve démontre que si SAT-FNC est dans P, alors la question ouverte est résolue et: P = NP On ne sait bien sur toujours pas si SAT-FNC est dans P ou non Mais on sait que SAT-FNC est NP-complet 5/5/2019

Exemple de preuve CLIQUE est NP-complet Clique est dans NP Vérification si un ensemble de sommet représente une solution: Vérifier que ce ensemble contient k sommets. Vérifier que ce ensemble de sommets représente une clique “toutes les paires sont reliées”. C’est polynomial donc Clique est dans NP 5/5/2019

CSI 3505 La théorie de Complexité Réduire 3-SAT au probléme CLIQUE 3-SAT  CLIQUE Transformer une expression booléenne 3-FNS en un graphe tel que ce graphe contient une clique de taille k si est seulement si l’expression booléenne est satisfaisable. 5/5/2019

CSI 3505 La réduction 3-SAT  CLIQUE B = C1  C2  …  Ck une formule en 3-CNF, avec k clauses, contenant chacune 3 littéraux distincts. Pour chaque clause on crée 3 sommets, un pour chaque littéral dans la clause. On relie deux sommets s’ils proviennent de deux clauses différentes et que leurs littéraux sont consistents “l’un n’est pas la négation de l’autre” Exemple: B = (x  y  z)  (x  y  z )  (x  y  z ) 5/5/2019

CSI 3505 La théorie de Complexité Exemple: E = (x  y  z)  (x  y  z )  (x  y  z ) x1 y1 z1 x3 y3 z3 x2 y2 z2 5/5/2019

CSI 3505 La théorie de Complexité Preuve: Si E est satisfaisable, alors chaque clause a au moins un littéral “sommet” avec une valeur “Vraie” Prends le sommet correspondant de chaque littéral. Ça doit former une clique de taille k. (Pourquoi?) Si G a une clique V’ de taille k, alors V’ contient un sommet (littéral) dans chacune des clause de E. (Pourquoi?) Il suffit de donner la valeur “Vraie” pour ces littéraux. Ceci satisfait la formule E, sans risque d’avoir des contradictions. 5/5/2019

CSI 3505 La théorie de Complexité Exemple: E = (x  y  z)  (x  y  z )  (x  y  z) x1 y1 z1 x2 y2 z2 x3 y3 z3 X = Vrai Y= Vrai Z= Faux 5/5/2019

En resumé: Tous les problèmes Arrêt Problèmes NP Problèmes NP-Complets TSP Arrêt Problèmes P TRI 5/5/2019