Upload
nicole-louis
View
115
Download
3
Embed Size (px)
Citation preview
8INF806 1
8INF806
Conception et analyse des algorithmes
Comment comparer deux problèmes?
8INF806 2
Relation entre les classes de fonctions
BPP
P
ZPP
PP
ZPP*
8INF806 3
Relation entre les classes de problèmes de décision
BPP
P
RP
ZPP
co-RP
PP
NP
NPco-NP
co-NP
8INF806 4
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 5
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 6
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 7
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 8
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 9
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 10
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 11
Réduction entre variantes d'un problème
Pour la plupart des problèmes A on a:
ADEC T AEVAL T AOPT
Il est facile de voir:
– ADEC ≤T AEVAL
– AEVAL ≤T AOPT
8INF806 12
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 13
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 14
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 15
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 16
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 17
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 18
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 19
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 (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 20
PARTITION ≤T BINPACKING
• n nombres x1, x2, ..., xn
• Seulement 2 cases avec capacité
(x1 + x2 + ... + xn) / 2
• 1 seul appel à BINPACKING
8INF806 21
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.
8INF806 22
Autres réductions
• 2-DM ≤T NETWORK FLOW
• a-championship ≤T NETWORK FLOW
• 3-SAT ≤T CLIQUE
• 3-SAT ≤T DHC
8INF806 23
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 LA p LB