760 likes | 924 Views
Cours de graphes. Problèmes NP-complets. Réductions polynômiales. Les grandes lignes du cours. Définitions de base Connexité Les plus courts chemins Dijkstra et Bellmann-Ford Arbres Arbres de recouvrement minimaux Problèmes de flots Coloriage de graphes, graphes planaires Couplage
E N D
Cours de graphes Problèmes NP-complets. Réductions polynômiales. Cours de graphes 7 - Intranet
Les grandes lignes du cours • Définitions de base • Connexité • Les plus courts chemins • Dijkstra et Bellmann-Ford • Arbres • Arbres de recouvrement minimaux • Problèmes de flots • Coloriage de graphes, graphes planaires • Couplage • Chemins d’Euler et de Hamilton • Problèmes NP-complets Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- R A P P E L S S U R L A N P – C O M P L E T U D E Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • La question : • Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ? • Pour un tel problème, tout algorithme pour le résoudre serait exponentiel en temps ! • La réponse : • Probablement OUI ! • Malheureusement ! ! ! • On ne sait rien de définitif ! ! ! / P = N P ou bien P = N P Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • La classe de problèmes « P » ! • Ce sont les problèmes qui acceptent un algorithme : • polynômial, • déterministe, • qui résout toutes les instances. La complexité est un polynôme en termes de la taille du problème. Il n’y a aucun élément de chance ou d’indication venant de l’extérieur. Aucune instance n’est trop difficile. Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • La classe de problèmes « N P » ! • Ce sont les problèmes qui acceptent un algorithme : • polynômial, • non-déterministe, • qui résout toutes les instances. Il peut y a avoir des éléments de chance ou des indications venant de l’extérieur. Oracle ! Boule de cristal ! La Pythie ! Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • Nous remplaçons une exploration à l’aide du back-track • par un appel à l’oracle. • L’oracle répond au bout de . . . ? • La complexité de l’oracle est bien-sûr en O ( 1 ) . • Je sais réaliser un oracle en temps exponentiel ! • Il suffit de faire un back-track en cachette ! ! ! Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • Autre formulation de la classe de problèmes « N P » ! • Ce sont les problèmes qui : • acceptent, pour chaque instance, un nombre borné de candidats à être la solution, • pour lesquels, la vérification qu’un candidat quelconque est solution appartient à « P ». Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • Théorème : • P N P U N P ? ? ? ? ? P ? ? P = N P c’est-à-dire N P \ P = o / Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • Définissons la classe « N P C », c’est-à-dire les problèmes « N-P-complets » : Difficile. N P C N P P Facile. Ce seront les problèmes les plus difficiles de « N P » ! L’idée : Si eux sont dans « P », alors« P = N P »! ! ! Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • Il nous faut une notion de traduction ! • Soit un problème P : D -> BOOL • Soit un problème P : D -> BOOL • P se réduit polynômialement en P , noté P <= P • si et seulement si : • il existe f : D -> D avec f e P • telle que pour tout x e D : • P ( x ) = P ( f ( x ) ) 1 1 2 2 1 2 1 2 P 1 2 1 1 2 Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • L’idée derrière la traduction : P Calcul ! 1 x Vrai ou Faux Le même résultat ! Traduction ! P Calcul ! 2 f ( x ) Vrai ou Faux Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • Définition : • La classe « N P C » est la classe des problèmes P tels que : • P eN P . • Pour tout Q eN P on a : Q <= P . • Tout le monde se réduit vers P . • P est donc le plus difficile ! ! ! • Si P , P’ eN P C , alors il sont ex aequo en difficulté : • P <= P’ et P’ <= P . P P P Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • Et si « N P C » était vide ? ? ? • C’est-à-dire, un tel problème universel n’existe pas ! ! ! • Théorème (Cook, 1971) : • SAT eN P C . • Il n’y a pas plus difficile (dans N P C) que la logique. • Principe de la preuve : • Tout problème dans « N P » peut être traduit en une formule logique. • Analogie : Tout texte peut être traduit en une formule alphabétique. Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- N P C N P SAT P Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • Conséquences : • S’il existe un seul problème PeN P C • pour lequel on trouve un algorithme en temps polynômial et déterministe, • alors P = N P ! • S’il existe un seul problème PeN P C • pour lequel on prouve qu’un algorithme en temps polynômial et déterministe ne peut pas exister, • alors P = N P ! Le problème universel est facile ! Personne n'a réussi ! / Le problème universel est difficile ! Cours de graphes 7 - Intranet
Rappels sur la NP-complétude----------------------------------------------------------------- • Concrètement : • Vous avez un problème qui vous résiste ? • Essayez de savoir s’il est N-P-complet ! • le Garey and Johnson, ou Internet, ou . . . • Comment prouver qu’il est N-P-complet ? ? ? • Prouvez que votre problème P est dans N P et • prenez un problème A de N P C et montrez que • A <= P On vous donne la solution et vous vérifiez que c’en est bien une ! P Cours de graphes 7 - Intranet
Réductions polynômiales----------------------------------------------------------------- Q U E L Q U E S R E D U C T I O N S P O L Y N O M I A L E S Cours de graphes 7 - Intranet
£ £ £ £ £ £ £ P P P P P P P Réductions polynômiales----------------------------------------------------------------- • Nous construirons les réductions polynômiales suivantes : CIRCUIT-SAT De la logique ! SAT 3-SAT FNC CLIQUE VERTEX COVER 0-1 LINEAR PROG. et VERTEX C. SUBSET SUM SET PARTITION Cours de graphes 7 - Intranet
£ £ £ £ £ £ £ P P P P P P P Réductions polynômiales----------------------------------------------------------------- • Nous construirons les réductions polynômiales suivantes : CIRCUIT-SAT Des graphes ! SAT 3-SAT FNC CLIQUE VERTEX COVER 0-1 LINEAR PROG. et VERTEX C. SUBSET SUM SET PARTITION Cours de graphes 7 - Intranet
£ £ £ £ £ £ £ P P P P P P P Réductions polynômiales----------------------------------------------------------------- • Nous construirons les réductions polynômiales suivantes : CIRCUIT-SAT De l'arithmétique ! SAT 3-SAT FNC CLIQUE VERTEX COVER 0-1 LINEAR PROG. et VERTEX C. SUBSET SUM SET PARTITION Cours de graphes 7 - Intranet
£ £ £ £ £ £ £ P P P P P P P Réductions polynômiales----------------------------------------------------------------- • Nous construirons les réductions polynômiales suivantes : Les transitions entre domaines sont difficiles ! CIRCUIT-SAT SAT 3-SAT FNC CLIQUE VERTEX COVER 0-1 LINEAR PROG. et VERTEX C. SUBSET SUM SET PARTITION Cours de graphes 7 - Intranet
£ £ £ £ £ £ £ P P P P P P P Réductions polynômiales----------------------------------------------------------------- SAT est dans NPC et donc les autres aussi ! • Nous construirons les réductions polynômiales suivantes : CIRCUIT-SAT SAT 3-SAT FNC CLIQUE VERTEX COVER 0-1 LINEAR PROG. et VERTEX C. SUBSET SUM SET PARTITION Cours de graphes 7 - Intranet
SAT se réduit en CIRCUIT-SAT----------------------------------------------------------------- • CIRCUIT-SAT • « n » variables logiques et un circuit logique construit à partir des circuits de base et , ou ou not . • La question : Le circuit peut-il rendre la valeur « Vrai » pour un choix adéquat des valeurs des variables ? CIRCUIT-SAT est bien dans NP , car si on nous donne une solution nous sommes capables de vérifier que c’en est bien une en temps polynômial et de façon déterministe ! Cours de graphes 7 - Intranet
SAT se réduit en CIRCUIT-SAT----------------------------------------------------------------- • CIRCUIT-SAT • « n » variables logiques et un circuit logique construit à partir des circuits de base et , ou ou not . • La question : Le circuit peut-il rendre la valeur « Vrai » pour un choix adéquat des valeurs des variables ? • La réduction : • Nous allons traduire une formule logique de SAT en un circuit de CIRCUIT-SAT qui donne les mêmes résultats ! Cours de graphes 7 - Intranet
SAT se réduit en CIRCUIT-SAT----------------------------------------------------------------- • La réduction : • Variable 3-SAT -> variable CIRCUIT-SAT. • ù x -> x • ( a v b v . . . v z ) -> a • b • . . . . . . • z • ( a b . . . z ) ->a • b • . . . . .. • z L'équivalence est évidente ! . . . La réduction est dans P ! v v v . . . Cours de graphes 7 - Intranet
£ £ £ £ £ £ £ P P P P P P P Réductions polynômiales----------------------------------------------------------------- • Nous construirons les réductions polynômiales suivantes : CIRCUIT-SAT SAT 3-SAT FNC CLIQUE VERTEX COVER 0-1 LINEAR PROG. et VERTEX C. SUBSET SUM SET PARTITION Cours de graphes 7 - Intranet
SAT se réduit en 3-SAT FNC----------------------------------------------------------------- • Une formule SAT est une formule de profondeur quelconque qui comporte des littéraux ou leurs négations ainsi que des conjonctions et des disjonctions binaires. • ( ( x v ù y ) v ( ( y ( z v t ) ) ù x ) ) • Une formule 3-SAT FNC (forme normale conjonctive) est une formule qui comporte une conjonction n-aire composée de disjonctions avec trois littéraux ou leurs négations. • ( a v ù b v c ) ( a v d v e ) . . . ( ù d v c v e ) v v v v v 3-SAT FNC est bien dans NP , car si on nous donne une solution nous sommes capables de vérifier que c’en est bien une en temps polynômial et de façon déterministe ! Cours de graphes 7 - Intranet
SAT se réduit en 3-SAT FNC----------------------------------------------------------------- • Une formule SAT est une formule de profondeur quelconque qui comporte des littéraux ou leurs négations ainsi que des conjonctions et des disjonctions binaires. • ( ( x v ù y ) v ( ( y ( z v t ) ) ù x ) ) • Une formule 3-SAT FNC (forme normale conjonctive) est une formule qui comporte une conjonction n-aire composée de disjonctions avec trois littéraux ou leurs négations. • ( a v ù b v c ) ( a v d v e ) . . . ( ù d v c v e ) • Nous allons « aplatir » notre formule SAT en une formule 3-SAT FNC. v v v v v Cours de graphes 7 - Intranet
SAT se réduit en 3-SAT FNC----------------------------------------------------------------- • A une variable SAT nous associons une variable 3-SAT FNC. • A une formule SAT de la forme ( A op B ) nous associons une nouvelle variable y pour laquelle nous affirmons que • y est vraie • et • y est équivalente à ( A op B ) • Ensuite, il suffit de traduire cette équivalence en une disjonction. y( y <=> A op B ) v Cours de graphes 7 - Intranet
SAT se réduit en 3-SAT FNC----------------------------------------------------------------- • Une formule de la forme ( y <=> A op B ) correspond à une table de vérité avec 8 lignes. Nous en sélectionnons les 4 lignes qui sont fausses et nous les traduisons en une formule f qui est une disjonction de conjonctions : • ( y A B ) v ( ù y ù A B ) v ( y ù A ù B ) v . . . • La négation de f est la formule recherchée. D’après de « De Morgan », nous obtenons : • ( ù y v ù A v ù B ) ( y v A v ù B ) ( ù y v A v B ) . . . v v v v v v v v v Cette réduction est bien polynômiale ! Cours de graphes 7 - Intranet
SAT se réduit en 3-SAT FNC----------------------------------------------------------------- • Une formule de la forme ( y <=> A op B ) correspond à une table de vérité avec 8 lignes. Nous en sélectionnons les lignes qui sont fausses et nous les traduisons en une formule f qui est une disjonction de conjonctions : • ( y A B ) v ( ù y ù A B ) v ( y ù A ù B ) • La négation de f est la formule recherchée. D’après de « De Morgan », nous obtenons : • ( ù y v ù A v ù B ) ( y v A v ù B ) ( ù y v A v B ) • La même approche reste vraie pour tous les opérateurs binaires, comme et , ou , => , <=> , . . . v v v v v v v v Cours de graphes 7 - Intranet
SAT se réduit en 3-SAT FNC----------------------------------------------------------------- U N E X E M P L E Cours de graphes 7 - Intranet
SAT se réduit en 3-SAT FNC----------------------------------------------------------------- ( ( ( x => x ) x ) v x ) v 2 3 2 1 y 1 y 1 v y ( y <=> ( y v x ) ) v 2 1 2 1 x v 1 ( y <=> ( y x ) ) v y v 2 3 2 3 x => ( y <=> ( x => x ) ) v 2 3 2 3 x x 3 2 Ecrivons sa table de vérité ! Cours de graphes 7 - Intranet
SAT se réduit en 3-SAT FNC----------------------------------------------------------------- ( ( ( x => x ) x ) v x ) v 2 3 2 1 y x x . . . 3 2 3 y 0 0 0 0 1 0 0 1 0 ( y <=> ( y v x ) ) v 1 2 1 0 1 0 1 ( y <=> ( y x ) ) v v 2 3 2 0 1 1 0 ( y <=> ( x => x ) ) v 1 0 0 1 3 2 3 1 0 1 1 f = ( ù y ù x ù x ) v ( ù y ù x x ) v . . . v v 3 2 3 1 1 0 0 v v 1 1 1 1 3 2 3 Cours de graphes 7 - Intranet
SAT se réduit en 3-SAT FNC----------------------------------------------------------------- ( ( ( x => x ) x ) v x ) v 2 3 2 1 y x x . . . 3 2 3 y 0 0 0 0 1 0 0 1 0 ( y <=> ( y v x ) ) v 1 2 1 0 1 0 1 ( y <=> ( y x ) ) v v 2 3 2 0 1 1 0 ( y <=> ( x => x ) ) v 1 0 0 1 3 2 3 1 0 1 1 ù f = ( y v x v x ) ( y v x v ù x ) . . . 3 2 3 1 1 0 0 v v 1 1 1 1 3 2 3 Cours de graphes 7 - Intranet
SAT se réduit en 3-SAT FNC----------------------------------------------------------------- Etc . . . ( ( ( x => x ) x ) v x ) v 2 3 2 1 y x x . . . 3 2 3 y 0 0 0 0 1 0 0 1 0 ( y <=> ( y v x ) ) v 1 2 1 0 1 0 1 ( y <=> ( y x ) ) v v 2 3 2 0 1 1 0 ( y v x v x ) v 1 0 0 1 3 2 3 1 0 1 1 ( y v x v ù x ) v 3 2 3 1 1 0 0 . . . 1 1 1 1 v Cours de graphes 7 - Intranet
£ £ £ £ £ £ £ P P P P P P P Réductions polynômiales----------------------------------------------------------------- C'est plus difficile ! Nous passons de la logique aux graphes ! • Nous construirons les réductions polynômiales suivantes : CIRCUIT-SAT SAT 3-SAT FNC CLIQUE VERTEX COVER 0-1 LINEAR PROG. et VERTEX C. SUBSET SUM SET PARTITION Cours de graphes 7 - Intranet
3-SAT FNC se réduit en CLIQUE----------------------------------------------------------------- • Une clique d’un graphe G = ( V , E ) est un sous-ensemble des sommets qui sont tous voisins les uns des autres ! Une clique de 3 sommets ! Cours de graphes 7 - Intranet
3-SAT FNC se réduit en CLIQUE----------------------------------------------------------------- • Une clique d’un graphe G = ( V , E ) est un sous-ensemble des sommets qui sont tous voisins les uns des autres ! • Question : Y a-t-il G une clique de k sommets ? • CLIQUE est dans NP car nous savons vérifier dans P si un ensemble de sommets est une clique ou non ! L’unique clique de 4 sommets ! Cours de graphes 7 - Intranet
3-SAT FNC se réduit en CLIQUE----------------------------------------------------------------- • Soit une formule 3-SAT FNC constituée de k conjonctions : • Nous allons montrer que cette formule peut être rendue vraie si et seulement s’il existe une clique de taille k dans un certain graphe. • CLIQUE sera donc au moins aussi difficile que 3-SAT FNC, c’est-à-dire vraisemblablement exponentiel en général. F = C . . . C v v k 1 C = T v T v T T = x | ù x i i,1 i,2 i,3 i,j p p Cours de graphes 7 - Intranet
3-SAT FNC se réduit en CLIQUE----------------------------------------------------------------- • La construction du graphe : • A chaque terme T nous associons un sommet. • Les sommets T et T sont voisins dans le graphe ssi : • i et m sont différents, • les termes ne sont pas la négation l’un de l’autre. i,j i,j m,n Ils peuvent être vrais en même temps ! Cours de graphes 7 - Intranet
3-SAT FNC se réduit en CLIQUE----------------------------------------------------------------- • La construction du graphe : • A chaque terme T nous associons un sommet. • Les sommets T et T sont voisins dans le graphe ssi : • i et m sont différents, • les termes ne sont pas la négation l’un de l’autre. • Cette construction est clairement déterministe et peut se faire en temps polynômial. i,j i,j m,n Cours de graphes 7 - Intranet
3-SAT FNC se réduit en CLIQUE----------------------------------------------------------------- ( x v ù x v ù x ) ( ù x v x v x ) ( x v x v x ) v v 1 2 3 1 2 3 1 2 4 En construction . . . NON COMPATIBLES ! x ù x ù x 1 2 3 ù x x 1 1 x x 2 2 x x 3 4 Cours de graphes 7 - Intranet
3-SAT FNC se réduit en CLIQUE----------------------------------------------------------------- ( x v ù x v ù x ) ( ù x v x v x ) ( x v x v x ) v v 1 2 3 1 2 3 1 2 4 Le voilà ! x ù x ù x 1 2 3 ù x x 1 1 x x 2 2 x x 3 4 Cours de graphes 7 - Intranet
x est quelconque ! 3-SAT FNC se réduit en CLIQUE----------------------------------------------------------------- 3 ( x v ù x v ù x ) ( ù x v x v x ) ( x v x v x ) v v 1 2 3 1 2 3 1 2 4 • Clairement, notre formule peut être rendu vraie seulement si nous trouvons dans chaque terme de la conjonction au moins une fois la valeur vrai. • De plus, ces choix doivent être compatibles ! • Autrement dit, ils doivent correspondre à une clique que nous pouvons former dans le graphe ! • Rendre vraie la formule ou trouver une clique dans le graphe sont donc des problèmes de même difficulté ! ! ! Cours de graphes 7 - Intranet
3-SAT FNC se réduit en CLIQUE----------------------------------------------------------------- ( x v ù x v ù x ) ( ù x v x v x ) ( x v x v x ) v v 1 2 3 1 2 3 1 2 4 Une solution ! x ù x ù x 1 2 3 ù x x 1 1 x x 2 2 x x 3 4 Cours de graphes 7 - Intranet
3-SAT FNC se réduit en CLIQUE----------------------------------------------------------------- ( x v ù x v ù x ) ( ù x v x v x ) ( x v x v x ) v v 1 2 3 1 2 3 1 2 4 Une autre solution ! x ù x ù x 1 2 3 ù x x 1 1 x x 2 2 x x 3 4 Cours de graphes 7 - Intranet
£ £ £ £ £ £ £ P P P P P P P Réductions polynômiales----------------------------------------------------------------- • Nous construirons les réductions polynômiales suivantes : CIRCUIT-SAT SAT 3-SAT FNC CLIQUE VERTEX COVER 0-1 LINEAR PROG. et VERTEX C. SUBSET SUM SET PARTITION Cours de graphes 7 - Intranet
CLIQUE se réduit en VERTEX COVER----------------------------------------------------------------- • Nous nous donnons un graphe G = ( V , E ) avec n sommets et une constante naturelle k . • Question : Pouvons-nous trouver un sous-ensemble V’ d’au plus k sommets de façon à ce que toute arête ait au moins une extrémité dans V’ ? k = 2 Nous sommes capables de vérifier une solution en temps polynômial et déterministe ! ! ! OUI ! ! ! Les arêtes sont dans l’ensemble ou elles traversent la frontière ! Cours de graphes 7 - Intranet