8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
8INF8062 Relation entre les classes de fonctions BPP P ZPP PP ZPP*
8INF8063 Relation entre les classes de problèmes de décision BPP P RP ZPP co-RP PP NP NP co-NP co-NP
8INF8064 Quelques problèmes (1) HC: Cycle hamiltonien dans un graphe –DFC: graphe dirigé –TSP: problème du comis voyageur CLIQUE: Trouver un ensemble maximal M de noeuds dans un graphe tels que chaque paires de noeuds dans M sont reliées par une arête. –INDEPENDENT SET: Trouver un ensemble maximal M de noeuds dans un graphe tels que aucune paire de noeuds dans M n'est reliée par une arête. –VERTEX COVER: Trouver un ensemble minimal de noeuds dans un graphe tel que toute arête est adjacente à au moins un de ces noeuds. a-CHAMPIONSHIP: Déterminer à un moment donner de la saison si notre équipe à des chances d'emporter la coupe: le gagnant à ba points et le perdant a (a-b) points.
8INF8065 Quelques problèmes (2) SAT: Satisfaisabilité: Déterminer s'il existe une affectation des n variable booléenne permettant de satisfaire une formule logique en forme normale conjonctive. –3-SAT: 3 littéraux par clause –MAX-SAT: maximiser le nombre de clauses satisfaisables. BINPACKING: Mettre n objets de poids divers dans des cases de capacité b –PARTITION: Partitionner une suite de nombres en deux ensembles d'égales valeurs. 2-DM: Problème du mariage dans un graphe biparti NETWORK FLOW: Maximiser le flot entre un noeud a et un noeud b dans un graphe dirigé où chaque arc possède une capacité maximale.
8INF8066 Objectif On veut définir une relation A T B signifiant que B est au moins aussi difficile que A Réduction de Turing: A T B
8INF8067 Réduction de Turing A T B : S'il existe un algorithme E P pour P qui utilise un algorithme E Q pour Q et qui possède les propriétés suivantes: Le temps de E P (si on ne compte pas les appels à E Q ) est borné par un polynôme p(n) Le nombre d'appels à E Q est borné par un polynôme q(n) La longueur des entrées des appels à E Q est bornée par un polynôme r(n) Le temps de E P est: t P (n) p(n) + q(n) + t Q (r(n))
8INF8068 Problèmes équivalents Deux problèmes A et B sont Turing- équivalents si A T B et B T A. Notation: A T B FAIT: Si B P et A T B alors A P Remarque: Même chose pour BPP et ZPP
8INF8069 Propriétés de la réduction de Turing Transitivité: P T Q et Q T R P T R Réfexibilité: P T P Symétrie: P T Q Q T P
8INF80610 Problèmes algorithmiques Problèmes d'optimisation: –Ex: Produire un cycle hamiltonien de longueur minimal dans un graphe Problème d'évaluation: –Ex. Donner la longueur du plus petit cycle hamiltonien dans un graphe Problème de décision: –Existe-t-il un cycle hamiltonien de longueur plus peit ou égal à k?
8INF80611 Réduction entre variantes d'un problème Pour la plupart des problèmes A on a: A DEC T A EVAL T A OPT Il est facile de voir: –A DEC T A EVAL –A EVAL T A OPT
8INF80612 A EVAL T A DEC Trouver une borne B tel que la valeur de n'importe quelle solution est entre –B et B (souvent entre 0 et B). Exemple: –BINPACKING: n nombres en entrée B=n –CLIQUE: n noeuds B=n –MAX-SAT: n clauses B=n Recherche dychotomique: O(lg B) appels à un algorithme pour A DEC
8INF80613 A OPT T A EVAL On appelle d'abord un algorithme pour A EVAL afin d'obtenir une valeur optimal w opt. On construit progressivement une solution en vérifiant si elle est prometteuse à l'aide d'un appel à l'algorithme pour A EVAL et de w opt. Exemple: MAX-SAT –On cherche à satisfaire une formule f(x 1,..., x n ). –On essaie avec x 1 =1 : on remplace les clauses contenant x 1 par la clause 1 et on enlève x 1 de toutes les clauses (une clause vide n'est jamais satisfaisable). –On appelle l'algorithme d'évaluation avec la nouvelle formule g(x 2,..., x n ) qui nous retourne w –Si w=w opt alors on continue avec x 1 =1 sinon avec x 1 =0. Nombre maximal d'appels à l'algorithme d'évaluation = n+1
8INF80614 CLIQUE OPT T CLIQUE EVAL Exemple: MAX-CLIQUE: –On appelle l'algorithme d'évaluation qui retourne la valeur w opt –On choisi un noeud n et on l'enlève du graphe pour obtenir un nouveau graphe G' –On appelle à nouveau l'algorithme d'évaluation sur G' qui retourne la valeur w –Si w=w opt alors il existe une clique qui ne contient pas n et on peut enlever n de G. –On continue avec un autre noeud. Nombre maximal d'appels à l'algorithme d'évaluation = n+1
8INF80615 BINPACKING OPT T BINPACKING EVAL Exemple: BINPACKING –On appelle l'algorithme d'évaluation qui retourne la valeur w opt –On choisit deux objets que l'on colle ensemble pour en faire un seul (le poids est la somme des deux objets initiaux). –On appelle à nouveau l'algorithme d'évaluation qui retourne la valeur w –Si w=w opt alors on conserve les deux objets collés. –On poursuit de la même manière Remarque: –En réalité on travaille avec des ensembles d'objets (initialement on n'a que des singletons). –On ne choisit jamais deux ensembles contenant deux objets que l'on a déjà tenté de coller puique l'on sait que cela ne mène pas à la solution optimale. –Nombre maximal d'appels à l'algorithme d'évaluation = n(n-1)/2
8INF80616 Réduction entre problèmes de même type Le résultats prédédents indique que l'on peut se concentrer sur les problèmes de décision. Nous allons montrer: –DHC T HC –SAT T 3-SAT –PARTITION T BINPACKING –CLIQUE T INDEPENDENT SET (ANTI-CLIQUE) T VERTEX COVER
8INF80617 DHC T HC HC T DHC: Par définition DHC T HC: –G=(V,E) où V = {v 1, v 2,..., v n } –G'=(V',E') où V' = {v i,j | 1in, 1j3} –(v i,1, v i,2 ), (v i,2, v i,3 ) E' pour tout i –Si (v i, v j ) E alors (v i,3, v j,1 ) E' –Si (v k, v i ) E alors (v k,3, v i,1 ) E' La direction d'un arc adjacent à v i se réflète par l'endroit où l'arête correspondante est reliée dans le chemin (v i,1, v i,2, v i,3 )
8INF80618 DHC T HC Si G contient un cycle hamiltonien: (v 1, v 2,..., v n, v 1 ) G' contient aussi un cycle hamiltonien: (v 1,1, v 1,2, v 1,3, v 2,1, v 2,2, v 2,3,..., v n,1, v n,2, v n,3, v 1,1 ) Si G' contient un cycle hamiltonien alors –SPDG supposons que le cycle commence à v 1,1 –Puisque les noeuds v i,2 ont exactement deux arêtes adjacentes alors ces deux arêtes doivent faire parti du cycle. –Le cycle doit donc contenir le segment (v 1,1, v 1,,2, v 1,3 ) –Les 3 noeuds suivants doivent être de la forme: (v k,1, v k,,2, v k,3 ) –Etc.
8INF80619 SAT T 3-SAT 3-SAT T SAT puisque 3-SAT est une restriction de SAT. SAT T 3-SAT –Chaque clause de SAT est de la forme (z 1 z 2 z k ) où z i {x 1, x 1, x 2, x 2,..., x n, x n } –Si k=1 on remplace la clause par (z 1 z 1 z 1 ) –Si k=2 on remplace la clause par (z 1 z 2 z 2 ) –Si k>3 on remplace la clause par: (z 1 z 2 y 1 ) (y 1 z 3 y 2 ) (y k-1 z k-1 z k ) où les y i sont de nouvelle variables.
8INF80620 PARTITION T BINPACKING n nombres x 1, x 2,..., x n Seulement 2 cases avec capacité (x 1 + x x n ) / 2 1 seul appel à BINPACKING
8INF80621 CLIQUE T INDEPENDENT SET T VERTEX COVER Graphe G = (V,E) et G' = (V,E) G possède une clique de k noeuds ssi G' possède une anti-clique de k noeuds. G possède une anti-clique de k noeuds ssi les (n-k) noeuds restant couvrent toutes les arêtes de E.
8INF80622 Autres réductions 2-DM T NETWORK FLOW a-championship T NETWORK FLOW 3-SAT T CLIQUE 3-SAT T DHC
8INF80623 Réduction polynomiale Permet une classification plus fine pour les problèmes de décision. Permet de rester à l'intérieur des classes de complexité qui ne sont pas fermée sous la complémentation (e.g. RP, co-RP, NP, co-NP) Déf. Un langage L A * se réduit polynomialement à un langage L B A * s'il existe une fonction f: * * calculable en temps polynomiale telle que: w L A f(w) L B pour tout w *. On utilise la notation L A p L B et L A p L B