La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I."— Transcription de la présentation:

1 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

2 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

3 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

4 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

5 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

6 É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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 CSI 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

15 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

16 CSI 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

17 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

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

19 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

20 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

21 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

22 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

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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

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

33 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

34 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

35 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

36 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

37 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

38 CSI 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

39 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

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

41 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

42 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

43 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

44 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

45 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

46 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

47 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

48 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

49 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

50 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


Télécharger ppt "CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I."

Présentations similaires


Annonces Google