230 likes | 331 Views
8INF806. Conception et analyse des algorithmes Comment comparer deux problèmes?. Relation entre les classes de fonctions. PP. BPP. ZPP. ZPP*. P. Relation entre les classes de problèmes de décision. PP. BPP. NP. co-NP. RP. co-RP. ZPP. NP co-NP. P. Quelques problèmes (1).
E N D
8INF806 Conception et analyse des algorithmes Comment comparer deux problèmes? 8INF806
Relation entre les classes de fonctions PP BPP ZPP ZPP* P 8INF806
Relation entre les classes de problèmes de décision PP BPP NP co-NP RP co-RP ZPP NPco-NP P 8INF806
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 à b≤a points et le perdant a (a-b) points. 8INF806
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. 8INF806
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 8INF806
Réduction de Turing A ≤T B : S'il existe un algorithme EP pour P qui utilise un algorithme EQ pour Q et qui possède les propriétés suivantes: • Le temps de EP (si on ne compte pas les appels à EQ) est borné par un polynôme p(n) • Le nombre d'appels à EQ est borné par un polynôme q(n) • La longueur des entrées des appels à EQ est bornée par un polynôme r(n) Le temps de EP est: tP(n) ≤ p(n) + q(n) + tQ(r(n)) 8INF806
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 8INF806
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 8INF806
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? 8INF806
Réduction entre variantes d'un problème Pour la plupart des problèmes A on a: ADECT AEVAL T AOPT Il est facile de voir: • ADEC≤T AEVAL • AEVAL≤T AOPT 8INF806
AEVAL≤T ADEC • 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 ADEC 8INF806
AOPT≤T AEVAL • On appelle d'abord un algorithme pour AEVAL afin d'obtenir une valeur optimal wopt. • On construit progressivement une solution en vérifiant si elle est prometteuse à l'aide d'un appel à l'algorithme pour AEVAL et de wopt. • Exemple: MAX-SAT • On cherche à satisfaire une formule f(x1, ..., xn). • On essaie avec x1=1 : on remplace les clauses contenant x1 par la clause 1 et on enlève x1 de toutes les clauses (une clause vide n'est jamais satisfaisable). • On appelle l'algorithme d'évaluation avec la nouvelle formule g(x2, ..., xn) qui nous retourne w • Si w=wopt alors on continue avec x1=1 sinon avec x1=0. • Nombre maximal d'appels à l'algorithme d'évaluation = n+1 8INF806
CLIQUEOPT≤T CLIQUEEVAL • Exemple: MAX-CLIQUE: • On appelle l'algorithme d'évaluation qui retourne la valeur wopt • 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=wopt 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 8INF806
BINPACKINGOPT≤T BINPACKINGEVAL • Exemple: BINPACKING • On appelle l'algorithme d'évaluation qui retourne la valeur wopt • 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=wopt 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 8INF806
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 8INF806
DHC T HC • HC ≤T DHC: Par définition • DHC ≤T HC: • G=(V,E) où V = {v1, v2, ... , vn} • G'=(V',E') où V' = {vi,j | 1≤i≤n, 1≤j≤3} • (vi,1, vi,2), (vi,2, vi,3) E' pour tout i • Si (vi, vj) E alors (vi,3, vj,1) E' • Si (vk, vi) E alors (vk,3, vi,1) E' • La direction d'un arc adjacent à vi se réflète par l'endroit où l'arête correspondante est reliée dans le chemin (vi,1, vi,2, vi,3) 8INF806
DHC T HC • Si G contient un cycle hamiltonien: (v1, v2, ... , vn, v1) G' contient aussi un cycle hamiltonien: (v1,1 , v1,2 , v1,3 , v2,1 , v2,2 , v2,3 , ..., vn,1 , vn,2 , vn,3 , v1,1) • Si G' contient un cycle hamiltonien alors • SPDG supposons que le cycle commence à v1,1 • Puisque les noeuds vi,2 ont exactement deux arêtes adjacentes alors ces deux arêtes doivent faire parti du cycle. • Le cycle doit donc contenir le segment (v1,1 , v1,,2 , v1,3) • Les 3 noeuds suivants doivent être de la forme: (vk,1 , vk,,2 , vk,3) • Etc. 8INF806
SAT T 3-SAT • 3-SAT ≤TSAT puisque 3-SAT est une restriction de SAT. • SAT ≤T3-SAT • Chaque clause de SAT est de la forme (z1 z2 zk) où zi {x1, x1, x2, x2, ... , xn, xn} • Si k=1 on remplace la clause par (z1 z1 z1) • Si k=2 on remplace la clause par (z1 z2 z2) • Si k>3 on remplace la clause par: (z1 z2 y1) (y1 z3 y2) (yk-1 zk-1 zk) où les yi sont de nouvelle variables. 8INF806
PARTITION ≤T BINPACKING • n nombres x1, x2, ..., xn • Seulement 2 cases avec capacité (x1 + x2 + ... + xn) / 2 • 1 seul appel à BINPACKING 8INF806
CLIQUE TINDEPENDENT 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. 8INF806
Autres réductions • 2-DM ≤T NETWORK FLOW • a-championship ≤T NETWORK FLOW • 3-SAT ≤T CLIQUE • 3-SAT ≤T DHC 8INF806
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 LA * se réduit polynomialement à un langage LB A* s'il existe une fonction f: * * calculable en temps polynomiale telle que: w LA f(w) LB pour tout w *. • On utilise la notation LA≤p LB et LAp LB 8INF806