Troisième cours

publicité
8INF806
Conception et analyse des algorithmes
Comment comparer deux problèmes?
8INF806
1
Relation entre les classes de fonctions
BPP
PP
ZPP
ZPP*
P
8INF806
2
Relation entre les classes de problèmes de décision
PP
BPP
RP
NP
co-RP
ZPP
co-NP
NPco-NP
P
8INF806
3
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
4
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
5
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
6
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
7
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
8
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
9
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
10
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
11
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
12
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
13
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
14
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
15
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
16
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
17
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
18
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
19
PARTITION ≤T BINPACKING
• n nombres x1, x2, ..., xn
• Seulement 2 cases avec capacité
 (x1 + x2 + ... + xn) / 2 
• 1 seul appel à BINPACKING
8INF806
20
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
21
Autres réductions
• 2-DM ≤T NETWORK FLOW
• a-championship ≤T NETWORK FLOW
• 3-SAT ≤T CLIQUE
• 3-SAT ≤T DHC
8INF806
22
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
8INF806
23
Téléchargement